@primer-io/react-native 0.6.6 → 0.7.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 (108) hide show
  1. package/README.md +4 -6
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +44 -2
  4. package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +19 -1
  5. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerOnClientSessionActionsRequestRN.kt +42 -0
  6. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerRequestRN.kt +1 -1
  7. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerSettingsRN.kt +1 -1
  8. package/android/src/main/java/com/primerioreactnative/utils/PrimerEventQueueRN.kt +0 -2
  9. package/ios/DataModels/PrimerErrorRN.swift +4 -0
  10. package/ios/DataModels/PrimerRequestRN.swift +1 -1
  11. package/ios/DataModels/PrimerSettingsRN.swift +1 -1
  12. package/ios/PrimerRN+PrimerDelegate.swift +51 -7
  13. package/ios/PrimerRN.swift +32 -4
  14. package/ios/ReactNative.m +4 -0
  15. package/lib/commonjs/Primer.js +85 -11
  16. package/lib/commonjs/Primer.js.map +1 -1
  17. package/lib/commonjs/models/client-session-actions-request.js +2 -0
  18. package/lib/commonjs/models/client-session-actions-request.js.map +1 -0
  19. package/lib/module/Primer.js +85 -11
  20. package/lib/module/Primer.js.map +1 -1
  21. package/lib/module/models/client-session-actions-request.js +2 -0
  22. package/lib/module/models/client-session-actions-request.js.map +1 -0
  23. package/lib/typescript/models/client-session-actions-request.d.ts +11 -0
  24. package/lib/typescript/models/primer-callbacks.d.ts +2 -0
  25. package/lib/typescript/models/primer-config.d.ts +2 -1
  26. package/lib/typescript/models/primer-request.d.ts +11 -0
  27. package/package.json +1 -1
  28. package/primer-io-react-native.podspec +1 -1
  29. package/src/Primer.ts +49 -7
  30. package/src/models/client-session-actions-request.ts +13 -0
  31. package/src/models/primer-callbacks.ts +6 -0
  32. package/src/models/primer-config.ts +3 -0
  33. package/src/models/primer-request.ts +16 -0
  34. package/android/.gradle/7.0.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  35. package/android/.gradle/7.0.2/dependencies-accessors/gc.properties +0 -0
  36. package/android/.gradle/7.0.2/fileChanges/last-build.bin +0 -0
  37. package/android/.gradle/7.0.2/fileHashes/fileHashes.bin +0 -0
  38. package/android/.gradle/7.0.2/fileHashes/fileHashes.lock +0 -0
  39. package/android/.gradle/7.0.2/gc.properties +0 -0
  40. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  41. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  42. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  43. package/android/.gradle/checksums/checksums.lock +0 -0
  44. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  45. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  46. package/android/.gradle/vcs-1/gc.properties +0 -0
  47. package/android/.idea/.gitignore +0 -3
  48. package/android/.idea/compiler.xml +0 -6
  49. package/android/.idea/gradle.xml +0 -18
  50. package/android/.idea/jarRepositories.xml +0 -35
  51. package/android/.idea/libraries/Gradle__androidx_activity_activity_1_2_0_beta01_aar.xml +0 -16
  52. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml +0 -13
  53. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_2_0_aar.xml +0 -16
  54. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_2_0_aar.xml +0 -13
  55. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +0 -11
  56. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml +0 -13
  57. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +0 -11
  58. package/android/.idea/libraries/Gradle__androidx_core_core_1_3_2_aar.xml +0 -16
  59. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +0 -13
  60. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +0 -13
  61. package/android/.idea/libraries/Gradle__androidx_databinding_viewbinding_7_0_1_aar.xml +0 -13
  62. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +0 -16
  63. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_2_5_aar.xml +0 -16
  64. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +0 -13
  65. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_3_1.xml +0 -11
  66. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_3_1_aar.xml +0 -13
  67. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml +0 -13
  68. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_3_1_aar.xml +0 -13
  69. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_3_1_aar.xml +0 -13
  70. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml +0 -13
  71. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +0 -13
  72. package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml +0 -13
  73. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +0 -16
  74. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +0 -13
  75. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +0 -13
  76. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml +0 -13
  77. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +0 -13
  78. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_0_3.xml +0 -13
  79. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_0_0_aar.xml +0 -15
  80. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_0_0_aar.xml +0 -18
  81. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_0_0_aar.xml +0 -18
  82. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_0_0_aar.xml +0 -18
  83. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_0_0_aar.xml +0 -18
  84. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_0_0_aar.xml +0 -15
  85. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_0_0_aar.xml +0 -15
  86. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_0_0_aar.xml +0 -15
  87. package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2.xml +0 -13
  88. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_63_4_aar.xml +0 -18
  89. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_9_0.xml +0 -13
  90. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_9_0.xml +0 -13
  91. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_9_0_aar.xml +0 -15
  92. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_14_1.xml +0 -13
  93. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +0 -13
  94. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_12.xml +0 -13
  95. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_12_12.xml +0 -13
  96. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0.xml +0 -13
  97. package/android/.idea/libraries/Gradle__io_primer_android_1_0_0_aar.xml +0 -15
  98. package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +0 -13
  99. package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +0 -13
  100. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_5_21.xml +0 -13
  101. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_5_21.xml +0 -13
  102. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_serialization_core_jvm_1_2_2.xml +0 -13
  103. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_serialization_json_jvm_1_2_2.xml +0 -13
  104. package/android/.idea/misc.xml +0 -9
  105. package/android/.idea/modules/android.iml +0 -126
  106. package/android/.idea/modules.xml +0 -8
  107. package/android/.idea/vcs.xml +0 -6
  108. package/android/local.properties +0 -8
