@primer-io/react-native 2.8.1 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +23 -2
  3. package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +23 -2
  4. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerCheckoutAdditionalInfoRN.kt +9 -0
  5. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerEvents.kt +1 -0
  6. package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutAdditionalInfo.kt +4 -1
  7. package/android/src/main/java/com/primerioreactnative/utils/PrimerHeadlessUniversalCheckoutImplementedRNCallbacks.kt +2 -1
  8. package/android/src/main/java/com/primerioreactnative/utils/PrimerImplementedRNCallbacks.kt +2 -0
  9. package/ios/DataModels/ImplementedRNCallbacks.swift +3 -0
  10. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +23 -1
  11. package/ios/RNTPrimer.swift +3 -0
  12. package/lib/commonjs/Primer.js +14 -3
  13. package/lib/commonjs/Primer.js.map +1 -1
  14. package/lib/commonjs/RNPrimer.js +1 -1
  15. package/lib/commonjs/RNPrimer.js.map +1 -1
  16. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js +17 -6
  17. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -1
  18. package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js +1 -1
  19. package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
  20. package/lib/module/Primer.js +14 -3
  21. package/lib/module/Primer.js.map +1 -1
  22. package/lib/module/RNPrimer.js +1 -1
  23. package/lib/module/RNPrimer.js.map +1 -1
  24. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js +17 -6
  25. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -1
  26. package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js +1 -1
  27. package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
  28. package/lib/typescript/src/RNPrimer.d.ts +1 -1
  29. package/lib/typescript/src/headless_checkout/RNPrimerHeadlessUniversalCheckout.d.ts +1 -1
  30. package/lib/typescript/src/models/PrimerCheckoutAdditionalInfo.d.ts +9 -0
  31. package/lib/typescript/src/models/PrimerSettings.d.ts +1 -0
  32. package/package.json +1 -1
  33. package/primer-io-react-native.podspec +1 -1
  34. package/src/Primer.ts +15 -0
  35. package/src/RNPrimer.ts +2 -0
  36. package/src/headless_checkout/PrimerHeadlessUniversalCheckout.ts +17 -2
  37. package/src/headless_checkout/RNPrimerHeadlessUniversalCheckout.ts +3 -1
  38. package/src/models/PrimerCheckoutAdditionalInfo.ts +12 -0
  39. package/src/models/PrimerSettings.ts +1 -0
@@ -3,7 +3,7 @@ const {
3
3
  PrimerHeadlessUniversalCheckout
4
4
  } = NativeModules;
5
5
  const eventEmitter = new NativeEventEmitter(PrimerHeadlessUniversalCheckout);
