@appmetrica/react-native-analytics 3.0.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 (39) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +29 -0
  3. package/android/build.gradle +89 -0
  4. package/android/gradle.properties +3 -0
  5. package/android/src/main/AndroidManifest.xml +4 -0
  6. package/android/src/main/AndroidManifestNew.xml +2 -0
  7. package/android/src/main/java/io/appmetrica/analytics/reactnative/AppMetricaModule.java +139 -0
  8. package/android/src/main/java/io/appmetrica/analytics/reactnative/AppMetricaPackage.java +28 -0
  9. package/android/src/main/java/io/appmetrica/analytics/reactnative/ReactNativeStartupParamsListener.java +38 -0
  10. package/android/src/main/java/io/appmetrica/analytics/reactnative/Utils.java +483 -0
  11. package/appmetrica-react-native-analytics.podspec +43 -0
  12. package/ios/AMARNAppMetrica.h +6 -0
  13. package/ios/AMARNAppMetrica.m +120 -0
  14. package/ios/AMARNAppMetricaUtils.h +24 -0
  15. package/ios/AMARNAppMetricaUtils.m +368 -0
  16. package/ios/AMARNStartupParamsUtils.h +8 -0
  17. package/ios/AMARNStartupParamsUtils.m +53 -0
  18. package/lib/commonjs/ecommerce.js +54 -0
  19. package/lib/commonjs/ecommerce.js.map +1 -0
  20. package/lib/commonjs/index.js +125 -0
  21. package/lib/commonjs/index.js.map +1 -0
  22. package/lib/commonjs/revenue.js +16 -0
  23. package/lib/commonjs/revenue.js.map +1 -0
  24. package/lib/module/ecommerce.js +47 -0
  25. package/lib/module/ecommerce.js.map +1 -0
  26. package/lib/module/index.js +91 -0
  27. package/lib/module/index.js.map +1 -0
  28. package/lib/module/revenue.js +10 -0
  29. package/lib/module/revenue.js.map +1 -0
  30. package/lib/typescript/src/ecommerce.d.ts +58 -0
  31. package/lib/typescript/src/ecommerce.d.ts.map +1 -0
  32. package/lib/typescript/src/index.d.ts +64 -0
  33. package/lib/typescript/src/index.d.ts.map +1 -0
  34. package/lib/typescript/src/revenue.d.ts +34 -0
  35. package/lib/typescript/src/revenue.d.ts.map +1 -0
  36. package/package.json +130 -0
  37. package/src/ecommerce.ts +122 -0
  38. package/src/index.ts +169 -0
  39. package/src/revenue.ts +36 -0