@@ -46,6 +46,7 @@ function configure(config) {
46
46
  configureOnDismiss(config.onDismiss);
47
47
  configureOnError(config.onError);
48
48
  configureOnTokenizeSuccess(config.onTokenizeSuccess);
49
+ configureOnClientSessionActions(config.onClientSessionActions);
49
50
  configureOnResumeSuccess(config.onResumeSuccess);
50
51
  configureOnSavedPaymentInstrumentsFetched(config.onSavedPaymentInstrumentsFetched);
51
52
  }
@@ -78,12 +79,25 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
78
79
  try {
79
80
  const parsedData = JSON.parse(data);
80
81
  callback(parsedData, {
81
- resumeWithError: () => resume({
82
- error: true,
83
- 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
84
98
  }),
85
99
  resumeWithSuccess: token => resume({
86
- error: false,
100
+ error: null,
87
101
  token
88
102
  })
89
103
  });
@@ -93,17 +107,77 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
93
107
  });
94
108
  }
95
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
+
96
157
  function configureOnResumeSuccess(callback = (_, __) => {}) {
97
- NativeModule.configureOnResumeSuccess(token => {
158
+ NativeModule.configureOnResumeSuccess(paymentMethodToken => {
98
159
  try {
99
- callback(token, {
100
- resumeWithError: () => resume({
101
- error: true,
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,
102
176
  token: null
103
177
  }),
104
- resumeWithSuccess: t => resume({
105
- error: false,
106
- token: t
178
+ resumeWithSuccess: token => resume({
179
+ error: null,
180
+ token
107
181
  })
108
182
  });
109
183
  } catch (e) {
@@ -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","configureOnResumeSuccess","onResumeSuccess","configureOnSavedPaymentInstrumentsFetched","onSavedPaymentInstrumentsFetched","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","resumeWithError","error","resumeWithSuccess","e","console","log","t","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 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 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 configureOnResumeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnResumeSuccess((token: any) => {\n try {\n callback(token, {\n resumeWithError: () => resume({ error: true, token: null }),\n resumeWithSuccess: (t) => resume({ error: false, token: t }),\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 | null;\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;
@@ -32,5 +32,6 @@ interface IPrimerConfig {
32
32
  * Use this to receive saved payment instruments fetch result.
33
33
  */
34
34
  onSavedPaymentInstrumentsFetched?: OnSavedPaymentInstrumentsFetchedCallback;
35
+ onClientSessionActions?: OnClientSessionActionsCallback;
35
36
  }
36
37
  export {};
@@ -1,6 +1,17 @@
1
1
  export declare type PrimerResumeHandler = IPrimerResumeHandler;
2
2
  interface IPrimerResumeHandler {
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
+ */
3
10
  resumeWithError: (error: string | null) => void;
11
+ /**
12
+ * @deprecated This method should not be used.
13
+ * Please use handleSuccess or handleNewClientToken instead.
14
+ */
4
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.6",
3
+ "version": "0.7.0",
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.1"
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,7 @@ function configure(config: PrimerConfig): void {
60
62
  configureOnDismiss(config.onDismiss);
61
63
  configureOnError(config.onError);
62
64
  configureOnTokenizeSuccess(config.onTokenizeSuccess);
65
+ configureOnClientSessionActions(config.onClientSessionActions);
63
66
  configureOnResumeSuccess(config.onResumeSuccess);
64
67
  configureOnSavedPaymentInstrumentsFetched(
65
68
  config.onSavedPaymentInstrumentsFetched
@@ -95,8 +98,12 @@ function configureOnTokenizeSuccess(
95
98
  try {
96
99
  const parsedData = JSON.parse(data) as PaymentInstrumentToken;
97
100
  callback(parsedData, {
98
- resumeWithError: () => resume({ error: true, token: '' }),
99
- 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 }),
100
107
  });
101
108
  } catch (e) {
102
109
  console.log('failed to parse json', e);
@@ -104,14 +111,49 @@ function configureOnTokenizeSuccess(
104
111
  });
105
112
  }
106
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
+
107
145
  function configureOnResumeSuccess(
108
146
  callback: OnTokenizeSuccessCallback = (_, __) => {}
109
147
  ) {
110
- NativeModule.configureOnResumeSuccess((token: any) => {
148
+ NativeModule.configureOnResumeSuccess((paymentMethodToken: any) => {
111
149
  try {
112
- callback(token, {
113
- resumeWithError: () => resume({ error: true, token: null }),
114
- resumeWithSuccess: (t) => resume({ error: false, token: t }),
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 }),
115
157
  });
116
158
  } catch (e) {
117
159
  console.log('failed to parse json', e);
@@ -146,6 +188,6 @@ function configureOnSavedPaymentInstrumentsFetched(
146
188
  }
147
189
 
148
190
  interface ResumeRequest {
149
- error: boolean;
191
+ error: string | null;
150
192
  token: string | null;
151
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,
@@ -41,4 +42,6 @@ interface IPrimerConfig {
41
42
  * Use this to receive saved payment instruments fetch result.
42
43
  */
43
44
  onSavedPaymentInstrumentsFetched?: OnSavedPaymentInstrumentsFetchedCallback;
45
+
46
+ onClientSessionActions?: OnClientSessionActionsCallback;
44
47
  }
@@ -1,5 +1,21 @@
1
1
  export type PrimerResumeHandler = IPrimerResumeHandler;
2
+
2
3
  interface IPrimerResumeHandler {
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
+ */
3
14
  resumeWithError: (error: string | null) => void;
15
+
16
+ /**
17
+ * @deprecated This method should not be used.
18
+ * Please use handleSuccess or handleNewClientToken instead.
19
+ */
4
20
  resumeWithSuccess: (clientToken: string | null) => void;
5
21
  }
File without changes
@@ -1,2 +0,0 @@
1
- #Tue Oct 05 20:07:48 BST 2021
2
- gradle.version=7.0.2
File without changes
@@ -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>