@primer-io/react-native 0.11.1 → 0.12.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.
@@ -128,5 +128,5 @@ dependencies {
128
128
  api 'com.facebook.react:react-native:+'
129
129
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
130
130
  implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.2"
131
- implementation 'io.primer:android:1.9.2'
131
+ implementation 'io.primer:android:1.10.0'
132
132
  }
@@ -120,45 +120,66 @@ function actionResume(request) {
120
120
  const data = JSON.stringify(request);
121
121
  NativeModule.actionResume(data);
122
122
  }
123
+ /**
124
+ * Call @method configureOnClientSessionActions on the native bridge, passing
125
+ * in a callback that the native side will call every time a client session
126
+ * action is triggered.
127
+ */
123
128
 
124
- function configureOnClientSessionActions(callback = (_, __) => {
125
- NativeModule.configureOnClientSessionActions(___ => {
126
- actionResume({
127
- error: null,
128
- token: null
129
- });
130
- configureOnClientSessionActions(callback);
131
- });
132
- }) {
129
+
130
+ function configureOnClientSessionActions(callback) // defined by integrating developer.
131
+ {
133
132
  NativeModule.configureOnClientSessionActions(data => {
134
133
  try {
134
+ // parse the client session action JSON string.
135
135
  const parsedData = JSON.parse(data);
136
- callback(parsedData, {
137
- handleError: error => actionResume({
138
- error,
139
- token: null
140
- }),
141
- handleSuccess: () => actionResume({
136
+
137
+ if (!callback) {
138
+ /**
139
+ * if @param callback is undefined immediately call the native bridge
140
+ * and resume with null values. This will resume the SDK flow without
141
+ * triggering extra configuration API fetch calls.
142
+ */
143
+ actionResume({
142
144
  error: null,
143
145
  token: null
144
- }),
145
- handleNewClientToken: token => actionResume({
146
- error: null,
147
- token
148
- }),
149
- // deprecated
150
- resumeWithError: error => actionResume({
151
- error,
152
- token: null
153
- }),
154
- resumeWithSuccess: token => actionResume({
155
- error: null,
156
- token
157
- })
158
- });
146
+ });
147
+ } else {
148
+ /**
149
+ * send the parsed data back to the developer through the defined callback.
150
+ * The developer will determine how to resume the flow using one of the provided
151
+ * resume handlers.
152
+ */
153
+ callback(parsedData, {
154
+ handleError: error => actionResume({
155
+ error,
156
+ token: null
157
+ }),
158
+ handleSuccess: () => actionResume({
159
+ error: null,
160
+ token: null
161
+ }),
162
+ handleNewClientToken: token => actionResume({
163
+ error: null,
164
+ token
165
+ }),
166
+ // deprecated, remove in next major version update.
167
+ resumeWithError: error => actionResume({
168
+ error,
169
+ token: null
170
+ }),
171
+ resumeWithSuccess: token => actionResume({
172
+ error: null,
173
+ token
174
+ })
175
+ });
176
+ } // reset the client session action callback (native bridge callbacks are disposed once they're invoked).
177
+
178
+
159
179
  configureOnClientSessionActions(callback);
160
180
  } catch (e) {
161
- console.log('[OnClientSessionActions]', 'failed to parse json', e);
181
+ // log error if the client session action JSON string cannot be parsed (this should never happen!).
182
+ console.error('[OnClientSessionActions]', 'failed to parse json', e);
162
183
  }
163
184
  });
164
185
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["Primer.ts"],"names":["PrimerRN","NativeModule","NativeModules","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","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 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 // todo: refactor\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}\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\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
1
+ {"version":3,"sources":["Primer.ts"],"names":["PrimerRN","NativeModule","NativeModules","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","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 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 // todo: refactor\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}\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\n/**\n * Call @method configureOnClientSessionActions on the native bridge, passing\n * in a callback that the native side will call every time a client session\n * action is triggered.\n */\nfunction configureOnClientSessionActions(\n callback?: OnClientSessionActionsCallback // defined by integrating developer.\n) {\n NativeModule.configureOnClientSessionActions((data: any) => {\n try {\n // parse the client session action JSON string.\n const parsedData = JSON.parse(data) as ClientSessionActionsRequest;\n\n if (!callback) {\n /**\n * if @param callback is undefined immediately call the native bridge\n * and resume with null values. This will resume the SDK flow without\n * triggering extra configuration API fetch calls.\n */\n actionResume({ error: null, token: null });\n } else {\n /**\n * send the parsed data back to the developer through the defined callback.\n * The developer will determine how to resume the flow using one of the provided\n * resume handlers.\n */\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, remove in next major version update.\n resumeWithError: (error) => actionResume({ error, token: null }),\n resumeWithSuccess: (token) => actionResume({ error: null, token }),\n });\n }\n\n // reset the client session action callback (native bridge callbacks are disposed once they're invoked).\n configureOnClientSessionActions(callback);\n } catch (e) {\n // log error if the client session action JSON string cannot be parsed (this should never happen!).\n console.error('[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\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
@@ -110,45 +110,66 @@ function actionResume(request) {
110
110
  const data = JSON.stringify(request);
111
111
  NativeModule.actionResume(data);
112
112
  }
113
+ /**
114
+ * Call @method configureOnClientSessionActions on the native bridge, passing
115
+ * in a callback that the native side will call every time a client session
116
+ * action is triggered.
117
+ */
113
118
 
114
- function configureOnClientSessionActions(callback = (_, __) => {
115
- NativeModule.configureOnClientSessionActions(___ => {
116
- actionResume({
117
- error: null,
118
- token: null
119
- });
120
- configureOnClientSessionActions(callback);
121
- });
122
- }) {
119
+
120
+ function configureOnClientSessionActions(callback) // defined by integrating developer.
121
+ {
123
122
  NativeModule.configureOnClientSessionActions(data => {
124
123
  try {
124
+ // parse the client session action JSON string.
125
125
  const parsedData = JSON.parse(data);
126
- callback(parsedData, {
127
- handleError: error => actionResume({
128
- error,
129
- token: null
130
- }),
131
- handleSuccess: () => actionResume({
126
+
127
+ if (!callback) {
128
+ /**
129
+ * if @param callback is undefined immediately call the native bridge
130
+ * and resume with null values. This will resume the SDK flow without
131
+ * triggering extra configuration API fetch calls.
132
+ */
133
+ actionResume({
132
134
  error: null,
133
135
  token: null
134
- }),
135
- handleNewClientToken: token => actionResume({
136
- error: null,
137
- token
138
- }),
139
- // deprecated
140
- resumeWithError: error => actionResume({
141
- error,
142
- token: null
143
- }),
144
- resumeWithSuccess: token => actionResume({
145
- error: null,
146
- token
147
- })
148
- });
136
+ });
137
+ } else {
138
+ /**
139
+ * send the parsed data back to the developer through the defined callback.
140
+ * The developer will determine how to resume the flow using one of the provided
141
+ * resume handlers.
142
+ */
143
+ callback(parsedData, {
144
+ handleError: error => actionResume({
145
+ error,
146
+ token: null
147
+ }),
148
+ handleSuccess: () => actionResume({
149
+ error: null,
150
+ token: null
151
+ }),
152
+ handleNewClientToken: token => actionResume({
153
+ error: null,
154
+ token
155
+ }),
156
+ // deprecated, remove in next major version update.
157
+ resumeWithError: error => actionResume({
158
+ error,
159
+ token: null
160
+ }),
161
+ resumeWithSuccess: token => actionResume({
162
+ error: null,
163
+ token
164
+ })
165
+ });
166
+ } // reset the client session action callback (native bridge callbacks are disposed once they're invoked).
167
+
168
+
149
169
  configureOnClientSessionActions(callback);
150
170
  } catch (e) {
151
- console.log('[OnClientSessionActions]', 'failed to parse json', e);
171
+ // log error if the client session action JSON string cannot be parsed (this should never happen!).
172
+ console.error('[OnClientSessionActions]', 'failed to parse json', e);
152
173
  }
153
174
  });
154
175
  }
@@ -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","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","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 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 // todo: refactor\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}\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\ninterface ResumeRequest {\n error: string | null;\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","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","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 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 // todo: refactor\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}\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\n/**\n * Call @method configureOnClientSessionActions on the native bridge, passing\n * in a callback that the native side will call every time a client session\n * action is triggered.\n */\nfunction configureOnClientSessionActions(\n callback?: OnClientSessionActionsCallback // defined by integrating developer.\n) {\n NativeModule.configureOnClientSessionActions((data: any) => {\n try {\n // parse the client session action JSON string.\n const parsedData = JSON.parse(data) as ClientSessionActionsRequest;\n\n if (!callback) {\n /**\n * if @param callback is undefined immediately call the native bridge\n * and resume with null values. This will resume the SDK flow without\n * triggering extra configuration API fetch calls.\n */\n actionResume({ error: null, token: null });\n } else {\n /**\n * send the parsed data back to the developer through the defined callback.\n * The developer will determine how to resume the flow using one of the provided\n * resume handlers.\n */\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, remove in next major version update.\n resumeWithError: (error) => actionResume({ error, token: null }),\n resumeWithSuccess: (token) => actionResume({ error: null, token }),\n });\n }\n\n // reset the client session action callback (native bridge callbacks are disposed once they're invoked).\n configureOnClientSessionActions(callback);\n } catch (e) {\n // log error if the client session action JSON string cannot be parsed (this should never happen!).\n console.error('[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\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer-io/react-native",
3
- "version": "0.11.1",
3
+ "version": "0.12.0",
4
4
  "description": "Primer SDK for RN",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/Primer.ts CHANGED
@@ -113,28 +113,47 @@ function actionResume(request: ResumeRequest) {
113
113
  NativeModule.actionResume(data);
114
114
  }
115
115
 
116
+ /**
117
+ * Call @method configureOnClientSessionActions on the native bridge, passing
118
+ * in a callback that the native side will call every time a client session
119
+ * action is triggered.
120
+ */
116
121
  function configureOnClientSessionActions(
117
- callback: OnClientSessionActionsCallback = (_, __) => {
118
- NativeModule.configureOnClientSessionActions((___: any) => {
119
- actionResume({ error: null, token: null });
120
- configureOnClientSessionActions(callback);
121
- });
122
- }
122
+ callback?: OnClientSessionActionsCallback // defined by integrating developer.
123
123
  ) {
124
124
  NativeModule.configureOnClientSessionActions((data: any) => {
125
125
  try {
126
+ // parse the client session action JSON string.
126
127
  const parsedData = JSON.parse(data) as ClientSessionActionsRequest;
127
- callback(parsedData, {
128
- handleError: (error) => actionResume({ error, token: null }),
129
- handleSuccess: () => actionResume({ error: null, token: null }),
130
- handleNewClientToken: (token) => actionResume({ error: null, token }),
131
- // deprecated
132
- resumeWithError: (error) => actionResume({ error, token: null }),
133
- resumeWithSuccess: (token) => actionResume({ error: null, token }),
134
- });
128
+
129
+ if (!callback) {
130
+ /**
131
+ * if @param callback is undefined immediately call the native bridge
132
+ * and resume with null values. This will resume the SDK flow without
133
+ * triggering extra configuration API fetch calls.
134
+ */
135
+ actionResume({ error: null, token: null });
136
+ } else {
137
+ /**
138
+ * send the parsed data back to the developer through the defined callback.
139
+ * The developer will determine how to resume the flow using one of the provided
140
+ * resume handlers.
141
+ */
142
+ callback(parsedData, {
143
+ handleError: (error) => actionResume({ error, token: null }),
144
+ handleSuccess: () => actionResume({ error: null, token: null }),
145
+ handleNewClientToken: (token) => actionResume({ error: null, token }),
146
+ // deprecated, remove in next major version update.
147
+ resumeWithError: (error) => actionResume({ error, token: null }),
148
+ resumeWithSuccess: (token) => actionResume({ error: null, token }),
149
+ });
150
+ }
151
+
152
+ // reset the client session action callback (native bridge callbacks are disposed once they're invoked).
135
153
  configureOnClientSessionActions(callback);
136
154
  } catch (e) {
137
- console.log('[OnClientSessionActions]', 'failed to parse json', e);
155
+ // log error if the client session action JSON string cannot be parsed (this should never happen!).
156
+ console.error('[OnClientSessionActions]', 'failed to parse json', e);
138
157
  }
139
158
  });
140
159
  }