@primer-io/react-native 0.6.5 → 0.7.0-beta

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 (105) hide show
  1. package/README.md +4 -6
  2. package/android/.gradle/7.0.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  3. package/android/.gradle/7.0.2/executionHistory/executionHistory.lock +0 -0
  4. package/android/.gradle/7.0.2/fileHashes/fileHashes.lock +0 -0
  5. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  6. package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
  7. package/android/.gradle/checksums/checksums.lock +0 -0
  8. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  9. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  10. package/android/build.gradle +1 -1
  11. package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +53 -3
  12. package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +30 -2
  13. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerOnClientSessionActionsRequestRN.kt +42 -0
  14. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerRequestRN.kt +2 -2
  15. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +1 -1
  16. package/android/src/main/java/com/primerioreactnative/utils/PrimerEventQueueRN.kt +0 -2
  17. package/ios/DataModels/PrimerErrorRN.swift +4 -0
  18. package/ios/DataModels/PrimerRequestRN.swift +1 -1
  19. package/ios/DataModels/PrimerSettingsRN.swift +1 -1
  20. package/ios/PrimerRN+PrimerDelegate.swift +61 -3
  21. package/ios/PrimerRN.swift +38 -4
  22. package/ios/ReactNative.m +6 -0
  23. package/lib/commonjs/Primer.js +98 -4
  24. package/lib/commonjs/Primer.js.map +1 -1
  25. package/lib/commonjs/models/client-session-actions-request.js +2 -0
  26. package/lib/commonjs/models/client-session-actions-request.js.map +1 -0
  27. package/lib/module/Primer.js +98 -4
  28. package/lib/module/Primer.js.map +1 -1
  29. package/lib/module/models/client-session-actions-request.js +2 -0
  30. package/lib/module/models/client-session-actions-request.js.map +1 -0
  31. package/lib/typescript/models/client-session-actions-request.d.ts +11 -0
  32. package/lib/typescript/models/primer-callbacks.d.ts +2 -0
  33. package/lib/typescript/models/primer-config.d.ts +3 -1
  34. package/lib/typescript/models/primer-request.d.ts +13 -2
  35. package/package.json +1 -1
  36. package/primer-io-react-native.podspec +1 -1
  37. package/src/Primer.ts +62 -4
  38. package/src/models/client-session-actions-request.ts +13 -0
  39. package/src/models/primer-callbacks.ts +6 -0
  40. package/src/models/primer-config.ts +6 -0
  41. package/src/models/primer-request.ts +18 -2
  42. package/android/.gradle/7.0.2/fileHashes/fileHashes.bin +0 -0
  43. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  44. package/android/.idea/.gitignore +0 -3
  45. package/android/.idea/compiler.xml +0 -6
  46. package/android/.idea/gradle.xml +0 -18
  47. package/android/.idea/jarRepositories.xml +0 -35
  48. package/android/.idea/libraries/Gradle__androidx_activity_activity_1_2_0_beta01_aar.xml +0 -16
  49. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml +0 -13
  50. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_2_0_aar.xml +0 -16
  51. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_2_0_aar.xml +0 -13
  52. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +0 -11
  53. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml +0 -13
  54. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +0 -11
  55. package/android/.idea/libraries/Gradle__androidx_core_core_1_3_2_aar.xml +0 -16
  56. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +0 -13
  57. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +0 -13
  58. package/android/.idea/libraries/Gradle__androidx_databinding_viewbinding_7_0_1_aar.xml +0 -13
  59. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +0 -16
  60. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_2_5_aar.xml +0 -16
  61. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +0 -13
  62. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_3_1.xml +0 -11
  63. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_3_1_aar.xml +0 -13
  64. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml +0 -13
  65. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_3_1_aar.xml +0 -13
  66. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_3_1_aar.xml +0 -13
  67. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml +0 -13
  68. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +0 -13
  69. package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml +0 -13
  70. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +0 -16
  71. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +0 -13
  72. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +0 -13
  73. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml +0 -13
  74. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +0 -13
  75. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_0_3.xml +0 -13
  76. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_0_0_aar.xml +0 -15
  77. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_0_0_aar.xml +0 -18
  78. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_0_0_aar.xml +0 -18
  79. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_0_0_aar.xml +0 -18
  80. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_0_0_aar.xml +0 -18
  81. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_0_0_aar.xml +0 -15
  82. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_0_0_aar.xml +0 -15
  83. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_0_0_aar.xml +0 -15
  84. package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2.xml +0 -13
  85. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_63_4_aar.xml +0 -18
  86. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_9_0.xml +0 -13
  87. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_9_0.xml +0 -13
  88. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_9_0_aar.xml +0 -15
  89. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_14_1.xml +0 -13
  90. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +0 -13
  91. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_12.xml +0 -13
  92. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_12_12.xml +0 -13
  93. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0.xml +0 -13
  94. package/android/.idea/libraries/Gradle__io_primer_android_1_0_0_aar.xml +0 -15
  95. package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +0 -13
  96. package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +0 -13
  97. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_5_21.xml +0 -13
  98. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_5_21.xml +0 -13
  99. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_serialization_core_jvm_1_2_2.xml +0 -13
  100. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_serialization_json_jvm_1_2_2.xml +0 -13
  101. package/android/.idea/misc.xml +0 -9
  102. package/android/.idea/modules/android.iml +0 -126
  103. package/android/.idea/modules.xml +0 -8
  104. package/android/.idea/vcs.xml +0 -6
  105. package/android/local.properties +0 -8
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=client-session-actions-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -46,6 +46,8 @@ function configure(config) {
46
46
  configureOnDismiss(config.onDismiss);
47
47
  configureOnError(config.onError);
48
48
  configureOnTokenizeSuccess(config.onTokenizeSuccess);
49
+ configureOnClientSessionActions(config.onClientSessionActions);
50
+ configureOnResumeSuccess(config.onResumeSuccess);
49
51
  configureOnSavedPaymentInstrumentsFetched(config.onSavedPaymentInstrumentsFetched);
50
52
  }