@@ -0,0 +1,368 @@
1
+
2
+ #import "AMARNAppMetricaUtils.h"
3
+
4
+ @implementation AMARNAppMetricaUtils
5
+
6
+ + (AMAAppMetricaConfiguration *)configurationForDictionary:(NSDictionary *)configDict
7
+ {
8
+ NSString *apiKey = configDict[@"apiKey"];
9
+ AMAAppMetricaConfiguration *configuration = [[AMAAppMetricaConfiguration alloc] initWithAPIKey:apiKey];
10
+ if (configDict[@"appVersion"] != nil) {
11
+ configuration.appVersion = configDict[@"appVersion"];
12
+ }
13
+ if (configDict[@"activationAsSessionStart"] != nil) {
14
+ configuration.handleActivationAsSessionStart = [configDict[@"activationAsSessionStart"] boolValue];
15
+ }
16
+ if (configDict[@"firstActivationAsUpdate"] != nil) {
17
+ configuration.handleFirstActivationAsUpdate = [configDict[@"firstActivationAsUpdate"] boolValue];
18
+ }
19
+ if (configDict[@"location"] != nil) {
20
+ configuration.customLocation = [self locationForDictionary:configDict[@"location"]];
21
+ }
22
+ if (configDict[@"locationTracking"] != nil) {
23
+ configuration.locationTracking = [configDict[@"locationTracking"] boolValue];
24
+ }
25
+ if (configDict[@"logs"] != nil) {
26
+ configuration.logsEnabled = [configDict[@"logs"] boolValue];
27
+ }
28
+ if (configDict[@"preloadInfo"] != nil) {
29
+ configuration.preloadInfo = [[self class] preloadInfoForDictionary:configDict[@"preloadInfo"]];
30
+ }
31
+ if (configDict[@"sessionsAutoTracking"] != nil) {
32
+ configuration.sessionsAutoTracking = [configDict[@"sessionsAutoTracking"] boolValue];
33
+ }
34
+ if (configDict[@"sessionTimeout"] != nil) {
35
+ configuration.sessionTimeout = [configDict[@"sessionTimeout"] unsignedIntegerValue];
36
+ }
37
+ if (configDict[@"statisticsSending"] != nil) {
38
+ configuration.dataSendingEnabled = [configDict[@"statisticsSending"] boolValue];
39
+ }
40
+ if (configDict[@"maxReportsInDatabaseCount"] != nil) {
41
+ configuration.maxReportsInDatabaseCount = [configDict[@"maxReportsInDatabaseCount"] unsignedIntegerValue];
42
+ }
43
+
44
+ return configuration;
45
+ }
46
+
47
+ + (AMAAppMetricaCrashesConfiguration *)crashConfigurationForDictionary:(NSDictionary *)crashConfigDict
48
+ {
49
+ AMAAppMetricaCrashesConfiguration *crashesConfiguration = [[AMAAppMetricaCrashesConfiguration alloc] init];
50
+ if (crashConfigDict[@"crashReporting"] != nil) {
51
+ crashesConfiguration.autoCrashTracking = [crashConfigDict[@"crashReporting"] boolValue];
52
+ }
53
+ return crashesConfiguration;
54
+ }
55
+
56
+ + (CLLocation *)locationForDictionary:(NSDictionary *)locationDict
57
+ {
58
+ if (locationDict == nil) {
59
+ return nil;
60
+ }
61
+
62
+ NSNumber *latitude = locationDict[@"latitude"];
63
+ NSNumber *longitude = locationDict[@"longitude"];
64
+ NSNumber *altitude = locationDict[@"altitude"];
65
+ NSNumber *horizontalAccuracy = locationDict[@"accuracy"];
66
+ NSNumber *verticalAccuracy = locationDict[@"verticalAccuracy"];
67
+ NSNumber *course = locationDict[@"course"];
68
+ NSNumber *speed = locationDict[@"speed"];
69
+ NSNumber *timestamp = locationDict[@"timestamp"];
70
+
71
+ NSDate *locationDate = timestamp != nil ? [NSDate dateWithTimeIntervalSince1970:timestamp.doubleValue] : [NSDate date];
72
+ CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(latitude.doubleValue, longitude.doubleValue);
73
+ CLLocation *location = [[CLLocation alloc] initWithCoordinate:coordinate
74
+ altitude:altitude.doubleValue
75
+ horizontalAccuracy:horizontalAccuracy.doubleValue
76
+ verticalAccuracy:verticalAccuracy.doubleValue
77
+ course:course.doubleValue
78
+ speed:speed.doubleValue
79
+ timestamp:locationDate];
80
+
81
+ return location;
82
+ }
83
+
84
+ + (AMAAppMetricaPreloadInfo *)preloadInfoForDictionary:(NSDictionary *)preloadInfoDict
85
+ {
86
+ if (preloadInfoDict == nil) {
87
+ return nil;
88
+ }
89
+
90
+ NSString *trackingId = preloadInfoDict[@"trackingId"];
91
+ AMAAppMetricaPreloadInfo *preloadInfo = [[AMAAppMetricaPreloadInfo alloc] initWithTrackingIdentifier:trackingId];
92
+
93
+ NSDictionary *additionalInfo = preloadInfoDict[@"additionalInfo"];
94
+ if (additionalInfo != nil) {
95
+ for (NSString *key in additionalInfo) {
96
+ [preloadInfo setAdditionalInfo:additionalInfo[key] forKey:key];
97
+ }
98
+ }
99
+
100
+ return preloadInfo;
101
+ }
102
+
103
+ + (AMAECommerceScreen *)ecommerceScreenForDict:(NSDictionary *)ecommerceScreenDict
104
+ {
105
+ if (ecommerceScreenDict == nil) {
106
+ return nil;
107
+ }
108
+ NSString *name = ecommerceScreenDict[@"name"];
109
+ NSString *searchQuery = ecommerceScreenDict[@"searchQuery"];
110
+ NSArray *categoriesPath = ecommerceScreenDict[@"categoriesPath"];
111
+ NSDictionary *payload = ecommerceScreenDict[@"payload"];
112
+ AMAECommerceScreen *screen = [[AMAECommerceScreen alloc] initWithName:name
113
+ categoryComponents:categoriesPath
114
+ searchQuery:searchQuery
115
+ payload:payload];
116
+
117
+ return screen;
118
+ }
119
+
120
+ + (AMAECommercePrice *)ecommercePriceForDict:(NSDictionary *)ecommercePriceDict
121
+ {
122
+ if (ecommercePriceDict == nil) {
123
+ return nil;
124
+ }
125
+ AMAECommerceAmount *amount = [self ecommerceAmountForDict:ecommercePriceDict[@"amount"]];
126
+ NSArray *componentsArray = ecommercePriceDict[@"internalComponents"];
127
+
128
+ NSMutableArray *components = [[NSMutableArray alloc] init];
129
+
130
+ for (NSDictionary *item in componentsArray) {
131
+ [components addObject:[self ecommerceAmountForDict:item]];
132
+ }
133
+
134
+ AMAECommercePrice *price = [[AMAECommercePrice alloc] initWithFiat:amount
135
+ internalComponents:components];
136
+
137
+ return price;
138
+ }
139
+
140
+ + (AMAECommerceReferrer *)ecommerceReferrerForDict:(NSDictionary *)ecommerceReferrerDict
141
+ {
142
+ if (ecommerceReferrerDict == nil) {
143
+ return nil;
144
+ }
145
+ NSString *type = ecommerceReferrerDict[@"type"];
146
+ NSString *identifier = ecommerceReferrerDict[@"identifier"];
147
+ AMAECommerceScreen *screen = [self ecommerceScreenForDict:ecommerceReferrerDict[@"screen"]];
148
+
149
+ AMAECommerceReferrer *referrer = [[AMAECommerceReferrer alloc] initWithType:type
150
+ identifier:identifier
151
+ screen:screen];
152
+ return referrer;
153
+ }
154
+
155
+ + (AMAECommerceProduct *)ecommerceProductForDict:(NSDictionary *)ecommerceProductDict
156
+ {
157
+ if (ecommerceProductDict == nil) {
158
+ return nil;
159
+ }
160
+ NSString *name = ecommerceProductDict[@"name"];
161
+ NSString *sku = ecommerceProductDict[@"sku"];
162
+ NSArray *categoriesPath = ecommerceProductDict[@"categoriesPath"];
163
+ NSArray *promocodes = ecommerceProductDict[@"promocodes"];
164
+ NSDictionary *payload = ecommerceProductDict[@"payload"];
165
+ AMAECommercePrice *actualPrice = [self ecommercePriceForDict:ecommerceProductDict[@"actualPrice"]];
166
+ AMAECommercePrice *originalPrice = [self ecommercePriceForDict:ecommerceProductDict[@"originalPrice"]];
167
+
168
+ AMAECommerceProduct *product = [[AMAECommerceProduct alloc] initWithSKU:sku
169
+ name:name
170
+ categoryComponents:categoriesPath
171
+ payload:payload
172
+ actualPrice:actualPrice
173
+ originalPrice:originalPrice
174
+ promoCodes:promocodes];
175
+ return product;
176
+ }
177
+
178
+ + (AMAECommerceCartItem *)ecommerceCartItemForDict:(NSDictionary *)ecommerceCartItemDict
179
+ {
180
+ if (ecommerceCartItemDict == nil) {
181
+ return nil;
182
+ }
183
+ AMAECommerceProduct *product = [self ecommerceProductForDict:ecommerceCartItemDict[@"product"]];
184
+ AMAECommercePrice *price = [self ecommercePriceForDict:ecommerceCartItemDict[@"price"]];
185
+ NSDecimalNumber *quantity = [NSDecimalNumber decimalNumberWithDecimal:[ecommerceCartItemDict[@"quantity"] decimalValue]];
186
+ AMAECommerceReferrer *referrer = [self ecommerceReferrerForDict:ecommerceCartItemDict[@"referrer"]];
187
+
188
+ AMAECommerceCartItem *items = [[AMAECommerceCartItem alloc] initWithProduct:product quantity:quantity revenue:price referrer:referrer];
189
+ return items;
190
+ }
191
+
192
+ + (AMAECommerceOrder *)ecommerceOrderForDict:(NSDictionary *)ecommerceOrderDict
193
+ {
194
+ if (ecommerceOrderDict == nil) {
195
+ return nil;
196
+ }
197
+ NSString *orderId = ecommerceOrderDict[@"orderId"];
198
+ NSDictionary *payload = ecommerceOrderDict[@"payload"];
199
+ NSArray *cartItemsArrayDict = ecommerceOrderDict[@"products"];
200
+ NSMutableArray *cartItems = [[NSMutableArray alloc] init];
201
+
202
+ for (NSDictionary *item in cartItemsArrayDict) {
203
+ [cartItems addObject:[self ecommerceCartItemForDict:item]];
204
+ }
205
+
206
+ AMAECommerceOrder *order = [[AMAECommerceOrder alloc] initWithIdentifier:orderId cartItems:cartItems payload:payload];
207
+ return order;
208
+ }
209
+
210
+ + (AMAECommerceAmount *)ecommerceAmountForDict:(NSDictionary *)ecommerceAmountDict
211
+ {
212
+ if (ecommerceAmountDict == nil) {
213
+ return nil;
214
+ }
215
+
216
+ NSString *unit = ecommerceAmountDict[@"unit"];
217
+ NSDecimalNumber *value = [NSDecimalNumber decimalNumberWithDecimal:[ecommerceAmountDict[@"amount"] decimalValue]];
218
+ AMAECommerceAmount *amount = [[AMAECommerceAmount alloc] initWithUnit:unit value:value];
219
+ return amount;
220
+ }
221
+
222
+ + (AMAECommerce *)ecommerceForDict:(NSDictionary *)ecommerceDict
223
+ {
224
+ if (ecommerceDict == nil) {
225
+ return nil;
226
+ }
227
+ NSString *type = ecommerceDict[@"ecommerceEvent"];
228
+ if ([type isEqualToString:@"showSceenEvent"]) {
229
+ NSDictionary *screenDict = ecommerceDict[@"ecommerceScreen"];
230
+ AMAECommerceScreen *screen = [self ecommerceScreenForDict:screenDict];
231
+ AMAECommerce *event = [AMAECommerce showScreenEventWithScreen:screen];
232
+ return event;
233
+ }
234
+ if ([type isEqualToString:@"showProductCardEvent"]) {
235
+ AMAECommerceScreen *screen = [self ecommerceScreenForDict:ecommerceDict[@"ecommerceScreen"]];
236
+ AMAECommerceProduct *product = [self ecommerceProductForDict:ecommerceDict[@"product"]];
237
+ AMAECommerce *event = [AMAECommerce showProductCardEventWithProduct:product screen:screen];
238
+ return event;
239
+ }
240
+ if ([type isEqualToString:@"showProductDetailsEvent"]) {
241
+ AMAECommerceProduct *product = [self ecommerceProductForDict:ecommerceDict[@"product"]];
242
+ AMAECommerceReferrer *referrer =[self ecommerceReferrerForDict:ecommerceDict[@"referrer"]];
243
+ AMAECommerce *event = [AMAECommerce showProductDetailsEventWithProduct:product referrer:referrer];
244
+ return event;
245
+ }
246
+ if ([type isEqualToString:@"addCartItemEvent"]) {
247
+ AMAECommerceCartItem *item = [self ecommerceCartItemForDict:ecommerceDict[@"cartItem"]];
248
+ AMAECommerce *event = [AMAECommerce addCartItemEventWithItem:item];
249
+ return event;
250
+ }
251
+ if ([type isEqualToString:@"removeCartItemEvent"]) {
252
+ AMAECommerceCartItem *item = [self ecommerceCartItemForDict:ecommerceDict[@"cartItem"]];
253
+ AMAECommerce *event = [AMAECommerce removeCartItemEventWithItem:item];
254
+
255
+ return event;
256
+ }
257
+ if ([type isEqualToString:@"beginCheckoutEvent"]) {
258
+ AMAECommerceOrder *order=[self ecommerceOrderForDict:ecommerceDict[@"order"]];
259
+ AMAECommerce *event = [AMAECommerce beginCheckoutEventWithOrder:order];
260
+ return event;
261
+ }
262
+ if ([type isEqualToString:@"purchaseEvent"]) {
263
+ AMAECommerceOrder *order=[self ecommerceOrderForDict:ecommerceDict[@"order"]];
264
+ AMAECommerce *event = [AMAECommerce purchaseEventWithOrder:order];
265
+ return event;
266
+ }
267
+ return nil;
268
+ }
269
+
270
+ + (AMARevenueInfo *)revenueForDict:(NSDictionary *)revenueDict
271
+ {
272
+ NSNumber *number = revenueDict[@"price"];
273
+ NSDecimalNumber *price = [NSDecimalNumber decimalNumberWithDecimal:number.decimalValue];
274
+ NSString *currency = revenueDict[@"currency"];
275
+ AMAMutableRevenueInfo *revenueInfo = [[AMAMutableRevenueInfo alloc] initWithPriceDecimal:price currency:currency];
276
+ if (revenueDict[@"productID"] != nil) {
277
+ revenueInfo.productID = revenueDict[@"productID"];
278
+ }
279
+ if (revenueDict[@"quantity"] != nil) {
280
+ NSNumber *quantity = revenueDict[@"quantity"];
281
+ revenueInfo.quantity = quantity.unsignedIntValue;
282
+ }
283
+ if (revenueDict[@"payload"] != nil) {
284
+ revenueInfo.payload = [self convertRevenueInfoPayload:revenueDict[@"payload"]];
285
+ }
286
+ NSDictionary *receiptDict = revenueDict[@"receipt"];
287
+ if (receiptDict[@"transactionID"] != nil) {
288
+ revenueInfo.transactionID = receiptDict[@"transactionID"];
289
+ }
290
+ if (receiptDict[@"receiptData"] != nil) {
291
+ NSString *receiptDataString = receiptDict[@"receiptData"];
292
+ revenueInfo.receiptData = [receiptDataString dataUsingEncoding:NSUTF8StringEncoding];
293
+ }
294
+ return revenueInfo;
295
+ }
296
+
297
+ + (AMAAdRevenueInfo *)adRevenueForDict:(NSDictionary *)revenueDict
298
+ {
299
+ NSNumber *number = revenueDict[@"price"];
300
+ NSDecimalNumber *price = [NSDecimalNumber decimalNumberWithDecimal:number.decimalValue];
301
+ NSString *currency = revenueDict[@"currency"];
302
+ AMAMutableAdRevenueInfo *adRevenueInfo = [[AMAMutableAdRevenueInfo alloc] initWithAdRevenue:price currency:currency];
303
+ if (revenueDict[@"adNetwork"] != nil) {
304
+ adRevenueInfo.adNetwork = revenueDict[@"adNetwork"];
305
+ }
306
+ if (revenueDict[@"adUnitID"] != nil) {
307
+ adRevenueInfo.adUnitID = revenueDict[@"adUnitID"];
308
+ }
309
+ if (revenueDict[@"adUnitName"] != nil) {
310
+ adRevenueInfo.adUnitName = revenueDict[@"adUnitName"];
311
+ }
312
+ if (revenueDict[@"adPlacementID"] != nil) {
313
+ adRevenueInfo.adPlacementID = revenueDict[@"adPlacementID"];
314
+ }
315
+ if (revenueDict[@"adPlacementName"] != nil) {
316
+ adRevenueInfo.adPlacementName = revenueDict[@"adPlacementName"];
317
+ }
318
+ if (revenueDict[@"precision"] != nil) {
319
+ adRevenueInfo.precision = revenueDict[@"precision"];
320
+ }
321
+ if (revenueDict[@"payload"] != nil) {
322
+ adRevenueInfo.payload = revenueDict[@"payload"];
323
+ }
324
+ if (revenueDict[@"adType"] != nil) {
325
+ adRevenueInfo.adType = [self toAdType:revenueDict[@"adType"]];
326
+ }
327
+ return adRevenueInfo;
328
+ }
329
+
330
+ + (AMAAdType)toAdType:(NSString *)type
331
+ {
332
+ if ([type isEqualToString:@"native"]){
333
+ return AMAAdTypeNative;
334
+ }
335
+ if ([type isEqualToString:@"banner"]){
336
+ return AMAAdTypeBanner;
337
+ }
338
+ if ([type isEqualToString:@"mrec"]){
339
+ return AMAAdTypeMrec;
340
+ }
341
+ if ([type isEqualToString:@"interstitial"]){
342
+ return AMAAdTypeInterstitial;
343
+ }
344
+ if ([type isEqualToString:@"rewarded"]){
345
+ return AMAAdTypeRewarded;
346
+ }
347
+ if ([type isEqualToString:@"other"]){
348
+ return AMAAdTypeOther;
349
+ }
350
+ return AMAAdTypeOther;
351
+ }
352
+
353
+ + (NSDictionary *)convertRevenueInfoPayload:(NSString *)payload
354
+ {
355
+ NSError *error = nil;
356
+ NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:[payload dataUsingEncoding:NSUTF8StringEncoding]
357
+ options:kNilOptions
358
+ error:&error];
359
+ if (error == nil && (dict == nil || [dict isKindOfClass:[NSDictionary class]])) {
360
+ return dict;
361
+ }
362
+ else {
363
+ NSLog(@"Invalid revenue payload to report to AppMetrica %@", payload);
364
+ return nil;
365
+ }
366
+ }
367
+
368
+ @end
@@ -0,0 +1,8 @@
1
+
2
+ @interface AMARNStartupParamsUtils : NSObject
3
+
4
+ + (NSArray *)toStartupKeys:(NSArray *)keys;
5
+ + (NSDictionary *)toStrartupParamsResult:(NSDictionary *)resultDict;
6
+ + (NSString *)stringFromRequestStartupParamsError:(NSError *)error;
7
+
8
+ @end
@@ -0,0 +1,53 @@
1
+
2
+ #import "AMARNStartupParamsUtils.h"
3
+ #import <AppMetricaCore/AppMetricaCore.h>
4
+
5
+ @implementation AMARNStartupParamsUtils
6
+
7
+ + (NSArray *)toStartupKeys:(NSArray *)keys
8
+ {
9
+ NSMutableArray *keysArray = [[NSMutableArray alloc] init];
10
+ for (NSString *item in keys) {
11
+ if ([item isEqualToString:@"appmetrica_device_id_hash"]) {
12
+ [keysArray addObject:kAMADeviceIDHashKey];
13
+ }
14
+ if ([item isEqualToString:@"appmetrica_device_id"]) {
15
+ [keysArray addObject:kAMADeviceIDKey];
16
+ }
17
+ if ([item isEqualToString:@"appmetrica_uuid"]) {
18
+ [keysArray addObject:kAMAUUIDKey];
19
+ }
20
+ }
21
+ return keysArray;
22
+ }
23
+
24
+ + (NSDictionary *)toStrartupParamsResult:(NSDictionary *)resultDict
25
+ {
26
+ if (resultDict == nil) {
27
+ return nil;
28
+ }
29
+ NSMutableDictionary *result = [[NSMutableDictionary alloc] init];
30
+ if (resultDict[@"appmetrica_deviceIDHash"] != nil) {
31
+ [result setValue:resultDict[kAMADeviceIDHashKey] forKey:@"deviceIdHash"];
32
+ }
33
+ if (resultDict[@"appmetrica_deviceID"] != nil) {
34
+ [result setValue:resultDict[kAMADeviceIDKey] forKey:@"deviceId"];
35
+ }
36
+ if (resultDict[@"appmetrica_uuid"] != nil) {
37
+ [result setValue:resultDict[kAMAUUIDKey] forKey:@"uuid"];
38
+ }
39
+ return result;
40
+ }
41
+
42
+ + (NSString *)stringFromRequestStartupParamsError:(NSError *)error
43
+ {
44
+ if (error == nil) {
45
+ return nil;
46
+ }
47
+ if ([error.domain isEqualToString:NSURLErrorDomain]) {
48
+ return @"NETWORK";
49
+ }
50
+ return @"UNKNOWN";
51
+ }
52
+
53
+ @end
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ECommerce = void 0;
7
+ class ECommerce {
8
+ static showScreenEvent(screen) {
9
+ return {
10
+ ecommerceEvent: 'showSceenEvent',
11
+ ecommerceScreen: screen
12
+ };
13
+ }
14
+ static showProductCardEvent(product, screen) {
15
+ return {
16
+ ecommerceEvent: 'showProductCardEvent',
17
+ ecommerceScreen: screen,
18
+ product: product
19
+ };
20
+ }
21
+ static showProductDetailsEvent(product, referrer) {
22
+ return {
23
+ ecommerceEvent: 'showProductDetailsEvent',
24
+ product: product,
25
+ referrer: referrer
26
+ };
27
+ }
28
+ static addCartItemEvent(item) {
29
+ return {
30
+ ecommerceEvent: 'addCartItemEvent',
31
+ cartItem: item
32
+ };
33
+ }
34
+ static removeCartItemEvent(item) {
35
+ return {
36
+ ecommerceEvent: 'removeCartItemEvent',
37
+ cartItem: item
38
+ };
39
+ }
40
+ static beginCheckoutEvent(order) {
41
+ return {
42
+ ecommerceEvent: 'beginCheckoutEvent',
43
+ order: order
44
+ };
45
+ }
46
+ static purchaseEvent(order) {
47
+ return {
48
+ ecommerceEvent: 'purchaseEvent',
49
+ order: order
50
+ };
51
+ }
52
+ }
53
+ exports.ECommerce = ECommerce;
54
+ //# sourceMappingURL=ecommerce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ECommerce","showScreenEvent","screen","ecommerceEvent","ecommerceScreen","showProductCardEvent","product","showProductDetailsEvent","referrer","addCartItemEvent","item","cartItem","removeCartItemEvent","beginCheckoutEvent","order","purchaseEvent","exports"],"sourceRoot":"../../src","sources":["ecommerce.ts"],"mappings":";;;;;;AAgEO,MAAMA,SAAS,CAAC;EACrB,OAAOC,eAAeA,CAACC,MAAuB,EAAkB;IAC9D,OAAO;MACLC,cAAc,EAAE,gBAAgB;MAChCC,eAAe,EAAEF;IACnB,CAAC;EACH;EAEA,OAAOG,oBAAoBA,CACzBC,OAAyB,EACzBJ,MAAuB,EACP;IAChB,OAAO;MACLC,cAAc,EAAE,sBAAsB;MACtCC,eAAe,EAAEF,MAAM;MACvBI,OAAO,EAAEA;IACX,CAAC;EACH;EAEA,OAAOC,uBAAuBA,CAC5BD,OAAyB,EACzBE,QAA4B,EACZ;IAChB,OAAO;MACLL,cAAc,EAAE,yBAAyB;MACzCG,OAAO,EAAEA,OAAO;MAChBE,QAAQ,EAAEA;IACZ,CAAC;EACH;EAEA,OAAOC,gBAAgBA,CAACC,IAAuB,EAAkB;IAC/D,OAAO;MACLP,cAAc,EAAE,kBAAkB;MAClCQ,QAAQ,EAAED;IACZ,CAAC;EACH;EAEA,OAAOE,mBAAmBA,CAACF,IAAuB,EAAkB;IAClE,OAAO;MACLP,cAAc,EAAE,qBAAqB;MACrCQ,QAAQ,EAAED;IACZ,CAAC;EACH;EAEA,OAAOG,kBAAkBA,CAACC,KAAqB,EAAkB;IAC/D,OAAO;MACLX,cAAc,EAAE,oBAAoB;MACpCW,KAAK,EAAEA;IACT,CAAC;EACH;EAEA,OAAOC,aAAaA,CAACD,KAAqB,EAAkB;IAC1D,OAAO;MACLX,cAAc,EAAE,eAAe;MAC/BW,KAAK,EAAEA;IACT,CAAC;EACH;AACF;AAACE,OAAA,CAAAhB,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ DEVICE_ID_HASH_KEY: true,
8
+ DEVICE_ID_KEY: true,
9
+ UUID_KEY: true
10
+ };
11
+ exports.default = exports.UUID_KEY = exports.DEVICE_ID_KEY = exports.DEVICE_ID_HASH_KEY = void 0;
12
+ var _reactNative = require("react-native");
13
+ var _ecommerce = require("./ecommerce");
14
+ Object.keys(_ecommerce).forEach(function (key) {
15
+ if (key === "default" || key === "__esModule") return;
16
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
17
+ if (key in exports && exports[key] === _ecommerce[key]) return;
18
+ Object.defineProperty(exports, key, {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _ecommerce[key];
22
+ }
23
+ });
24
+ });
25
+ var _revenue = require("./revenue");
26
+ Object.keys(_revenue).forEach(function (key) {
27
+ if (key === "default" || key === "__esModule") return;
28
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
29
+ if (key in exports && exports[key] === _revenue[key]) return;
30
+ Object.defineProperty(exports, key, {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _revenue[key];
34
+ }
35
+ });
36
+ });
37
+ const LINKING_ERROR = `The package '@appmetrica/react-native-analytics' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
38
+ ios: "- You have run 'pod install'\n",
39
+ default: ''
40
+ }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
41
+ const AppMetricaNative = _reactNative.NativeModules.AppMetrica ? _reactNative.NativeModules.AppMetrica : new Proxy({}, {
42
+ get() {
43
+ throw new Error(LINKING_ERROR);
44
+ }
45
+ });
46
+ var activated = false;
47
+ function appOpenTracking() {
48
+ const getUrlAsync = async () => {
49
+ const initialUrl = await _reactNative.Linking.getInitialURL();
50
+ if (initialUrl != null) {
51
+ AppMetricaNative.reportAppOpen(initialUrl);
52
+ }
53
+ };
54
+ const callback = event => {
55
+ AppMetricaNative.reportAppOpen(event.url);
56
+ };
57
+ getUrlAsync();
58
+ _reactNative.Linking.addEventListener('url', callback);
59
+ }
60
+ const DEVICE_ID_HASH_KEY = exports.DEVICE_ID_HASH_KEY = 'appmetrica_device_id_hash';
61
+ const DEVICE_ID_KEY = exports.DEVICE_ID_KEY = 'appmetrica_device_id';
62
+ const UUID_KEY = exports.UUID_KEY = 'appmetrica_uuid';
63
+ class AppMetrica {
64
+ static activate(config) {
65
+ if (!activated) {
66
+ AppMetricaNative.activate(config);
67
+ if (config.appOpenTrackingEnabled !== false) {
68
+ appOpenTracking();
69
+ }
70
+ activated = true;
71
+ }
72
+ }
73
+
74
+ // Android only
75
+ static async getLibraryApiLevel() {
76
+ return AppMetricaNative.getLibraryApiLevel();
77
+ }
78
+ static async getLibraryVersion() {
79
+ return AppMetricaNative.getLibraryVersion();
80
+ }
81
+ static pauseSession() {
82
+ AppMetricaNative.pauseSession();
83
+ }
84
+ static reportAppOpen(deeplink) {
85
+ AppMetricaNative.reportAppOpen(deeplink);
86
+ }
87
+ static reportError(identifier, message, _reason) {
88
+ AppMetricaNative.reportError(identifier, message);
89
+ }
90
+ static reportEvent(eventName, attributes) {
91
+ AppMetricaNative.reportEvent(eventName, attributes);
92
+ }
93
+ static requestStartupParams(listener, identifiers) {
94
+ AppMetricaNative.requestStartupParams(identifiers, listener);
95
+ }
96
+ static resumeSession() {
97
+ AppMetricaNative.resumeSession();
98
+ }
99
+ static sendEventsBuffer() {
100
+ AppMetricaNative.sendEventsBuffer();
101
+ }
102
+ static setLocation(location) {
103
+ AppMetricaNative.setLocation(location);
104
+ }
105
+ static setLocationTracking(enabled) {
106
+ AppMetricaNative.setLocationTracking(enabled);
107
+ }
108
+ static setDataSendingEnabled(enabled) {
109
+ AppMetricaNative.setDataSendingEnabled(enabled);
110
+ }
111
+ static setUserProfileID(userProfileID) {
112
+ AppMetricaNative.setUserProfileID(userProfileID);
113
+ }
114
+ static reportECommerce(event) {
115
+ AppMetricaNative.reportECommerce(event);
116
+ }
117
+ static reportRevenue(revenue) {
118
+ AppMetricaNative.reportRevenue(revenue);
119
+ }
120
+ static reportAdRevenue(adRevenue) {
121
+ AppMetricaNative.reportAdRevenue(adRevenue);
122
+ }
123
+ }
124
+ exports.default = AppMetrica;
125
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_ecommerce","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_revenue","LINKING_ERROR","Platform","select","ios","default","AppMetricaNative","NativeModules","AppMetrica","Proxy","Error","activated","appOpenTracking","getUrlAsync","initialUrl","Linking","getInitialURL","reportAppOpen","callback","event","url","addEventListener","DEVICE_ID_HASH_KEY","DEVICE_ID_KEY","UUID_KEY","activate","config","appOpenTrackingEnabled","getLibraryApiLevel","getLibraryVersion","pauseSession","deeplink","reportError","identifier","message","_reason","reportEvent","eventName","attributes","requestStartupParams","listener","identifiers","resumeSession","sendEventsBuffer","setLocation","location","setLocationTracking","enabled","setDataSendingEnabled","setUserProfileID","userProfileID","reportECommerce","reportRevenue","revenue","reportAdRevenue","adRevenue"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAuFA,IAAAC,UAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,UAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,UAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,UAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,QAAA,GAAAd,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAW,QAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,QAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AApFA,MAAMU,aAAa,GACjB,6FAA6F,GAC7FC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,gBAAgB,GAAGC,0BAAa,CAACC,UAAU,GAC7CD,0BAAa,CAACC,UAAU,GACxB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEV,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIW,KAAK,CAACT,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,IAAIU,SAAS,GAAG,KAAK;AAErB,SAASC,eAAeA,CAAA,EAAG;EACzB,MAAMC,WAAW,GAAG,MAAAA,CAAA,KAAY;IAC9B,MAAMC,UAAU,GAAG,MAAMC,oBAAO,CAACC,aAAa,CAAC,CAAC;IAChD,IAAIF,UAAU,IAAI,IAAI,EAAE;MACtBR,gBAAgB,CAACW,aAAa,CAACH,UAAU,CAAC;IAC5C;EACF,CAAC;EACD,MAAMI,QAAQ,GAAIC,KAAsB,IAAK;IAC3Cb,gBAAgB,CAACW,aAAa,CAACE,KAAK,CAACC,GAAG,CAAC;EAC3C,CAAC;EACDP,WAAW,CAAC,CAAC;EACbE,oBAAO,CAACM,gBAAgB,CAAC,KAAK,EAAEH,QAAQ,CAAC;AAC3C;AAgDO,MAAMI,kBAAkB,GAAA1B,OAAA,CAAA0B,kBAAA,GAAG,2BAA2B;AACtD,MAAMC,aAAa,GAAA3B,OAAA,CAAA2B,aAAA,GAAG,sBAAsB;AAC5C,MAAMC,QAAQ,GAAA5B,OAAA,CAAA4B,QAAA,GAAG,iBAAiB;AAK1B,MAAMhB,UAAU,CAAC;EAC9B,OAAOiB,QAAQA,CAACC,MAAwB,EAAE;IACxC,IAAI,CAACf,SAAS,EAAE;MACdL,gBAAgB,CAACmB,QAAQ,CAACC,MAAM,CAAC;MACjC,IAAIA,MAAM,CAACC,sBAAsB,KAAK,KAAK,EAAE;QAC3Cf,eAAe,CAAC,CAAC;MACnB;MACAD,SAAS,GAAG,IAAI;IAClB;EACF;;EAEA;EACA,aAAaiB,kBAAkBA,CAAA,EAAoB;IACjD,OAAOtB,gBAAgB,CAACsB,kBAAkB,CAAC,CAAC;EAC9C;EAEA,aAAaC,iBAAiBA,CAAA,EAAoB;IAChD,OAAOvB,gBAAgB,CAACuB,iBAAiB,CAAC,CAAC;EAC7C;EAEA,OAAOC,YAAYA,CAAA,EAAG;IACpBxB,gBAAgB,CAACwB,YAAY,CAAC,CAAC;EACjC;EAEA,OAAOb,aAAaA,CAACc,QAAiB,EAAE;IACtCzB,gBAAgB,CAACW,aAAa,CAACc,QAAQ,CAAC;EAC1C;EAEA,OAAOC,WAAWA,CAACC,UAAkB,EAAEC,OAAe,EAAEC,OAAe,EAAE;IACvE7B,gBAAgB,CAAC0B,WAAW,CAACC,UAAU,EAAEC,OAAO,CAAC;EACnD;EAEA,OAAOE,WAAWA,CAACC,SAAiB,EAAEC,UAAgC,EAAE;IACtEhC,gBAAgB,CAAC8B,WAAW,CAACC,SAAS,EAAEC,UAAU,CAAC;EACrD;EAEA,OAAOC,oBAAoBA,CACzBC,QAA+B,EAC/BC,WAA0B,EAC1B;IACAnC,gBAAgB,CAACiC,oBAAoB,CAACE,WAAW,EAAED,QAAQ,CAAC;EAC9D;EAEA,OAAOE,aAAaA,CAAA,EAAG;IACrBpC,gBAAgB,CAACoC,aAAa,CAAC,CAAC;EAClC;EAEA,OAAOC,gBAAgBA,CAAA,EAAG;IACxBrC,gBAAgB,CAACqC,gBAAgB,CAAC,CAAC;EACrC;EAEA,OAAOC,WAAWA,CAACC,QAAmB,EAAE;IACtCvC,gBAAgB,CAACsC,WAAW,CAACC,QAAQ,CAAC;EACxC;EAEA,OAAOC,mBAAmBA,CAACC,OAAgB,EAAE;IAC3CzC,gBAAgB,CAACwC,mBAAmB,CAACC,OAAO,CAAC;EAC/C;EAEA,OAAOC,qBAAqBA,CAACD,OAAgB,EAAE;IAC7CzC,gBAAgB,CAAC0C,qBAAqB,CAACD,OAAO,CAAC;EACjD;EAEA,OAAOE,gBAAgBA,CAACC,aAAsB,EAAE;IAC9C5C,gBAAgB,CAAC2C,gBAAgB,CAACC,aAAa,CAAC;EAClD;EAEA,OAAOC,eAAeA,CAAChC,KAAqB,EAAE;IAC5Cb,gBAAgB,CAAC6C,eAAe,CAAChC,KAAK,CAAC;EACzC;EAEA,OAAOiC,aAAaA,CAACC,OAAgB,EAAE;IACrC/C,gBAAgB,CAAC8C,aAAa,CAACC,OAAO,CAAC;EACzC;EAEA,OAAOC,eAAeA,CAACC,SAAoB,EAAE;IAC3CjD,gBAAgB,CAACgD,eAAe,CAACC,SAAS,CAAC;EAC7C;AACF;AAAC3D,OAAA,CAAAS,OAAA,GAAAG,UAAA","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AdType = void 0;
7
+ let AdType = exports.AdType = /*#__PURE__*/function (AdType) {
8
+ AdType["NATIVE"] = "native";
9
+ AdType["BANNER"] = "banner";
10
+ AdType["MREC"] = "mrec";
11
+ AdType["INTERSTITIAL"] = "interstitial";
12
+ AdType["REWARDED"] = "rewarded";
13
+ AdType["OTHER"] = "other";
14
+ return AdType;
15
+ }({});
16
+ //# sourceMappingURL=revenue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AdType","exports"],"sourceRoot":"../../src","sources":["revenue.ts"],"mappings":";;;;;;IA4BYA,MAAM,GAAAC,OAAA,CAAAD,MAAA,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA","ignoreList":[]}