rn-linkrunner 3.1.1 → 3.2.1

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.
@@ -19,5 +19,5 @@ Pod::Spec.new do |s|
19
19
  s.requires_arc = true
20
20
 
21
21
  s.dependency "React"
22
- s.dependency 'LinkrunnerKit', '4.1.0'
22
+ s.dependency 'LinkrunnerKit', '4.2.0'
23
23
  end
@@ -116,7 +116,7 @@ dependencies {
116
116
  implementation 'com.facebook.react:react-android:0.80.0'
117
117
 
118
118
  // Linkrunner SDK
119
- implementation "io.linkrunner:android-sdk:4.1.1"
119
+ implementation "io.linkrunner:android-sdk:4.2.0"
120
120
 
121
121
  // Kotlin standard libraries - use stable versions
122
122
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
@@ -40,7 +40,7 @@ class LinkrunnerModule(private val reactContext: ReactApplicationContext) : Reac
40
40
  val keyId = options?.getString("keyId")
41
41
  val debug = options?.getBoolean("debug") ?: false
42
42
 
43
- val packageVersion = options?.getString("packageVersion") ?: "3.1.1" // React Native package version
43
+ val packageVersion = options?.getString("packageVersion") ?: "3.2.1" // React Native package version
44
44
 
45
45
  if (token.isEmpty()) {
46
46
  promise.reject("INIT_ERROR", "Token is required")
@@ -302,45 +302,8 @@ class LinkrunnerModule(private val reactContext: ReactApplicationContext) : Reac
302
302
  if (result.isSuccess) {
303
303
  val attributionData = result.getOrNull()
304
304
 
305
- // Convert the attribution data to a WritableMap
306
- val response = Arguments.createMap()
307
-
308
- if (attributionData != null) {
309
- // Add the deeplink if it exists
310
- attributionData.deeplink?.let { deeplink ->
311
- response.putString("deeplink", deeplink)
312
- }
313
-
314
- // Convert campaign data to a WritableMap if it exists
315
- attributionData.campaignData?.let { campaignData ->
316
- val campaignDataMap = Arguments.createMap()
317
- campaignDataMap.putString("id", campaignData.id)
318
- campaignDataMap.putString("name", campaignData.name)
319
-
320
- campaignData.adNetwork?.let { adNetwork ->
321
- campaignDataMap.putString("adNetwork", adNetwork)
322
- }
323
-
324
- campaignDataMap.putString("type", campaignData.type)
325
- campaignDataMap.putString("installedAt", campaignData.installedAt)
326
-
327
- campaignData.storeClickAt?.let { storeClickAt ->
328
- campaignDataMap.putString("storeClickAt", storeClickAt)
329
- }
330
-
331
- campaignDataMap.putString("groupName", campaignData.groupName)
332
- campaignDataMap.putString("assetName", campaignData.assetName)
333
- campaignDataMap.putString("assetGroupName", campaignData.assetGroupName)
334
- campaignDataMap.putString("adNetworkCampaignId", campaignData.adNetworkCampaignId)
335
- campaignDataMap.putString("adSetId", campaignData.adSetId)
336
- campaignDataMap.putString("adSetName", campaignData.adSetName)
337
- campaignDataMap.putString("adCreativeId", campaignData.adCreativeId)
338
- campaignDataMap.putString("adCreativeName", campaignData.adCreativeName)
339
-
340
- response.putMap("campaignData", campaignDataMap)
341
- }
342
- }
343
-
305
+ val response = ModelConverter.fromAttributionData(attributionData)
306
+
344
307
  response.putString("status", "success")
345
308
  response.putString("message", "Attribution data retrieved successfully")
346
309
 
@@ -163,6 +163,9 @@ object ModelConverter {
163
163
  data.deeplink?.let { deeplink ->
164
164
  map.putString("deeplink", deeplink)
165
165
  }
166
+
167
+ map.putString("gaid", data.gaid)
168
+ map.putString("idfa", data.idfa)
166
169
 
167
170
  // Convert campaign data to a WritableMap if it exists
168
171
  data.campaignData?.let { campaignData ->
@@ -229,6 +229,9 @@ class LinkrunnerSDK: NSObject {
229
229
  response["deeplink"] = deeplink
230
230
  }
231
231
 
232
+ response["gaid"] = attributionData.gaid ?? NSNull()
233
+ response["idfa"] = attributionData.idfa ?? NSNull()
234
+
232
235
  if let campaignData = attributionData.campaignData {
233
236
  let dateFormatter = ISO8601DateFormatter()
234
237
  dateFormatter.formatOptions = [.withInternetDateTime]
package/ios/Podfile CHANGED
@@ -12,7 +12,7 @@ abstract_target 'LinkrunnerSDK' do
12
12
  # Pods for LinkrunnerSDK
13
13
 
14
14
  # Add the linkrunner-ios-sdk dependency
15
- pod 'LinkrunnerKit', '4.1.0'
15
+ pod 'LinkrunnerKit', '4.2.0'
16
16
 
17
17
 
18
18
  # Add any other dependencies your SDK needs here
@@ -46,6 +46,10 @@ export interface CampaignData {
46
46
  export interface AttributionData {
47
47
  deeplink?: string;
48
48
  campaignData?: CampaignData;
49
+ /** Android only. */
50
+ gaid?: string | null;
51
+ /** iOS only, null when ATT is not authorized. */
52
+ idfa?: string | null;
49
53
  }
50
54
  export interface DeeplinkData {
51
55
  deeplink?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAE9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,2GAA2G;IAC3G,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,sHAAsH;IACtH,sBAAsB,CAAC,EAAE,aAAa,CAAC;IACvC,4GAA4G;IAC5G,+BAA+B,CAAC,EAAE,aAAa,CAAC;CACjD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAE9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,2GAA2G;IAC3G,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,sHAAsH;IACtH,sBAAsB,CAAC,EAAE,aAAa,CAAC;IACvC,4GAA4G;IAC5G,+BAA+B,CAAC,EAAE,aAAa,CAAC;CACjD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rn-linkrunner",
3
- "version": "3.1.1",
3
+ "version": "3.2.1",
4
4
  "description": "React Native Package for linkrunner",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/types.ts CHANGED
@@ -51,6 +51,10 @@ export interface AttributionData {
51
51
  // Direct fields
52
52
  deeplink?: string;
53
53
  campaignData?: CampaignData;
54
+ /** Android only. */
55
+ gaid?: string | null;
56
+ /** iOS only, null when ATT is not authorized. */
57
+ idfa?: string | null;
54
58
  }
55
59
 
56
60
  export interface DeeplinkData {