51
53
 
@@ -77,12 +79,104 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
77
79
  try {
78
80
  const parsedData = JSON.parse(data);
79
81
  callback(parsedData, {
80
- resumeWithError: () => resume({
81
- error: true,
82
- token: ''
82
+ handleError: error => resume({
83
+ error,
84
+ token: null
85
+ }),
86
+ handleSuccess: () => resume({
87
+ error: null,
88
+ token: null
89
+ }),
90
+ handleNewClientToken: token => resume({
91
+ error: null,
92
+ token
93
+ }),
94
+ // deprecated
95
+ resumeWithError: error => resume({
96
+ error,
97
+ token: null
98
+ }),
99
+ resumeWithSuccess: token => resume({
100
+ error: null,
101
+ token
102
+ })
103
+ });
104
+ } catch (e) {
105
+ console.log('failed to parse json', e);
106
+ }
107
+ });
108
+ }
109
+
110
+ function actionResume(request) {
111
+ const data = JSON.stringify(request);
112
+ NativeModule.actionResume(data);
113
+ }
114
+
115
+ function configureOnClientSessionActions(callback = (_, __) => {
116
+ NativeModule.configureOnClientSessionActions(___ => {
117
+ actionResume({
118
+ error: null,
119
+ token: null
120
+ });
121
+ configureOnClientSessionActions(callback);
122
+ });
123
+ }) {
124
+ NativeModule.configureOnClientSessionActions(data => {
125
+ try {
126
+ const parsedData = JSON.parse(data);
127
+ callback(parsedData, {
128
+ handleError: error => actionResume({
129
+ error,
130
+ token: null
131
+ }),
132
+ handleSuccess: () => actionResume({
133
+ error: null,
134
+ token: null
135
+ }),
136
+ handleNewClientToken: token => actionResume({
137
+ error: null,
138
+ token
139
+ }),
140
+ // deprecated
141
+ resumeWithError: error => actionResume({
142
+ error,
143
+ token: null
144
+ }),
145
+ resumeWithSuccess: token => actionResume({
146
+ error: null,
147
+ token
148
+ })
149
+ });
150
+ configureOnClientSessionActions(callback);
151
+ } catch (e) {
152
+ console.log('[OnClientSessionActions]', 'failed to parse json', e);
153
+ }
154
+ });
155
+ }
156
+
157
+ function configureOnResumeSuccess(callback = (_, __) => {}) {
158
+ NativeModule.configureOnResumeSuccess(paymentMethodToken => {
159
+ try {
160
+ callback(paymentMethodToken, {
161
+ handleError: error => resume({
162
+ error,
163
+ token: null
164
+ }),
165
+ handleSuccess: () => resume({
166
+ error: null,
167
+ token: null
168
+ }),
169
+ handleNewClientToken: token => resume({
170
+ error: null,
171
+ token
172
+ }),
173
+ // deprecated
174
+ resumeWithError: error => resume({
175
+ error,
176
+ token: null
83
177
  }),
84
178
  resumeWithSuccess: token => resume({
85
- error: false,
179
+ error: null,
86
180
  token
87
181
  })
88
182
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Primer.ts"],"names":["NativeModules","parseCallback","PrimerRN","NativeModule","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","fetchSavedPaymentInstruments","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnSavedPaymentInstrumentsFetched","onSavedPaymentInstrumentsFetched","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","resumeWithError","error","resumeWithSuccess","e","console","log","configureOnPrimerError"],"mappings":"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","sourcesContent":["import { NativeModules } from 'react-native';\nimport type { PaymentInstrumentToken } from './models/payment-instrument-token';\nimport type { IPrimer } from './models/primer';\nimport type {\n OnDismissCallback,\n OnPrimerErrorCallback,\n OnSavedPaymentInstrumentsFetchedCallback,\n OnTokenAddedToVaultCallback,\n OnTokenizeSuccessCallback,\n} from './models/primer-callbacks';\nimport type { PrimerConfig } from './models/primer-config';\nimport type { PrimerError } from './models/primer-error';\nimport type {\n PrimerIntent,\n PrimerPaymentMethodIntent,\n} from './models/primer-intent';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\nimport { parseCallback } from './utils';\n\nconst { PrimerRN: NativeModule } = NativeModules;\n\nexport const PrimerNativeMapping: IPrimer = {\n showUniversalCheckout(token: String, config: PrimerConfig): void {\n configureIntent({ vault: false, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showVaultManager(token: String, config: PrimerConfig): void {\n configureIntent({ vault: true, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showPaymentMethod(\n token: String,\n intent: PrimerPaymentMethodIntent,\n config: PrimerConfig\n ): void {\n configureIntent(intent);\n configure(config);\n NativeModule.initialize(token);\n },\n\n fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {\n configure(config);\n NativeModule.fetchSavedPaymentInstruments(token);\n },\n\n dispose(): void {\n NativeModule.dispose();\n },\n};\n\nfunction configure(config: PrimerConfig): void {\n configureTheme(config.theme);\n configureSettings(config.settings);\n configureOnVaultSuccess(config.onTokenAddedToVault);\n configureOnDismiss(config.onDismiss);\n configureOnError(config.onError);\n configureOnTokenizeSuccess(config.onTokenizeSuccess);\n configureOnSavedPaymentInstrumentsFetched(\n config.onSavedPaymentInstrumentsFetched\n );\n}\n\nfunction configureSettings(settings: PrimerSettings = {}): void {\n const data = JSON.stringify(settings);\n NativeModule.configureSettings(data);\n}\n\nfunction configureTheme(theme: PrimerTheme = {}): void {\n const data = JSON.stringify(theme);\n NativeModule.configureTheme(data);\n}\n\nfunction configureIntent(\n intent: PrimerIntent = { vault: false, paymentMethod: 'Any' }\n): void {\n const data = JSON.stringify(intent);\n NativeModule.configureIntent(data);\n}\n\nfunction resume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.resume(data);\n}\n\nfunction configureOnTokenizeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnTokenizeSuccess((data: any) => {\n try {\n const parsedData = JSON.parse(data) as PaymentInstrumentToken;\n callback(parsedData, {\n resumeWithError: () => resume({ error: true, token: '' }),\n resumeWithSuccess: (token) => resume({ error: false, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnVaultSuccess(\n callback: OnTokenAddedToVaultCallback = (_) => {}\n) {\n NativeModule.configureOnVaultSuccess((data: any) => {\n parseCallback<PaymentInstrumentToken>(data, callback);\n });\n}\n\nfunction configureOnDismiss(callback: OnDismissCallback = () => {}) {\n NativeModule.configureOnDismiss((_: any) => callback());\n}\n\nfunction configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {\n NativeModule.configureOnPrimerError((data: any) => {\n parseCallback<PrimerError>(data, callback);\n });\n}\n\nfunction configureOnSavedPaymentInstrumentsFetched(\n callback: OnSavedPaymentInstrumentsFetchedCallback = (_) => {}\n) {\n NativeModule.configureOnSavedPaymentInstrumentsFetched((data: any) => {\n parseCallback<PaymentInstrumentToken[]>(data, callback);\n });\n}\n\ninterface ResumeRequest {\n error: boolean;\n token?: string;\n}\n"]}
1
+ {"version":3,"sources":["Primer.ts"],"names":["NativeModules","parseCallback","PrimerRN","NativeModule","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","fetchSavedPaymentInstruments","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","configureOnSavedPaymentInstrumentsFetched","onSavedPaymentInstrumentsFetched","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","handleError","error","handleSuccess","handleNewClientToken","resumeWithError","resumeWithSuccess","e","console","log","actionResume","___","paymentMethodToken","configureOnPrimerError"],"mappings":"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","sourcesContent":["import { NativeModules } from 'react-native';\nimport type { ClientSessionActionsRequest } from './models/client-session-actions-request';\nimport type { PaymentInstrumentToken } from './models/payment-instrument-token';\nimport type { IPrimer } from './models/primer';\nimport type {\n OnClientSessionActionsCallback,\n OnDismissCallback,\n OnPrimerErrorCallback,\n OnSavedPaymentInstrumentsFetchedCallback,\n OnTokenAddedToVaultCallback,\n OnTokenizeSuccessCallback,\n} from './models/primer-callbacks';\nimport type { PrimerConfig } from './models/primer-config';\nimport type { PrimerError } from './models/primer-error';\nimport type {\n PrimerIntent,\n PrimerPaymentMethodIntent,\n} from './models/primer-intent';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\nimport { parseCallback } from './utils';\n\nconst { PrimerRN: NativeModule } = NativeModules;\n\nexport const PrimerNativeMapping: IPrimer = {\n showUniversalCheckout(token: String, config: PrimerConfig): void {\n configureIntent({ vault: false, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showVaultManager(token: String, config: PrimerConfig): void {\n configureIntent({ vault: true, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showPaymentMethod(\n token: String,\n intent: PrimerPaymentMethodIntent,\n config: PrimerConfig\n ): void {\n configureIntent(intent);\n configure(config);\n NativeModule.initialize(token);\n },\n\n fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {\n configure(config);\n NativeModule.fetchSavedPaymentInstruments(token);\n },\n\n dispose(): void {\n NativeModule.dispose();\n },\n};\n\nfunction configure(config: PrimerConfig): void {\n configureTheme(config.theme);\n configureSettings(config.settings);\n configureOnVaultSuccess(config.onTokenAddedToVault);\n configureOnDismiss(config.onDismiss);\n configureOnError(config.onError);\n configureOnTokenizeSuccess(config.onTokenizeSuccess);\n configureOnClientSessionActions(config.onClientSessionActions);\n configureOnResumeSuccess(config.onResumeSuccess);\n configureOnSavedPaymentInstrumentsFetched(\n config.onSavedPaymentInstrumentsFetched\n );\n}\n\nfunction configureSettings(settings: PrimerSettings = {}): void {\n const data = JSON.stringify(settings);\n NativeModule.configureSettings(data);\n}\n\nfunction configureTheme(theme: PrimerTheme = {}): void {\n const data = JSON.stringify(theme);\n NativeModule.configureTheme(data);\n}\n\nfunction configureIntent(\n intent: PrimerIntent = { vault: false, paymentMethod: 'Any' }\n): void {\n const data = JSON.stringify(intent);\n NativeModule.configureIntent(data);\n}\n\nfunction resume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.resume(data);\n}\n\nfunction configureOnTokenizeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnTokenizeSuccess((data: any) => {\n try {\n const parsedData = JSON.parse(data) as PaymentInstrumentToken;\n callback(parsedData, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction actionResume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.actionResume(data);\n}\n\nfunction configureOnClientSessionActions(\n callback: OnClientSessionActionsCallback = (_, __) => {\n NativeModule.configureOnClientSessionActions((___: any) => {\n actionResume({ error: null, token: null });\n configureOnClientSessionActions(callback);\n });\n }\n) {\n NativeModule.configureOnClientSessionActions((data: any) => {\n try {\n const parsedData = JSON.parse(data) as ClientSessionActionsRequest;\n callback(parsedData, {\n handleError: (error) => actionResume({ error, token: null }),\n handleSuccess: () => actionResume({ error: null, token: null }),\n handleNewClientToken: (token) => actionResume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => actionResume({ error, token: null }),\n resumeWithSuccess: (token) => actionResume({ error: null, token }),\n });\n configureOnClientSessionActions(callback);\n } catch (e) {\n console.log('[OnClientSessionActions]', 'failed to parse json', e);\n }\n });\n}\n\nfunction configureOnResumeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnResumeSuccess((paymentMethodToken: any) => {\n try {\n callback(paymentMethodToken, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnVaultSuccess(\n callback: OnTokenAddedToVaultCallback = (_) => {}\n) {\n NativeModule.configureOnVaultSuccess((data: any) => {\n parseCallback<PaymentInstrumentToken>(data, callback);\n });\n}\n\nfunction configureOnDismiss(callback: OnDismissCallback = () => {}) {\n NativeModule.configureOnDismiss((_: any) => callback());\n}\n\nfunction configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {\n NativeModule.configureOnPrimerError((data: any) => {\n parseCallback<PrimerError>(data, callback);\n });\n}\n\nfunction configureOnSavedPaymentInstrumentsFetched(\n callback: OnSavedPaymentInstrumentsFetchedCallback = (_) => {}\n) {\n NativeModule.configureOnSavedPaymentInstrumentsFetched((data: any) => {\n parseCallback<PaymentInstrumentToken[]>(data, callback);\n });\n}\n\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=client-session-actions-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -0,0 +1,11 @@
1
+ export declare type ClientSessionActionsRequest = IClientSessionActionsRequest;
2
+ interface IClientSessionActionsRequest {
3
+ actions: ClientSessionAction[];
4
+ }
5
+ declare type ClientSessionAction = IClientSessionAction;
6
+ interface IClientSessionAction {
7
+ type: 'SET_PAYMENT_METHOD' | 'UNSET_PAYMENT_METHOD';
8
+ paymentMethodType?: string;
9
+ network?: string;
10
+ }
11
+ export {};
@@ -1,8 +1,10 @@
1
1
  import type { ActionRequest } from './action-request';
2
+ import type { ClientSessionActionsRequest } from './client-session-actions-request';
2
3
  import type { PaymentInstrumentToken } from './payment-instrument-token';
3
4
  import type { PrimerError } from './primer-error';
4
5
  import type { PrimerResumeHandler } from './primer-request';
5
6
  export declare type OnTokenizeSuccessCallback = (req: PaymentInstrumentToken, completion: PrimerResumeHandler) => void;
7
+ export declare type OnClientSessionActionsCallback = (req: ClientSessionActionsRequest, completion: PrimerResumeHandler) => void;
6
8
  export declare type OnDataChangeCallback = (req: ActionRequest, completion: PrimerResumeHandler) => void;
7
9
  export declare type OnTokenAddedToVaultCallback = (data: PaymentInstrumentToken) => void;
8
10
  export declare type OnDismissCallback = () => void;
@@ -1,4 +1,4 @@
1
- import type { OnDismissCallback, OnPrimerErrorCallback, OnSavedPaymentInstrumentsFetchedCallback, OnTokenAddedToVaultCallback, OnTokenizeSuccessCallback } from './primer-callbacks';
1
+ import type { OnClientSessionActionsCallback, OnDismissCallback, OnPrimerErrorCallback, OnSavedPaymentInstrumentsFetchedCallback, OnTokenAddedToVaultCallback, OnTokenizeSuccessCallback } from './primer-callbacks';
2
2
  import type { PrimerSettings } from './primer-settings';
3
3
  import type { PrimerTheme } from './primer-theme';
4
4
  export declare type PrimerConfig = IPrimerConfig;
@@ -15,6 +15,7 @@ interface IPrimerConfig {
15
15
  * Use this callback to grab a Primer payment instrument token and complete a payment.
16
16
  */
17
17
  onTokenizeSuccess?: OnTokenizeSuccessCallback;
18
+ onResumeSuccess?: OnTokenizeSuccessCallback;
18
19
  /**
19
20
  * Use this callback to perform some action when a payment instrument was saved to Primer.
20
21
  */
@@ -31,5 +32,6 @@ interface IPrimerConfig {
31
32
  * Use this to receive saved payment instruments fetch result.
32
33
  */
33
34
  onSavedPaymentInstrumentsFetched?: OnSavedPaymentInstrumentsFetchedCallback;
35
+ onClientSessionActions?: OnClientSessionActionsCallback;
34
36
  }
35
37
  export {};
@@ -1,6 +1,17 @@
1
1
  export declare type PrimerResumeHandler = IPrimerResumeHandler;
2
2
  interface IPrimerResumeHandler {
3
- resumeWithError: (error?: string) => void;
4
- resumeWithSuccess: (clientToken?: string) => void;
3
+ handleError: (error: string) => void;
4
+ 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;
5
16
  }
6
17
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer-io/react-native",
3
- "version": "0.6.5",
3
+ "version": "0.7.0-beta",
4
4
  "description": "Primer SDK for RN",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -18,5 +18,5 @@ Pod::Spec.new do |s|
18
18
 
19
19
 
20
20
  s.dependency "React-Core"
21
- s.dependency "PrimerSDK", "1.15.0"
21
+ s.dependency "PrimerSDK", "1.19.0-beta.3"
22
22
  end
package/src/Primer.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  import { NativeModules } from 'react-native';
2
+ import type { ClientSessionActionsRequest } from './models/client-session-actions-request';
2
3
  import type { PaymentInstrumentToken } from './models/payment-instrument-token';
3
4
  import type { IPrimer } from './models/primer';
4
5
  import type {
6
+ OnClientSessionActionsCallback,
5
7
  OnDismissCallback,
6
8
  OnPrimerErrorCallback,
7
9
  OnSavedPaymentInstrumentsFetchedCallback,
@@ -60,6 +62,8 @@ function configure(config: PrimerConfig): void {
60
62
  configureOnDismiss(config.onDismiss);
61
63
  configureOnError(config.onError);
62
64
  configureOnTokenizeSuccess(config.onTokenizeSuccess);
65
+ configureOnClientSessionActions(config.onClientSessionActions);
66
+ configureOnResumeSuccess(config.onResumeSuccess);
63
67
  configureOnSavedPaymentInstrumentsFetched(
64
68
  config.onSavedPaymentInstrumentsFetched
65
69
  );
@@ -94,8 +98,62 @@ function configureOnTokenizeSuccess(
94
98
  try {
95
99
  const parsedData = JSON.parse(data) as PaymentInstrumentToken;
96
100
  callback(parsedData, {
97
- resumeWithError: () => resume({ error: true, token: '' }),
98
- resumeWithSuccess: (token) => resume({ error: false, token }),
101
+ handleError: (error) => resume({ error, token: null }),
102
+ handleSuccess: () => resume({ error: null, token: null }),
103
+ handleNewClientToken: (token) => resume({ error: null, token }),
104
+ // deprecated
105
+ resumeWithError: (error) => resume({ error, token: null }),
106
+ resumeWithSuccess: (token) => resume({ error: null, token }),
107
+ });
108
+ } catch (e) {
109
+ console.log('failed to parse json', e);
110
+ }
111
+ });
112
+ }
113
+
114
+ function actionResume(request: ResumeRequest) {
115
+ const data = JSON.stringify(request);
116
+ NativeModule.actionResume(data);
117
+ }
118
+
119
+ function configureOnClientSessionActions(
120
+ callback: OnClientSessionActionsCallback = (_, __) => {
121
+ NativeModule.configureOnClientSessionActions((___: any) => {
122
+ actionResume({ error: null, token: null });
123
+ configureOnClientSessionActions(callback);
124
+ });
125
+ }
126
+ ) {
127
+ NativeModule.configureOnClientSessionActions((data: any) => {
128
+ try {
129
+ const parsedData = JSON.parse(data) as ClientSessionActionsRequest;
130
+ callback(parsedData, {
131
+ handleError: (error) => actionResume({ error, token: null }),
132
+ handleSuccess: () => actionResume({ error: null, token: null }),
133
+ handleNewClientToken: (token) => actionResume({ error: null, token }),
134
+ // deprecated
135
+ resumeWithError: (error) => actionResume({ error, token: null }),
136
+ resumeWithSuccess: (token) => actionResume({ error: null, token }),
137
+ });
138
+ configureOnClientSessionActions(callback);
139
+ } catch (e) {
140
+ console.log('[OnClientSessionActions]', 'failed to parse json', e);
141
+ }
142
+ });
143
+ }
144
+
145
+ function configureOnResumeSuccess(
146
+ callback: OnTokenizeSuccessCallback = (_, __) => {}
147
+ ) {
148
+ NativeModule.configureOnResumeSuccess((paymentMethodToken: any) => {
149
+ try {
150
+ callback(paymentMethodToken, {
151
+ handleError: (error) => resume({ error, token: null }),
152
+ handleSuccess: () => resume({ error: null, token: null }),
153
+ handleNewClientToken: (token) => resume({ error: null, token }),
154
+ // deprecated
155
+ resumeWithError: (error) => resume({ error, token: null }),
156
+ resumeWithSuccess: (token) => resume({ error: null, token }),
99
157
  });
100
158
  } catch (e) {
101
159
  console.log('failed to parse json', e);
@@ -130,6 +188,6 @@ function configureOnSavedPaymentInstrumentsFetched(
130
188
  }
131
189
 
132
190
  interface ResumeRequest {
133
- error: boolean;
134
- token?: string;
191
+ error: string | null;
192
+ token: string | null;
135
193
  }
@@ -0,0 +1,13 @@
1
+ export type ClientSessionActionsRequest = IClientSessionActionsRequest;
2
+
3
+ interface IClientSessionActionsRequest {
4
+ actions: ClientSessionAction[];
5
+ }
6
+
7
+ type ClientSessionAction = IClientSessionAction;
8
+
9
+ interface IClientSessionAction {
10
+ type: 'SET_PAYMENT_METHOD' | 'UNSET_PAYMENT_METHOD';
11
+ paymentMethodType?: string;
12
+ network?: string;
13
+ }
@@ -1,4 +1,5 @@
1
1
  import type { ActionRequest } from './action-request';
2
+ import type { ClientSessionActionsRequest } from './client-session-actions-request';
2
3
  import type { PaymentInstrumentToken } from './payment-instrument-token';
3
4
  import type { PrimerError } from './primer-error';
4
5
  import type { PrimerResumeHandler } from './primer-request';
@@ -8,6 +9,11 @@ export type OnTokenizeSuccessCallback = (
8
9
  completion: PrimerResumeHandler
9
10
  ) => void;
10
11
 
12
+ export type OnClientSessionActionsCallback = (
13
+ req: ClientSessionActionsRequest,
14
+ completion: PrimerResumeHandler
15
+ ) => void;
16
+
11
17
  export type OnDataChangeCallback = (
12
18
  req: ActionRequest,
13
19
  completion: PrimerResumeHandler
@@ -1,4 +1,5 @@
1
1
  import type {
2
+ OnClientSessionActionsCallback,
2
3
  OnDismissCallback,
3
4
  OnPrimerErrorCallback,
4
5
  OnSavedPaymentInstrumentsFetchedCallback,
@@ -22,6 +23,9 @@ interface IPrimerConfig {
22
23
  * Use this callback to grab a Primer payment instrument token and complete a payment.
23
24
  */
24
25
  onTokenizeSuccess?: OnTokenizeSuccessCallback;
26
+
27
+ onResumeSuccess?: OnTokenizeSuccessCallback;
28
+
25
29
  /**
26
30
  * Use this callback to perform some action when a payment instrument was saved to Primer.
27
31
  */
@@ -38,4 +42,6 @@ interface IPrimerConfig {
38
42
  * Use this to receive saved payment instruments fetch result.
39
43
  */
40
44
  onSavedPaymentInstrumentsFetched?: OnSavedPaymentInstrumentsFetchedCallback;
45
+
46
+ onClientSessionActions?: OnClientSessionActionsCallback;
41
47
  }
@@ -1,5 +1,21 @@
1
1
  export type PrimerResumeHandler = IPrimerResumeHandler;
2
+
2
3
  interface IPrimerResumeHandler {
3
- resumeWithError: (error?: string) => void;
4
- resumeWithSuccess: (clientToken?: string) => void;
4
+ handleError: (error: string) => void;
5
+
6
+ handleSuccess: () => void;
7
+
8
+ handleNewClientToken: (token: string) => void;
9
+
10
+ /**
11
+ * @deprecated This method should not be used
12
+ * Please use handleError instead.
13
+ */
14
+ resumeWithError: (error: string | null) => void;
15
+
16
+ /**
17
+ * @deprecated This method should not be used.
18
+ * Please use handleSuccess or handleNewClientToken instead.
19
+ */
20
+ resumeWithSuccess: (clientToken: string | null) => void;
5
21
  }
@@ -1,3 +0,0 @@
1
- # Default ignored files
2
- /shelf/
3
- /workspace.xml
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="CompilerConfiguration">
4
- <bytecodeTargetLevel target="1.8" />
5
- </component>
6
- </project>
@@ -1,18 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="GradleSettings">
4
- <option name="linkedExternalProjectsSettings">
5
- <GradleProjectSettings>
6
- <option name="testRunner" value="GRADLE" />
7
- <option name="distributionType" value="DEFAULT_WRAPPED" />
8
- <option name="externalProjectPath" value="$PROJECT_DIR$" />
9
- <option name="modules">
10
- <set>
11
- <option value="$PROJECT_DIR$" />
12
- </set>
13
- </option>
14
- <option name="resolveModulePerSourceSet" value="false" />
15
- </GradleProjectSettings>
16
- </option>
17
- </component>
18
- </project>
@@ -1,35 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="RemoteRepositoriesConfiguration">
4
- <remote-repository>
5
- <option name="id" value="central" />
6
- <option name="name" value="Maven Central repository" />
7
- <option name="url" value="https://repo1.maven.org/maven2" />
8
- </remote-repository>
9
- <remote-repository>
10
- <option name="id" value="jboss.community" />
11
- <option name="name" value="JBoss Community repository" />
12
- <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
13
- </remote-repository>
14
- <remote-repository>
15
- <option name="id" value="MavenRepo" />
16
- <option name="name" value="MavenRepo" />
17
- <option name="url" value="https://repo.maven.apache.org/maven2/" />
18
- </remote-repository>
19
- <remote-repository>
20
- <option name="id" value="React Native sources" />
21
- <option name="name" value="React Native sources" />
22
- <option name="url" value="file:$PROJECT_DIR$/../node_modules/react-native/android/" />
23
- </remote-repository>
24
- <remote-repository>
25
- <option name="id" value="BintrayJCenter" />
26
- <option name="name" value="BintrayJCenter" />
27
- <option name="url" value="https://jcenter.bintray.com/" />
28
- </remote-repository>
29
- <remote-repository>
30
- <option name="id" value="Google" />
31
- <option name="name" value="Google" />
32
- <option name="url" value="https://dl.google.com/dl/android/maven2/" />
33
- </remote-repository>
34
- </component>
35
- </project>
@@ -1,16 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.activity:activity:1.2.0-beta01@aar">
3
- <ANNOTATIONS>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/864de0e33ba115135d835318f8f1ae62/transformed/activity-1.2.0-beta01/annotations.zip!/" />
5
- </ANNOTATIONS>
6
- <CLASSES>
7
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/864de0e33ba115135d835318f8f1ae62/transformed/activity-1.2.0-beta01/jars/classes.jar!/" />
8
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/864de0e33ba115135d835318f8f1ae62/transformed/activity-1.2.0-beta01/res" />
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/864de0e33ba115135d835318f8f1ae62/transformed/activity-1.2.0-beta01/AndroidManifest.xml" />
10
- </CLASSES>
11
- <JAVADOC />
12
- <SOURCES>
13
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.2.0-beta01/5dd9f66a6a38e9afd8a3a530d03849dd827f252b/activity-1.2.0-beta01-sources.jar!/" />
14
- </SOURCES>
15
- </library>
16
- </component>
@@ -1,13 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.annotation:annotation:1.1.0">
3
- <CLASSES>
4
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.1.0/e3a6fb2f40e3a3842e6b7472628ba4ce416ea4c8/annotation-1.1.0.jar!/" />
5
- </CLASSES>
6
- <JAVADOC>
7
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.1.0/408af38ec57369afe3fd6466e1c4bfdd5f15fc92/annotation-1.1.0-javadoc.jar!/" />
8
- </JAVADOC>
9
- <SOURCES>
10
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.1.0/8b7bdc00eb4d998bfbc76767b098620990f2a805/annotation-1.1.0-sources.jar!/" />
11
- </SOURCES>
12
- </library>
13
- </component>
@@ -1,16 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.appcompat:appcompat:1.2.0@aar">
3
- <ANNOTATIONS>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/c7854284bad2104911fb6004cef746df/transformed/appcompat-1.2.0/annotations.zip!/" />
5
- </ANNOTATIONS>
6
- <CLASSES>
7
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/c7854284bad2104911fb6004cef746df/transformed/appcompat-1.2.0/jars/classes.jar!/" />
8
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/c7854284bad2104911fb6004cef746df/transformed/appcompat-1.2.0/res" />
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/c7854284bad2104911fb6004cef746df/transformed/appcompat-1.2.0/AndroidManifest.xml" />
10
- </CLASSES>
11
- <JAVADOC />
12
- <SOURCES>
13
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.appcompat/appcompat/1.2.0/13e8ff89631c2e101eb6bddd12c2fb4bbd74b15d/appcompat-1.2.0-sources.jar!/" />
14
- </SOURCES>
15
- </library>
16
- </component>
@@ -1,13 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.appcompat:appcompat-resources:1.2.0@aar">
3
- <CLASSES>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/c42e42797d798ec293a53444811cacdd/transformed/appcompat-resources-1.2.0/jars/classes.jar!/" />
5
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/c42e42797d798ec293a53444811cacdd/transformed/appcompat-resources-1.2.0/res" />
6
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/c42e42797d798ec293a53444811cacdd/transformed/appcompat-resources-1.2.0/AndroidManifest.xml" />
7
- </CLASSES>
8
- <JAVADOC />
9
- <SOURCES>
10
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.appcompat/appcompat-resources/1.2.0/9c8b428f65a329eeff4f6abe14a44931b12ef3f2/appcompat-resources-1.2.0-sources.jar!/" />
11
- </SOURCES>
12
- </library>
13
- </component>
@@ -1,11 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.arch.core:core-common:2.1.0">
3
- <CLASSES>
4
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.1.0/b3152fc64428c9354344bd89848ecddc09b6f07e/core-common-2.1.0.jar!/" />
5
- </CLASSES>
6
- <JAVADOC />
7
- <SOURCES>
8
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.1.0/80ac2d7c8e6400ce2fbc663cd1a7e1cbef38c4b8/core-common-2.1.0-sources.jar!/" />
9
- </SOURCES>
10
- </library>
11
- </component>
@@ -1,13 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.arch.core:core-runtime:2.1.0@aar">
3
- <CLASSES>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/df890b9b1a9fee5e7bb39ae85560fcbc/transformed/core-runtime-2.1.0/jars/classes.jar!/" />
5
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/df890b9b1a9fee5e7bb39ae85560fcbc/transformed/core-runtime-2.1.0/res" />
6
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/df890b9b1a9fee5e7bb39ae85560fcbc/transformed/core-runtime-2.1.0/AndroidManifest.xml" />
7
- </CLASSES>
8
- <JAVADOC />
9
- <SOURCES>
10
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-runtime/2.1.0/f19886651c9946b39f83d8c184fd0e2ce9f43c16/core-runtime-2.1.0-sources.jar!/" />
11
- </SOURCES>
12
- </library>
13
- </component>
@@ -1,11 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.collection:collection:1.1.0">
3
- <CLASSES>
4
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.1.0/1f27220b47669781457de0d600849a5de0e89909/collection-1.1.0.jar!/" />
5
- </CLASSES>
6
- <JAVADOC />
7
- <SOURCES>
8
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.1.0/bae67b0019fbb38498198fcc2d0282a340b71c5b/collection-1.1.0-sources.jar!/" />
9
- </SOURCES>
10
- </library>
11
- </component>
@@ -1,16 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: androidx.core:core:1.3.2@aar">
3
- <ANNOTATIONS>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/500513833b1e4fcadb13f7314ba36c2c/transformed/core-1.3.2/annotations.zip!/" />
5
- </ANNOTATIONS>
6
- <CLASSES>
7
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/500513833b1e4fcadb13f7314ba36c2c/transformed/core-1.3.2/jars/classes.jar!/" />
8
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/500513833b1e4fcadb13f7314ba36c2c/transformed/core-1.3.2/res" />
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/500513833b1e4fcadb13f7314ba36c2c/transformed/core-1.3.2/AndroidManifest.xml" />
10
- </CLASSES>
11
- <JAVADOC />
12
- <SOURCES>
13
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/androidx.core/core/1.3.2/71dd65cb480e8e7f9110edb28eb4930d709e551b/core-1.3.2-sources.jar!/" />
14
- </SOURCES>
15
- </library>
16
- </component>