@primer-io/react-native 0.13.0-beta.1 → 0.15.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 (100) hide show
  1. package/android/build.gradle +2 -2
  2. package/android/gradle.properties +1 -1
  3. package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +192 -153
  4. package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +131 -86
  5. package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +3 -14
  6. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +3 -4
  7. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerEventsRN.kt +11 -0
  8. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +4 -3
  9. package/android/src/main/java/com/primerioreactnative/utils/ErrorHelper.kt +11 -0
  10. package/android/src/main/java/com/primerioreactnative/utils/PrimerImplementedRNCallbacks.kt +14 -0
  11. package/ios/DataModels/PrimerErrorRN.swift +1 -1
  12. package/ios/DataModels/PrimerSettingsRN.swift +6 -0
  13. package/ios/RNTPrimer.m +43 -0
  14. package/ios/RNTPrimer.swift +394 -0
  15. package/ios/ReactNative-Bridging-Header.h +3 -0
  16. package/ios/ReactNative.xcodeproj/project.pbxproj +44 -0
  17. package/lib/commonjs/Primer.js +220 -209
  18. package/lib/commonjs/Primer.js.map +1 -1
  19. package/lib/commonjs/RNPrimer.js +145 -0
  20. package/lib/commonjs/RNPrimer.js.map +1 -0
  21. package/lib/commonjs/index.js +1 -28
  22. package/lib/commonjs/index.js.map +1 -1
  23. package/lib/commonjs/models/primer-intent.js.map +1 -1
  24. package/lib/commonjs/models/utils/redirectScheme.js +4 -0
  25. package/lib/commonjs/models/utils/redirectScheme.js.map +1 -0
  26. package/lib/module/Primer.js +204 -210
  27. package/lib/module/Primer.js.map +1 -1
  28. package/lib/module/RNPrimer.js +136 -0
  29. package/lib/module/RNPrimer.js.map +1 -0
  30. package/lib/module/index.js +3 -4
  31. package/lib/module/index.js.map +1 -1
  32. package/lib/module/models/primer-intent.js.map +1 -1
  33. package/lib/module/models/utils/redirectScheme.js +2 -0
  34. package/lib/module/models/utils/redirectScheme.js.map +1 -0
  35. package/lib/typescript/Primer.d.ts +13 -0
  36. package/lib/typescript/RNPrimer.d.ts +24 -0
  37. package/lib/typescript/index.d.ts +1 -3
  38. package/lib/typescript/models/primer-callbacks.d.ts +7 -9
  39. package/lib/typescript/models/primer-config.d.ts +16 -13
  40. package/lib/typescript/models/primer-intent.d.ts +1 -1
  41. package/lib/typescript/models/primer-request.d.ts +2 -12
  42. package/lib/typescript/models/primer-settings.d.ts +5 -6
  43. package/lib/typescript/models/primer.d.ts +4 -4
  44. package/lib/typescript/models/utils/redirectScheme.d.ts +3 -0
  45. package/package.json +4 -1
  46. package/primer-io-react-native.podspec +2 -3
  47. package/src/Primer.ts +227 -178
  48. package/src/RNPrimer.ts +170 -0
  49. package/src/index.tsx +2 -3
  50. package/src/models/primer-callbacks.ts +9 -27
  51. package/src/models/primer-config.ts +23 -20
  52. package/src/models/primer-intent.ts +1 -1
  53. package/src/models/primer-request.ts +2 -16
  54. package/src/models/primer-settings.ts +5 -6
  55. package/src/models/primer.ts +5 -5
  56. package/src/models/utils/redirectScheme.ts +5 -0
  57. package/android/src/main/java/com/primerioreactnative/PrimerCardNumberEditTextManager.kt +0 -83
  58. package/android/src/main/java/com/primerioreactnative/PrimerHeadlessUniversalCheckout.kt +0 -201
  59. package/android/src/main/java/com/primerioreactnative/huc/assets/AssetsManager.kt +0 -56
  60. package/android/src/main/java/com/primerioreactnative/huc/events/PrimerHeadlessUniversalCheckoutEvent.kt +0 -11
  61. package/android/src/main/java/com/primerioreactnative/huc/extensions/Map.kt +0 -10
  62. package/ios/Core/PrimerRN+PrimerDelegate.swift +0 -148
  63. package/ios/Core/PrimerRN.m +0 -34
  64. package/ios/Core/PrimerRN.swift +0 -168
  65. package/ios/Core/ReactNative-Bridging-Header.h +0 -13
  66. package/ios/Headless Universal Checkout/RNTPrimerCardNumberInputElementManager.m +0 -23
  67. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.m +0 -30
  68. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +0 -241
  69. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.m +0 -14
  70. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.swift +0 -117
  71. package/lib/commonjs/PrimerInput.js +0 -80
  72. package/lib/commonjs/PrimerInput.js.map +0 -1
  73. package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js +0 -14
  74. package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +0 -1
  75. package/lib/commonjs/headless_checkout/NativePrimerHeadlessUniversalCheckout.js +0 -73
  76. package/lib/commonjs/headless_checkout/NativePrimerHeadlessUniversalCheckout.js.map +0 -1
  77. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js +0 -119
  78. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +0 -1
  79. package/lib/commonjs/headless_checkout/types.js +0 -2
  80. package/lib/commonjs/headless_checkout/types.js.map +0 -1
  81. package/lib/module/PrimerInput.js +0 -46
  82. package/lib/module/PrimerInput.js.map +0 -1
  83. package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js +0 -5
  84. package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +0 -1
  85. package/lib/module/headless_checkout/NativePrimerHeadlessUniversalCheckout.js +0 -64
  86. package/lib/module/headless_checkout/NativePrimerHeadlessUniversalCheckout.js.map +0 -1
  87. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js +0 -104
  88. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +0 -1
  89. package/lib/module/headless_checkout/types.js +0 -2
  90. package/lib/module/headless_checkout/types.js.map +0 -1
  91. package/lib/typescript/PrimerInput.d.ts +0 -15
  92. package/lib/typescript/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts +0 -1
  93. package/lib/typescript/headless_checkout/NativePrimerHeadlessUniversalCheckout.d.ts +0 -10
  94. package/lib/typescript/headless_checkout/PrimerHeadlessUniversalCheckout.d.ts +0 -14
  95. package/lib/typescript/headless_checkout/types.d.ts +0 -16
  96. package/src/PrimerInput.tsx +0 -73
  97. package/src/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.tsx +0 -2
  98. package/src/headless_checkout/NativePrimerHeadlessUniversalCheckout.ts +0 -94
  99. package/src/headless_checkout/PrimerHeadlessUniversalCheckout.ts +0 -136
  100. package/src/headless_checkout/types.ts +0 -18
