@primer-io/react-native 0.15.4 → 0.16.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 (91) hide show
  1. package/android/build.gradle +1 -4
  2. package/android/src/main/java/com/primerioreactnative/PrimerCardNumberEditTextManager.kt +83 -0
  3. package/android/src/main/java/com/primerioreactnative/PrimerHeadlessUniversalCheckout.kt +198 -0
  4. package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +13 -8
  5. package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +2 -1
  6. package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +14 -3
  7. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +2 -0
  8. package/android/src/main/java/com/primerioreactnative/huc/assets/AssetsManager.kt +56 -0
  9. package/android/src/main/java/com/primerioreactnative/huc/events/PrimerHeadlessUniversalCheckoutEvent.kt +11 -0
  10. package/android/src/main/java/com/primerioreactnative/huc/extensions/Map.kt +10 -0
  11. package/android/src/main/java/com/primerioreactnative/utils/ErrorHelper.kt +1 -1
  12. package/android/src/main/java/com/primerioreactnative/utils/Keys.kt +7 -0
  13. package/ios/{ReactNative-Bridging-Header.h → Core/ReactNative-Bridging-Header.h} +1 -0
  14. package/ios/DataModels/PrimerSettingsRN.swift +2 -6
  15. package/ios/Headless Universal Checkout/RNTPrimerCardNumberInputElementManager.m +23 -0
  16. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.m +30 -0
  17. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +241 -0
  18. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.m +14 -0
  19. package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.swift +113 -0
  20. package/ios/{Pods/Manifest.lock → Podfile.lock} +1 -1
  21. package/ios/RNTPrimer.swift +14 -0
  22. package/lib/commonjs/Primer.js +84 -124
  23. package/lib/commonjs/Primer.js.map +1 -1
  24. package/lib/commonjs/PrimerInput.js +80 -0
  25. package/lib/commonjs/PrimerInput.js.map +1 -0
  26. package/lib/commonjs/RNPrimer.js +1 -0
  27. package/lib/commonjs/RNPrimer.js.map +1 -1
  28. package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js +14 -0
  29. package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -0
  30. package/lib/commonjs/headless_checkout/NativePrimerHeadlessUniversalCheckout.js +110 -0
  31. package/lib/commonjs/headless_checkout/NativePrimerHeadlessUniversalCheckout.js.map +1 -0
  32. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js +117 -0
  33. package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -0
  34. package/lib/commonjs/headless_checkout/types.js +2 -0
  35. package/lib/commonjs/headless_checkout/types.js.map +1 -0
  36. package/lib/commonjs/index.js +28 -1
  37. package/lib/commonjs/index.js.map +1 -1
  38. package/lib/commonjs/models/primer-callbacks.js +4 -0
  39. package/lib/commonjs/models/primer-config.js +4 -0
  40. package/lib/commonjs/models/primer-settings.js +4 -0
  41. package/lib/commonjs/models/primer.js +4 -0
  42. package/lib/commonjs/utils/index.js +1 -1
  43. package/lib/module/Primer.js +79 -118
  44. package/lib/module/Primer.js.map +1 -1
  45. package/lib/module/PrimerInput.js +46 -0
  46. package/lib/module/PrimerInput.js.map +1 -0
  47. package/lib/module/RNPrimer.js +1 -0
  48. package/lib/module/RNPrimer.js.map +1 -1
  49. package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js +5 -0
  50. package/lib/module/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -0
  51. package/lib/module/headless_checkout/NativePrimerHeadlessUniversalCheckout.js +98 -0
  52. package/lib/module/headless_checkout/NativePrimerHeadlessUniversalCheckout.js.map +1 -0
  53. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js +100 -0
  54. package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -0
  55. package/lib/module/headless_checkout/types.js +2 -0
  56. package/lib/module/headless_checkout/types.js.map +1 -0
  57. package/lib/module/index.js +4 -3
  58. package/lib/module/index.js.map +1 -1
  59. package/lib/module/models/primer-callbacks.js +1 -1
  60. package/lib/module/models/primer-config.js +1 -1
  61. package/lib/module/models/primer-settings.js +1 -1
  62. package/lib/module/models/primer.js +1 -1
  63. package/lib/typescript/PrimerInput.d.ts +15 -0
  64. package/lib/typescript/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.d.ts +1 -0
  65. package/lib/typescript/headless_checkout/NativePrimerHeadlessUniversalCheckout.d.ts +13 -0
  66. package/lib/typescript/headless_checkout/PrimerHeadlessUniversalCheckout.d.ts +13 -0
  67. package/lib/typescript/headless_checkout/types.d.ts +16 -0
  68. package/lib/typescript/index.d.ts +3 -1
  69. package/lib/typescript/models/primer-config.d.ts +4 -0
  70. package/lib/typescript/models/primer-settings.d.ts +4 -2
  71. package/package.json +1 -1
  72. package/primer-io-react-native.podspec +1 -1
  73. package/src/Primer.ts +86 -124
  74. package/src/PrimerInput.tsx +73 -0
  75. package/src/RNPrimer.ts +1 -0
  76. package/src/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.tsx +2 -0
  77. package/src/headless_checkout/NativePrimerHeadlessUniversalCheckout.ts +132 -0
  78. package/src/headless_checkout/PrimerHeadlessUniversalCheckout.ts +140 -0
  79. package/src/headless_checkout/types.ts +18 -0
  80. package/src/index.tsx +3 -2
  81. package/src/models/primer-config.ts +5 -0
  82. package/src/models/primer-settings.ts +5 -2
  83. package/ios/Pods/Pods.xcodeproj/project.pbxproj +0 -344
  84. package/ios/Pods/Pods.xcodeproj/xcuserdata/aladintaleb.xcuserdatad/xcschemes/Pods-ReactNative.xcscheme +0 -60
  85. package/ios/Pods/Pods.xcodeproj/xcuserdata/aladintaleb.xcuserdatad/xcschemes/xcschememanagement.plist +0 -16
  86. package/ios/Pods/Target Support Files/Pods-ReactNative/Pods-ReactNative-acknowledgements.markdown +0 -3
  87. package/ios/Pods/Target Support Files/Pods-ReactNative/Pods-ReactNative-acknowledgements.plist +0 -29
  88. package/ios/Pods/Target Support Files/Pods-ReactNative/Pods-ReactNative-dummy.m +0 -5
  89. package/ios/Pods/Target Support Files/Pods-ReactNative/Pods-ReactNative.debug.xcconfig +0 -8
  90. package/ios/Pods/Target Support Files/Pods-ReactNative/Pods-ReactNative.release.xcconfig +0 -8
  91. package/ios/ReactNative.xcworkspace/xcuserdata/aladintaleb.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
