react-native-smallcase-gateway 7.0.0 → 7.1.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 (37) hide show
  1. package/android/build.gradle +2 -2
  2. package/android/src/main/java/com/reactnativesmallcasegateway/SmallcaseGatewayModule.kt +8 -3
  3. package/ios/SmallcaseGateway.m +6 -3
  4. package/lib/commonjs/SCGatewayEventEmitter.js.map +1 -1
  5. package/lib/commonjs/SCLoansEventEmitter.js.map +1 -1
  6. package/lib/commonjs/ScLoan.js.map +1 -1
  7. package/lib/commonjs/SmallcaseGateway.js +10 -4
  8. package/lib/commonjs/SmallcaseGateway.js.map +1 -1
  9. package/lib/commonjs/constants.js +27 -27
  10. package/lib/commonjs/constants.js.map +1 -1
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/commonjs/util.js +14 -2
  13. package/lib/commonjs/util.js.map +1 -1
  14. package/lib/module/SCGatewayEventEmitter.js +1 -1
  15. package/lib/module/SCGatewayEventEmitter.js.map +1 -1
  16. package/lib/module/SCLoansEventEmitter.js +1 -1
  17. package/lib/module/SCLoansEventEmitter.js.map +1 -1
  18. package/lib/module/ScLoan.js.map +1 -1
  19. package/lib/module/SmallcaseGateway.js +12 -6
  20. package/lib/module/SmallcaseGateway.js.map +1 -1
  21. package/lib/module/constants.js +27 -27
  22. package/lib/module/constants.js.map +1 -1
  23. package/lib/module/index.js +3 -3
  24. package/lib/module/index.js.map +1 -1
  25. package/lib/module/util.js +13 -1
  26. package/lib/module/util.js.map +1 -1
  27. package/package.json +7 -33
  28. package/react-native-smallcase-gateway.podspec +2 -2
  29. package/src/SCGatewayEventEmitter.js +96 -85
  30. package/src/SCLoansEventEmitter.js +94 -83
  31. package/src/ScLoan.js +18 -17
  32. package/src/SmallcaseGateway.js +28 -18
  33. package/src/constants.js +27 -27
  34. package/src/index.js +13 -5
  35. package/src/util.js +17 -4
  36. package/types/SmallcaseGateway.d.ts +3 -1
  37. package/types/index.d.ts +1 -1
@@ -149,8 +149,8 @@ def kotlin_version = getExtOrDefault('kotlinVersion')
149
149
  dependencies {
150
150
  //noinspection GradleDynamicVersion
151
151
  implementation 'com.facebook.react:react-native:+' // From node_modules
152
- implementation 'com.smallcase.gateway:sdk:6.0.0'
153
- implementation 'com.smallcase.loans:sdk:4.0.0'
152
+ implementation 'com.smallcase.gateway:sdk:6.0.1'
153
+ implementation 'com.smallcase.loans:sdk:5.0.0'
154
154
  implementation "androidx.core:core-ktx:1.3.1"
155
155
  implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
156
156
  }
@@ -25,7 +25,6 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte
25
25
 
26
26
  @ReactMethod