@@ -0,0 +1,136 @@
1
+ import { NativeEventEmitter, NativeModules } from 'react-native';
2
+ const {
3
+ NativePrimer
4
+ } = NativeModules;
5
+ const eventEmitter = new NativeEventEmitter(NativePrimer);
6
+ const RNPrimer = {
7
+ ///////////////////////////////////////////
8
+ // Event Emitter
9
+ ///////////////////////////////////////////
10
+ addListener: (eventType, listener) => {
11
+ eventEmitter.addListener(eventType, listener);
12
+ },
13
+ removeListener: (eventType, listener) => {
14
+ eventEmitter.removeListener(eventType, listener);
15
+ },
16
+
17
+ removeAllListenersForEvent(eventType) {
18
+ eventEmitter.removeAllListeners(eventType);
19
+ },
20
+
21
+ removeAllListeners() {
22
+ eventEmitter.removeAllListeners('onClientTokenCallback');
23
+ eventEmitter.removeAllListeners('onClientSessionActions');
24
+ eventEmitter.removeAllListeners('onTokenizeSuccessCallback');
25
+ eventEmitter.removeAllListeners('onResumeSuccess');
26
+ eventEmitter.removeAllListeners('onCheckoutDismissed');
27
+ eventEmitter.removeAllListeners('onError');
28
+ eventEmitter.removeAllListeners('detectImplementedRNCallbacks');
29
+ },
30
+
31
+ ///////////////////////////////////////////
32
+ // Native API
33
+ ///////////////////////////////////////////
34
+ configure: (settings, theme) => {
35
+ return new Promise(async (resolve, reject) => {
36
+ try {
37
+ if (settings === null && theme === null) {// Do nothing, SDK will use default settings and theme.
38
+ } else if (settings && theme === null) {
39
+ await NativePrimer.configureWithSettings(JSON.stringify(settings));
40
+ } else if (settings === null && theme) {
41
+ await NativePrimer.configureWithTheme(JSON.stringify(theme));
42
+ } else {
43
+ await NativePrimer.configureWithSettings(JSON.stringify(settings));
44
+ await NativePrimer.configureWithTheme(JSON.stringify(theme));
45
+ }
46
+
47
+ resolve();
48
+ } catch (err) {
49
+ reject(err);
50
+ }
51
+ });
52
+ },
53
+ showUniversalCheckout: clientToken => {
54
+ return new Promise(async (resolve, reject) => {
55
+ try {
56
+ if (clientToken) {
57
+ await NativePrimer.showUniversalCheckoutWithClientToken(clientToken);
58
+ } else {
59
+ await NativePrimer.showUniversalCheckout();
60
+ }
61
+
62
+ resolve();
63
+ } catch (err) {
64
+ reject(err);
65
+ }
66
+ });
67
+ },
68
+ showVaultManager: clientToken => {
69
+ return new Promise(async (resolve, reject) => {
70
+ try {
71
+ if (clientToken) {
72
+ await NativePrimer.showVaultManager(clientToken);
73
+ } else {
74
+ await NativePrimer.showVaultManager();
75
+ }
76
+
77
+ resolve();
78
+ } catch (err) {
79
+ reject(err);
80
+ }
81
+ });
82
+ },
83
+ showPaymentMethod: (clientToken, paymentMethodType, intent) => {
84
+ return new Promise(async (resolve, reject) => {
85
+ try {
86
+ await NativePrimer.showPaymentMethod(clientToken, paymentMethodType, intent);
87
+ resolve();
88
+ } catch (err) {
89
+ reject(err);
90
+ }
91
+ });
92
+ },
93
+ handleNewClientToken: clientToken => {
94
+ return new Promise(async (resolve, reject) => {
95
+ try {
96
+ await NativePrimer.handleNewClientToken(clientToken);
97
+ resolve();
98
+ } catch (err) {
99
+ reject(err);
100
+ }
101
+ });
102
+ },
103
+ handleError: err => {
104
+ return new Promise(async (resolve, reject) => {
105
+ try {
106
+ await NativePrimer.handleError(JSON.stringify(err));
107
+ resolve();
108
+ } catch (err) {
109
+ reject(err);
110
+ }
111
+ });
112
+ },
113
+ handleSuccess: () => {
114
+ return new Promise(async (resolve, reject) => {
115
+ try {
116
+ await NativePrimer.handleSuccess();
117
+ resolve();
118
+ } catch (err) {
119
+ reject(err);
120
+ }
121
+ });
122
+ },
123
+ setImplementedRNCallbacks: implementedRNCallbacks => {
124
+ return new Promise(async (resolve, reject) => {
125
+ try {
126
+ await NativePrimer.setImplementedRNCallbacks(JSON.stringify(implementedRNCallbacks));
127
+ resolve();
128
+ } catch (err) {
129
+ reject(err);
130
+ }
131
+ });
132
+ },
133
+ dispose: () => {}
134
+ };
135
+ export default RNPrimer;
136
+ //# sourceMappingURL=RNPrimer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["RNPrimer.ts"],"names":["NativeEventEmitter","NativeModules","NativePrimer","eventEmitter","RNPrimer","addListener","eventType","listener","removeListener","removeAllListenersForEvent","removeAllListeners","configure","settings","theme","Promise","resolve","reject","configureWithSettings","JSON","stringify","configureWithTheme","err","showUniversalCheckout","clientToken","showUniversalCheckoutWithClientToken","showVaultManager","showPaymentMethod","paymentMethodType","intent","handleNewClientToken","handleError","handleSuccess","setImplementedRNCallbacks","implementedRNCallbacks","dispose"],"mappings":"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","sourcesContent":["import { NativeEventEmitter, NativeModules } from 'react-native';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\n\nconst { NativePrimer } = NativeModules;\nconst eventEmitter = new NativeEventEmitter(NativePrimer);\n\ntype EventType =\n | 'onClientTokenCallback'\n | 'onClientSessionActions'\n | 'onTokenizeSuccessCallback'\n | 'onVaultSuccess'\n | 'onResumeSuccess'\n | 'onCheckoutDismissed'\n | 'onError'\n | 'detectImplementedRNCallbacks';\n\nexport interface IPrimerError {\n errorId: string\n errorDescription?: string\n recoverySuggestion?: string\n}\n\nconst RNPrimer = {\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 eventEmitter.removeAllListeners('onClientTokenCallback');\n eventEmitter.removeAllListeners('onClientSessionActions');\n eventEmitter.removeAllListeners('onTokenizeSuccessCallback');\n eventEmitter.removeAllListeners('onResumeSuccess');\n eventEmitter.removeAllListeners('onCheckoutDismissed');\n eventEmitter.removeAllListeners('onError');\n eventEmitter.removeAllListeners('detectImplementedRNCallbacks');\n },\n\n ///////////////////////////////////////////\n // Native API\n ///////////////////////////////////////////\n configure: (\n settings: PrimerSettings | null,\n theme: PrimerTheme | null\n ): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (settings === null && theme === null) {\n // Do nothing, SDK will use default settings and theme.\n } else if (settings && theme === null) {\n await NativePrimer.configureWithSettings(JSON.stringify(settings));\n } else if (settings === null && theme) {\n await NativePrimer.configureWithTheme(JSON.stringify(theme));\n } else {\n await NativePrimer.configureWithSettings(JSON.stringify(settings));\n await NativePrimer.configureWithTheme(JSON.stringify(theme));\n }\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n showUniversalCheckout: (clientToken: string | undefined): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (clientToken) {\n await NativePrimer.showUniversalCheckoutWithClientToken(clientToken);\n } else {\n await NativePrimer.showUniversalCheckout();\n }\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n showVaultManager: (clientToken: string | undefined): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (clientToken) {\n await NativePrimer.showVaultManager(clientToken);\n } else {\n await NativePrimer.showVaultManager();\n }\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n showPaymentMethod: (\n clientToken: string,\n paymentMethodType: string,\n intent: \"checkout\" | \"vault\"\n ): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await NativePrimer.showPaymentMethod(clientToken, paymentMethodType, intent);\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleNewClientToken: (clientToken: string | undefined): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await NativePrimer.handleNewClientToken(clientToken);\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleError: (err: IPrimerError): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await NativePrimer.handleError(JSON.stringify(err));\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n handleSuccess: (): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await NativePrimer.handleSuccess();\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n setImplementedRNCallbacks: (implementedRNCallbacks: any): Promise<void> => {\n return new Promise(async (resolve, reject) => {\n try {\n await NativePrimer.setImplementedRNCallbacks(JSON.stringify(implementedRNCallbacks));\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n },\n\n dispose: (): void => {\n\n }\n};\n\nexport default RNPrimer;\n"]}
@@ -1,6 +1,5 @@
1
- import PrimerHeadlessUniversalCheckout from './headless_checkout/PrimerHeadlessUniversalCheckout';
2
- import { PrimerNativeMapping } from './Primer';
3
- export * from './PrimerInput';
1
+ import { PrimerNativeMapping } from './Primer'; // import type { IPrimerConfig as PrimerConfig } from './models/primer-config';
2
+
4
3
  const Primer = PrimerNativeMapping;