@@ -0,0 +1,132 @@
1
+ import { NativeEventEmitter, NativeModules } from 'react-native';
2
+ import type { PrimerSettings } from 'src/models/primer-settings';
3
+ import RNPrimer from '../RNPrimer';
4
+ import type { PrimerHeadlessUniversalCheckoutCallbacks } from './types';
5
+
6
+ const { PrimerHeadlessUniversalCheckout } = NativeModules;
7
+
8
+ const eventEmitter = new NativeEventEmitter(PrimerHeadlessUniversalCheckout);
9
+
10
+ type EventType =
11
+ | 'preparationStarted'
12
+ | 'paymentMethodPresented'
13
+ | 'tokenizationStarted'
14
+ | 'tokenizationSucceeded'
15
+ | 'resume'
16
+ | 'error';
17
+
18
+ let primerSettings: (PrimerSettings & PrimerHeadlessUniversalCheckoutCallbacks) | null = null;
19
+
20
+ const NativePrimerHeadlessUniversalCheckout = {
21
+ ///////////////////////////////////////////
22
+ // Event Emitter
23
+ ///////////////////////////////////////////
24
+ addListener: (eventType: EventType, listener: (...args: any[]) => any) => {
25
+ eventEmitter.addListener(eventType, listener);
26
+ },
27
+
28
+ removeListener: (eventType: EventType, listener: (...args: any[]) => any) => {
29
+ eventEmitter.removeListener(eventType, listener);
30
+ },
31
+
32
+ removeAllListenersForEvent(eventType: EventType) {
33
+ eventEmitter.removeAllListeners(eventType);
34
+ },
35
+
36
+ removeAllListeners() {
37
+ eventEmitter.removeAllListeners('preparationStarted');
38
+ eventEmitter.removeAllListeners('paymentMethodPresented');
39
+ eventEmitter.removeAllListeners('tokenizationStarted');
40
+ eventEmitter.removeAllListeners('tokenizationSucceeded');
41
+ eventEmitter.removeAllListeners('resume');
42
+ eventEmitter.removeAllListeners('error');
43
+ },
44
+
45
+ ///////////////////////////////////////////
46
+ // Native API
47
+ ///////////////////////////////////////////
48
+ getAssetForPaymentMethod: (
49
+ paymentMethodType: string,
50
+ assetType: 'logo' | 'icon'
51
+ ): Promise<string> => {
52
+ return new Promise((resolve, reject) => {
53
+ try {
54
+ PrimerHeadlessUniversalCheckout.getAssetForPaymentMethodType(
55
+ paymentMethodType,
56
+ assetType,
57
+ (err: Error) => {
58
+ reject(err);
59
+ },
60
+ (url: string) => {
61
+ resolve(url);
62
+ }
63
+ );
64
+ } catch (e) {
65
+ reject(e);
66
+ }
67
+ });
68
+ },
69
+
70
+ getAssetForCardNetwork: (
71
+ cardNetwork: string,
72
+ assetType: 'logo' | 'icon'
73
+ ): Promise<string> => {
74
+ return new Promise((resolve, reject) => {
75
+ try {
76
+ PrimerHeadlessUniversalCheckout.getAssetForPaymentMethodType(
77
+ cardNetwork,
78
+ assetType,
79
+ (err: Error) => {
80
+ reject(err);
81
+ },
82
+ (url: string) => {
83
+ resolve(url);
84
+ }
85
+ );
86
+ } catch (e) {
87
+ reject(e);
88
+ }
89
+ });
90
+ },
91
+
92
+ startWithClientToken(clientToken: string, settings: any): Promise<any> {
93
+ primerSettings = settings;
94
+
95
+ return new Promise((resolve, reject) => {
96
+ PrimerHeadlessUniversalCheckout.startWithClientToken(
97
+ clientToken,
98
+ JSON.stringify(settings),
99
+ (err: Error) => {
100
+ console.error(err);
101
+ reject(err);
102
+ },
103
+ (paymentMethodTypes: string[]) => {
104
+ resolve({ paymentMethodTypes });
105
+ }
106
+ );
107
+ });
108
+ },
109
+
110
+ showPaymentMethod: async (paymentMethod: string) => {
111
+ if (primerSettings) {
112
+ let implementedRNCallbacks: any = {
113
+ isTokenAddedToVaultImplemented: false,
114
+ isOnResumeSuccessImplemented: (primerSettings.onResumeSuccess !== undefined),
115
+ isOnResumeErrorImplemented: (primerSettings.onFailure !== undefined),
116
+ isOnCheckoutDismissedImplemented: false,
117
+ isCheckoutFailedImplemented: (primerSettings.onFailure !== undefined),
118
+ isClientSessionActionsImplemented: false
119
+ };
120
+
121
+ await RNPrimer.setImplementedRNCallbacks(implementedRNCallbacks);
122
+ }
123
+
124
+ PrimerHeadlessUniversalCheckout.showPaymentMethod(paymentMethod);
125
+ },
126
+
127
+ resumeWithClientToken(resumeToken: string) {
128
+ PrimerHeadlessUniversalCheckout.resumeWithClientToken(resumeToken);
129
+ }
130
+ };
131
+
132
+ export default NativePrimerHeadlessUniversalCheckout;
@@ -0,0 +1,140 @@
1
+ import type { PaymentInstrumentToken } from 'src/models/payment-instrument-token';
2
+ import type { PrimerError } from 'src/models/primer-error';
3
+ import type { PrimerSettings } from 'src/models/primer-settings';
4
+ import NativePrimerHeadlessUniversalCheckout from './NativePrimerHeadlessUniversalCheckout';
5
+ import type {
6
+ PrimerHeadlessUniversalCheckoutStartResponse,
7
+ PrimerHeadlessUniversalCheckoutCallbacks,
8
+ } from './types';
9
+
10
+ let callbacks: PrimerHeadlessUniversalCheckoutCallbacks | undefined;
11
+
12
+ class PrimerHeadlessUniversalCheckoutClass {
13
+
14
+ ///////////////////////////////////////////
15
+ // Init
16
+ ///////////////////////////////////////////
17
+ constructor() {
18
+
19
+ }
20
+
21
+ private configureListeners() {
22
+ NativePrimerHeadlessUniversalCheckout.removeAllListeners();
23
+
24
+ NativePrimerHeadlessUniversalCheckout.addListener(
25
+ 'preparationStarted',
26
+ () => {
27
+ console.log('preparationStarted');
28
+ callbacks?.onPreparationStarted?.();
29
+ }
30
+ );
31
+
32
+ NativePrimerHeadlessUniversalCheckout.addListener(
33
+ 'paymentMethodPresented',
34
+ () => {
35
+ console.log('paymentMethodPresented');
36
+ callbacks?.onPaymentMethodPresented?.();
37
+ }
38
+ );
39
+
40
+ NativePrimerHeadlessUniversalCheckout.addListener(
41
+ 'tokenizationStarted',
42
+ () => {
43
+ console.log('tokenizationStarted');
44
+ callbacks?.onTokenizeStart?.();
45
+ }
46
+ );
47
+
48
+ NativePrimerHeadlessUniversalCheckout.addListener(
49
+ 'tokenizationSucceeded',
50
+ (data) => {
51
+ console.log('tokenizationSucceeded', data);
52
+
53
+ if (data.paymentMethodToken) {
54
+ const paymentMethodTokenObj: PaymentInstrumentToken = JSON.parse(
55
+ data.paymentMethodToken
56
+ );
57
+ callbacks?.onTokenizeSuccess?.(paymentMethodTokenObj);
58
+ } else {
59
+ const err: PrimerError = {
60
+ name: 'ParseJsonFailed',
61
+ description: 'Failed to parse payment method token',
62
+ };
63
+ //@ts-ignore
64
+ callbacks?.onFailure?.(err);
65
+ }
66
+ }
67
+ );
68
+
69
+ NativePrimerHeadlessUniversalCheckout.addListener('resume', (data) => {
70
+ console.log('resume', data);
71
+ callbacks?.onResumeSuccess?.(data.resumeToken);
72
+ });
73
+
74
+ NativePrimerHeadlessUniversalCheckout.addListener('error', (data) => {
75
+ console.log('error', data);
76
+ callbacks?.onFailure?.(data.error);
77
+ });
78
+ }
79
+
80
+ ///////////////////////////////////////////
81
+ // API
82
+ ///////////////////////////////////////////
83
+ startWithClientToken(
84
+ clientToken: string,
85
+ settings: PrimerSettings & PrimerHeadlessUniversalCheckoutCallbacks
86
+ ): Promise<PrimerHeadlessUniversalCheckoutStartResponse> {
87
+ // Copy callback
88
+ callbacks = {
89
+ onPreparationStarted: settings.onPreparationStarted,
90
+ onPaymentMethodPresented: settings.onPaymentMethodPresented,
91
+ onTokenizeStart: settings.onTokenizeStart,
92
+ onTokenizeSuccess: settings.onTokenizeSuccess,
93
+ onResumeSuccess: settings.onResumeSuccess,
94
+ onFailure: settings.onFailure,
95
+ };
96
+
97
+ return NativePrimerHeadlessUniversalCheckout.startWithClientToken(
98
+ clientToken,
99
+ settings
100
+ );
101
+ }
102
+
103
+ showPaymentMethod(paymentMethod: string) {
104
+ this.configureListeners();
105
+
106
+ return NativePrimerHeadlessUniversalCheckout.showPaymentMethod(
107
+ paymentMethod
108
+ );
109
+ }
110
+
111
+ resumeWithClientToken(resumeToken: string) {
112
+ return NativePrimerHeadlessUniversalCheckout.resumeWithClientToken(
113
+ resumeToken
114
+ );
115
+ }
116
+
117
+ getAssetForPaymentMethod(
118
+ paymentMethodType: string,
119
+ assetType: 'logo' | 'icon'
120
+ ): Promise<string> {
121
+ return NativePrimerHeadlessUniversalCheckout.getAssetForPaymentMethod(
122
+ paymentMethodType,
123
+ assetType
124
+ );
125
+ }
126
+
127
+ getAssetForCardNetwork(
128
+ cardNetwork: string,
129
+ assetType: 'logo' | 'icon'
130
+ ): Promise<string> {
131
+ return NativePrimerHeadlessUniversalCheckout.getAssetForCardNetwork(
132
+ cardNetwork,
133
+ assetType
134
+ );
135
+ }
136
+ }
137
+
138
+ const PrimerHeadlessUniversalCheckout = new PrimerHeadlessUniversalCheckoutClass();
139
+
140
+ export default PrimerHeadlessUniversalCheckout;
@@ -0,0 +1,18 @@
1
+ export interface PrimerHeadlessUniversalCheckoutStartResponse {
2
+ paymentMethodTypes: string[];
3
+ }
4
+
5
+ export interface PrimerError {
6
+ errorId: string;
7
+ description: string;
8
+ recoverySuggestion?: string;
9
+ }
10
+
11
+ export interface PrimerHeadlessUniversalCheckoutCallbacks {
12
+ onPreparationStarted?: () => void;
13
+ onPaymentMethodPresented?: () => void;
14
+ onTokenizeStart?: () => void;
15
+ onTokenizeSuccess?: (paymentMethod: any) => void;
16
+ onResumeSuccess?: (resumeToken: string) => void;
17
+ onFailure?: (error: PrimerError) => void;
18
+ }
package/src/index.tsx CHANGED
@@ -1,7 +1,8 @@
1
+ import PrimerHeadlessUniversalCheckout from './headless_checkout/PrimerHeadlessUniversalCheckout';
1
2
  import type { IPrimer } from './models/primer';