6
- const eventTypes = ['onHUCTokenizeStart', 'onHUCPrepareStart', 'onHUCAvailablePaymentMethodsLoaded', 'onHUCPaymentMethodShow', 'onTokenizeSuccess', 'onResumeSuccess', 'onResumePending', 'onBeforePaymentCreate', 'onBeforeClientSessionUpdate', 'onClientSessionUpdate', 'onCheckoutComplete', 'onError'];
6
+ const eventTypes = ['onHUCTokenizeStart', 'onHUCPrepareStart', 'onHUCAvailablePaymentMethodsLoaded', 'onHUCPaymentMethodShow', 'onTokenizeSuccess', 'onResumeSuccess', 'onResumePending', 'onCheckoutReceivedAdditionalInfo', 'onBeforePaymentCreate', 'onBeforeClientSessionUpdate', 'onClientSessionUpdate', 'onCheckoutComplete', 'onError'];
7
7
  const RNPrimerHeadlessUniversalCheckout = {
8
8
  ///////////////////////////////////////////
9
9
  // Event Emitter
@@ -1 +1 @@
1
- {"version":3,"sources":["RNPrimerHeadlessUniversalCheckout.ts"],"names":["NativeEventEmitter","NativeModules","PrimerHeadlessUniversalCheckout","eventEmitter","eventTypes","RNPrimerHeadlessUniversalCheckout","addListener","eventType","listener","removeListener","removeAllListenersForEvent","removeAllListeners","forEach","getAssetForPaymentMethodType","paymentMethodType","assetType","Promise","resolve","reject","err","url","e","getAssetForCardNetwork","cardNetwork","startWithClientToken","clientToken","settings","JSON","stringify","console","error","paymentMethodTypes","showPaymentMethod","handleTokenizationNewClientToken","newClientToken","handleTokenizationSuccess","handleTokenizationFailure","errorMessage","handleResumeWithNewClientToken","handleResumeSuccess","handleResumeFailure","handlePaymentCreationAbort","handlePaymentCreationContinue","setImplementedRNCallbacks","implementedRNCallbacks","disposePrimerHeadlessUniversalCheckout"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, NativeModules } from 'react-native';\n\nconst { PrimerHeadlessUniversalCheckout } = NativeModules;\n\nconst eventEmitter = new NativeEventEmitter(PrimerHeadlessUniversalCheckout);\n\ntype EventType =\n | 'onHUCTokenizeStart'\n | 'onHUCPrepareStart'\n | 'onHUCAvailablePaymentMethodsLoaded'\n | 'onHUCPaymentMethodShow'\n | 'onTokenizeSuccess'\n | 'onResumeSuccess'\n | 'onResumePending'\n | 'onBeforePaymentCreate'\n | 'onBeforeClientSessionUpdate'\n | 'onClientSessionUpdate'\n | 'onCheckoutComplete'\n | 'onError';\n\nconst eventTypes: EventType[] = [\n 'onHUCTokenizeStart',\n 'onHUCPrepareStart',\n 'onHUCAvailablePaymentMethodsLoaded',\n 'onHUCPaymentMethodShow',\n 'onTokenizeSuccess',\n 'onResumeSuccess',\n 'onResumePending',\n 'onBeforePaymentCreate',\n 'onBeforeClientSessionUpdate',\n 'onClientSessionUpdate',\n 'onCheckoutComplete',\n 'onError'\n];\n\nconst RNPrimerHeadlessUniversalCheckout = {\n ///////////////////////////////////////////\n // Event Emitter\n ///////////////////////////////////////////\n addListener: (eventType: EventType, listener: (...args: any[]) => any) => {\n eventEmitter.addListener(eventType, listener);\n },\n\n removeListener: (eventType: EventType, listener: (...args: any[]) => any) => {\n eventEmitter.removeListener(eventType, listener);\n },\n\n removeAllListenersForEvent(eventType: EventType) {\n eventEmitter.removeAllListeners(eventType);\n },\n\n removeAllListeners() {\n eventTypes.forEach((eventType) => RNPrimerHeadlessUniversalCheckout.removeAllListenersForEvent(eventType));\n },\n\n ///////////////////////////////////////////\n // Native API\n ///////////////////////////////////////////\n getAssetForPaymentMethodType: (\n paymentMethodType: string,\n assetType: 'logo' | 'icon'\n ): Promise<string> => {\n return new Promise((resolve, reject) => {\n try {\n PrimerHeadlessUniversalCheckout.getAssetForPaymentMethodType(\n paymentMethodType,\n assetType,\n (err: Error) => {\n reject(err);\n },\n (url: string) => {\n resolve(url);\n }\n );\n } catch (e) {\n reject(e);\n }\n });\n },\n\n getAssetForCardNetwork: (\n cardNetwork: string,\n assetType: 'logo' | 'icon'\n ): Promise<string> => {\n return new Promise((resolve, reject) => {\n try {\n PrimerHeadlessUniversalCheckout.getAssetForPaymentMethodType(\n cardNetwork,\n assetType,\n (err: Error) => {\n reject(err);\n },\n (url: string) => {\n resolve(url);\n }\n );\n } catch (e) {\n reject(e);\n }\n });\n },\n\n startWithClientToken(clientToken: string, settings: any): Promise<any> {\n return new Promise((resolve, reject) => {\n PrimerHeadlessUniversalCheckout.startWithClientToken(\n clientToken,\n JSON.stringify(settings),\n (err: Error) => {\n console.error(err);\n reject(err);\n },\n (paymentMethodTypes: string[]) => {\n resolve({ paymentMethodTypes });\n }\n );\n });\n },\n\n showPaymentMethod: (paymentMethodType: string): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.showPaymentMethod(paymentMethodType);\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n ///////////////////////////////////////////\n // DECISION HANDLERS\n ///////////////////////////////////////////\n\n // Tokenization Handlers\n\n handleTokenizationNewClientToken: (newClientToken: string): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleTokenizationNewClientToken(newClientToken);\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleTokenizationSuccess: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleTokenizationSuccess();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleTokenizationFailure: (errorMessage: string | null): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleTokenizationFailure(errorMessage || \"\");\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n // Resume Handlers\n\n handleResumeWithNewClientToken: (newClientToken: string): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleResumeWithNewClientToken(newClientToken);\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleResumeSuccess: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleResumeSuccess();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleResumeFailure: (errorMessage: string | null): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleTokenizationFailure(errorMessage || \"\");\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n // Payment Creation Handlers\n\n handlePaymentCreationAbort: (errorMessage: string | null): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handlePaymentCreationAbort(errorMessage || \"\");\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handlePaymentCreationContinue: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handlePaymentCreationContinue();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n // HELPERS\n\n setImplementedRNCallbacks: (implementedRNCallbacks: any): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.setImplementedRNCallbacks(JSON.stringify(implementedRNCallbacks));\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n \n disposePrimerHeadlessUniversalCheckout: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.disposePrimerHeadlessUniversalCheckout();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n};\n\nexport default RNPrimerHeadlessUniversalCheckout;\n"]}
1
+ {"version":3,"sources":["RNPrimerHeadlessUniversalCheckout.ts"],"names":["NativeEventEmitter","NativeModules","PrimerHeadlessUniversalCheckout","eventEmitter","eventTypes","RNPrimerHeadlessUniversalCheckout","addListener","eventType","listener","removeListener","removeAllListenersForEvent","removeAllListeners","forEach","getAssetForPaymentMethodType","paymentMethodType","assetType","Promise","resolve","reject","err","url","e","getAssetForCardNetwork","cardNetwork","startWithClientToken","clientToken","settings","JSON","stringify","console","error","paymentMethodTypes","showPaymentMethod","handleTokenizationNewClientToken","newClientToken","handleTokenizationSuccess","handleTokenizationFailure","errorMessage","handleResumeWithNewClientToken","handleResumeSuccess","handleResumeFailure","handlePaymentCreationAbort","handlePaymentCreationContinue","setImplementedRNCallbacks","implementedRNCallbacks","disposePrimerHeadlessUniversalCheckout"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, NativeModules } from 'react-native';\n\nconst { PrimerHeadlessUniversalCheckout } = NativeModules;\n\nconst eventEmitter = new NativeEventEmitter(PrimerHeadlessUniversalCheckout);\n\ntype EventType =\n | 'onHUCTokenizeStart'\n | 'onHUCPrepareStart'\n | 'onHUCAvailablePaymentMethodsLoaded'\n | 'onHUCPaymentMethodShow'\n | 'onTokenizeSuccess'\n | 'onResumeSuccess'\n | 'onResumePending'\n | 'onCheckoutReceivedAdditionalInfo'\n | 'onBeforePaymentCreate'\n | 'onBeforeClientSessionUpdate'\n | 'onClientSessionUpdate'\n | 'onCheckoutComplete'\n | 'onError';\n\nconst eventTypes: EventType[] = [\n 'onHUCTokenizeStart',\n 'onHUCPrepareStart',\n 'onHUCAvailablePaymentMethodsLoaded',\n 'onHUCPaymentMethodShow',\n 'onTokenizeSuccess',\n 'onResumeSuccess',\n 'onResumePending',\n 'onCheckoutReceivedAdditionalInfo',\n 'onBeforePaymentCreate',\n 'onBeforeClientSessionUpdate',\n 'onClientSessionUpdate',\n 'onCheckoutComplete',\n 'onError'\n];\n\nconst RNPrimerHeadlessUniversalCheckout = {\n ///////////////////////////////////////////\n // Event Emitter\n ///////////////////////////////////////////\n addListener: (eventType: EventType, listener: (...args: any[]) => any) => {\n eventEmitter.addListener(eventType, listener);\n },\n\n removeListener: (eventType: EventType, listener: (...args: any[]) => any) => {\n eventEmitter.removeListener(eventType, listener);\n },\n\n removeAllListenersForEvent(eventType: EventType) {\n eventEmitter.removeAllListeners(eventType);\n },\n\n removeAllListeners() {\n eventTypes.forEach((eventType) => RNPrimerHeadlessUniversalCheckout.removeAllListenersForEvent(eventType));\n },\n\n ///////////////////////////////////////////\n // Native API\n ///////////////////////////////////////////\n getAssetForPaymentMethodType: (\n paymentMethodType: string,\n assetType: 'logo' | 'icon'\n ): Promise<string> => {\n return new Promise((resolve, reject) => {\n try {\n PrimerHeadlessUniversalCheckout.getAssetForPaymentMethodType(\n paymentMethodType,\n assetType,\n (err: Error) => {\n reject(err);\n },\n (url: string) => {\n resolve(url);\n }\n );\n } catch (e) {\n reject(e);\n }\n });\n },\n\n getAssetForCardNetwork: (\n cardNetwork: string,\n assetType: 'logo' | 'icon'\n ): Promise<string> => {\n return new Promise((resolve, reject) => {\n try {\n PrimerHeadlessUniversalCheckout.getAssetForPaymentMethodType(\n cardNetwork,\n assetType,\n (err: Error) => {\n reject(err);\n },\n (url: string) => {\n resolve(url);\n }\n );\n } catch (e) {\n reject(e);\n }\n });\n },\n\n startWithClientToken(clientToken: string, settings: any): Promise<any> {\n return new Promise((resolve, reject) => {\n PrimerHeadlessUniversalCheckout.startWithClientToken(\n clientToken,\n JSON.stringify(settings),\n (err: Error) => {\n console.error(err);\n reject(err);\n },\n (paymentMethodTypes: string[]) => {\n resolve({ paymentMethodTypes });\n }\n );\n });\n },\n\n showPaymentMethod: (paymentMethodType: string): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.showPaymentMethod(paymentMethodType);\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n ///////////////////////////////////////////\n // DECISION HANDLERS\n ///////////////////////////////////////////\n\n // Tokenization Handlers\n\n handleTokenizationNewClientToken: (newClientToken: string): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleTokenizationNewClientToken(newClientToken);\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleTokenizationSuccess: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleTokenizationSuccess();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleTokenizationFailure: (errorMessage: string | null): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleTokenizationFailure(errorMessage || \"\");\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n // Resume Handlers\n\n handleResumeWithNewClientToken: (newClientToken: string): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleResumeWithNewClientToken(newClientToken);\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleResumeSuccess: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleResumeSuccess();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleResumeFailure: (errorMessage: string | null): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handleTokenizationFailure(errorMessage || \"\");\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n // Payment Creation Handlers\n\n handlePaymentCreationAbort: (errorMessage: string | null): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handlePaymentCreationAbort(errorMessage || \"\");\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handlePaymentCreationContinue: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.handlePaymentCreationContinue();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n // HELPERS\n\n setImplementedRNCallbacks: (implementedRNCallbacks: any): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.setImplementedRNCallbacks(JSON.stringify(implementedRNCallbacks));\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n\n disposePrimerHeadlessUniversalCheckout: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await PrimerHeadlessUniversalCheckout.disposePrimerHeadlessUniversalCheckout();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n};\n\nexport default RNPrimerHeadlessUniversalCheckout;\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { PrimerSessionIntent } from './models/PrimerSessionIntent';
2
2
  import type { PrimerSettings } from './models/PrimerSettings';
3
- declare type EventType = 'onCheckoutComplete' | 'onBeforeClientSessionUpdate' | 'onClientSessionUpdate' | 'onBeforePaymentCreate' | 'onError' | 'onDismiss' | 'onTokenizeSuccess' | 'onResumeSuccess' | 'onResumePending' | 'detectImplementedRNCallbacks';
3
+ declare type EventType = 'onCheckoutComplete' | 'onBeforeClientSessionUpdate' | 'onClientSessionUpdate' | 'onBeforePaymentCreate' | 'onError' | 'onDismiss' | 'onTokenizeSuccess' | 'onResumeSuccess' | 'onResumePending' | 'onCheckoutReceivedAdditionalInfo' | 'detectImplementedRNCallbacks';
4
4
  export interface IPrimerError {
5
5
  errorId: string;
6
6
  errorDescription?: string;
@@ -1,4 +1,4 @@
1
- declare type EventType = 'onHUCTokenizeStart' | 'onHUCPrepareStart' | 'onHUCAvailablePaymentMethodsLoaded' | 'onHUCPaymentMethodShow' | 'onTokenizeSuccess' | 'onResumeSuccess' | 'onResumePending' | 'onBeforePaymentCreate' | 'onBeforeClientSessionUpdate' | 'onClientSessionUpdate' | 'onCheckoutComplete' | 'onError';
1
+ declare type EventType = 'onHUCTokenizeStart' | 'onHUCPrepareStart' | 'onHUCAvailablePaymentMethodsLoaded' | 'onHUCPaymentMethodShow' | 'onTokenizeSuccess' | 'onResumeSuccess' | 'onResumePending' | 'onCheckoutReceivedAdditionalInfo' | 'onBeforePaymentCreate' | 'onBeforeClientSessionUpdate' | 'onClientSessionUpdate' | 'onCheckoutComplete' | 'onError';
2
2
  declare const RNPrimerHeadlessUniversalCheckout: {
3
3
  addListener: (eventType: EventType, listener: (...args: any[]) => any) => void;
4
4
  removeListener: (eventType: EventType, listener: (...args: any[]) => any) => void;
@@ -7,4 +7,13 @@ interface IMultibancoCheckoutAdditionalInfo extends IPrimerCheckoutAdditionalInf
7
7
  entity?: string;
8
8
  reference?: string;
9
9
  }
10
+ export declare type PrimerCheckoutQRCodeInfo = IPrimerCheckoutQRCodeInfo;
11
+ interface IPrimerCheckoutQRCodeInfo extends IPrimerCheckoutAdditionalInfo {
12
+ }
13
+ export declare type PromptPayCheckoutAdditionalInfo = IPromptPayCheckoutAdditionalInfo;
14
+ interface IPromptPayCheckoutAdditionalInfo extends IPrimerCheckoutQRCodeInfo {
15
+ expiresAt: string;
16
+ qrCodeUrl?: string;
17
+ qrCodeBase64?: string;
18
+ }
10
19
  export {};
@@ -20,6 +20,7 @@ interface IPrimerSettings {
20
20
  onTokenizeSuccess?: (paymentMethodTokenData: PrimerPaymentMethodTokenData, handler: PrimerTokenizationHandler) => void;
21
21
  onResumeSuccess?: (resumeToken: string, handler: PrimerResumeHandler) => void;
22
22
  onResumePending?: (additionalInfo: PrimerCheckoutAdditionalInfo) => void;
23
+ onCheckoutReceivedAdditionalInfo?: (additionalInfo: PrimerCheckoutAdditionalInfo) => void;
23
24
  onError?: (error: PrimerError, checkoutData: PrimerCheckoutData | null, handler: PrimerErrorHandler | undefined) => void;
24
25
  onDismiss?: () => void;
25
26
  onPrepareStart?: (paymentMethod: string) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer-io/react-native",
3
- "version": "2.8.1",
3
+ "version": "2.10.0",
4
4
  "description": "Primer SDK for RN",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -17,5 +17,5 @@ Pod::Spec.new do |s|
17
17
  s.source_files = "ios/**/*.{h,m,mm,swift}"
18
18
 
19
19
  s.dependency "React-Core"
20
- s.dependency "PrimerSDK", "2.8.0"
20
+ s.dependency "PrimerSDK", "2.10.0"
21
21
  end
package/src/Primer.ts CHANGED
@@ -116,6 +116,7 @@ async function configureListeners(): Promise<void> {
116
116
  onTokenizeSuccess: (primerSettings?.onTokenizeSuccess !== undefined),
117
117
  onResumeSuccess: (primerSettings?.onResumeSuccess !== undefined),
118
118
  onResumePending: (primerSettings?.onResumePending !== undefined),
119
+ onCheckoutReceivedAdditionalInfo: (primerSettings?.onCheckoutReceivedAdditionalInfo !== undefined),
119
120
  onDismiss: (primerSettings?.onDismiss !== undefined),
120
121
  onError: (primerSettings?.onError !== undefined),
121
122
  };
@@ -188,6 +189,20 @@ async function configureListeners(): Promise<void> {
188
189
  );
189
190
  }
190
191
 
192
+ if (implementedRNCallbacks.onCheckoutReceivedAdditionalInfo) {
193
+ RNPrimer.addListener(
194
+ 'onCheckoutReceivedAdditionalInfo',
195
+ (additionalInfo) => {
196
+ if (primerSettings && primerSettings.onCheckoutReceivedAdditionalInfo) {
197
+ const checkoutAdditionalInfo: PrimerCheckoutAdditionalInfo = additionalInfo;
198
+ primerSettings.onCheckoutReceivedAdditionalInfo(checkoutAdditionalInfo);
199
+ } else {
200
+ // Ignore!
201
+ }
202
+ }
203
+ );
204
+ }
205
+
191
206
  if (implementedRNCallbacks.onDismiss) {
192
207
  RNPrimer.addListener('onDismiss', _ => {
193
208
  if (primerSettings && primerSettings.onDismiss) {
package/src/RNPrimer.ts CHANGED
@@ -15,6 +15,7 @@ type EventType =
15
15
  | 'onTokenizeSuccess'
16
16
  | 'onResumeSuccess'
17
17
  | 'onResumePending'
18
+ | 'onCheckoutReceivedAdditionalInfo'
18
19
  | 'detectImplementedRNCallbacks';
19
20
 
20
21
  export interface IPrimerError {
@@ -32,6 +33,7 @@ const eventTypes: EventType[] = [
32
33
  'onDismiss',
33
34
  'onTokenizeSuccess',
34
35
  'onResumeSuccess',
36
+ 'onCheckoutReceivedAdditionalInfo',
35
37
  'onResumePending',
36
38
  'detectImplementedRNCallbacks'
37
39
  ];
@@ -104,12 +104,13 @@ async function configureListeners(): Promise<void> {
104
104
  onTokenizeSuccess: (primerSettings?.onTokenizeSuccess !== undefined),
105
105
  onResumeSuccess: (primerSettings?.onResumeSuccess !== undefined),
106
106
  onResumePending: (primerSettings?.onResumePending !== undefined),
107
+ onCheckoutReceivedAdditionalInfo: (primerSettings?.onCheckoutReceivedAdditionalInfo !== undefined),
107
108
  onDismiss: false,
108
109
  onError: (primerSettings?.onError !== undefined),
109
110
  onHUCAvailablePaymentMethodsLoaded: (primerSettings?.onAvailablePaymentMethodsLoad !== undefined),
110
111
  onHUCPrepareStart: (primerSettings?.onPrepareStart !== undefined),
111
112
  onHUCTokenizeStart: (primerSettings?.onTokenizeStart !== undefined),
112
- onHUCPaymentMethodShow: (primerSettings?.onPaymentMethodShow !== undefined),
113
+ onHUCPaymentMethodShow: (primerSettings?.onPaymentMethodShow !== undefined)
113
114
  };
114
115
 
115
116
  await RNPrimerHeadlessUniversalCheckout.setImplementedRNCallbacks(implementedRNCallbacks);
@@ -143,6 +144,20 @@ async function configureListeners(): Promise<void> {
143
144
  );
144
145
  }
145
146
 
147
+ if (implementedRNCallbacks.onCheckoutReceivedAdditionalInfo) {
148
+ RNPrimerHeadlessUniversalCheckout.addListener(
149
+ 'onCheckoutReceivedAdditionalInfo',
150
+ (additionalInfo) => {
151
+ if (primerSettings && primerSettings.onCheckoutReceivedAdditionalInfo) {
152
+ const checkoutAdditionalInfo: PrimerCheckoutAdditionalInfo = additionalInfo;
153
+ primerSettings.onCheckoutReceivedAdditionalInfo(checkoutAdditionalInfo);
154
+ } else {
155
+ // Ignore!
156
+ }
157
+ }
158
+ );
159
+ }
160
+
146
161
  if (implementedRNCallbacks.onHUCPrepareStart) {
147
162
  RNPrimerHeadlessUniversalCheckout.addListener(
148
163
  'onHUCPrepareStart',
@@ -198,7 +213,7 @@ async function configureListeners(): Promise<void> {
198
213
  } else {
199
214
  primerSettings.onAvailablePaymentMethodsLoad(['not implemented']);
200
215
  }
201
-
216
+
202
217
  } else {
203
218
  // Ignore!
204
219
  }
@@ -12,6 +12,7 @@ type EventType =
12
12
  | 'onTokenizeSuccess'
13
13
  | 'onResumeSuccess'
14
14
  | 'onResumePending'
15
+ | 'onCheckoutReceivedAdditionalInfo'
15
16
  | 'onBeforePaymentCreate'
16
17
  | 'onBeforeClientSessionUpdate'
17
18
  | 'onClientSessionUpdate'
@@ -26,6 +27,7 @@ const eventTypes: EventType[] = [
26
27
  'onTokenizeSuccess',
27
28
  'onResumeSuccess',
28
29
  'onResumePending',
30
+ 'onCheckoutReceivedAdditionalInfo',
29
31
  'onBeforePaymentCreate',
30
32
  'onBeforeClientSessionUpdate',
31
33
  'onClientSessionUpdate',
@@ -238,7 +240,7 @@ const RNPrimerHeadlessUniversalCheckout = {
238
240
  });
239
241
  },
240
242
 
241
-
243
+
242
244
  disposePrimerHeadlessUniversalCheckout: (): Promise<void> => {
243
245
  return new Promise(async (resolve, reject) => {
244
246
  try {
@@ -9,3 +9,15 @@ interface IMultibancoCheckoutAdditionalInfo extends IPrimerCheckoutAdditionalInf
9
9
  entity?: string;
10
10
  reference?: string;
11
11
  }
12
+
13
+ export type PrimerCheckoutQRCodeInfo = IPrimerCheckoutQRCodeInfo;
14
+
15
+ interface IPrimerCheckoutQRCodeInfo extends IPrimerCheckoutAdditionalInfo {}
16
+
17
+ export type PromptPayCheckoutAdditionalInfo = IPromptPayCheckoutAdditionalInfo;
18
+
19
+ interface IPromptPayCheckoutAdditionalInfo extends IPrimerCheckoutQRCodeInfo {
20
+ expiresAt: string;
21
+ qrCodeUrl?: string;
22
+ qrCodeBase64?: string;
23
+ }
@@ -29,6 +29,7 @@ interface IPrimerSettings {
29
29
  onTokenizeSuccess?: (paymentMethodTokenData: PrimerPaymentMethodTokenData, handler: PrimerTokenizationHandler) => void;
30
30
  onResumeSuccess?: (resumeToken: string, handler: PrimerResumeHandler) => void;
31
31
  onResumePending?: (additionalInfo: PrimerCheckoutAdditionalInfo) => void;
32
+ onCheckoutReceivedAdditionalInfo?: (additionalInfo: PrimerCheckoutAdditionalInfo) => void;
32
33
  // PrimerErrorHandler will be undefined on the HUC flow.
33
34
  onError?: (error: PrimerError, checkoutData: PrimerCheckoutData | null, handler: PrimerErrorHandler | undefined) => void;
34
35