5
- export { Primer, PrimerHeadlessUniversalCheckout as HeadlessUniversalCheckout };
4
+ export { Primer };
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["PrimerHeadlessUniversalCheckout","PrimerNativeMapping","Primer","HeadlessUniversalCheckout"],"mappings":"AAAA,OAAOA,+BAAP,MAA4C,qDAA5C;AAEA,SAASC,mBAAT,QAAoC,UAApC;AACA,cAAc,eAAd;AAEA,MAAMC,MAAe,GAAGD,mBAAxB;AAEA,SAASC,MAAT,EAAiBF,+BAA+B,IAAIG,yBAApD","sourcesContent":["import PrimerHeadlessUniversalCheckout from './headless_checkout/PrimerHeadlessUniversalCheckout';\nimport type { IPrimer } from './models/primer';\nimport { PrimerNativeMapping } from './Primer';\nexport * from './PrimerInput';\n\nconst Primer: IPrimer = PrimerNativeMapping;\n\nexport { Primer, PrimerHeadlessUniversalCheckout as HeadlessUniversalCheckout };\n"]}
1
+ {"version":3,"sources":["index.tsx"],"names":["PrimerNativeMapping","Primer"],"mappings":"AACA,SAASA,mBAAT,QAAoC,UAApC,C,CACA;;AAEA,MAAMC,MAAe,GAAGD,mBAAxB;AAEA,SAASC,MAAT","sourcesContent":["import type { IPrimer } from './models/primer';\nimport { PrimerNativeMapping } from './Primer';\n// import type { IPrimerConfig as PrimerConfig } from './models/primer-config';\n\nconst Primer: IPrimer = PrimerNativeMapping;\n\nexport { Primer };\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["primer-intent.ts"],"names":["paymentMethods"],"mappings":"AAAA,MAAMA,cAAc,GAAG,CACrB,cADqB,EAErB,cAFqB,EAGrB,eAHqB,EAIrB,aAJqB,EAKrB,iBALqB,EAMrB,cANqB,EAOrB,eAPqB,EAQrB,aARqB,EASrB,aATqB,EAUrB,OAVqB,EAWrB,WAXqB,EAYrB,OAZqB,EAarB,qBAbqB,EAcrB,cAdqB,EAerB,kBAfqB,EAgBrB,gBAhBqB,EAiBrB,iBAjBqB,EAkBrB,YAlBqB,EAmBrB,YAnBqB,EAoBrB,QApBqB,EAqBrB,QArBqB,EAsBrB,mBAtBqB,EAuBrB,cAvBqB,EAwBrB,mBAxBqB,EAyBrB,gBAzBqB,EA0BrB,cA1BqB,EA2BrB,iBA3BqB,EA4BrB,cA5BqB,EA6BrB,QA7BqB,EA8BrB,cA9BqB,CAAvB","sourcesContent":["const paymentMethods = [\n 'ADYEN_ALIPAY',\n 'ADYEN_DOTPAY',\n 'ADYEN_GIROPAY',\n 'ADYEN_IDEAL',\n 'ADYEN_MOBILEPAY',\n 'ADYEN_SOFORT',\n 'ADYEN_TRUSTLY',\n 'ADYEN_TWINT',\n 'ADYEN_VIPPS',\n 'APAYA',\n 'APPLE_PAY',\n 'ATOME',\n 'BUCKAROO_BANCONTACT',\n 'BUCKAROO_EPS',\n 'BUCKAROO_GIROPAY',\n 'BUCKAROO_IDEAL',\n 'BUCKAROO_SOFORT',\n 'GOCARDLESS',\n 'GOOGLE_PAY',\n 'HOOLAH',\n 'KLARNA',\n 'MOLLIE_BANCONTACT',\n 'MOLLIE_IDEAL',\n 'PAY_NL_BANCONTACT',\n 'PAY_NL_GIROPAY',\n 'PAY_NL_IDEAL',\n 'PAY_NL_PAYCONIQ',\n 'PAYMENT_CARD',\n 'PAYPAL',\n 'XFERS_PAYNOW',\n] as const;\n\nexport type SinglePrimerPaymentMethod = typeof paymentMethods[number];\nexport interface AnyPrimerPaymentMethodIntent {\n vault: boolean;\n paymentMethod: 'Any';\n}\n\nexport type PrimerPaymentMethodIntent = ISinglePrimerPaymentMethodIntent;\n\ninterface ISinglePrimerPaymentMethodIntent {\n vault: boolean;\n paymentMethod: SinglePrimerPaymentMethod;\n}\n\nexport type PrimerIntent =\n | ISinglePrimerPaymentMethodIntent\n | AnyPrimerPaymentMethodIntent;\n"]}
1
+ {"version":3,"sources":["primer-intent.ts"],"names":["paymentMethods"],"mappings":"AAAA,MAAMA,cAAc,GAAG,CACrB,cADqB,EAErB,cAFqB,EAGrB,eAHqB,EAIrB,aAJqB,EAKrB,iBALqB,EAMrB,cANqB,EAOrB,eAPqB,EAQrB,aARqB,EASrB,aATqB,EAUrB,OAVqB,EAWrB,WAXqB,EAYrB,OAZqB,EAarB,qBAbqB,EAcrB,cAdqB,EAerB,kBAfqB,EAgBrB,gBAhBqB,EAiBrB,iBAjBqB,EAkBrB,YAlBqB,EAmBrB,YAnBqB,EAoBrB,QApBqB,EAqBrB,QArBqB,EAsBrB,mBAtBqB,EAuBrB,cAvBqB,EAwBrB,mBAxBqB,EAyBrB,gBAzBqB,EA0BrB,cA1BqB,EA2BrB,iBA3BqB,EA4BrB,cA5BqB,EA6BrB,QA7BqB,EA8BrB,cA9BqB,CAAvB","sourcesContent":["const paymentMethods = [\n 'ADYEN_ALIPAY',\n 'ADYEN_DOTPAY',\n 'ADYEN_GIROPAY',\n 'ADYEN_IDEAL',\n 'ADYEN_MOBILEPAY',\n 'ADYEN_SOFORT',\n 'ADYEN_TRUSTLY',\n 'ADYEN_TWINT',\n 'ADYEN_VIPPS',\n 'APAYA',\n 'APPLE_PAY',\n 'ATOME',\n 'BUCKAROO_BANCONTACT',\n 'BUCKAROO_EPS',\n 'BUCKAROO_GIROPAY',\n 'BUCKAROO_IDEAL',\n 'BUCKAROO_SOFORT',\n 'GOCARDLESS',\n 'GOOGLE_PAY',\n 'HOOLAH',\n 'KLARNA',\n 'MOLLIE_BANCONTACT',\n 'MOLLIE_IDEAL',\n 'PAY_NL_BANCONTACT',\n 'PAY_NL_GIROPAY',\n 'PAY_NL_IDEAL',\n 'PAY_NL_PAYCONIQ',\n 'PAYMENT_CARD',\n 'PAYPAL',\n 'XFERS_PAYNOW',\n] as const;\n\nexport type SinglePrimerPaymentMethod = typeof paymentMethods[number];\nexport interface AnyPrimerPaymentMethodIntent {\n vault: boolean;\n paymentMethod: SinglePrimerPaymentMethod;\n}\n\nexport type PrimerPaymentMethodIntent = ISinglePrimerPaymentMethodIntent;\n\ninterface ISinglePrimerPaymentMethodIntent {\n vault: boolean;\n paymentMethod: SinglePrimerPaymentMethod;\n}\n\nexport type PrimerIntent =\n | ISinglePrimerPaymentMethodIntent\n | AnyPrimerPaymentMethodIntent;\n"]}
@@ -0,0 +1,2 @@
1
+ var redirectSchemes = ['primer'];
2
+ //# sourceMappingURL=redirectScheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["redirectScheme.ts"],"names":["redirectSchemes"],"mappings":"AAAA,IAAIA,eAAe,GAAG,CAClB,QADkB,CAAtB","sourcesContent":["var redirectSchemes = [\n 'primer'\n] as const;\n\nexport type RedirectScheme = typeof redirectSchemes[number];\n"]}
@@ -1,2 +1,15 @@
1
1
  import type { IPrimer } from './models/primer';
2
+ export interface IClientSessionAction {
3
+ type: 'SELECT_PAYMENT_METHOD' | 'UNSELECT_PAYMENT_METHOD' | 'SET_BILLING_ADDRESS';
4
+ params?: IActionParams;
5
+ }
6
+ interface IActionParams {
7
+ billingAddress: Record<string, string | null>;
8
+ paymentMethodType?: string;
9
+ binData?: IBinData;
10
+ }
11
+ interface IBinData {
12
+ network: string;
13
+ }
2
14
  export declare const PrimerNativeMapping: IPrimer;
15
+ export {};
@@ -0,0 +1,24 @@
1
+ import type { PrimerSettings } from './models/primer-settings';
2
+ import type { PrimerTheme } from './models/primer-theme';
3
+ declare type EventType = 'onClientTokenCallback' | 'onClientSessionActions' | 'onTokenizeSuccessCallback' | 'onVaultSuccess' | 'onResumeSuccess' | 'onCheckoutDismissed' | 'onError' | 'detectImplementedRNCallbacks';
4
+ export interface IPrimerError {
5
+ errorId: string;
6
+ errorDescription?: string;
7
+ recoverySuggestion?: string;
8
+ }
9
+ declare const RNPrimer: {
10
+ addListener: (eventType: EventType, listener: (...args: any[]) => any) => void;
11
+ removeListener: (eventType: EventType, listener: (...args: any[]) => any) => void;
12
+ removeAllListenersForEvent(eventType: EventType): void;
13
+ removeAllListeners(): void;
14
+ configure: (settings: PrimerSettings | null, theme: PrimerTheme | null) => Promise<void>;
15
+ showUniversalCheckout: (clientToken: string | undefined) => Promise<void>;
16
+ showVaultManager: (clientToken: string | undefined) => Promise<void>;
17
+ showPaymentMethod: (clientToken: string, paymentMethodType: string, intent: "checkout" | "vault") => Promise<void>;
18
+ handleNewClientToken: (clientToken: string | undefined) => Promise<void>;
19
+ handleError: (err: IPrimerError) => Promise<void>;
20
+ handleSuccess: () => Promise<void>;
21
+ setImplementedRNCallbacks: (implementedRNCallbacks: any) => Promise<void>;
22
+ dispose: () => void;
23
+ };
24
+ export default RNPrimer;
@@ -1,5 +1,3 @@
1
- import PrimerHeadlessUniversalCheckout from './headless_checkout/PrimerHeadlessUniversalCheckout';
2
1
  import type { IPrimer } from './models/primer';
3
- export * from './PrimerInput';
4
2
  declare const Primer: IPrimer;
5
- export { Primer, PrimerHeadlessUniversalCheckout as HeadlessUniversalCheckout };
3
+ export { Primer };
@@ -1,12 +1,10 @@
1
- import type { ActionRequest } from './action-request';
2
- import type { ClientSessionActionsRequest } from './client-session-actions-request';
1
+ import type { IPrimerError } from 'src/RNPrimer';
2
+ import type { IClientSessionAction } from 'src/Primer';
3
3
  import type { PaymentInstrumentToken } from './payment-instrument-token';
4
- import type { PrimerError } from './primer-error';
5
4
  import type { PrimerResumeHandler } from './primer-request';
6
- export declare type OnTokenizeSuccessCallback = (req: PaymentInstrumentToken, completion: PrimerResumeHandler) => void;
7
- export declare type OnClientSessionActionsCallback = (req: ClientSessionActionsRequest, completion: PrimerResumeHandler) => void;
8
- export declare type OnDataChangeCallback = (req: ActionRequest, completion: PrimerResumeHandler) => void;
9
- export declare type OnTokenAddedToVaultCallback = (data: PaymentInstrumentToken) => void;
5
+ export declare type OnClientSessionActionsCallback = (clientSessionActions: IClientSessionAction[], resumeHandler: PrimerResumeHandler | null) => void;
6
+ export declare type OnTokenizeSuccessCallback = (paymentInstrument: PaymentInstrumentToken, resumeHandler: PrimerResumeHandler) => void;
7
+ export declare type OnTokenAddedToVaultCallback = (paymentInstrument: PaymentInstrumentToken) => void;
8
+ export declare type OnResumeCallback = (resumeToken: string, resumeHandler: PrimerResumeHandler | null) => void;
9
+ export declare type OnPrimerErrorCallback = (err: IPrimerError, resumeHandler: PrimerResumeHandler) => void;
10
10
  export declare type OnDismissCallback = () => void;
11
- export declare type OnPrimerErrorCallback = (data: PrimerError) => void;
12
- export declare type OnSavedPaymentInstrumentsFetchedCallback = (data: PaymentInstrumentToken[]) => void;
@@ -1,8 +1,10 @@
1
- import type { OnClientSessionActionsCallback, OnDismissCallback, OnPrimerErrorCallback, OnSavedPaymentInstrumentsFetchedCallback, OnTokenAddedToVaultCallback, OnTokenizeSuccessCallback } from './primer-callbacks';
1
+ import type { IClientSessionAction } from 'src/Primer';
2
+ import type { IPrimerError } from 'src/RNPrimer';
3
+ import type { PaymentInstrumentToken } from './payment-instrument-token';
4
+ import type { PrimerResumeHandler } from './primer-request';
2
5
  import type { PrimerSettings } from './primer-settings';
3
6
  import type { PrimerTheme } from './primer-theme';
4
- export declare type PrimerConfig = IPrimerConfig;
5
- interface IPrimerConfig {
7
+ export interface IPrimerConfig {
6
8
  /**
7
9
  * Include data for different payment methods (e.g. amount or business details)
8
10
  */
@@ -12,26 +14,27 @@ interface IPrimerConfig {
12
14
  */
13
15
  theme?: PrimerTheme;
14
16
  /**
15
- * Use this callback to grab a Primer payment instrument token and complete a payment.
17
+ * Use this callback to grab a Primer payment instrument and complete a payment.
16
18
  */
17
- onTokenizeSuccess?: OnTokenizeSuccessCallback;
18
- onResumeSuccess?: OnTokenizeSuccessCallback;
19
+ onTokenizeSuccess?: (paymentInstrument: PaymentInstrumentToken, resumeHandler: PrimerResumeHandler) => void;
20
+ /**
21
+ * Use this callback to resume a PENDING payment with the token provided.
22
+ */
23
+ onResumeSuccess?: (resumeToken: string, resumeHandler: PrimerResumeHandler | null) => void;
19
24
  /**
20
25
  * Use this callback to perform some action when a payment instrument was saved to Primer.
21
26
  */
22
- onTokenAddedToVault?: OnTokenAddedToVaultCallback;
27
+ onTokenAddedToVault?: (paymentInstrument: PaymentInstrumentToken) => void;
23
28
  /**
24
29
  * Use this callback to perform some action when the Primer UI is dismissed.
25
30
  */
26
- onDismiss?: OnDismissCallback;
31
+ onDismiss?: () => void;
27
32
  /**
28
33
  * Use this callback to perform some action when the SDK throws an error.
29
34
  */
30
- onError?: OnPrimerErrorCallback;
35
+ onError?: (err: IPrimerError, resumeHandler: PrimerResumeHandler) => void;
31
36
  /**
32
- * Use this to receive saved payment instruments fetch result.
37
+ * Use this callback to perform actions on payment methods, like surcharging.
33
38
  */
34
- onSavedPaymentInstrumentsFetched?: OnSavedPaymentInstrumentsFetchedCallback;
35
- onClientSessionActions?: OnClientSessionActionsCallback;
39
+ onClientSessionActions?: (clientSessionActions: IClientSessionAction[], resumeHandler: PrimerResumeHandler | null) => void;
36
40
  }
37
- export {};
@@ -2,7 +2,7 @@ declare const paymentMethods: readonly ["ADYEN_ALIPAY", "ADYEN_DOTPAY", "ADYEN_G
2
2
  export declare type SinglePrimerPaymentMethod = typeof paymentMethods[number];
3
3
  export interface AnyPrimerPaymentMethodIntent {
4
4
  vault: boolean;
5
- paymentMethod: 'Any';
5
+ paymentMethod: SinglePrimerPaymentMethod;
6
6
  }
7
7
  export declare type PrimerPaymentMethodIntent = ISinglePrimerPaymentMethodIntent;
8
8
  interface ISinglePrimerPaymentMethodIntent {
@@ -1,17 +1,7 @@
1
1
  export declare type PrimerResumeHandler = IPrimerResumeHandler;
2
2
  interface IPrimerResumeHandler {
3
- handleError: (error: string) => void;
3
+ handleNewClientToken: (clientToken: string) => void;
4
+ handleError: (error: Error) => void;
4
5
  handleSuccess: () => void;
5
- handleNewClientToken: (token: string) => void;
6
- /**
7
- * @deprecated This method should not be used
8
- * Please use handleError instead.
9
- */
10
- resumeWithError: (error: string | null) => void;
11
- /**
12
- * @deprecated This method should not be used.
13
- * Please use handleSuccess or handleNewClientToken instead.
14
- */
15
- resumeWithSuccess: (clientToken: string | null) => void;
16
6
  }
17
7
  export {};
@@ -1,5 +1,6 @@
1
1
  import type { CountryCode } from './utils/countryCode';
2
2
  import type { CurrencyCode } from './utils/currencyCode';
3
+ import type { RedirectScheme } from './utils/redirectScheme';
3
4
  export declare type PrimerSettings = IPrimerSettings;
4
5
  interface IPrimerSettings {
5
6
  order?: IOrder;
@@ -17,7 +18,7 @@ interface IOrder {
17
18
  }
18
19
  interface IOrderItem {
19
20
  name: string;
20
- unitAmount?: number;
21
+ amount: number;
21
22
  quantity: number;
22
23
  isPending?: boolean;
23
24
  }
@@ -40,19 +41,17 @@ interface IOptions {
40
41
  isResultScreenEnabled?: boolean;
41
42
  isLoadingScreenEnabled?: boolean;
42
43
  isFullScreenEnabled?: boolean;
43
- isThreeDsEnabled?: boolean;
44
+ is3DSOnVaultingEnabled?: boolean;
45
+ is3DSDevelopmentModeEnabled?: boolean;
44
46
  locale?: string;
45
47
  ios?: IIosOptions;
46
- android?: IAndroidOptions;
48
+ redirectScheme?: RedirectScheme;
47
49
  }
48
50
  interface IIosOptions {
49
51
  urlScheme?: string;
50
52
  urlSchemeIdentifier?: string;
51
53
  merchantIdentifier?: string;
52
54
  }
53
- interface IAndroidOptions {
54
- redirectScheme?: string;
55
- }
56
55
  interface IAddress {
57
56
  line1?: String;
58
57
  line2?: String;
@@ -1,4 +1,4 @@
1
- import type { PrimerConfig } from './primer-config';
1
+ import type { IPrimerConfig } from './primer-config';
2
2
  import type { PrimerPaymentMethodIntent } from './primer-intent';
3
3
  export interface IPrimer {
4
4
  /**
@@ -10,7 +10,7 @@ export interface IPrimer {
10
10
  * @param config Configuration object for the SDK. Use this to set listeners, theme,
11
11
  * and payment method specific settings.
12
12
  */
13
- showUniversalCheckout(token: String, config: PrimerConfig): void;
13
+ showUniversalCheckout(token: string | null, config: IPrimerConfig): void;
14
14
  /**
15
15
  * Launch Primer's Vault Manager.
16
16
  * This will enable users to save new payment methods without performing a checkout.
@@ -18,14 +18,14 @@ export interface IPrimer {
18
18
  * @param config Configuration object for the SDK. Use this to set listeners, theme,
19
19
  * and payment method specific settings.
20
20
  */
21
- showVaultManager(token: String, config: PrimerConfig): void;
21
+ showVaultManager(token: string | null, config: IPrimerConfig): void;
22
22
  /**
23
23
  * Launch checkout with a specific payment method
24
24
  * @param token Primer client token in Base64 format generated with a Primer API key.
25
25
  * @param intent Intent object for specifying payment method and toggle vaulting.
26
26
  * @param config Configuration for the SDK.
27
27
  */
28
- showPaymentMethod(token: String, intent: PrimerPaymentMethodIntent, config: PrimerConfig): void;
28
+ showPaymentMethod(token: string | null, intent: PrimerPaymentMethodIntent, config: IPrimerConfig): void;
29
29
  /**
30
30
  * remove all listeners & callbacks.
31
31
  */
@@ -0,0 +1,3 @@
1
+ declare var redirectSchemes: readonly ["primer"];
2
+ export declare type RedirectScheme = typeof redirectSchemes[number];
3
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer-io/react-native",
3
- "version": "0.13.0-beta.1",
3
+ "version": "0.15.0",
4
4
  "description": "Primer SDK for RN",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -139,5 +139,8 @@
139
139
  }
140
140
  ]
141
141
  ]
142
+ },
143
+ "dependencies": {
144
+ "uuid": "^8.3.2"
142
145
  }
143
146
  }
@@ -13,10 +13,9 @@ Pod::Spec.new do |s|
13
13
  s.platforms = { :ios => "10.0" }
14
14
  s.source = { :git => "https://github.com/primer-io/primer-sdk-react-native.git", :tag => "#{s.version}" }
15
15
 
16
-
16
+
17
17
  s.source_files = "ios/**/*.{h,m,mm,swift}"
18
-
19
18
 
20
19
  s.dependency "React-Core"
21
- s.dependency "PrimerSDK", "1.28.0-beta.6"
20
+ s.dependency "PrimerSDK", "1.32.0"
22
21
  end