27
27
  fun setConfigEnvironment(envName: String, gateway: String, isLeprechaunActive: Boolean, isAmoEnabled: Boolean, preProvidedBrokers: ReadableArray, promise: Promise) {
28
-
29
28
  try {
30
29
  val brokerList = ArrayList<String>()
31
30
  for (index in 0 until preProvidedBrokers.size()) {
@@ -38,6 +37,11 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte
38
37
  val protocol = getProtocol(envName)
39
38
 
40
39
  val env = Environment(gateway = gateway, buildType = protocol, isAmoEnabled = isAmoEnabled, preProvidedBrokers = brokerList, isLeprachaunActive = isLeprechaunActive)
40
+
41
+ // Set userIdentification if provided - For Now, we are not accepting this on Gateway SDK
42
+ // if (!userId.isNullOrEmpty()) {
43
+ // env.userId = userIdentification
44
+ // }
41
45
 
42
46
  SmallcaseGatewaySdk.setConfigEnvironment(environment = env, smallcaseGatewayListeners = object : SmallcaseGatewayListeners {
43
47
  override fun onGatewaySetupSuccessfull() {
@@ -66,8 +70,9 @@ class SmallcaseGatewayModule(reactContext: ReactApplicationContext) : ReactConte
66
70
  }
67
71
 
68
72
  @ReactMethod
69
- fun init(sdkToken: String, promise: Promise) {
70
-
73
+ fun init(sdkToken: String, externalMeta: ReadableMap?, promise: Promise) {
74
+ // externalMeta is accepted but not used on Android (iOS only feature)
75
+ // Extract externalIdentifier if needed in future
71
76
  val initReq = InitRequest(sdkToken)
72
77
  SmallcaseGatewaySdk.init(authRequest = initReq, gatewayInitialisationListener = object : DataListener<InitialisationResponse> {
73
78
  override fun onFailure(errorCode: Int, errorMessage: String, data: String?) {
@@ -53,7 +53,7 @@ RCT_REMAP_METHOD(setConfigEnvironment,
53
53
  isLeprechaunActive:isLeprechaunActive
54
54
  isAmoEnabled:isAmoEnabled];
55
55
 
56
- [SCGateway.shared setupWithConfig: config completion:^(BOOL success,NSError * error) {
56
+ [SCGateway.shared setupWithConfig:config completion:^(BOOL success, NSError *error) {
57
57
  if(success) {
58
58
  resolve(@(YES));
59
59
  } else {
@@ -65,16 +65,19 @@ RCT_REMAP_METHOD(setConfigEnvironment,
65
65
 
66
66
  reject(@"setConfigEnvironment", @"Env setup failed", err);
67
67
  }
68
-
69
68
  }];
70
69
  }
71
70
 
72
71
  //MARK: SDK init
73
72
  RCT_REMAP_METHOD(init,
74
73
  sdkToken:(NSString *)sdkToken
74
+ externalMeta:(NSDictionary *)externalMeta
75
75
  initWithResolver:(RCTPromiseResolveBlock)resolve
76
76
  rejecter:(RCTPromiseRejectBlock)reject) {
77
- [SCGateway.shared initializeGatewayWithSdkToken:sdkToken completion:^(BOOL success, NSError * error) {
77
+
78
+ [SCGateway.shared initializeGatewayWithSdkToken:sdkToken
79
+ externalMeta:externalMeta
80
+ completion:^(BOOL success, NSError *error) {
78
81
  if(success) {
79
82
  resolve(@(YES));
80
83
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","nativeModule","NativeModules","SCGatewayBridgeEmitter","SCGatewayEventTypes","exports","ANALYTICS_EVENT","SUPER_PROPERTIES_UPDATED","USER_RESET","USER_IDENTIFY","SCGatewayNotificationEvent","SCGatewayEvents","constructor","eventEmitter","subscriptions","initialize","isInitialized","NativeEventEmitter","console","warn","subscribeToGatewayEvents","callback","subscription","addListener","jsonString","eventData","JSON","parse","error","type","normalizedEvent","data","timestamp","Date","now","push","unsubscribeFromGatewayEvents","remove","filter","sub","cleanup","forEach","scGatewayEventManager","_default","default"],"sources":["SCGatewayEventEmitter.js"],"sourcesContent":["import {\n NativeEventEmitter,\n NativeModules,\n Platform\n} from 'react-native';\n\n/**\n * @typedef {Object} GatewayEvent\n * @property {string} type - Event type\n * @property {any} data - Event payload data\n * @property {number} timestamp - Event timestamp\n *\n * @typedef {Object} GatewayEventSubscription\n * @property {() => void} remove - Method to unsubscribe from gateway events\n *\n */\n\nconst nativeModule = NativeModules.SCGatewayBridgeEmitter;\n\nexport const SCGatewayEventTypes = {\n ANALYTICS_EVENT: 'scgateway_analytics_event',\n SUPER_PROPERTIES_UPDATED: 'scgateway_super_properties_updated',\n USER_RESET: 'scgateway_user_reset',\n USER_IDENTIFY: 'scgateway_user_identify',\n};\n\nconst SCGatewayNotificationEvent = 'scg_notification';\n\nclass SCGatewayEvents {\n constructor() {\n this.eventEmitter = null;\n this.subscriptions = [];\n this.initialize();\n }\n\n get isInitialized() {\n return this.eventEmitter !== null;\n }\n\n initialize() {\n if (nativeModule) {\n this.eventEmitter = new NativeEventEmitter(nativeModule);\n } else {\n console.warn('[SCGatewayEvents] Native module not available');\n }\n }\n\n // ===== GATEWAY EVENT METHODS =====\n /**\n * Subscribe to Gateway Events\n * @param {(event: GatewayEvent) => void} callback - Callback function to handle gateway events\n * @returns {GatewayEventSubscription} subscription - Subscription object with remove() method\n */\n subscribeToGatewayEvents(callback) {\n if (!this.isInitialized) {\n console.warn('[SCGatewayEvents] Event emitter not initialized');\n return null;\n }\n\n if (typeof callback !== 'function') {\n console.warn('[SCGatewayEvents] Invalid callback provided for subscription');\n return null;\n }\n\n const subscription = this.eventEmitter.addListener(SCGatewayNotificationEvent, (jsonString) => {\n if (!jsonString) {\n console.warn('[SCGatewayEvents] Received null/undefined event data');\n return;\n }\n\n let eventData;\n try {\n eventData = JSON.parse(jsonString);\n } catch (error) {\n console.warn('[SCGatewayEvents] Failed to parse event JSON:', error, 'Raw data:', jsonString);\n return;\n }\n\n if (!eventData.type) {\n console.warn('[SCGatewayEvents] Dropping event - missing event type:', eventData);\n return;\n }\n\n const normalizedEvent = {\n type: eventData.type,\n data: eventData.data,\n timestamp: eventData.timestamp || Date.now()\n };\n\n callback(normalizedEvent);\n });\n\n this.subscriptions.push(subscription);\n\n return subscription;\n }\n\n /**\n * Unsubscribe from Gateway Events\n * @param {GatewayEventSubscription} subscription - Subscription returned from subscribeToGatewayEvents\n */\n unsubscribeFromGatewayEvents(subscription) {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n this.subscriptions = this.subscriptions.filter(sub => sub !== subscription);\n }\n }\n\n cleanup() {\n this.subscriptions.forEach(subscription => {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n }\n });\n this.subscriptions = [];\n }\n}\n\nconst scGatewayEventManager = new SCGatewayEvents();\n\nexport default scGatewayEventManager;"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","nativeModule","NativeModules","SCGatewayBridgeEmitter","SCGatewayEventTypes","exports","ANALYTICS_EVENT","SUPER_PROPERTIES_UPDATED","USER_RESET","USER_IDENTIFY","SCGatewayNotificationEvent","SCGatewayEvents","constructor","eventEmitter","subscriptions","initialize","isInitialized","NativeEventEmitter","console","warn","subscribeToGatewayEvents","callback","subscription","addListener","jsonString","eventData","JSON","parse","error","type","normalizedEvent","data","timestamp","Date","now","push","unsubscribeFromGatewayEvents","remove","filter","sub","cleanup","forEach","scGatewayEventManager","_default","default"],"sources":["SCGatewayEventEmitter.js"],"sourcesContent":["import { NativeEventEmitter, NativeModules } from 'react-native';\n\n/**\n * @typedef {Object} GatewayEvent\n * @property {string} type - Event type\n * @property {any} data - Event payload data\n * @property {number} timestamp - Event timestamp\n *\n * @typedef {Object} GatewayEventSubscription\n * @property {() => void} remove - Method to unsubscribe from gateway events\n *\n */\n\nconst nativeModule = NativeModules.SCGatewayBridgeEmitter;\n\nexport const SCGatewayEventTypes = {\n ANALYTICS_EVENT: 'scgateway_analytics_event',\n SUPER_PROPERTIES_UPDATED: 'scgateway_super_properties_updated',\n USER_RESET: 'scgateway_user_reset',\n USER_IDENTIFY: 'scgateway_user_identify',\n};\n\nconst SCGatewayNotificationEvent = 'scg_notification';\n\nclass SCGatewayEvents {\n constructor() {\n this.eventEmitter = null;\n this.subscriptions = [];\n this.initialize();\n }\n\n get isInitialized() {\n return this.eventEmitter !== null;\n }\n\n initialize() {\n if (nativeModule) {\n this.eventEmitter = new NativeEventEmitter(nativeModule);\n } else {\n console.warn('[SCGatewayEvents] Native module not available');\n }\n }\n\n // ===== GATEWAY EVENT METHODS =====\n /**\n * Subscribe to Gateway Events\n * @param {(event: GatewayEvent) => void} callback - Callback function to handle gateway events\n * @returns {GatewayEventSubscription} subscription - Subscription object with remove() method\n */\n subscribeToGatewayEvents(callback) {\n if (!this.isInitialized) {\n console.warn('[SCGatewayEvents] Event emitter not initialized');\n return null;\n }\n\n if (typeof callback !== 'function') {\n console.warn(\n '[SCGatewayEvents] Invalid callback provided for subscription'\n );\n return null;\n }\n\n const subscription = this.eventEmitter.addListener(\n SCGatewayNotificationEvent,\n (jsonString) => {\n if (!jsonString) {\n console.warn('[SCGatewayEvents] Received null/undefined event data');\n return;\n }\n\n let eventData;\n try {\n eventData = JSON.parse(jsonString);\n } catch (error) {\n console.warn(\n '[SCGatewayEvents] Failed to parse event JSON:',\n error,\n 'Raw data:',\n jsonString\n );\n return;\n }\n\n if (!eventData.type) {\n console.warn(\n '[SCGatewayEvents] Dropping event - missing event type:',\n eventData\n );\n return;\n }\n\n const normalizedEvent = {\n type: eventData.type,\n data: eventData.data,\n timestamp: eventData.timestamp || Date.now(),\n };\n\n callback(normalizedEvent);\n }\n );\n\n this.subscriptions.push(subscription);\n\n return subscription;\n }\n\n /**\n * Unsubscribe from Gateway Events\n * @param {GatewayEventSubscription} subscription - Subscription returned from subscribeToGatewayEvents\n */\n unsubscribeFromGatewayEvents(subscription) {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n this.subscriptions = this.subscriptions.filter(\n (sub) => sub !== subscription\n );\n }\n }\n\n cleanup() {\n this.subscriptions.forEach((subscription) => {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n }\n });\n this.subscriptions = [];\n }\n}\n\nconst scGatewayEventManager = new SCGatewayEvents();\n\nexport default scGatewayEventManager;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","nativeModule","NativeModules","SCLoansBridgeEmitter","SCLoansEventTypes","exports","ANALYTICS_EVENT","SUPER_PROPERTIES_UPDATED","SCLoansNotificationEvent","SCLoansEvents","constructor","eventEmitter","subscriptions","initialize","isInitialized","NativeEventEmitter","console","warn","subscribeToLoansEvent","callback","subscription","addListener","jsonString","eventData","JSON","parse","error","type","normalizedEvent","data","timestamp","Date","now","push","unsubscribeFromLoansEvent","remove","filter","sub","cleanup","forEach","scLoansEventManager","_default","default"],"sources":["SCLoansEventEmitter.js"],"sourcesContent":["import {\n NativeEventEmitter,\n NativeModules,\n Platform\n} from 'react-native';\n\n/**\n * @typedef {Object} LoansEvent\n * @property {string} type - Event type\n * @property {number} timestamp - Event timestamp\n *\n * @typedef {Object} LoansEventSubscription\n * @property {() => void} remove - Method to unsubscribe from loans events\n */\n\nconst nativeModule = NativeModules.SCLoansBridgeEmitter;\n\nexport const SCLoansEventTypes = {\n ANALYTICS_EVENT: 'scloans_analytics_event',\n SUPER_PROPERTIES_UPDATED: 'scloans_super_properties_updated',\n};\n\nconst SCLoansNotificationEvent = 'scloans_notification';\nclass SCLoansEvents {\n constructor() {\n this.eventEmitter = null;\n this.subscriptions = [];\n this.initialize();\n }\n\n get isInitialized() {\n return this.eventEmitter !== null;\n }\n\n initialize() {\n if (nativeModule) {\n this.eventEmitter = new NativeEventEmitter(nativeModule);\n } else {\n console.warn('[SCLoansEvents] Native module not available');\n }\n }\n\n // ===== LOANS EVENT METHODS =====\n /**\n * Subscribe to Loans Events\n * @param {(event: LoansEvent) => void} callback - Callback function to handle loans events\n * @returns {LoansEventSubscription} subscription - Subscription object with remove() method\n */\n subscribeToLoansEvent(callback) {\n if (!this.isInitialized) {\n console.warn('[SCLoansEvents] Event emitter not initialized');\n return null;\n }\n\n if (typeof callback !== 'function') {\n console.warn('[SCLoansEvents] Invalid callback provided for subscription');\n return null;\n }\n\n const subscription = this.eventEmitter.addListener(SCLoansNotificationEvent, (jsonString) => {\n if (!jsonString) {\n console.warn('[SCLoansEvents] Received null/undefined event data');\n return;\n }\n\n let eventData;\n try {\n eventData = JSON.parse(jsonString);\n } catch (error) {\n console.warn('[SCLoansEvents] Failed to parse event JSON:', error, 'Raw data:', jsonString);\n return;\n }\n\n if (!eventData.type) {\n console.warn('[SCLoansEvents] Dropping event - missing event type:', eventData);\n return;\n }\n\n const normalizedEvent = {\n type: eventData.type,\n data: eventData.data,\n timestamp: eventData.timestamp || Date.now()\n };\n\n callback(normalizedEvent);\n });\n\n this.subscriptions.push(subscription);\n\n return subscription;\n }\n\n /**\n * Unsubscribe from Loans Events\n * @param {LoansEventSubscription} subscription - Subscription returned from subscribeToLoansEvents\n */\n unsubscribeFromLoansEvent(subscription) {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n this.subscriptions = this.subscriptions.filter(sub => sub !== subscription);\n }\n }\n\n cleanup() {\n this.subscriptions.forEach(subscription => {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n }\n });\n this.subscriptions = [];\n }\n}\n\nconst scLoansEventManager = new SCLoansEvents();\n\nexport default scLoansEventManager;"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","nativeModule","NativeModules","SCLoansBridgeEmitter","SCLoansEventTypes","exports","ANALYTICS_EVENT","SUPER_PROPERTIES_UPDATED","SCLoansNotificationEvent","SCLoansEvents","constructor","eventEmitter","subscriptions","initialize","isInitialized","NativeEventEmitter","console","warn","subscribeToLoansEvent","callback","subscription","addListener","jsonString","eventData","JSON","parse","error","type","normalizedEvent","data","timestamp","Date","now","push","unsubscribeFromLoansEvent","remove","filter","sub","cleanup","forEach","scLoansEventManager","_default","default"],"sources":["SCLoansEventEmitter.js"],"sourcesContent":["import { NativeEventEmitter, NativeModules } from 'react-native';\n\n/**\n * @typedef {Object} LoansEvent\n * @property {string} type - Event type\n * @property {number} timestamp - Event timestamp\n *\n * @typedef {Object} LoansEventSubscription\n * @property {() => void} remove - Method to unsubscribe from loans events\n */\n\nconst nativeModule = NativeModules.SCLoansBridgeEmitter;\n\nexport const SCLoansEventTypes = {\n ANALYTICS_EVENT: 'scloans_analytics_event',\n SUPER_PROPERTIES_UPDATED: 'scloans_super_properties_updated',\n};\n\nconst SCLoansNotificationEvent = 'scloans_notification';\nclass SCLoansEvents {\n constructor() {\n this.eventEmitter = null;\n this.subscriptions = [];\n this.initialize();\n }\n\n get isInitialized() {\n return this.eventEmitter !== null;\n }\n\n initialize() {\n if (nativeModule) {\n this.eventEmitter = new NativeEventEmitter(nativeModule);\n } else {\n console.warn('[SCLoansEvents] Native module not available');\n }\n }\n\n // ===== LOANS EVENT METHODS =====\n /**\n * Subscribe to Loans Events\n * @param {(event: LoansEvent) => void} callback - Callback function to handle loans events\n * @returns {LoansEventSubscription} subscription - Subscription object with remove() method\n */\n subscribeToLoansEvent(callback) {\n if (!this.isInitialized) {\n console.warn('[SCLoansEvents] Event emitter not initialized');\n return null;\n }\n\n if (typeof callback !== 'function') {\n console.warn(\n '[SCLoansEvents] Invalid callback provided for subscription'\n );\n return null;\n }\n\n const subscription = this.eventEmitter.addListener(\n SCLoansNotificationEvent,\n (jsonString) => {\n if (!jsonString) {\n console.warn('[SCLoansEvents] Received null/undefined event data');\n return;\n }\n\n let eventData;\n try {\n eventData = JSON.parse(jsonString);\n } catch (error) {\n console.warn(\n '[SCLoansEvents] Failed to parse event JSON:',\n error,\n 'Raw data:',\n jsonString\n );\n return;\n }\n\n if (!eventData.type) {\n console.warn(\n '[SCLoansEvents] Dropping event - missing event type:',\n eventData\n );\n return;\n }\n\n const normalizedEvent = {\n type: eventData.type,\n data: eventData.data,\n timestamp: eventData.timestamp || Date.now(),\n };\n\n callback(normalizedEvent);\n }\n );\n\n this.subscriptions.push(subscription);\n\n return subscription;\n }\n\n /**\n * Unsubscribe from Loans Events\n * @param {LoansEventSubscription} subscription - Subscription returned from subscribeToLoansEvents\n */\n unsubscribeFromLoansEvent(subscription) {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n this.subscriptions = this.subscriptions.filter(\n (sub) => sub !== subscription\n );\n }\n }\n\n cleanup() {\n this.subscriptions.forEach((subscription) => {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n }\n });\n this.subscriptions = [];\n }\n}\n\nconst scLoansEventManager = new SCLoansEvents();\n\nexport default scLoansEventManager;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_util","_constants","SmallcaseGateway","SmallcaseGatewayNative","NativeModules","setup","config","safeConfig","safeObject","environment","undefined","ENV","PROD","setupLoans","apply","loanInfo","safeLoanInfo","pay","withdraw","service","triggerInteraction","ScLoan","_default","exports","default"],"sources":["ScLoan.js"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { safeObject } from './util';\nimport { ENV } from './constants';\n\nconst { SmallcaseGateway: SmallcaseGatewayNative } = NativeModules;\n\n/**\n * @typedef {Object} ScLoanConfig\n * @property {String} gatewayName\n * @property {'production' | 'staging' | 'development'} environment - environment\n *\n * @typedef {Object} ScLoanInfo\n * @property {String} interactionToken\n *\n * @typedef {Object} ScLoanSuccess\n * @property {boolean} isSuccess\n * @property {string} data\n *\n * @typedef {Object} ScLoanError\n * @property {boolean} isSuccess\n * @property {number} code\n * @property {string} message\n * @property {string} data\n */\n\n/**\n * Setup ScLoans\n *\n * @param {ScLoanConfig} config\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n */\nconst setup = async (config) => {\n const safeConfig = safeObject(config);\n if(safeConfig.environment === undefined || safeConfig.environment === null) safeConfig.environment = ENV.PROD\n\n return SmallcaseGatewayNative.setupLoans(safeConfig);\n };\n\n/**\n * Triggers the LOS Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst apply = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.apply(safeLoanInfo);\n };\n\n/**\n * Triggers the Repayment Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst pay = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.pay(safeLoanInfo);\n };\n\n/**\n * Triggers the Withdraw Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst withdraw = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.withdraw(safeLoanInfo);\n };\n\n/**\n * Triggers the Servicing Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst service = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.service(safeLoanInfo);\n };\n\n/**\n * Triggers the triggerInteraction function\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n */\nconst triggerInteraction = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.triggerInteraction(safeLoanInfo);\n};\n\nconst ScLoan = {\n setup,\n apply,\n pay,\n withdraw,\n service,\n triggerInteraction,\n};\n\nexport default ScLoan;"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,MAAM;EAAEG,gBAAgB,EAAEC;AAAuB,CAAC,GAAGC,0BAAa;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,KAAK,GAAG,MAAOC,MAAM,IAAK;EAC5B,MAAMC,UAAU,GAAG,IAAAC,gBAAU,EAACF,MAAM,CAAC;EACrC,IAAGC,UAAU,CAACE,WAAW,KAAKC,SAAS,IAAIH,UAAU,CAACE,WAAW,KAAK,IAAI,EAAEF,UAAU,CAACE,WAAW,GAAGE,cAAG,CAACC,IAAI;EAE7G,OAAOT,sBAAsB,CAACU,UAAU,CAACN,UAAU,CAAC;AACtD,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMO,KAAK,GAAG,MAAOC,QAAQ,IAAK;EAC9B,MAAMC,YAAY,GAAG,IAAAR,gBAAU,EAACO,QAAQ,CAAC;EAEzC,OAAOZ,sBAAsB,CAACW,KAAK,CAACE,YAAY,CAAC;AACnD,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,GAAG,GAAG,MAAOF,QAAQ,IAAK;EAC5B,MAAMC,YAAY,GAAG,IAAAR,gBAAU,EAACO,QAAQ,CAAC;EAEzC,OAAOZ,sBAAsB,CAACc,GAAG,CAACD,YAAY,CAAC;AACjD,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,QAAQ,GAAG,MAAOH,QAAQ,IAAK;EACjC,MAAMC,YAAY,GAAG,IAAAR,gBAAU,EAACO,QAAQ,CAAC;EAEzC,OAAOZ,sBAAsB,CAACe,QAAQ,CAACF,YAAY,CAAC;AACtD,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,OAAO,GAAG,MAAOJ,QAAQ,IAAK;EAChC,MAAMC,YAAY,GAAG,IAAAR,gBAAU,EAACO,QAAQ,CAAC;EAEzC,OAAOZ,sBAAsB,CAACgB,OAAO,CAACH,YAAY,CAAC;AACrD,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,kBAAkB,GAAG,MAAOL,QAAQ,IAAK;EAC7C,MAAMC,YAAY,GAAG,IAAAR,gBAAU,EAACO,QAAQ,CAAC;EAEzC,OAAOZ,sBAAsB,CAACiB,kBAAkB,CAACJ,YAAY,CAAC;AAChE,CAAC;AAED,MAAMK,MAAM,GAAG;EACbhB,KAAK;EACLS,KAAK;EACLG,GAAG;EACHC,QAAQ;EACRC,OAAO;EACPC;AACF,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaH,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_util","_constants","SmallcaseGateway","SmallcaseGatewayNative","NativeModules","setup","config","safeConfig","safeObject","environment","undefined","ENV","PROD","setupLoans","apply","loanInfo","safeLoanInfo","pay","withdraw","service","triggerInteraction","ScLoan","_default","exports","default"],"sources":["ScLoan.js"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { safeObject } from './util';\nimport { ENV } from './constants';\n\nconst { SmallcaseGateway: SmallcaseGatewayNative } = NativeModules;\n\n/**\n * @typedef {Object} ScLoanConfig\n * @property {String} gatewayName\n * @property {'production' | 'staging' | 'development'} environment - environment\n *\n * @typedef {Object} ScLoanInfo\n * @property {String} interactionToken\n *\n * @typedef {Object} ScLoanSuccess\n * @property {boolean} isSuccess\n * @property {string} data\n *\n * @typedef {Object} ScLoanError\n * @property {boolean} isSuccess\n * @property {number} code\n * @property {string} message\n * @property {string} data\n */\n\n/**\n * Setup ScLoans\n *\n * @param {ScLoanConfig} config\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n */\nconst setup = async (config) => {\n const safeConfig = safeObject(config);\n if (safeConfig.environment === undefined || safeConfig.environment === null)\n safeConfig.environment = ENV.PROD;\n\n return SmallcaseGatewayNative.setupLoans(safeConfig);\n};\n\n/**\n * Triggers the LOS Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst apply = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.apply(safeLoanInfo);\n};\n\n/**\n * Triggers the Repayment Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst pay = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.pay(safeLoanInfo);\n};\n\n/**\n * Triggers the Withdraw Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst withdraw = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.withdraw(safeLoanInfo);\n};\n\n/**\n * Triggers the Servicing Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst service = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.service(safeLoanInfo);\n};\n\n/**\n * Triggers the triggerInteraction function\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n */\nconst triggerInteraction = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.triggerInteraction(safeLoanInfo);\n};\n\nconst ScLoan = {\n setup,\n apply,\n pay,\n withdraw,\n service,\n triggerInteraction,\n};\n\nexport default ScLoan;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,MAAM;EAAEG,gBAAgB,EAAEC;AAAuB,CAAC,GAAGC,0BAAa;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,KAAK,GAAG,MAAOC,MAAM,IAAK;EAC9B,MAAMC,UAAU,GAAG,IAAAC,gBAAU,EAACF,MAAM,CAAC;EACrC,IAAIC,UAAU,CAACE,WAAW,KAAKC,SAAS,IAAIH,UAAU,CAACE,WAAW,KAAK,IAAI,EACzEF,UAAU,CAACE,WAAW,GAAGE,cAAG,CAACC,IAAI;EAEnC,OAAOT,sBAAsB,CAACU,UAAU,CAACN,UAAU,CAAC;AACtD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMO,KAAK,GAAG,MAAOC,QAAQ,IAAK;EAChC,MAAMC,YAAY,GAAG,IAAAR,gBAAU,EAACO,QAAQ,CAAC;EAEzC,OAAOZ,sBAAsB,CAACW,KAAK,CAACE,YAAY,CAAC;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,GAAG,GAAG,MAAOF,QAAQ,IAAK;EAC9B,MAAMC,YAAY,GAAG,IAAAR,gBAAU,EAACO,QAAQ,CAAC;EAEzC,OAAOZ,sBAAsB,CAACc,GAAG,CAACD,YAAY,CAAC;AACjD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,QAAQ,GAAG,MAAOH,QAAQ,IAAK;EACnC,MAAMC,YAAY,GAAG,IAAAR,gBAAU,EAACO,QAAQ,CAAC;EAEzC,OAAOZ,sBAAsB,CAACe,QAAQ,CAACF,YAAY,CAAC;AACtD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,OAAO,GAAG,MAAOJ,QAAQ,IAAK;EAClC,MAAMC,YAAY,GAAG,IAAAR,gBAAU,EAACO,QAAQ,CAAC;EAEzC,OAAOZ,sBAAsB,CAACgB,OAAO,CAACH,YAAY,CAAC;AACrD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,kBAAkB,GAAG,MAAOL,QAAQ,IAAK;EAC7C,MAAMC,YAAY,GAAG,IAAAR,gBAAU,EAACO,QAAQ,CAAC;EAEzC,OAAOZ,sBAAsB,CAACiB,kBAAkB,CAACJ,YAAY,CAAC;AAChE,CAAC;AAED,MAAMK,MAAM,GAAG;EACbhB,KAAK;EACLS,KAAK;EACLG,GAAG;EACHC,QAAQ;EACRC,OAAO;EACPC;AACF,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaH,MAAM","ignoreList":[]}
@@ -69,7 +69,7 @@ const setConfigEnvironment = async envConfig => {
69
69
  } = safeConfig;
70
70
  const safeIsLeprechaun = Boolean(isLeprechaun);
71
71
  const safeIsAmoEnabled = Boolean(isAmoEnabled);
72
- const safeBrokerList = Array.isArray(brokerList) ? brokerList : [];
72
+ const safeBrokerList = (0, _util.sanitizeBrokerList)(brokerList);
73
73
  const safeGatewayName = typeof gatewayName === 'string' ? gatewayName : '';
74
74
  const safeEnvName = typeof environmentName === 'string' ? environmentName : _constants.ENV.PROD;
75
75
  defaultBrokerList = safeBrokerList;
@@ -81,10 +81,13 @@ const setConfigEnvironment = async envConfig => {
81
81
  *
82
82
  * note: this must be called after `setConfigEnvironment()`
83
83
  * @param {string} sdkToken
84
+ * @param {Object} [externalMeta] - external metadata (iOS only, optional)
85
+ * @param {Object} [externalMeta.externalIdentifier] - key-value pairs for external identifiers (e.g., { userId: '123' })
84
86
  */
85
- const init = async sdkToken => {
87
+ const init = async (sdkToken, externalMeta) => {
86
88
  const safeToken = typeof sdkToken === 'string' ? sdkToken : '';
87
- return SmallcaseGatewayNative.init(safeToken);
89
+ const safeExternalMeta = externalMeta && typeof externalMeta === 'object' ? externalMeta : null;
90
+ return SmallcaseGatewayNative.init(safeToken, safeExternalMeta);
88
91
  };
89
92
 
90
93
  /**
@@ -98,7 +101,10 @@ const init = async sdkToken => {
98
101
  const triggerTransaction = async (transactionId, utmParams, brokerList) => {
99
102
  const safeUtm = (0, _util.safeObject)(utmParams);
100
103
  const safeId = typeof transactionId === 'string' ? transactionId : '';
101
- const safeBrokerList = Array.isArray(brokerList) && brokerList.length ? brokerList : defaultBrokerList;
104
+ let safeBrokerList = (0, _util.sanitizeBrokerList)(brokerList);
105
+ if (safeBrokerList.length === 0) {
106
+ safeBrokerList = defaultBrokerList;
107
+ }
102
108
  return SmallcaseGatewayNative.triggerTransaction(safeId, safeUtm, safeBrokerList);
103
109
  };
104
110
 
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_constants","_util","_package","SmallcaseGateway","SmallcaseGatewayNative","NativeModules","defaultBrokerList","setConfigEnvironment","envConfig","safeConfig","safeObject","setHybridSdkVersion","version","brokerList","gatewayName","isLeprechaun","isAmoEnabled","environmentName","safeIsLeprechaun","Boolean","safeIsAmoEnabled","safeBrokerList","Array","isArray","safeGatewayName","safeEnvName","ENV","PROD","init","sdkToken","safeToken","triggerTransaction","transactionId","utmParams","safeUtm","safeId","length","triggerMfTransaction","console","warn","safeTransactionId","launchSmallplug","targetEndpoint","params","safeEndpoint","safeParams","launchSmallplugWithBranding","headerColor","headerOpacity","backIconColor","backIconOpacity","safeHeaderColor","platformSpecificColorHex","safeHeaderOpacity","safeBackIconColor","safeBackIconOpacity","logoutUser","showOrders","triggerLeadGen","userDetails","triggerLeadGenWithStatus","triggerLeadGenWithLoginCta","showLoginCta","safeShowLoginCta","archiveSmallcase","iscid","safeIscid","getSdkVersion","_default","exports","default"],"sources":["SmallcaseGateway.js"],"sourcesContent":["import { NativeModules, Platform } from 'react-native';\nimport { ENV } from './constants';\nimport { safeObject, platformSpecificColorHex } from './util';\nimport { version } from '../package.json';\nconst { SmallcaseGateway: SmallcaseGatewayNative } = NativeModules;\n\n/**\n *\n * @typedef {Object} envConfig\n * @property {string} gatewayName - unique name on consumer\n * @property {boolean} isLeprechaun - leprechaun mode toggle\n * @property {boolean} isAmoEnabled - support AMO (subject to broker support)\n * @property {Array<string>} brokerList - list of broker names\n * @property {'production' | 'staging' | 'development'} environmentName - environment name\n *\n * @typedef {Object} transactionRes\n * @property {string} data - response data\n * @property {boolean} success - success flag\n * @property {Number} [errorCode] - error code\n * @property {string} transaction - transaction name\n *\n * @typedef {Object} userDetails\n * @property {String} name - name of user\n * @property {String} email - email of user\n * @property {String} contact - contact of user\n * @property {String} pinCode - pin-code of user\n *\n * @typedef {Object} SmallplugUiConfig\n * @property {String} headerColor - color of the header background\n * @property {Number} headerOpacity - opacity of the header background\n * @property {String} backIconColor - color of the back icon\n * @property {Number} backIconOpacity - opacity of the back icon\n *\n * @typedef {Object} UserInfo\n * @property {string} phoneNumber - user's phone number\n * @property {string} phoneCountryCode - user's phone country code\n *\n * @typedef {Object} SmallplugRes\n * @property {true} success\n * @property {string} smallcaseAuthToken\n * @property {Object} data\n * @property {UserInfo} [data.userInfo]\n *\n */\n\nlet defaultBrokerList = [];\n\n/**\n * configure the sdk with\n * @param {envConfig} envConfig\n */\nconst setConfigEnvironment = async (envConfig) => {\n const safeConfig = safeObject(envConfig);\n\n await SmallcaseGatewayNative.setHybridSdkVersion(version);\n\n const {\n brokerList,\n gatewayName,\n isLeprechaun,\n isAmoEnabled,\n environmentName,\n } = safeConfig;\n\n const safeIsLeprechaun = Boolean(isLeprechaun);\n const safeIsAmoEnabled = Boolean(isAmoEnabled);\n const safeBrokerList = Array.isArray(brokerList) ? brokerList : [];\n const safeGatewayName = typeof gatewayName === 'string' ? gatewayName : '';\n const safeEnvName =\n typeof environmentName === 'string' ? environmentName : ENV.PROD;\n\n defaultBrokerList = safeBrokerList;\n\n await SmallcaseGatewayNative.setConfigEnvironment(\n safeEnvName,\n safeGatewayName,\n safeIsLeprechaun,\n safeIsAmoEnabled,\n safeBrokerList\n );\n};\n\n/**\n * initialize sdk with a session\n *\n * note: this must be called after `setConfigEnvironment()`\n * @param {string} sdkToken\n */\nconst init = async (sdkToken) => {\n const safeToken = typeof sdkToken === 'string' ? sdkToken : '';\n return SmallcaseGatewayNative.init(safeToken);\n};\n\n/**\n * triggers a transaction with a transaction id\n *\n * @param {string} transactionId\n * @param {Object} [utmParams]\n * @param {Array<string>} [brokerList]\n * @returns {Promise<transactionRes>}\n */\nconst triggerTransaction = async (transactionId, utmParams, brokerList) => {\n const safeUtm = safeObject(utmParams);\n const safeId = typeof transactionId === 'string' ? transactionId : '';\n\n const safeBrokerList =\n Array.isArray(brokerList) && brokerList.length\n ? brokerList\n : defaultBrokerList;\n\n return SmallcaseGatewayNative.triggerTransaction(\n safeId,\n safeUtm,\n safeBrokerList\n );\n};\n\n/**\n * triggers a transaction with a transaction id\n * @deprecated triggerMfTransaction will be removed soon. Please use triggerTransaction.\n * @param {string} transactionId\n * @returns {Promise<transactionRes>}\n */\nconst triggerMfTransaction = async (transactionId) => {\n console.warn(\n 'Calling deprecated function! triggerMfTransaction will be removed soon. Please use triggerTransaction.'\n );\n const safeTransactionId =\n typeof transactionId === 'string' ? transactionId : '';\n\n return SmallcaseGatewayNative.triggerMfTransaction(safeTransactionId);\n};\n\n/**\n * launches smallcases module\n * On success, resolves with SmallplugRes.\n * On failure, rejects with an error object containing `errorCode`, `errorMessage`, and an optional `data` object with `userInfo`.\n *\n * @param {string} targetEndpoint\n * @param {string} params\n * @returns {Promise<SmallplugRes>}\n */\nconst launchSmallplug = async (targetEndpoint, params) => {\n const safeEndpoint = typeof targetEndpoint === 'string' ? targetEndpoint : '';\n const safeParams = typeof params === 'string' ? params : '';\n\n return SmallcaseGatewayNative.launchSmallplug(safeEndpoint, safeParams);\n};\n\n/**\n * launches smallcases module\n * On success, resolves with SmallplugRes.\n * On failure, rejects with an error object containing `errorCode`, `errorMessage`, and an optional `data` object with `userInfo`.\n *\n * @param {string} targetEndpoint\n * @param {string} params\n * @param {string} headerColor\n * @param {number} headerOpacity\n * @param {string} backIconColor\n * @param {number} backIconOpacity\n * @returns {Promise<SmallplugRes>}\n */\nconst launchSmallplugWithBranding = async (\n targetEndpoint,\n params,\n headerColor,\n headerOpacity,\n backIconColor,\n backIconOpacity\n) => {\n const safeEndpoint = typeof targetEndpoint === 'string' ? targetEndpoint : '';\n const safeParams = typeof params === 'string' ? params : '';\n const safeHeaderColor =\n typeof headerColor === 'string'\n ? headerColor\n : platformSpecificColorHex('2F363F');\n const safeHeaderOpacity =\n typeof headerOpacity === 'number' ? headerOpacity : 1;\n const safeBackIconColor =\n typeof backIconColor === 'string'\n ? backIconColor\n : platformSpecificColorHex('FFFFFF');\n const safeBackIconOpacity =\n typeof backIconOpacity === 'number' ? backIconOpacity : 1;\n\nreturn SmallcaseGatewayNative.launchSmallplugWithBranding(\n safeEndpoint,\n safeParams,\n safeHeaderColor,\n safeHeaderOpacity,\n safeBackIconColor,\n safeBackIconOpacity\n );\n};\n\n/**\n * Logs the user out and removes the web session.\n *\n * This promise will be rejected if logout was unsuccessful\n *\n * @returns {Promise}\n */\nconst logoutUser = async () => {\n return SmallcaseGatewayNative.logoutUser();\n};\n\n/**\n * This will display a list of all the orders that a user recently placed.\n * This includes pending, successful, and failed orders.\n * @returns\n */\nconst showOrders = async () => {\n return SmallcaseGatewayNative.showOrders();\n};\n\n/**\n * triggers the lead gen flow\n *\n * @param {userDetails} [userDetails]\n * @param {Object} [utmParams]\n */\nconst triggerLeadGen = (userDetails, utmParams) => {\n const safeParams = safeObject(userDetails);\n const safeUtm = safeObject(utmParams);\n\n return SmallcaseGatewayNative.triggerLeadGen(safeParams, safeUtm);\n};\n\n/**\n * triggers the lead gen flow\n *\n * @param {userDetails} [userDetails]\n * * @returns {Promise}\n */\nconst triggerLeadGenWithStatus = async (userDetails) => {\n const safeParams = safeObject(userDetails);\n\n return SmallcaseGatewayNative.triggerLeadGenWithStatus(safeParams);\n};\n\n/**\n * triggers the lead gen flow with an option of \"login here\" cta\n *\n * @param {userDetails} [userDetails]\n * @param {Object} [utmParams]\n * @param {boolean} [showLoginCta]\n * @returns {Promise}\n */\nconst triggerLeadGenWithLoginCta = async (\n userDetails,\n utmParams,\n showLoginCta\n) => {\n const safeParams = safeObject(userDetails);\n const safeUtm = safeObject(utmParams);\n const safeShowLoginCta = Boolean(showLoginCta);\n\n return SmallcaseGatewayNative.triggerLeadGenWithLoginCta(\n safeParams,\n safeUtm,\n safeShowLoginCta\n );\n};\n\n/**\n * Marks a smallcase as archived\n *\n * @param {String} iscid\n */\nconst archiveSmallcase = async (iscid) => {\n const safeIscid = typeof iscid === 'string' ? iscid : '';\n\n return SmallcaseGatewayNative.archiveSmallcase(safeIscid);\n};\n\n/**\n * Returns the native android/ios and react-native sdk version\n * (internal-tracking)\n * @returns {Promise}\n */\nconst getSdkVersion = async () => {\n return SmallcaseGatewayNative.getSdkVersion(version);\n};\n\nconst SmallcaseGateway = {\n init,\n logoutUser,\n triggerLeadGen,\n triggerLeadGenWithStatus,\n triggerLeadGenWithLoginCta,\n archiveSmallcase,\n triggerTransaction,\n triggerMfTransaction,\n setConfigEnvironment,\n launchSmallplug,\n launchSmallplugWithBranding,\n getSdkVersion,\n showOrders,\n};\n\nexport default SmallcaseGateway;"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_constants","_util","_package","SmallcaseGateway","SmallcaseGatewayNative","NativeModules","defaultBrokerList","setConfigEnvironment","envConfig","safeConfig","safeObject","setHybridSdkVersion","version","brokerList","gatewayName","isLeprechaun","isAmoEnabled","environmentName","safeIsLeprechaun","Boolean","safeIsAmoEnabled","safeBrokerList","sanitizeBrokerList","safeGatewayName","safeEnvName","ENV","PROD","init","sdkToken","externalMeta","safeToken","safeExternalMeta","triggerTransaction","transactionId","utmParams","safeUtm","safeId","length","triggerMfTransaction","console","warn","safeTransactionId","launchSmallplug","targetEndpoint","params","safeEndpoint","safeParams","launchSmallplugWithBranding","headerColor","headerOpacity","backIconColor","backIconOpacity","safeHeaderColor","platformSpecificColorHex","safeHeaderOpacity","safeBackIconColor","safeBackIconOpacity","logoutUser","showOrders","triggerLeadGen","userDetails","triggerLeadGenWithStatus","triggerLeadGenWithLoginCta","showLoginCta","safeShowLoginCta","archiveSmallcase","iscid","safeIscid","getSdkVersion","_default","exports","default"],"sources":["SmallcaseGateway.js"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { ENV } from './constants';\nimport {\n safeObject,\n platformSpecificColorHex,\n sanitizeBrokerList,\n} from './util';\nimport { version } from '../package.json';\nconst { SmallcaseGateway: SmallcaseGatewayNative } = NativeModules;\n\n/**\n *\n * @typedef {Object} envConfig\n * @property {string} gatewayName - unique name on consumer\n * @property {boolean} isLeprechaun - leprechaun mode toggle\n * @property {boolean} isAmoEnabled - support AMO (subject to broker support)\n * @property {Array<string>} brokerList - list of broker names\n * @property {'production' | 'staging' | 'development'} environmentName - environment name\n *\n * @typedef {Object} transactionRes\n * @property {string} data - response data\n * @property {boolean} success - success flag\n * @property {Number} [errorCode] - error code\n * @property {string} transaction - transaction name\n *\n * @typedef {Object} userDetails\n * @property {String} name - name of user\n * @property {String} email - email of user\n * @property {String} contact - contact of user\n * @property {String} pinCode - pin-code of user\n *\n * @typedef {Object} SmallplugUiConfig\n * @property {String} headerColor - color of the header background\n * @property {Number} headerOpacity - opacity of the header background\n * @property {String} backIconColor - color of the back icon\n * @property {Number} backIconOpacity - opacity of the back icon\n *\n * @typedef {Object} UserInfo\n * @property {string} phoneNumber - user's phone number\n * @property {string} phoneCountryCode - user's phone country code\n *\n * @typedef {Object} SmallplugRes\n * @property {true} success\n * @property {string} smallcaseAuthToken\n * @property {Object} data\n * @property {UserInfo} [data.userInfo]\n *\n */\n\nlet defaultBrokerList = [];\n\n/**\n * configure the sdk with\n * @param {envConfig} envConfig\n */\nconst setConfigEnvironment = async (envConfig) => {\n const safeConfig = safeObject(envConfig);\n\n await SmallcaseGatewayNative.setHybridSdkVersion(version);\n\n const {\n brokerList,\n gatewayName,\n isLeprechaun,\n isAmoEnabled,\n environmentName,\n } = safeConfig;\n\n const safeIsLeprechaun = Boolean(isLeprechaun);\n const safeIsAmoEnabled = Boolean(isAmoEnabled);\n const safeBrokerList = sanitizeBrokerList(brokerList);\n const safeGatewayName = typeof gatewayName === 'string' ? gatewayName : '';\n const safeEnvName =\n typeof environmentName === 'string' ? environmentName : ENV.PROD;\n\n defaultBrokerList = safeBrokerList;\n\n await SmallcaseGatewayNative.setConfigEnvironment(\n safeEnvName,\n safeGatewayName,\n safeIsLeprechaun,\n safeIsAmoEnabled,\n safeBrokerList\n );\n};\n\n/**\n * initialize sdk with a session\n *\n * note: this must be called after `setConfigEnvironment()`\n * @param {string} sdkToken\n * @param {Object} [externalMeta] - external metadata (iOS only, optional)\n * @param {Object} [externalMeta.externalIdentifier] - key-value pairs for external identifiers (e.g., { userId: '123' })\n */\nconst init = async (sdkToken, externalMeta) => {\n const safeToken = typeof sdkToken === 'string' ? sdkToken : '';\n const safeExternalMeta =\n externalMeta && typeof externalMeta === 'object' ? externalMeta : null;\n\n return SmallcaseGatewayNative.init(safeToken, safeExternalMeta);\n};\n\n/**\n * triggers a transaction with a transaction id\n *\n * @param {string} transactionId\n * @param {Object} [utmParams]\n * @param {Array<string>} [brokerList]\n * @returns {Promise<transactionRes>}\n */\nconst triggerTransaction = async (transactionId, utmParams, brokerList) => {\n const safeUtm = safeObject(utmParams);\n const safeId = typeof transactionId === 'string' ? transactionId : '';\n\n let safeBrokerList = sanitizeBrokerList(brokerList);\n\n if (safeBrokerList.length === 0) {\n safeBrokerList = defaultBrokerList;\n }\n\n return SmallcaseGatewayNative.triggerTransaction(\n safeId,\n safeUtm,\n safeBrokerList\n );\n};\n\n/**\n * triggers a transaction with a transaction id\n * @deprecated triggerMfTransaction will be removed soon. Please use triggerTransaction.\n * @param {string} transactionId\n * @returns {Promise<transactionRes>}\n */\nconst triggerMfTransaction = async (transactionId) => {\n console.warn(\n 'Calling deprecated function! triggerMfTransaction will be removed soon. Please use triggerTransaction.'\n );\n const safeTransactionId =\n typeof transactionId === 'string' ? transactionId : '';\n\n return SmallcaseGatewayNative.triggerMfTransaction(safeTransactionId);\n};\n\n/**\n * launches smallcases module\n * On success, resolves with SmallplugRes.\n * On failure, rejects with an error object containing `errorCode`, `errorMessage`, and an optional `data` object with `userInfo`.\n *\n * @param {string} targetEndpoint\n * @param {string} params\n * @returns {Promise<SmallplugRes>}\n */\nconst launchSmallplug = async (targetEndpoint, params) => {\n const safeEndpoint = typeof targetEndpoint === 'string' ? targetEndpoint : '';\n const safeParams = typeof params === 'string' ? params : '';\n\n return SmallcaseGatewayNative.launchSmallplug(safeEndpoint, safeParams);\n};\n\n/**\n * launches smallcases module\n * On success, resolves with SmallplugRes.\n * On failure, rejects with an error object containing `errorCode`, `errorMessage`, and an optional `data` object with `userInfo`.\n *\n * @param {string} targetEndpoint\n * @param {string} params\n * @param {string} headerColor\n * @param {number} headerOpacity\n * @param {string} backIconColor\n * @param {number} backIconOpacity\n * @returns {Promise<SmallplugRes>}\n */\nconst launchSmallplugWithBranding = async (\n targetEndpoint,\n params,\n headerColor,\n headerOpacity,\n backIconColor,\n backIconOpacity\n) => {\n const safeEndpoint = typeof targetEndpoint === 'string' ? targetEndpoint : '';\n const safeParams = typeof params === 'string' ? params : '';\n const safeHeaderColor =\n typeof headerColor === 'string'\n ? headerColor\n : platformSpecificColorHex('2F363F');\n const safeHeaderOpacity =\n typeof headerOpacity === 'number' ? headerOpacity : 1;\n const safeBackIconColor =\n typeof backIconColor === 'string'\n ? backIconColor\n : platformSpecificColorHex('FFFFFF');\n const safeBackIconOpacity =\n typeof backIconOpacity === 'number' ? backIconOpacity : 1;\n\n return SmallcaseGatewayNative.launchSmallplugWithBranding(\n safeEndpoint,\n safeParams,\n safeHeaderColor,\n safeHeaderOpacity,\n safeBackIconColor,\n safeBackIconOpacity\n );\n};\n\n/**\n * Logs the user out and removes the web session.\n *\n * This promise will be rejected if logout was unsuccessful\n *\n * @returns {Promise}\n */\nconst logoutUser = async () => {\n return SmallcaseGatewayNative.logoutUser();\n};\n\n/**\n * This will display a list of all the orders that a user recently placed.\n * This includes pending, successful, and failed orders.\n * @returns\n */\nconst showOrders = async () => {\n return SmallcaseGatewayNative.showOrders();\n};\n\n/**\n * triggers the lead gen flow\n *\n * @param {userDetails} [userDetails]\n * @param {Object} [utmParams]\n */\nconst triggerLeadGen = (userDetails, utmParams) => {\n const safeParams = safeObject(userDetails);\n const safeUtm = safeObject(utmParams);\n\n return SmallcaseGatewayNative.triggerLeadGen(safeParams, safeUtm);\n};\n\n/**\n * triggers the lead gen flow\n *\n * @param {userDetails} [userDetails]\n * * @returns {Promise}\n */\nconst triggerLeadGenWithStatus = async (userDetails) => {\n const safeParams = safeObject(userDetails);\n\n return SmallcaseGatewayNative.triggerLeadGenWithStatus(safeParams);\n};\n\n/**\n * triggers the lead gen flow with an option of \"login here\" cta\n *\n * @param {userDetails} [userDetails]\n * @param {Object} [utmParams]\n * @param {boolean} [showLoginCta]\n * @returns {Promise}\n */\nconst triggerLeadGenWithLoginCta = async (\n userDetails,\n utmParams,\n showLoginCta\n) => {\n const safeParams = safeObject(userDetails);\n const safeUtm = safeObject(utmParams);\n const safeShowLoginCta = Boolean(showLoginCta);\n\n return SmallcaseGatewayNative.triggerLeadGenWithLoginCta(\n safeParams,\n safeUtm,\n safeShowLoginCta\n );\n};\n\n/**\n * Marks a smallcase as archived\n *\n * @param {String} iscid\n */\nconst archiveSmallcase = async (iscid) => {\n const safeIscid = typeof iscid === 'string' ? iscid : '';\n\n return SmallcaseGatewayNative.archiveSmallcase(safeIscid);\n};\n\n/**\n * Returns the native android/ios and react-native sdk version\n * (internal-tracking)\n * @returns {Promise}\n */\nconst getSdkVersion = async () => {\n return SmallcaseGatewayNative.getSdkVersion(version);\n};\n\nconst SmallcaseGateway = {\n init,\n logoutUser,\n triggerLeadGen,\n triggerLeadGenWithStatus,\n triggerLeadGenWithLoginCta,\n archiveSmallcase,\n triggerTransaction,\n triggerMfTransaction,\n setConfigEnvironment,\n launchSmallplug,\n launchSmallplugWithBranding,\n getSdkVersion,\n showOrders,\n};\n\nexport default SmallcaseGateway;\n"],"mappings":"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","ignoreList":[]}
@@ -5,36 +5,36 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.TRANSACTION_TYPE = exports.ERROR_MSG = exports.ENV = void 0;
7
7
  const ENV = exports.ENV = {
8
- STAG: "staging",
9
- DEV: "development",
10
- PROD: "production"
8
+ STAG: 'staging',
9
+ DEV: 'development',
10
+ PROD: 'production'
11
11
  };
12
12
  const TRANSACTION_TYPE = exports.TRANSACTION_TYPE = {
13
- connect: "CONNECT",
14
- sipSetup: "SIP_SETUP",
15
- fetchFunds: "FETCH_FUNDS",
16
- transaction: "TRANSACTION",
17
- holdingsImport: "HOLDINGS_IMPORT",
18
- authorizeHoldings: "AUTHORISE_HOLDINGS",
19
- mfHoldingsImport: "MF_HOLDINGS_IMPORT"
13
+ connect: 'CONNECT',
14
+ sipSetup: 'SIP_SETUP',
15
+ fetchFunds: 'FETCH_FUNDS',
16
+ transaction: 'TRANSACTION',
17
+ holdingsImport: 'HOLDINGS_IMPORT',
18
+ authorizeHoldings: 'AUTHORISE_HOLDINGS',
19
+ mfHoldingsImport: 'MF_HOLDINGS_IMPORT'
20
20
  };
21
21
  const ERROR_MSG = exports.ERROR_MSG = {
22
- init_sdk: "init_sdk",
23
- no_order: "no_order",
24
- no_broker: "no_broker",
25
- invalid_jwt: "invalid_jwt",
26
- market_closed: "market_closed",
27
- user_mismatch: "user_mismatch",
28
- order_pending: "order_pending",
29
- internal_error: "internal_error",
30
- user_cancelled: "user_cancelled",
31
- consent_denied: "consent_denied",
32
- order_in_queue: "order_in_queue",
33
- invalid_gateway: "invalid_gateway",
34
- transaction_expired: "transaction_expired",
35
- invalid_transactionId: "invalid_transactionId",
36
- insufficient_holdings: "insufficient_holdings",
37
- transaction_in_process: "transaction_in_process",
38
- no_compatible_browser: "no_compatible_browser"
22
+ init_sdk: 'init_sdk',
23
+ no_order: 'no_order',
24
+ no_broker: 'no_broker',
25
+ invalid_jwt: 'invalid_jwt',
26
+ market_closed: 'market_closed',
27
+ user_mismatch: 'user_mismatch',
28
+ order_pending: 'order_pending',
29
+ internal_error: 'internal_error',
30
+ user_cancelled: 'user_cancelled',
31
+ consent_denied: 'consent_denied',
32
+ order_in_queue: 'order_in_queue',
33
+ invalid_gateway: 'invalid_gateway',
34
+ transaction_expired: 'transaction_expired',
35
+ invalid_transactionId: 'invalid_transactionId',
36
+ insufficient_holdings: 'insufficient_holdings',
37
+ transaction_in_process: 'transaction_in_process',
38
+ no_compatible_browser: 'no_compatible_browser'
39
39
  };
40
40
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ENV","exports","STAG","DEV","PROD","TRANSACTION_TYPE","connect","sipSetup","fetchFunds","transaction","holdingsImport","authorizeHoldings","mfHoldingsImport","ERROR_MSG","init_sdk","no_order","no_broker","invalid_jwt","market_closed","user_mismatch","order_pending","internal_error","user_cancelled","consent_denied","order_in_queue","invalid_gateway","transaction_expired","invalid_transactionId","insufficient_holdings","transaction_in_process","no_compatible_browser"],"sources":["constants.js"],"sourcesContent":["export const ENV = {\n STAG: \"staging\",\n DEV: \"development\",\n PROD: \"production\",\n};\n\nexport const TRANSACTION_TYPE = {\n connect: \"CONNECT\",\n sipSetup: \"SIP_SETUP\",\n fetchFunds: \"FETCH_FUNDS\",\n transaction: \"TRANSACTION\",\n holdingsImport: \"HOLDINGS_IMPORT\",\n authorizeHoldings: \"AUTHORISE_HOLDINGS\",\n mfHoldingsImport: \"MF_HOLDINGS_IMPORT\"\n};\n\nexport const ERROR_MSG = {\n init_sdk: \"init_sdk\",\n no_order: \"no_order\",\n no_broker: \"no_broker\",\n invalid_jwt: \"invalid_jwt\",\n market_closed: \"market_closed\",\n user_mismatch: \"user_mismatch\",\n order_pending: \"order_pending\",\n internal_error: \"internal_error\",\n user_cancelled: \"user_cancelled\",\n consent_denied: \"consent_denied\",\n order_in_queue: \"order_in_queue\",\n invalid_gateway: \"invalid_gateway\",\n transaction_expired: \"transaction_expired\",\n invalid_transactionId: \"invalid_transactionId\",\n insufficient_holdings: \"insufficient_holdings\",\n transaction_in_process: \"transaction_in_process\",\n no_compatible_browser: \"no_compatible_browser\"\n};\n"],"mappings":";;;;;;AAAO,MAAMA,GAAG,GAAAC,OAAA,CAAAD,GAAA,GAAG;EACjBE,IAAI,EAAE,SAAS;EACfC,GAAG,EAAE,aAAa;EAClBC,IAAI,EAAE;AACR,CAAC;AAEM,MAAMC,gBAAgB,GAAAJ,OAAA,CAAAI,gBAAA,GAAG;EAC9BC,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE,WAAW;EACrBC,UAAU,EAAE,aAAa;EACzBC,WAAW,EAAE,aAAa;EAC1BC,cAAc,EAAE,iBAAiB;EACjCC,iBAAiB,EAAE,oBAAoB;EACvCC,gBAAgB,EAAE;AACpB,CAAC;AAEM,MAAMC,SAAS,GAAAZ,OAAA,CAAAY,SAAA,GAAG;EACvBC,QAAQ,EAAE,UAAU;EACpBC,QAAQ,EAAE,UAAU;EACpBC,SAAS,EAAE,WAAW;EACtBC,WAAW,EAAE,aAAa;EAC1BC,aAAa,EAAE,eAAe;EAC9BC,aAAa,EAAE,eAAe;EAC9BC,aAAa,EAAE,eAAe;EAC9BC,cAAc,EAAE,gBAAgB;EAChCC,cAAc,EAAE,gBAAgB;EAChCC,cAAc,EAAE,gBAAgB;EAChCC,cAAc,EAAE,gBAAgB;EAChCC,eAAe,EAAE,iBAAiB;EAClCC,mBAAmB,EAAE,qBAAqB;EAC1CC,qBAAqB,EAAE,uBAAuB;EAC9CC,qBAAqB,EAAE,uBAAuB;EAC9CC,sBAAsB,EAAE,wBAAwB;EAChDC,qBAAqB,EAAE;AACzB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["ENV","exports","STAG","DEV","PROD","TRANSACTION_TYPE","connect","sipSetup","fetchFunds","transaction","holdingsImport","authorizeHoldings","mfHoldingsImport","ERROR_MSG","init_sdk","no_order","no_broker","invalid_jwt","market_closed","user_mismatch","order_pending","internal_error","user_cancelled","consent_denied","order_in_queue","invalid_gateway","transaction_expired","invalid_transactionId","insufficient_holdings","transaction_in_process","no_compatible_browser"],"sources":["constants.js"],"sourcesContent":["export const ENV = {\n STAG: 'staging',\n DEV: 'development',\n PROD: 'production',\n};\n\nexport const TRANSACTION_TYPE = {\n connect: 'CONNECT',\n sipSetup: 'SIP_SETUP',\n fetchFunds: 'FETCH_FUNDS',\n transaction: 'TRANSACTION',\n holdingsImport: 'HOLDINGS_IMPORT',\n authorizeHoldings: 'AUTHORISE_HOLDINGS',\n mfHoldingsImport: 'MF_HOLDINGS_IMPORT',\n};\n\nexport const ERROR_MSG = {\n init_sdk: 'init_sdk',\n no_order: 'no_order',\n no_broker: 'no_broker',\n invalid_jwt: 'invalid_jwt',\n market_closed: 'market_closed',\n user_mismatch: 'user_mismatch',\n order_pending: 'order_pending',\n internal_error: 'internal_error',\n user_cancelled: 'user_cancelled',\n consent_denied: 'consent_denied',\n order_in_queue: 'order_in_queue',\n invalid_gateway: 'invalid_gateway',\n transaction_expired: 'transaction_expired',\n invalid_transactionId: 'invalid_transactionId',\n insufficient_holdings: 'insufficient_holdings',\n transaction_in_process: 'transaction_in_process',\n no_compatible_browser: 'no_compatible_browser',\n};\n"],"mappings":";;;;;;AAAO,MAAMA,GAAG,GAAAC,OAAA,CAAAD,GAAA,GAAG;EACjBE,IAAI,EAAE,SAAS;EACfC,GAAG,EAAE,aAAa;EAClBC,IAAI,EAAE;AACR,CAAC;AAEM,MAAMC,gBAAgB,GAAAJ,OAAA,CAAAI,gBAAA,GAAG;EAC9BC,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE,WAAW;EACrBC,UAAU,EAAE,aAAa;EACzBC,WAAW,EAAE,aAAa;EAC1BC,cAAc,EAAE,iBAAiB;EACjCC,iBAAiB,EAAE,oBAAoB;EACvCC,gBAAgB,EAAE;AACpB,CAAC;AAEM,MAAMC,SAAS,GAAAZ,OAAA,CAAAY,SAAA,GAAG;EACvBC,QAAQ,EAAE,UAAU;EACpBC,QAAQ,EAAE,UAAU;EACpBC,SAAS,EAAE,WAAW;EACtBC,WAAW,EAAE,aAAa;EAC1BC,aAAa,EAAE,eAAe;EAC9BC,aAAa,EAAE,eAAe;EAC9BC,aAAa,EAAE,eAAe;EAC9BC,cAAc,EAAE,gBAAgB;EAChCC,cAAc,EAAE,gBAAgB;EAChCC,cAAc,EAAE,gBAAgB;EAChCC,cAAc,EAAE,gBAAgB;EAChCC,eAAe,EAAE,iBAAiB;EAClCC,mBAAmB,EAAE,qBAAqB;EAC1CC,qBAAqB,EAAE,uBAAuB;EAC9CC,qBAAqB,EAAE,uBAAuB;EAC9CC,sBAAsB,EAAE,wBAAwB;EAChDC,qBAAqB,EAAE;AACzB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_SmallcaseGateway","_interopRequireDefault","require","_ScLoan","_SCGatewayEventEmitter","_interopRequireWildcard","_SCLoansEventEmitter","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_default","exports","SmallcaseGateway","ENV","ERROR_MSG","TRANSACTION_TYPE"],"sources":["index.js"],"sourcesContent":["import SmallcaseGateway from \"./SmallcaseGateway\";\nimport ScLoan from \"./ScLoan\";\nimport scGatewayEventManager, { SCGatewayEventTypes } from './SCGatewayEventEmitter';\nimport scLoansEventManager, { SCLoansEventTypes } from './SCLoansEventEmitter';\nimport { ENV, TRANSACTION_TYPE, ERROR_MSG } from \"./constants\";\n\nexport { ScLoan, scGatewayEventManager as SCGatewayEventManager, scLoansEventManager as SCLoansEventManager, SCGatewayEventTypes, SCLoansEventTypes }\nexport default { ...SmallcaseGateway, ENV, ERROR_MSG, TRANSACTION_TYPE };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,sBAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAD,uBAAA,CAAAH,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAA+D,SAAAG,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAR,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;AAAA,IAAAmB,QAAA,GAAAC,OAAA,CAAAV,OAAA,GAGhD;EAAE,GAAGW,yBAAgB;EAAEC,GAAG,EAAHA,cAAG;EAAEC,SAAS,EAATA,oBAAS;EAAEC,gBAAgB,EAAhBA;AAAiB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_SmallcaseGateway","_interopRequireDefault","require","_ScLoan","_SCGatewayEventEmitter","_interopRequireWildcard","_SCLoansEventEmitter","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_default","exports","SmallcaseGateway","ENV","ERROR_MSG","TRANSACTION_TYPE"],"sources":["index.js"],"sourcesContent":["import SmallcaseGateway from './SmallcaseGateway';\nimport ScLoan from './ScLoan';\nimport scGatewayEventManager, {\n SCGatewayEventTypes,\n} from './SCGatewayEventEmitter';\nimport scLoansEventManager, { SCLoansEventTypes } from './SCLoansEventEmitter';\nimport { ENV, TRANSACTION_TYPE, ERROR_MSG } from './constants';\n\nexport {\n ScLoan,\n scGatewayEventManager as SCGatewayEventManager,\n scLoansEventManager as SCLoansEventManager,\n SCGatewayEventTypes,\n SCLoansEventTypes,\n};\nexport default { ...SmallcaseGateway, ENV, ERROR_MSG, TRANSACTION_TYPE };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,sBAAA,GAAAC,uBAAA,CAAAH,OAAA;AAGA,IAAAI,oBAAA,GAAAD,uBAAA,CAAAH,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAA+D,SAAAG,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAR,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;AAAA,IAAAmB,QAAA,GAAAC,OAAA,CAAAV,OAAA,GAShD;EAAE,GAAGW,yBAAgB;EAAEC,GAAG,EAAHA,cAAG;EAAEC,SAAS,EAATA,oBAAS;EAAEC,gBAAgB,EAAhBA;AAAiB,CAAC","ignoreList":[]}
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.platformSpecificColorHex = platformSpecificColorHex;
7
7
  exports.safeObject = void 0;
8
+ exports.sanitizeBrokerList = sanitizeBrokerList;
9
+ var _reactNative = require("react-native");
8
10
  /**
9
11
  * check if value is a valid object.
10
12
  *
@@ -14,13 +16,23 @@ exports.safeObject = void 0;
14
16
  * @returns {Object} same object if its valid, else returns `{}`
15
17
  */
16
18
  const safeObject = obj => {
17
- return obj && typeof obj === "object" ? obj : {};
19
+ return obj && typeof obj === 'object' ? obj : {};
18
20
  };
19
21
  exports.safeObject = safeObject;
20
22
  function platformSpecificColorHex(hex) {
21
- if (Platform.OS === 'android') {
23
+ if (_reactNative.Platform.OS === 'android') {
22
24
  return `#${hex}`;
23
25
  }
24
26
  return hex;
25
27
  }
28
+
29
+ /** sanitize the input broker array to make sure its an array and only has string values */
30
+ function sanitizeBrokerList(arr) {
31
+ if (!Array.isArray(arr) || arr.length === 0) {
32
+ return [];
33
+ }
34
+ return arr.filter(val => {
35
+ return typeof val === 'string' && val.trim() !== '';
36
+ });
37
+ }
26
38
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["safeObject","obj","exports","platformSpecificColorHex","hex","Platform","OS"],"sources":["util.js"],"sourcesContent":["/**\n * check if value is a valid object.\n *\n *\n * (Native modules expect objects to not include `null`. wtf js)\n * @param {*} obj\n * @returns {Object} same object if its valid, else returns `{}`\n */\n export const safeObject = (obj) => {\n return obj && typeof obj === \"object\" ? obj : {};\n};\n\nexport function platformSpecificColorHex(hex) {\n if (Platform.OS === 'android') {\n return `#${hex}`\n }\n return hex\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACQ,MAAMA,UAAU,GAAIC,GAAG,IAAK;EAClC,OAAOA,GAAG,IAAI,OAAOA,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAG,CAAC,CAAC;AAClD,CAAC;AAACC,OAAA,CAAAF,UAAA,GAAAA,UAAA;AAEK,SAASG,wBAAwBA,CAACC,GAAG,EAAE;EAC5C,IAAIC,QAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B,OAAO,IAAIF,GAAG,EAAE;EAClB;EACA,OAAOA,GAAG;AACZ","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","safeObject","obj","exports","platformSpecificColorHex","hex","Platform","OS","sanitizeBrokerList","arr","Array","isArray","length","filter","val","trim"],"sources":["util.js"],"sourcesContent":["import { Platform } from 'react-native';\n\n/**\n * check if value is a valid object.\n *\n *\n * (Native modules expect objects to not include `null`. wtf js)\n * @param {*} obj\n * @returns {Object} same object if its valid, else returns `{}`\n */\nexport const safeObject = (obj) => {\n return obj && typeof obj === 'object' ? obj : {};\n};\n\nexport function platformSpecificColorHex(hex) {\n if (Platform.OS === 'android') {\n return `#${hex}`;\n }\n return hex;\n}\n\n/** sanitize the input broker array to make sure its an array and only has string values */\nexport function sanitizeBrokerList(arr) {\n if (!Array.isArray(arr) || arr.length === 0) {\n return [];\n }\n\n return arr.filter((val) => {\n return typeof val === 'string' && val.trim() !== '';\n });\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,UAAU,GAAIC,GAAG,IAAK;EACjC,OAAOA,GAAG,IAAI,OAAOA,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAG,CAAC,CAAC;AAClD,CAAC;AAACC,OAAA,CAAAF,UAAA,GAAAA,UAAA;AAEK,SAASG,wBAAwBA,CAACC,GAAG,EAAE;EAC5C,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B,OAAO,IAAIF,GAAG,EAAE;EAClB;EACA,OAAOA,GAAG;AACZ;;AAEA;AACO,SAASG,kBAAkBA,CAACC,GAAG,EAAE;EACtC,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,GAAG,CAAC,IAAIA,GAAG,CAACG,MAAM,KAAK,CAAC,EAAE;IAC3C,OAAO,EAAE;EACX;EAEA,OAAOH,GAAG,CAACI,MAAM,CAAEC,GAAG,IAAK;IACzB,OAAO,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACC,IAAI,CAAC,CAAC,KAAK,EAAE;EACrD,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
1
+ import { NativeEventEmitter, NativeModules } from 'react-native';
2
2
 
3
3
  /**
4
4
  * @typedef {Object} GatewayEvent
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","NativeModules","Platform","nativeModule","SCGatewayBridgeEmitter","SCGatewayEventTypes","ANALYTICS_EVENT","SUPER_PROPERTIES_UPDATED","USER_RESET","USER_IDENTIFY","SCGatewayNotificationEvent","SCGatewayEvents","constructor","eventEmitter","subscriptions","initialize","isInitialized","console","warn","subscribeToGatewayEvents","callback","subscription","addListener","jsonString","eventData","JSON","parse","error","type","normalizedEvent","data","timestamp","Date","now","push","unsubscribeFromGatewayEvents","remove","filter","sub","cleanup","forEach","scGatewayEventManager"],"sources":["SCGatewayEventEmitter.js"],"sourcesContent":["import {\n NativeEventEmitter,\n NativeModules,\n Platform\n} from 'react-native';\n\n/**\n * @typedef {Object} GatewayEvent\n * @property {string} type - Event type\n * @property {any} data - Event payload data\n * @property {number} timestamp - Event timestamp\n *\n * @typedef {Object} GatewayEventSubscription\n * @property {() => void} remove - Method to unsubscribe from gateway events\n *\n */\n\nconst nativeModule = NativeModules.SCGatewayBridgeEmitter;\n\nexport const SCGatewayEventTypes = {\n ANALYTICS_EVENT: 'scgateway_analytics_event',\n SUPER_PROPERTIES_UPDATED: 'scgateway_super_properties_updated',\n USER_RESET: 'scgateway_user_reset',\n USER_IDENTIFY: 'scgateway_user_identify',\n};\n\nconst SCGatewayNotificationEvent = 'scg_notification';\n\nclass SCGatewayEvents {\n constructor() {\n this.eventEmitter = null;\n this.subscriptions = [];\n this.initialize();\n }\n\n get isInitialized() {\n return this.eventEmitter !== null;\n }\n\n initialize() {\n if (nativeModule) {\n this.eventEmitter = new NativeEventEmitter(nativeModule);\n } else {\n console.warn('[SCGatewayEvents] Native module not available');\n }\n }\n\n // ===== GATEWAY EVENT METHODS =====\n /**\n * Subscribe to Gateway Events\n * @param {(event: GatewayEvent) => void} callback - Callback function to handle gateway events\n * @returns {GatewayEventSubscription} subscription - Subscription object with remove() method\n */\n subscribeToGatewayEvents(callback) {\n if (!this.isInitialized) {\n console.warn('[SCGatewayEvents] Event emitter not initialized');\n return null;\n }\n\n if (typeof callback !== 'function') {\n console.warn('[SCGatewayEvents] Invalid callback provided for subscription');\n return null;\n }\n\n const subscription = this.eventEmitter.addListener(SCGatewayNotificationEvent, (jsonString) => {\n if (!jsonString) {\n console.warn('[SCGatewayEvents] Received null/undefined event data');\n return;\n }\n\n let eventData;\n try {\n eventData = JSON.parse(jsonString);\n } catch (error) {\n console.warn('[SCGatewayEvents] Failed to parse event JSON:', error, 'Raw data:', jsonString);\n return;\n }\n\n if (!eventData.type) {\n console.warn('[SCGatewayEvents] Dropping event - missing event type:', eventData);\n return;\n }\n\n const normalizedEvent = {\n type: eventData.type,\n data: eventData.data,\n timestamp: eventData.timestamp || Date.now()\n };\n\n callback(normalizedEvent);\n });\n\n this.subscriptions.push(subscription);\n\n return subscription;\n }\n\n /**\n * Unsubscribe from Gateway Events\n * @param {GatewayEventSubscription} subscription - Subscription returned from subscribeToGatewayEvents\n */\n unsubscribeFromGatewayEvents(subscription) {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n this.subscriptions = this.subscriptions.filter(sub => sub !== subscription);\n }\n }\n\n cleanup() {\n this.subscriptions.forEach(subscription => {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n }\n });\n this.subscriptions = [];\n }\n}\n\nconst scGatewayEventManager = new SCGatewayEvents();\n\nexport default scGatewayEventManager;"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeEventEmitter","NativeModules","nativeModule","SCGatewayBridgeEmitter","SCGatewayEventTypes","ANALYTICS_EVENT","SUPER_PROPERTIES_UPDATED","USER_RESET","USER_IDENTIFY","SCGatewayNotificationEvent","SCGatewayEvents","constructor","eventEmitter","subscriptions","initialize","isInitialized","console","warn","subscribeToGatewayEvents","callback","subscription","addListener","jsonString","eventData","JSON","parse","error","type","normalizedEvent","data","timestamp","Date","now","push","unsubscribeFromGatewayEvents","remove","filter","sub","cleanup","forEach","scGatewayEventManager"],"sources":["SCGatewayEventEmitter.js"],"sourcesContent":["import { NativeEventEmitter, NativeModules } from 'react-native';\n\n/**\n * @typedef {Object} GatewayEvent\n * @property {string} type - Event type\n * @property {any} data - Event payload data\n * @property {number} timestamp - Event timestamp\n *\n * @typedef {Object} GatewayEventSubscription\n * @property {() => void} remove - Method to unsubscribe from gateway events\n *\n */\n\nconst nativeModule = NativeModules.SCGatewayBridgeEmitter;\n\nexport const SCGatewayEventTypes = {\n ANALYTICS_EVENT: 'scgateway_analytics_event',\n SUPER_PROPERTIES_UPDATED: 'scgateway_super_properties_updated',\n USER_RESET: 'scgateway_user_reset',\n USER_IDENTIFY: 'scgateway_user_identify',\n};\n\nconst SCGatewayNotificationEvent = 'scg_notification';\n\nclass SCGatewayEvents {\n constructor() {\n this.eventEmitter = null;\n this.subscriptions = [];\n this.initialize();\n }\n\n get isInitialized() {\n return this.eventEmitter !== null;\n }\n\n initialize() {\n if (nativeModule) {\n this.eventEmitter = new NativeEventEmitter(nativeModule);\n } else {\n console.warn('[SCGatewayEvents] Native module not available');\n }\n }\n\n // ===== GATEWAY EVENT METHODS =====\n /**\n * Subscribe to Gateway Events\n * @param {(event: GatewayEvent) => void} callback - Callback function to handle gateway events\n * @returns {GatewayEventSubscription} subscription - Subscription object with remove() method\n */\n subscribeToGatewayEvents(callback) {\n if (!this.isInitialized) {\n console.warn('[SCGatewayEvents] Event emitter not initialized');\n return null;\n }\n\n if (typeof callback !== 'function') {\n console.warn(\n '[SCGatewayEvents] Invalid callback provided for subscription'\n );\n return null;\n }\n\n const subscription = this.eventEmitter.addListener(\n SCGatewayNotificationEvent,\n (jsonString) => {\n if (!jsonString) {\n console.warn('[SCGatewayEvents] Received null/undefined event data');\n return;\n }\n\n let eventData;\n try {\n eventData = JSON.parse(jsonString);\n } catch (error) {\n console.warn(\n '[SCGatewayEvents] Failed to parse event JSON:',\n error,\n 'Raw data:',\n jsonString\n );\n return;\n }\n\n if (!eventData.type) {\n console.warn(\n '[SCGatewayEvents] Dropping event - missing event type:',\n eventData\n );\n return;\n }\n\n const normalizedEvent = {\n type: eventData.type,\n data: eventData.data,\n timestamp: eventData.timestamp || Date.now(),\n };\n\n callback(normalizedEvent);\n }\n );\n\n this.subscriptions.push(subscription);\n\n return subscription;\n }\n\n /**\n * Unsubscribe from Gateway Events\n * @param {GatewayEventSubscription} subscription - Subscription returned from subscribeToGatewayEvents\n */\n unsubscribeFromGatewayEvents(subscription) {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n this.subscriptions = this.subscriptions.filter(\n (sub) => sub !== subscription\n );\n }\n }\n\n cleanup() {\n this.subscriptions.forEach((subscription) => {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n }\n });\n this.subscriptions = [];\n }\n}\n\nconst scGatewayEventManager = new SCGatewayEvents();\n\nexport default scGatewayEventManager;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
1
+ import { NativeEventEmitter, NativeModules } from 'react-native';
2
2
 
3
3
  /**
4
4
  * @typedef {Object} LoansEvent
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","NativeModules","Platform","nativeModule","SCLoansBridgeEmitter","SCLoansEventTypes","ANALYTICS_EVENT","SUPER_PROPERTIES_UPDATED","SCLoansNotificationEvent","SCLoansEvents","constructor","eventEmitter","subscriptions","initialize","isInitialized","console","warn","subscribeToLoansEvent","callback","subscription","addListener","jsonString","eventData","JSON","parse","error","type","normalizedEvent","data","timestamp","Date","now","push","unsubscribeFromLoansEvent","remove","filter","sub","cleanup","forEach","scLoansEventManager"],"sources":["SCLoansEventEmitter.js"],"sourcesContent":["import {\n NativeEventEmitter,\n NativeModules,\n Platform\n} from 'react-native';\n\n/**\n * @typedef {Object} LoansEvent\n * @property {string} type - Event type\n * @property {number} timestamp - Event timestamp\n *\n * @typedef {Object} LoansEventSubscription\n * @property {() => void} remove - Method to unsubscribe from loans events\n */\n\nconst nativeModule = NativeModules.SCLoansBridgeEmitter;\n\nexport const SCLoansEventTypes = {\n ANALYTICS_EVENT: 'scloans_analytics_event',\n SUPER_PROPERTIES_UPDATED: 'scloans_super_properties_updated',\n};\n\nconst SCLoansNotificationEvent = 'scloans_notification';\nclass SCLoansEvents {\n constructor() {\n this.eventEmitter = null;\n this.subscriptions = [];\n this.initialize();\n }\n\n get isInitialized() {\n return this.eventEmitter !== null;\n }\n\n initialize() {\n if (nativeModule) {\n this.eventEmitter = new NativeEventEmitter(nativeModule);\n } else {\n console.warn('[SCLoansEvents] Native module not available');\n }\n }\n\n // ===== LOANS EVENT METHODS =====\n /**\n * Subscribe to Loans Events\n * @param {(event: LoansEvent) => void} callback - Callback function to handle loans events\n * @returns {LoansEventSubscription} subscription - Subscription object with remove() method\n */\n subscribeToLoansEvent(callback) {\n if (!this.isInitialized) {\n console.warn('[SCLoansEvents] Event emitter not initialized');\n return null;\n }\n\n if (typeof callback !== 'function') {\n console.warn('[SCLoansEvents] Invalid callback provided for subscription');\n return null;\n }\n\n const subscription = this.eventEmitter.addListener(SCLoansNotificationEvent, (jsonString) => {\n if (!jsonString) {\n console.warn('[SCLoansEvents] Received null/undefined event data');\n return;\n }\n\n let eventData;\n try {\n eventData = JSON.parse(jsonString);\n } catch (error) {\n console.warn('[SCLoansEvents] Failed to parse event JSON:', error, 'Raw data:', jsonString);\n return;\n }\n\n if (!eventData.type) {\n console.warn('[SCLoansEvents] Dropping event - missing event type:', eventData);\n return;\n }\n\n const normalizedEvent = {\n type: eventData.type,\n data: eventData.data,\n timestamp: eventData.timestamp || Date.now()\n };\n\n callback(normalizedEvent);\n });\n\n this.subscriptions.push(subscription);\n\n return subscription;\n }\n\n /**\n * Unsubscribe from Loans Events\n * @param {LoansEventSubscription} subscription - Subscription returned from subscribeToLoansEvents\n */\n unsubscribeFromLoansEvent(subscription) {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n this.subscriptions = this.subscriptions.filter(sub => sub !== subscription);\n }\n }\n\n cleanup() {\n this.subscriptions.forEach(subscription => {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n }\n });\n this.subscriptions = [];\n }\n}\n\nconst scLoansEventManager = new SCLoansEvents();\n\nexport default scLoansEventManager;"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeEventEmitter","NativeModules","nativeModule","SCLoansBridgeEmitter","SCLoansEventTypes","ANALYTICS_EVENT","SUPER_PROPERTIES_UPDATED","SCLoansNotificationEvent","SCLoansEvents","constructor","eventEmitter","subscriptions","initialize","isInitialized","console","warn","subscribeToLoansEvent","callback","subscription","addListener","jsonString","eventData","JSON","parse","error","type","normalizedEvent","data","timestamp","Date","now","push","unsubscribeFromLoansEvent","remove","filter","sub","cleanup","forEach","scLoansEventManager"],"sources":["SCLoansEventEmitter.js"],"sourcesContent":["import { NativeEventEmitter, NativeModules } from 'react-native';\n\n/**\n * @typedef {Object} LoansEvent\n * @property {string} type - Event type\n * @property {number} timestamp - Event timestamp\n *\n * @typedef {Object} LoansEventSubscription\n * @property {() => void} remove - Method to unsubscribe from loans events\n */\n\nconst nativeModule = NativeModules.SCLoansBridgeEmitter;\n\nexport const SCLoansEventTypes = {\n ANALYTICS_EVENT: 'scloans_analytics_event',\n SUPER_PROPERTIES_UPDATED: 'scloans_super_properties_updated',\n};\n\nconst SCLoansNotificationEvent = 'scloans_notification';\nclass SCLoansEvents {\n constructor() {\n this.eventEmitter = null;\n this.subscriptions = [];\n this.initialize();\n }\n\n get isInitialized() {\n return this.eventEmitter !== null;\n }\n\n initialize() {\n if (nativeModule) {\n this.eventEmitter = new NativeEventEmitter(nativeModule);\n } else {\n console.warn('[SCLoansEvents] Native module not available');\n }\n }\n\n // ===== LOANS EVENT METHODS =====\n /**\n * Subscribe to Loans Events\n * @param {(event: LoansEvent) => void} callback - Callback function to handle loans events\n * @returns {LoansEventSubscription} subscription - Subscription object with remove() method\n */\n subscribeToLoansEvent(callback) {\n if (!this.isInitialized) {\n console.warn('[SCLoansEvents] Event emitter not initialized');\n return null;\n }\n\n if (typeof callback !== 'function') {\n console.warn(\n '[SCLoansEvents] Invalid callback provided for subscription'\n );\n return null;\n }\n\n const subscription = this.eventEmitter.addListener(\n SCLoansNotificationEvent,\n (jsonString) => {\n if (!jsonString) {\n console.warn('[SCLoansEvents] Received null/undefined event data');\n return;\n }\n\n let eventData;\n try {\n eventData = JSON.parse(jsonString);\n } catch (error) {\n console.warn(\n '[SCLoansEvents] Failed to parse event JSON:',\n error,\n 'Raw data:',\n jsonString\n );\n return;\n }\n\n if (!eventData.type) {\n console.warn(\n '[SCLoansEvents] Dropping event - missing event type:',\n eventData\n );\n return;\n }\n\n const normalizedEvent = {\n type: eventData.type,\n data: eventData.data,\n timestamp: eventData.timestamp || Date.now(),\n };\n\n callback(normalizedEvent);\n }\n );\n\n this.subscriptions.push(subscription);\n\n return subscription;\n }\n\n /**\n * Unsubscribe from Loans Events\n * @param {LoansEventSubscription} subscription - Subscription returned from subscribeToLoansEvents\n */\n unsubscribeFromLoansEvent(subscription) {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n this.subscriptions = this.subscriptions.filter(\n (sub) => sub !== subscription\n );\n }\n }\n\n cleanup() {\n this.subscriptions.forEach((subscription) => {\n if (subscription && typeof subscription.remove === 'function') {\n subscription.remove();\n }\n });\n this.subscriptions = [];\n }\n}\n\nconst scLoansEventManager = new SCLoansEvents();\n\nexport default scLoansEventManager;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","safeObject","ENV","SmallcaseGateway","SmallcaseGatewayNative","setup","config","safeConfig","environment","undefined","PROD","setupLoans","apply","loanInfo","safeLoanInfo","pay","withdraw","service","triggerInteraction","ScLoan"],"sources":["ScLoan.js"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { safeObject } from './util';\nimport { ENV } from './constants';\n\nconst { SmallcaseGateway: SmallcaseGatewayNative } = NativeModules;\n\n/**\n * @typedef {Object} ScLoanConfig\n * @property {String} gatewayName\n * @property {'production' | 'staging' | 'development'} environment - environment\n *\n * @typedef {Object} ScLoanInfo\n * @property {String} interactionToken\n *\n * @typedef {Object} ScLoanSuccess\n * @property {boolean} isSuccess\n * @property {string} data\n *\n * @typedef {Object} ScLoanError\n * @property {boolean} isSuccess\n * @property {number} code\n * @property {string} message\n * @property {string} data\n */\n\n/**\n * Setup ScLoans\n *\n * @param {ScLoanConfig} config\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n */\nconst setup = async (config) => {\n const safeConfig = safeObject(config);\n if(safeConfig.environment === undefined || safeConfig.environment === null) safeConfig.environment = ENV.PROD\n\n return SmallcaseGatewayNative.setupLoans(safeConfig);\n };\n\n/**\n * Triggers the LOS Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst apply = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.apply(safeLoanInfo);\n };\n\n/**\n * Triggers the Repayment Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst pay = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.pay(safeLoanInfo);\n };\n\n/**\n * Triggers the Withdraw Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst withdraw = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.withdraw(safeLoanInfo);\n };\n\n/**\n * Triggers the Servicing Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst service = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.service(safeLoanInfo);\n };\n\n/**\n * Triggers the triggerInteraction function\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n */\nconst triggerInteraction = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.triggerInteraction(safeLoanInfo);\n};\n\nconst ScLoan = {\n setup,\n apply,\n pay,\n withdraw,\n service,\n triggerInteraction,\n};\n\nexport default ScLoan;"],"mappings":"AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C,SAASC,UAAU,QAAQ,QAAQ;AACnC,SAASC,GAAG,QAAQ,aAAa;AAEjC,MAAM;EAAEC,gBAAgB,EAAEC;AAAuB,CAAC,GAAGJ,aAAa;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMK,KAAK,GAAG,MAAOC,MAAM,IAAK;EAC5B,MAAMC,UAAU,GAAGN,UAAU,CAACK,MAAM,CAAC;EACrC,IAAGC,UAAU,CAACC,WAAW,KAAKC,SAAS,IAAIF,UAAU,CAACC,WAAW,KAAK,IAAI,EAAED,UAAU,CAACC,WAAW,GAAGN,GAAG,CAACQ,IAAI;EAE7G,OAAON,sBAAsB,CAACO,UAAU,CAACJ,UAAU,CAAC;AACtD,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMK,KAAK,GAAG,MAAOC,QAAQ,IAAK;EAC9B,MAAMC,YAAY,GAAGb,UAAU,CAACY,QAAQ,CAAC;EAEzC,OAAOT,sBAAsB,CAACQ,KAAK,CAACE,YAAY,CAAC;AACnD,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,GAAG,GAAG,MAAOF,QAAQ,IAAK;EAC5B,MAAMC,YAAY,GAAGb,UAAU,CAACY,QAAQ,CAAC;EAEzC,OAAOT,sBAAsB,CAACW,GAAG,CAACD,YAAY,CAAC;AACjD,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,QAAQ,GAAG,MAAOH,QAAQ,IAAK;EACjC,MAAMC,YAAY,GAAGb,UAAU,CAACY,QAAQ,CAAC;EAEzC,OAAOT,sBAAsB,CAACY,QAAQ,CAACF,YAAY,CAAC;AACtD,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,OAAO,GAAG,MAAOJ,QAAQ,IAAK;EAChC,MAAMC,YAAY,GAAGb,UAAU,CAACY,QAAQ,CAAC;EAEzC,OAAOT,sBAAsB,CAACa,OAAO,CAACH,YAAY,CAAC;AACrD,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,kBAAkB,GAAG,MAAOL,QAAQ,IAAK;EAC7C,MAAMC,YAAY,GAAGb,UAAU,CAACY,QAAQ,CAAC;EAEzC,OAAOT,sBAAsB,CAACc,kBAAkB,CAACJ,YAAY,CAAC;AAChE,CAAC;AAED,MAAMK,MAAM,GAAG;EACbd,KAAK;EACLO,KAAK;EACLG,GAAG;EACHC,QAAQ;EACRC,OAAO;EACPC;AACF,CAAC;AAED,eAAeC,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","safeObject","ENV","SmallcaseGateway","SmallcaseGatewayNative","setup","config","safeConfig","environment","undefined","PROD","setupLoans","apply","loanInfo","safeLoanInfo","pay","withdraw","service","triggerInteraction","ScLoan"],"sources":["ScLoan.js"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { safeObject } from './util';\nimport { ENV } from './constants';\n\nconst { SmallcaseGateway: SmallcaseGatewayNative } = NativeModules;\n\n/**\n * @typedef {Object} ScLoanConfig\n * @property {String} gatewayName\n * @property {'production' | 'staging' | 'development'} environment - environment\n *\n * @typedef {Object} ScLoanInfo\n * @property {String} interactionToken\n *\n * @typedef {Object} ScLoanSuccess\n * @property {boolean} isSuccess\n * @property {string} data\n *\n * @typedef {Object} ScLoanError\n * @property {boolean} isSuccess\n * @property {number} code\n * @property {string} message\n * @property {string} data\n */\n\n/**\n * Setup ScLoans\n *\n * @param {ScLoanConfig} config\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n */\nconst setup = async (config) => {\n const safeConfig = safeObject(config);\n if (safeConfig.environment === undefined || safeConfig.environment === null)\n safeConfig.environment = ENV.PROD;\n\n return SmallcaseGatewayNative.setupLoans(safeConfig);\n};\n\n/**\n * Triggers the LOS Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst apply = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.apply(safeLoanInfo);\n};\n\n/**\n * Triggers the Repayment Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst pay = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.pay(safeLoanInfo);\n};\n\n/**\n * Triggers the Withdraw Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst withdraw = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.withdraw(safeLoanInfo);\n};\n\n/**\n * Triggers the Servicing Journey\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n * @deprecated This method is deprecated use triggerInteraction() instead.\n */\nconst service = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.service(safeLoanInfo);\n};\n\n/**\n * Triggers the triggerInteraction function\n *\n * @param {ScLoanInfo} loanInfo\n * @returns {Promise<ScLoanSuccess>}\n * @throws {ScLoanError}\n */\nconst triggerInteraction = async (loanInfo) => {\n const safeLoanInfo = safeObject(loanInfo);\n\n return SmallcaseGatewayNative.triggerInteraction(safeLoanInfo);\n};\n\nconst ScLoan = {\n setup,\n apply,\n pay,\n withdraw,\n service,\n triggerInteraction,\n};\n\nexport default ScLoan;\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C,SAASC,UAAU,QAAQ,QAAQ;AACnC,SAASC,GAAG,QAAQ,aAAa;AAEjC,MAAM;EAAEC,gBAAgB,EAAEC;AAAuB,CAAC,GAAGJ,aAAa;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMK,KAAK,GAAG,MAAOC,MAAM,IAAK;EAC9B,MAAMC,UAAU,GAAGN,UAAU,CAACK,MAAM,CAAC;EACrC,IAAIC,UAAU,CAACC,WAAW,KAAKC,SAAS,IAAIF,UAAU,CAACC,WAAW,KAAK,IAAI,EACzED,UAAU,CAACC,WAAW,GAAGN,GAAG,CAACQ,IAAI;EAEnC,OAAON,sBAAsB,CAACO,UAAU,CAACJ,UAAU,CAAC;AACtD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMK,KAAK,GAAG,MAAOC,QAAQ,IAAK;EAChC,MAAMC,YAAY,GAAGb,UAAU,CAACY,QAAQ,CAAC;EAEzC,OAAOT,sBAAsB,CAACQ,KAAK,CAACE,YAAY,CAAC;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,GAAG,GAAG,MAAOF,QAAQ,IAAK;EAC9B,MAAMC,YAAY,GAAGb,UAAU,CAACY,QAAQ,CAAC;EAEzC,OAAOT,sBAAsB,CAACW,GAAG,CAACD,YAAY,CAAC;AACjD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,QAAQ,GAAG,MAAOH,QAAQ,IAAK;EACnC,MAAMC,YAAY,GAAGb,UAAU,CAACY,QAAQ,CAAC;EAEzC,OAAOT,sBAAsB,CAACY,QAAQ,CAACF,YAAY,CAAC;AACtD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,OAAO,GAAG,MAAOJ,QAAQ,IAAK;EAClC,MAAMC,YAAY,GAAGb,UAAU,CAACY,QAAQ,CAAC;EAEzC,OAAOT,sBAAsB,CAACa,OAAO,CAACH,YAAY,CAAC;AACrD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,kBAAkB,GAAG,MAAOL,QAAQ,IAAK;EAC7C,MAAMC,YAAY,GAAGb,UAAU,CAACY,QAAQ,CAAC;EAEzC,OAAOT,sBAAsB,CAACc,kBAAkB,CAACJ,YAAY,CAAC;AAChE,CAAC;AAED,MAAMK,MAAM,GAAG;EACbd,KAAK;EACLO,KAAK;EACLG,GAAG;EACHC,QAAQ;EACRC,OAAO;EACPC;AACF,CAAC;AAED,eAAeC,MAAM","ignoreList":[]}