2
3
  import { PrimerNativeMapping } from './Primer';
3
- // import type { IPrimerConfig as PrimerConfig } from './models/primer-config';
4
+ export * from './PrimerInput';
4
5
 
5
6
  const Primer: IPrimer = PrimerNativeMapping;
6
7
 
7
- export { Primer };
8
+ export { Primer, PrimerHeadlessUniversalCheckout as HeadlessUniversalCheckout };
@@ -23,6 +23,11 @@ export interface IPrimerConfig {
23
23
  */
24
24
  onTokenizeSuccess?: (paymentInstrument: PaymentInstrumentToken, resumeHandler: PrimerResumeHandler) => void;
25
25
 
26
+ /**
27
+ * Use this callback to grab a Primer payment instrument and complete a payment.
28
+ */
29
+ onVaultSuccess?: (paymentInstrument: PaymentInstrumentToken) => void;
30
+
26
31
  /**
27
32
  * Use this callback to resume a PENDING payment with the token provided.
28
33
  */
@@ -1,6 +1,5 @@
1
1
  import type { CountryCode } from './utils/countryCode';
2
2
  import type { CurrencyCode } from './utils/currencyCode';
3
- import type { RedirectScheme } from './utils/redirectScheme';
4
3
 
5
4
  export type PrimerSettings = IPrimerSettings;
6
5
  interface IPrimerSettings {
@@ -51,7 +50,7 @@ interface IOptions {
51
50
  is3DSDevelopmentModeEnabled?: boolean;
52
51
  locale?: string;
53
52
  ios?: IIosOptions;
54
- redirectScheme?: RedirectScheme;
53
+ android?: IAndroidOptions;
55
54
  }
56
55
 
57
56
  interface IIosOptions {
@@ -60,6 +59,10 @@ interface IIosOptions {
60
59
  merchantIdentifier?: string;
61
60
  }
62
61
 
62
+ interface IAndroidOptions {
63
+ redirectScheme?: string;
64
+ }
65
+
63
66
  interface IAddress {
64
67
  line1?: String;
65
68
  line2?: String;
@@ -1,344 +0,0 @@
1
- // !$*UTF8*$!
2
- {
3
- archiveVersion = 1;
4
- classes = {
5
- };
6
- objectVersion = 46;
7
- objects = {
8
-
9
- /* Begin PBXBuildFile section */
10
- 9E8C55F8977D10A75940A48A138A0AFE /* Pods-ReactNative-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 21494CACF6F2E013D9CB5866F5B70547 /* Pods-ReactNative-dummy.m */; };
11
- /* End PBXBuildFile section */
12
-
13
- /* Begin PBXFileReference section */
14
- 01A50817A1389F823A6016196ACC6BF1 /* libPods-ReactNative.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-ReactNative.a"; path = "libPods-ReactNative.a"; sourceTree = BUILT_PRODUCTS_DIR; };
15
- 21494CACF6F2E013D9CB5866F5B70547 /* Pods-ReactNative-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ReactNative-dummy.m"; sourceTree = "<group>"; };
16
- 2C33F1119B4C5BFECC9324C0F764B631 /* Pods-ReactNative.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ReactNative.debug.xcconfig"; sourceTree = "<group>"; };
17
- 2F8BD7D813BBFC9A1ECFDC65BFA4EB65 /* Pods-ReactNative.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ReactNative.release.xcconfig"; sourceTree = "<group>"; };
18
- 82B126974795CE04EAAAF88CB7D34268 /* Pods-ReactNative-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ReactNative-acknowledgements.plist"; sourceTree = "<group>"; };
19
- 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
20
- F58B2F425238CEE203A57909252762AA /* Pods-ReactNative-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ReactNative-acknowledgements.markdown"; sourceTree = "<group>"; };
21
- /* End PBXFileReference section */
22
-
23
- /* Begin PBXFrameworksBuildPhase section */
24
- 0AE86DDB555079E917C20C9B5309196B /* Frameworks */ = {
25
- isa = PBXFrameworksBuildPhase;
26
- buildActionMask = 2147483647;
27
- files = (
28
- );
29
- runOnlyForDeploymentPostprocessing = 0;
30
- };
31
- /* End PBXFrameworksBuildPhase section */
32
-
33
- /* Begin PBXGroup section */
34
- 2D3CED68F2826C3C8381FB3CBCEE392D /* Pods-ReactNative */ = {
35
- isa = PBXGroup;
36
- children = (
37
- F58B2F425238CEE203A57909252762AA /* Pods-ReactNative-acknowledgements.markdown */,
38
- 82B126974795CE04EAAAF88CB7D34268 /* Pods-ReactNative-acknowledgements.plist */,
39
- 21494CACF6F2E013D9CB5866F5B70547 /* Pods-ReactNative-dummy.m */,
40
- 2C33F1119B4C5BFECC9324C0F764B631 /* Pods-ReactNative.debug.xcconfig */,
41
- 2F8BD7D813BBFC9A1ECFDC65BFA4EB65 /* Pods-ReactNative.release.xcconfig */,
42
- );
43
- name = "Pods-ReactNative";
44
- path = "Target Support Files/Pods-ReactNative";
45
- sourceTree = "<group>";
46
- };
47
- 6BA0D8A96C7AD85281F53D2F7AF1DAD7 /* Targets Support Files */ = {
48
- isa = PBXGroup;
49
- children = (
50
- 2D3CED68F2826C3C8381FB3CBCEE392D /* Pods-ReactNative */,
51
- );
52
- name = "Targets Support Files";
53
- sourceTree = "<group>";
54
- };
55
- 7B268D4862065D83735E411AABCB1799 /* Products */ = {
56
- isa = PBXGroup;
57
- children = (
58
- 01A50817A1389F823A6016196ACC6BF1 /* libPods-ReactNative.a */,
59
- );
60
- name = Products;
61
- sourceTree = "<group>";
62
- };
63
- CF1408CF629C7361332E53B88F7BD30C = {
64
- isa = PBXGroup;
65
- children = (
66
- 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,
67
- D89477F20FB1DE18A04690586D7808C4 /* Frameworks */,
68
- 7B268D4862065D83735E411AABCB1799 /* Products */,
69
- 6BA0D8A96C7AD85281F53D2F7AF1DAD7 /* Targets Support Files */,
70
- );
71
- sourceTree = "<group>";
72
- };
73
- D89477F20FB1DE18A04690586D7808C4 /* Frameworks */ = {
74
- isa = PBXGroup;
75
- children = (
76
- );
77
- name = Frameworks;
78
- sourceTree = "<group>";
79
- };
80
- /* End PBXGroup section */
81
-
82
- /* Begin PBXHeadersBuildPhase section */
83
- B3EA2B49F1AF137B106149563B751DAE /* Headers */ = {
84
- isa = PBXHeadersBuildPhase;
85
- buildActionMask = 2147483647;
86
- files = (
87
- );
88
- runOnlyForDeploymentPostprocessing = 0;
89
- };
90
- /* End PBXHeadersBuildPhase section */
91
-
92
- /* Begin PBXNativeTarget section */
93
- 596E717FE57719548E74A692D33C9E22 /* Pods-ReactNative */ = {
94
- isa = PBXNativeTarget;
95
- buildConfigurationList = 7728D94732A9241690087065400BB44B /* Build configuration list for PBXNativeTarget "Pods-ReactNative" */;
96
- buildPhases = (
97
- B3EA2B49F1AF137B106149563B751DAE /* Headers */,
98
- E8C4B3F8546D3B7E2B58E7A505A1006B /* Sources */,
99
- 0AE86DDB555079E917C20C9B5309196B /* Frameworks */,
100
- );
101
- buildRules = (
102
- );
103
- dependencies = (
104
- );
105
- name = "Pods-ReactNative";
106
- productName = "Pods-ReactNative";
107
- productReference = 01A50817A1389F823A6016196ACC6BF1 /* libPods-ReactNative.a */;
108
- productType = "com.apple.product-type.library.static";
109
- };
110
- /* End PBXNativeTarget section */
111
-
112
- /* Begin PBXProject section */
113
- BFDFE7DC352907FC980B868725387E98 /* Project object */ = {
114
- isa = PBXProject;
115
- attributes = {
116
- LastSwiftUpdateCheck = 1100;
117
- LastUpgradeCheck = 1100;
118
- };
119
- buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */;
120
- compatibilityVersion = "Xcode 3.2";
121
- developmentRegion = en;
122
- hasScannedForEncodings = 0;
123
- knownRegions = (
124
- en,
125
- Base,
126
- );
127
- mainGroup = CF1408CF629C7361332E53B88F7BD30C;
128
- productRefGroup = 7B268D4862065D83735E411AABCB1799 /* Products */;
129
- projectDirPath = "";
130
- projectRoot = "";
131
- targets = (
132
- 596E717FE57719548E74A692D33C9E22 /* Pods-ReactNative */,
133
- );
134
- };
135
- /* End PBXProject section */
136
-
137
- /* Begin PBXSourcesBuildPhase section */
138
- E8C4B3F8546D3B7E2B58E7A505A1006B /* Sources */ = {
139
- isa = PBXSourcesBuildPhase;
140
- buildActionMask = 2147483647;
141
- files = (
142
- 9E8C55F8977D10A75940A48A138A0AFE /* Pods-ReactNative-dummy.m in Sources */,
143
- );
144
- runOnlyForDeploymentPostprocessing = 0;
145
- };
146
- /* End PBXSourcesBuildPhase section */
147
-
148
- /* Begin XCBuildConfiguration section */
149
- 07CE986916C51009E26F9F9F8BC685F2 /* Release */ = {
150
- isa = XCBuildConfiguration;
151
- baseConfigurationReference = 2F8BD7D813BBFC9A1ECFDC65BFA4EB65 /* Pods-ReactNative.release.xcconfig */;
152
- buildSettings = {
153
- ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
154
- CLANG_ENABLE_OBJC_WEAK = NO;
155
- "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
156
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
157
- "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
158
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
159
- MACH_O_TYPE = staticlib;
160
- OTHER_LDFLAGS = "";
161
- OTHER_LIBTOOLFLAGS = "";
162
- PODS_ROOT = "$(SRCROOT)";
163
- PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
164
- SDKROOT = iphoneos;
165
- SKIP_INSTALL = YES;
166
- TARGETED_DEVICE_FAMILY = "1,2";
167
- VALIDATE_PRODUCT = YES;
168
- };
169
- name = Release;
170
- };
171
- 7EE7A78859F657F6BEFC651185B43192 /* Release */ = {
172
- isa = XCBuildConfiguration;
173
- buildSettings = {
174
- ALWAYS_SEARCH_USER_PATHS = NO;
175
- CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
176
- CLANG_ANALYZER_NONNULL = YES;
177
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
178
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
179
- CLANG_CXX_LIBRARY = "libc++";
180
- CLANG_ENABLE_MODULES = YES;
181
- CLANG_ENABLE_OBJC_ARC = YES;
182
- CLANG_ENABLE_OBJC_WEAK = YES;
183
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
184
- CLANG_WARN_BOOL_CONVERSION = YES;
185
- CLANG_WARN_COMMA = YES;
186
- CLANG_WARN_CONSTANT_CONVERSION = YES;
187
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
188
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
189
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
190
- CLANG_WARN_EMPTY_BODY = YES;
191
- CLANG_WARN_ENUM_CONVERSION = YES;
192
- CLANG_WARN_INFINITE_RECURSION = YES;
193
- CLANG_WARN_INT_CONVERSION = YES;
194
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
195
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
196
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
197
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
198
- CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
199
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
200
- CLANG_WARN_STRICT_PROTOTYPES = YES;
201
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
202
- CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
203
- CLANG_WARN_UNREACHABLE_CODE = YES;
204
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
205
- COPY_PHASE_STRIP = NO;
206
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
207
- ENABLE_NS_ASSERTIONS = NO;
208
- ENABLE_STRICT_OBJC_MSGSEND = YES;
209
- GCC_C_LANGUAGE_STANDARD = gnu11;
210
- GCC_NO_COMMON_BLOCKS = YES;
211
- GCC_PREPROCESSOR_DEFINITIONS = (
212
- "POD_CONFIGURATION_RELEASE=1",
213
- "$(inherited)",
214
- );
215
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
216
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
217
- GCC_WARN_UNDECLARED_SELECTOR = YES;
218
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
219
- GCC_WARN_UNUSED_FUNCTION = YES;
220
- GCC_WARN_UNUSED_VARIABLE = YES;
221
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
222
- MTL_ENABLE_DEBUG_INFO = NO;
223
- MTL_FAST_MATH = YES;
224
- PRODUCT_NAME = "$(TARGET_NAME)";
225
- STRIP_INSTALLED_PRODUCT = NO;
226
- SWIFT_COMPILATION_MODE = wholemodule;
227
- SWIFT_OPTIMIZATION_LEVEL = "-O";
228
- SWIFT_VERSION = 5.0;
229
- SYMROOT = "${SRCROOT}/../build";
230
- };
231
- name = Release;
232
- };
233
- D299434AB35E7FD6F7921C8EF24742FF /* Debug */ = {
234
- isa = XCBuildConfiguration;
235
- buildSettings = {
236
- ALWAYS_SEARCH_USER_PATHS = NO;
237
- CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
238
- CLANG_ANALYZER_NONNULL = YES;
239
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
240
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
241
- CLANG_CXX_LIBRARY = "libc++";
242
- CLANG_ENABLE_MODULES = YES;
243
- CLANG_ENABLE_OBJC_ARC = YES;
244
- CLANG_ENABLE_OBJC_WEAK = YES;
245
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
246
- CLANG_WARN_BOOL_CONVERSION = YES;
247
- CLANG_WARN_COMMA = YES;
248
- CLANG_WARN_CONSTANT_CONVERSION = YES;
249
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
250
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
251
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
252
- CLANG_WARN_EMPTY_BODY = YES;
253
- CLANG_WARN_ENUM_CONVERSION = YES;
254
- CLANG_WARN_INFINITE_RECURSION = YES;
255
- CLANG_WARN_INT_CONVERSION = YES;
256
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
257
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
258
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
259
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
260
- CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
261
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
262
- CLANG_WARN_STRICT_PROTOTYPES = YES;
263
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
264
- CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
265
- CLANG_WARN_UNREACHABLE_CODE = YES;
266
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
267
- COPY_PHASE_STRIP = NO;
268
- DEBUG_INFORMATION_FORMAT = dwarf;
269
- ENABLE_STRICT_OBJC_MSGSEND = YES;
270
- ENABLE_TESTABILITY = YES;
271
- GCC_C_LANGUAGE_STANDARD = gnu11;
272
- GCC_DYNAMIC_NO_PIC = NO;
273
- GCC_NO_COMMON_BLOCKS = YES;
274
- GCC_OPTIMIZATION_LEVEL = 0;
275
- GCC_PREPROCESSOR_DEFINITIONS = (
276
- "POD_CONFIGURATION_DEBUG=1",
277
- "DEBUG=1",
278
- "$(inherited)",
279
- );
280
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
281
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
282
- GCC_WARN_UNDECLARED_SELECTOR = YES;
283
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
284
- GCC_WARN_UNUSED_FUNCTION = YES;
285
- GCC_WARN_UNUSED_VARIABLE = YES;
286
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
287
- MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
288
- MTL_FAST_MATH = YES;
289
- ONLY_ACTIVE_ARCH = YES;
290
- PRODUCT_NAME = "$(TARGET_NAME)";
291
- STRIP_INSTALLED_PRODUCT = NO;
292
- SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
293
- SWIFT_OPTIMIZATION_LEVEL = "-Onone";
294
- SWIFT_VERSION = 5.0;
295
- SYMROOT = "${SRCROOT}/../build";
296
- };
297
- name = Debug;
298
- };
299
- ED632BBB0E7E0A6D3E30EE1A65FF0A83 /* Debug */ = {
300
- isa = XCBuildConfiguration;
301
- baseConfigurationReference = 2C33F1119B4C5BFECC9324C0F764B631 /* Pods-ReactNative.debug.xcconfig */;
302
- buildSettings = {
303
- ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
304
- CLANG_ENABLE_OBJC_WEAK = NO;
305
- "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
306
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
307
- "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
308
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
309
- MACH_O_TYPE = staticlib;
310
- OTHER_LDFLAGS = "";
311
- OTHER_LIBTOOLFLAGS = "";
312
- PODS_ROOT = "$(SRCROOT)";
313
- PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
314
- SDKROOT = iphoneos;
315
- SKIP_INSTALL = YES;
316
- TARGETED_DEVICE_FAMILY = "1,2";
317
- };
318
- name = Debug;
319
- };
320
- /* End XCBuildConfiguration section */
321
-
322
- /* Begin XCConfigurationList section */
323
- 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = {
324
- isa = XCConfigurationList;
325
- buildConfigurations = (
326
- D299434AB35E7FD6F7921C8EF24742FF /* Debug */,
327
- 7EE7A78859F657F6BEFC651185B43192 /* Release */,
328
- );
329
- defaultConfigurationIsVisible = 0;
330
- defaultConfigurationName = Release;
331
- };
332
- 7728D94732A9241690087065400BB44B /* Build configuration list for PBXNativeTarget "Pods-ReactNative" */ = {
333
- isa = XCConfigurationList;
334
- buildConfigurations = (
335
- ED632BBB0E7E0A6D3E30EE1A65FF0A83 /* Debug */,
336
- 07CE986916C51009E26F9F9F8BC685F2 /* Release */,
337
- );
338
- defaultConfigurationIsVisible = 0;
339
- defaultConfigurationName = Release;
340
- };
341
- /* End XCConfigurationList section */
342
- };
343
- rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */;
344
- }