@appmetrica/react-native-analytics 3.2.0 → 3.4.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.
- package/android/build.gradle +1 -1
- package/android/src/main/java/io/appmetrica/analytics/reactnative/AppMetricaModule.java +73 -7
- package/android/src/main/java/io/appmetrica/analytics/reactnative/AppMetricaPackage.java +1 -0
- package/android/src/main/java/io/appmetrica/analytics/reactnative/ExceptionSerializer.java +91 -0
- package/android/src/main/java/io/appmetrica/analytics/reactnative/ExternalAttributionSerializer.java +44 -0
- package/android/src/main/java/io/appmetrica/analytics/reactnative/ReactNativeDeferredDeeplinkListener.java +48 -0
- package/android/src/main/java/io/appmetrica/analytics/reactnative/ReactNativeDeferredDeeplinkParametersListener.java +53 -0
- package/android/src/main/java/io/appmetrica/analytics/reactnative/ReporterModule.java +130 -0
- package/android/src/main/java/io/appmetrica/analytics/reactnative/Utils.java +55 -1
- package/appmetrica-react-native-analytics.podspec +1 -1
- package/ios/AMARNAppMetrica.m +92 -4
- package/ios/AMARNAppMetricaUtils.h +1 -0
- package/ios/AMARNAppMetricaUtils.m +46 -0
- package/ios/AMARNExceptionSerializer.h +6 -0
- package/ios/AMARNExceptionSerializer.m +65 -0
- package/ios/AMARNExternalAttribution.h +4 -0
- package/ios/AMARNExternalAttribution.m +28 -0
- package/ios/AMARNReporter.h +6 -0
- package/ios/AMARNReporter.m +131 -0
- package/lib/commonjs/deferredDeeplink.js +2 -0
- package/lib/commonjs/deferredDeeplink.js.map +1 -0
- package/lib/commonjs/error.js +71 -0
- package/lib/commonjs/error.js.map +1 -0
- package/lib/commonjs/externalAttribution.js +46 -0
- package/lib/commonjs/externalAttribution.js.map +1 -0
- package/lib/commonjs/index.js +68 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/reporter.js +69 -0
- package/lib/commonjs/reporter.js.map +1 -0
- package/lib/module/deferredDeeplink.js +2 -0
- package/lib/module/deferredDeeplink.js.map +1 -0
- package/lib/module/error.js +63 -0
- package/lib/module/error.js.map +1 -0
- package/lib/module/externalAttribution.js +39 -0
- package/lib/module/externalAttribution.js.map +1 -0
- package/lib/module/index.js +46 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/reporter.js +62 -0
- package/lib/module/reporter.js.map +1 -0
- package/lib/typescript/src/deferredDeeplink.d.ts +10 -0
- package/lib/typescript/src/deferredDeeplink.d.ts.map +1 -0
- package/lib/typescript/src/error.d.ts +19 -0
- package/lib/typescript/src/error.d.ts.map +1 -0
- package/lib/typescript/src/externalAttribution.d.ts +15 -0
- package/lib/typescript/src/externalAttribution.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +22 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/reporter.d.ts +51 -0
- package/lib/typescript/src/reporter.d.ts.map +1 -0
- package/package.json +3 -1
- package/src/deferredDeeplink.ts +11 -0
- package/src/error.ts +87 -0
- package/src/externalAttribution.ts +56 -0
- package/src/index.ts +87 -4
- package/src/reporter.ts +126 -0
package/ios/AMARNAppMetrica.m
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
#import "AMARNAppMetricaUtils.h"
|
|
4
4
|
#import "AMARNStartupParamsUtils.h"
|
|
5
5
|
#import "AMARNUserProfileSerializer.h"
|
|
6
|
+
#import "AMARNExternalAttribution.h"
|
|
6
7
|
#import <AppMetricaCrashes/AppMetricaCrashes.h>
|
|
8
|
+
#import "AMARNExceptionSerializer.h"
|
|
7
9
|
|
|
8
10
|
@implementation AMARNAppMetrica
|
|
9
11
|
|
|
@@ -37,9 +39,13 @@ RCT_EXPORT_METHOD(reportAppOpen:(NSString *)deeplink)
|
|
|
37
39
|
[AMAAppMetrica trackOpeningURL:[NSURL URLWithString:deeplink]];
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
RCT_EXPORT_METHOD(reportError:(NSString *)identifier:(NSString *)message) {
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
RCT_EXPORT_METHOD(reportError:(NSString *)identifier:(NSString *)message:(NSDictionary *)_reason) {
|
|
43
|
+
[[[AMAAppMetricaCrashes crashes] pluginExtension] reportErrorWithIdentifier:identifier
|
|
44
|
+
message:message
|
|
45
|
+
details:amarn_exceptionForDictionary(_reason)
|
|
46
|
+
onFailure:^(NSError *error) {
|
|
47
|
+
NSLog(@"Failed to report error to AppMetrica: %@", [error localizedDescription]);
|
|
48
|
+
}];
|
|
43
49
|
}
|
|
44
50
|
|
|
45
51
|
RCT_EXPORT_METHOD(reportEvent:(NSString *)eventName:(NSDictionary *)attributes)
|
|
@@ -92,7 +98,7 @@ RCT_EXPORT_METHOD(setDataSendingEnabled:(BOOL)enabled)
|
|
|
92
98
|
|
|
93
99
|
RCT_EXPORT_METHOD(reportECommerce:(NSDictionary *)ecommerceDict)
|
|
94
100
|
{
|
|
95
|
-
|
|
101
|
+
[AMAAppMetrica reportECommerce:[AMARNAppMetricaUtils ecommerceForDict:ecommerceDict] onFailure:nil];
|
|
96
102
|
}
|
|
97
103
|
|
|
98
104
|
RCT_EXPORT_METHOD(setUserProfileID:(NSString *)userProfileID)
|
|
@@ -120,6 +126,88 @@ RCT_EXPORT_METHOD(putErrorEnvironmentValue:(NSString *)key:(NSString *)value)
|
|
|
120
126
|
[[AMAAppMetricaCrashes crashes] setErrorEnvironmentValue:value forKey:key];
|
|
121
127
|
}
|
|
122
128
|
|
|
129
|
+
RCT_EXPORT_METHOD(reportExternalAttribution:(NSDictionary *)externalAttributionsDict)
|
|
130
|
+
{
|
|
131
|
+
|
|
132
|
+
NSString *sourceStr = externalAttributionsDict[@"source"];
|
|
133
|
+
AMAAttributionSource source = amarn_getExternalAttributionSource(sourceStr);
|
|
134
|
+
if (source == nil) {
|
|
135
|
+
NSLog(@"Failed to report external attribution to AppMetrica. Unknown source %@", sourceStr);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
NSDictionary *value = externalAttributionsDict[@"value"];
|
|
140
|
+
|
|
141
|
+
[AMAAppMetrica reportExternalAttribution:value source:source onFailure:^(NSError *error) {
|
|
142
|
+
NSLog(@"Failed to report external attribution to AppMetrica: %@", [error localizedDescription]);
|
|
143
|
+
}];
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
RCT_EXPORT_METHOD(reportErrorWithoutIdentifier:(NSString *)message:(NSDictionary *)error)
|
|
147
|
+
{
|
|
148
|
+
AMAPluginErrorDetails *details = amarn_exceptionForDictionary(error);
|
|
149
|
+
if (details.backtrace.count == 0) {
|
|
150
|
+
[[[AMAAppMetricaCrashes crashes] pluginExtension] reportErrorWithIdentifier:@"Errors without stacktrace"
|
|
151
|
+
message:message
|
|
152
|
+
details:details
|
|
153
|
+
onFailure:^(NSError *error) {
|
|
154
|
+
NSLog(@"Failed to report error to AppMetrica: %@", [error localizedDescription]);
|
|
155
|
+
}];
|
|
156
|
+
} else {
|
|
157
|
+
[[[AMAAppMetricaCrashes crashes] pluginExtension] reportError:details message:message onFailure:^(NSError *error) {
|
|
158
|
+
NSLog(@"Failed to report error to AppMetrica: %@", [error localizedDescription]);
|
|
159
|
+
}];
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
RCT_EXPORT_METHOD(reportUnhandledException:(NSDictionary *)error)
|
|
164
|
+
{
|
|
165
|
+
[[[AMAAppMetricaCrashes crashes] pluginExtension] reportUnhandledException:amarn_exceptionForDictionary(error)
|
|
166
|
+
onFailure:^(NSError *error) {
|
|
167
|
+
NSLog(@"Failed to report unhandled exception to AppMetrica: %@", [error localizedDescription]);
|
|
168
|
+
}];
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
RCT_EXPORT_METHOD(putAppEnvironmentValue:(NSString *)key:(NSString *)value)
|
|
172
|
+
{
|
|
173
|
+
[AMAAppMetrica setAppEnvironmentValue:value forKey:key];
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
RCT_EXPORT_METHOD(clearAppEnvironment)
|
|
177
|
+
{
|
|
178
|
+
[AMAAppMetrica clearAppEnvironment];
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
RCT_EXPORT_METHOD(activateReporter:(NSDictionary *)configDict)
|
|
182
|
+
{
|
|
183
|
+
[AMAAppMetrica activateReporterWithConfiguration:[AMARNAppMetricaUtils reporterConfigurationForDictionary:configDict]];
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
RCT_EXPORT_METHOD(touchReporter:(NSString *)apiKey)
|
|
187
|
+
{
|
|
188
|
+
[AMAAppMetrica reporterForAPIKey:apiKey];
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
RCT_EXPORT_METHOD(getDeviceId:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
|
|
192
|
+
{
|
|
193
|
+
resolve([AMAAppMetrica deviceID]);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
RCT_EXPORT_METHOD(getUuid:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
|
|
197
|
+
{
|
|
198
|
+
resolve([AMAAppMetrica UUID]);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
RCT_EXPORT_METHOD(requestDeferredDeeplink:(RCTResponseSenderBlock)onFailure:(RCTResponseSenderBlock)onSuccess)
|
|
202
|
+
{
|
|
203
|
+
// It does nothing for iOS
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
RCT_EXPORT_METHOD(requestDeferredDeeplinkParameters:(RCTResponseSenderBlock)onFailure:(RCTResponseSenderBlock)onSuccess)
|
|
207
|
+
{
|
|
208
|
+
// It does nothing for iOS
|
|
209
|
+
}
|
|
210
|
+
|
|
123
211
|
- (NSObject *)wrap:(NSObject *)value
|
|
124
212
|
{
|
|
125
213
|
if (value == nil) {
|
|
@@ -22,5 +22,6 @@
|
|
|
22
22
|
+ (AMAAdType)toAdType:(NSString *)type;
|
|
23
23
|
+ (NSDictionary *)convertRevenueInfoPayload:(NSString *)payload;
|
|
24
24
|
+ (AMAUserProfile *)userProfileForDict:(NSDictionary *)userProfileDict;
|
|
25
|
+
+ (AMAMutableReporterConfiguration *)reporterConfigurationForDictionary:(NSDictionary *)configDict;
|
|
25
26
|
|
|
26
27
|
@end
|
|
@@ -43,6 +43,18 @@
|
|
|
43
43
|
if (configDict[@"userProfileID"] != nil) {
|
|
44
44
|
configuration.userProfileID = configDict[@"userProfileID"];
|
|
45
45
|
}
|
|
46
|
+
if (configDict[@"appEnvironment"] != nil) {
|
|
47
|
+
NSDictionary *appEnvironmentMap = configDict[@"appEnvironment"];
|
|
48
|
+
for (NSString *key in appEnvironmentMap) {
|
|
49
|
+
[AMAAppMetrica setAppEnvironmentValue:appEnvironmentMap[key] forKey:key];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (configDict[@"maxReportsCount"] != nil) {
|
|
53
|
+
configuration.maxReportsCount = [configDict[@"maxReportsCount"] unsignedIntegerValue];
|
|
54
|
+
}
|
|
55
|
+
if (configDict[@"dispatchPeriodSeconds"] != nil) {
|
|
56
|
+
configuration.dispatchPeriod = [configDict[@"dispatchPeriodSeconds"] unsignedIntegerValue];
|
|
57
|
+
}
|
|
46
58
|
|
|
47
59
|
return configuration;
|
|
48
60
|
}
|
|
@@ -379,4 +391,38 @@
|
|
|
379
391
|
return amarn_deserializeUserProfile(userProfileDict);
|
|
380
392
|
}
|
|
381
393
|
|
|
394
|
+
+ (AMAMutableReporterConfiguration *)reporterConfigurationForDictionary:(NSDictionary *)configDict
|
|
395
|
+
{
|
|
396
|
+
NSString *apiKey = configDict[@"apiKey"];
|
|
397
|
+
AMAMutableReporterConfiguration *configuration = [[AMAMutableReporterConfiguration alloc] initWithAPIKey:apiKey];
|
|
398
|
+
if (configDict[@"logs"] != nil) {
|
|
399
|
+
configuration.logsEnabled = [configDict[@"logs"] boolValue];
|
|
400
|
+
}
|
|
401
|
+
if (configDict[@"maxReportsInDatabaseCount"] != nil) {
|
|
402
|
+
configuration.maxReportsInDatabaseCount = [configDict[@"maxReportsInDatabaseCount"] unsignedIntegerValue];
|
|
403
|
+
}
|
|
404
|
+
if (configDict[@"sessionTimeout"] != nil) {
|
|
405
|
+
configuration.sessionTimeout = [configDict[@"sessionTimeout"] unsignedIntegerValue];
|
|
406
|
+
}
|
|
407
|
+
if (configDict[@"dataSendingEnabled"] != nil) {
|
|
408
|
+
configuration.dataSendingEnabled = [configDict[@"dataSendingEnabled"] boolValue];
|
|
409
|
+
}
|
|
410
|
+
if (configDict[@"appEnvironment"] != nil) {
|
|
411
|
+
NSDictionary *appEnvironmentMap = configDict[@"appEnvironment"];
|
|
412
|
+
for (NSString *key in appEnvironmentMap) {
|
|
413
|
+
[AMAAppMetrica setAppEnvironmentValue:appEnvironmentMap[key] forKey:key];
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
if (configDict[@"userProfileID"] != nil) {
|
|
417
|
+
configuration.userProfileID = configDict[@"userProfileID"];
|
|
418
|
+
}
|
|
419
|
+
if (configDict[@"dispatchPeriodSeconds"] != nil) {
|
|
420
|
+
configuration.dispatchPeriod = [configDict[@"dispatchPeriodSeconds"] unsignedIntegerValue];
|
|
421
|
+
}
|
|
422
|
+
if (configDict[@"maxReportsCount"] != nil) {
|
|
423
|
+
configuration.maxReportsCount = [configDict[@"maxReportsCount"] unsignedIntegerValue];
|
|
424
|
+
}
|
|
425
|
+
return configuration;
|
|
426
|
+
}
|
|
427
|
+
|
|
382
428
|
@end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
|
|
2
|
+
#import "AMARNExceptionSerializer.h"
|
|
3
|
+
|
|
4
|
+
NSNumber *amarn_parseNumber(NSString *string)
|
|
5
|
+
{
|
|
6
|
+
NSNumberFormatter *format = [[NSNumberFormatter alloc] init];
|
|
7
|
+
format.numberStyle = NSNumberFormatterDecimalStyle;
|
|
8
|
+
NSNumber *myNumber = [format numberFromString:string];
|
|
9
|
+
return myNumber;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
AMAStackTraceElement *amarn_deserializeTraceItem(NSDictionary *traceDict)
|
|
13
|
+
{
|
|
14
|
+
AMAStackTraceElement *item = [[AMAStackTraceElement alloc] init];
|
|
15
|
+
if (traceDict[@"fileName"] != nil) {
|
|
16
|
+
item.fileName = traceDict[@"fileName"];
|
|
17
|
+
}
|
|
18
|
+
if (traceDict[@"className"] != nil) {
|
|
19
|
+
item.className = traceDict[@"className"];
|
|
20
|
+
}
|
|
21
|
+
if (traceDict[@"methodName"] != nil) {
|
|
22
|
+
item.methodName = traceDict[@"methodName"];
|
|
23
|
+
}
|
|
24
|
+
if (traceDict[@"line"] != nil) {
|
|
25
|
+
item.line = amarn_parseNumber(traceDict[@"line"]);
|
|
26
|
+
}
|
|
27
|
+
if (traceDict[@"column"] != nil) {
|
|
28
|
+
item.column = amarn_parseNumber(traceDict[@"column"]);
|
|
29
|
+
}
|
|
30
|
+
return item;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
NSArray<AMAStackTraceElement *> *amarn_deserializeStackTrace(NSArray *frames)
|
|
34
|
+
{
|
|
35
|
+
NSMutableArray<AMAStackTraceElement *> *items = [[NSMutableArray alloc] init];
|
|
36
|
+
for (NSDictionary *frameDict in frames) {
|
|
37
|
+
[items addObject:amarn_deserializeTraceItem(frameDict)];
|
|
38
|
+
}
|
|
39
|
+
return items;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
AMAPluginErrorDetails *amarn_exceptionForDictionary(NSDictionary *configDict)
|
|
43
|
+
{
|
|
44
|
+
if (configDict == nil) {
|
|
45
|
+
return nil;
|
|
46
|
+
}
|
|
47
|
+
AMAPluginErrorDetails *error = [[AMAPluginErrorDetails alloc] init];
|
|
48
|
+
error.platform = kAMAPlatformReactNative;
|
|
49
|
+
if (configDict[@"errorName"] != nil) {
|
|
50
|
+
error.exceptionClass = configDict[@"errorName"];
|
|
51
|
+
}
|
|
52
|
+
if (configDict[@"message"] != nil) {
|
|
53
|
+
error.message = configDict[@"message"];
|
|
54
|
+
}
|
|
55
|
+
if (configDict[@"stackTrace"] != nil) {
|
|
56
|
+
error.backtrace = amarn_deserializeStackTrace(configDict[@"stackTrace"]);
|
|
57
|
+
}
|
|
58
|
+
if (configDict[@"virtualMachineVersion"] != nil) {
|
|
59
|
+
error.virtualMachineVersion = configDict[@"virtualMachineVersion"];
|
|
60
|
+
}
|
|
61
|
+
if (configDict[@"pluginEnvironment"] != nil) {
|
|
62
|
+
error.pluginEnvironment = configDict[@"pluginEnvironment"];
|
|
63
|
+
}
|
|
64
|
+
return error;
|
|
65
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
#include "AMARNExternalAttribution.h"
|
|
3
|
+
|
|
4
|
+
AMAAttributionSource amarn_getExternalAttributionSource(NSString *sourceStr)
|
|
5
|
+
{
|
|
6
|
+
if (sourceStr == nil) return nil;
|
|
7
|
+
|
|
8
|
+
if ([sourceStr isEqualToString:@"AppsFlyer"]) {
|
|
9
|
+
return kAMAAttributionSourceAppsflyer;
|
|
10
|
+
}
|
|
11
|
+
if ([sourceStr isEqualToString:@"Adjust"]) {
|
|
12
|
+
return kAMAAttributionSourceAdjust;
|
|
13
|
+
}
|
|
14
|
+
if ([sourceStr isEqualToString:@"Kochava"]) {
|
|
15
|
+
return kAMAAttributionSourceKochava;
|
|
16
|
+
}
|
|
17
|
+
if ([sourceStr isEqualToString:@"Tenjin"]) {
|
|
18
|
+
return kAMAAttributionSourceTenjin;
|
|
19
|
+
}
|
|
20
|
+
if ([sourceStr isEqualToString:@"Airbridge"]) {
|
|
21
|
+
return kAMAAttributionSourceAirbridge;
|
|
22
|
+
}
|
|
23
|
+
if ([sourceStr isEqualToString:@"Singular"]) {
|
|
24
|
+
return kAMAAttributionSourceSingular;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return nil;
|
|
28
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
|
|
2
|
+
#import "AMARNReporter.h"
|
|
3
|
+
#import "AMARNAppMetricaUtils.h"
|
|
4
|
+
#import <AppMetricaCore/AppMetricaCore.h>
|
|
5
|
+
#import <AppMetricaCrashes/AppMetricaCrashes.h>
|
|
6
|
+
#import "AMARNUserProfileSerializer.h"
|
|
7
|
+
#import "AMARNExceptionSerializer.h"
|
|
8
|
+
|
|
9
|
+
@implementation AMARNReporter
|
|
10
|
+
|
|
11
|
+
RCT_EXPORT_MODULE(AppMetricaReporter)
|
|
12
|
+
|
|
13
|
+
RCT_EXPORT_METHOD(reportError:(NSString *)apiKey:(NSString *)identifier:(NSString *)message:(NSDictionary *)_reason)
|
|
14
|
+
{
|
|
15
|
+
id<AMAAppMetricaCrashReporting> reporter = [[AMAAppMetricaCrashes crashes] reporterForAPIKey:apiKey];
|
|
16
|
+
[[reporter pluginExtension] reportErrorWithIdentifier:identifier
|
|
17
|
+
message:message
|
|
18
|
+
details:amarn_exceptionForDictionary(_reason)
|
|
19
|
+
onFailure:^(NSError *error) {
|
|
20
|
+
NSLog(@"Failed to report error to AppMetrica: %@", [error localizedDescription]);
|
|
21
|
+
}];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
RCT_EXPORT_METHOD(reportErrorWithoutIdentifier:(NSString *)apiKey:(NSString *)message:(NSDictionary *)error)
|
|
25
|
+
{
|
|
26
|
+
id<AMAAppMetricaCrashReporting> reporter = [[AMAAppMetricaCrashes crashes] reporterForAPIKey:apiKey];
|
|
27
|
+
AMAPluginErrorDetails *details = amarn_exceptionForDictionary(error);
|
|
28
|
+
if (details.backtrace.count == 0) {
|
|
29
|
+
[[reporter pluginExtension] reportErrorWithIdentifier:@"Errors without stacktrace"
|
|
30
|
+
message:message
|
|
31
|
+
details:details
|
|
32
|
+
onFailure:^(NSError *error) {
|
|
33
|
+
NSLog(@"Failed to report error to AppMetrica: %@", [error localizedDescription]);
|
|
34
|
+
}];
|
|
35
|
+
} else {
|
|
36
|
+
[[reporter pluginExtension] reportError:details message:message onFailure:^(NSError *error) {
|
|
37
|
+
NSLog(@"Failed to report error to AppMetrica: %@", [error localizedDescription]);
|
|
38
|
+
}];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
RCT_EXPORT_METHOD(reportUnhandledException:(NSString *)apiKey:(NSDictionary *)error)
|
|
43
|
+
{
|
|
44
|
+
id<AMAAppMetricaCrashReporting> reporter = [[AMAAppMetricaCrashes crashes] reporterForAPIKey:apiKey];
|
|
45
|
+
[[reporter pluginExtension] reportUnhandledException:amarn_exceptionForDictionary(error)
|
|
46
|
+
onFailure:^(NSError *error) {
|
|
47
|
+
NSLog(@"Failed to report unhandled exception to AppMetrica: %@", [error localizedDescription]);
|
|
48
|
+
}];
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
RCT_EXPORT_METHOD(reportEvent:(NSString *)apiKey:(NSString *)eventName:(NSDictionary *)attributes)
|
|
52
|
+
{
|
|
53
|
+
id<AMAAppMetricaReporting> reporter = [AMAAppMetrica reporterForAPIKey:apiKey];
|
|
54
|
+
if (attributes == nil) {
|
|
55
|
+
[reporter reportEvent:eventName onFailure:^(NSError *error) {
|
|
56
|
+
NSLog(@"error: %@", [error localizedDescription]);
|
|
57
|
+
}];
|
|
58
|
+
} else {
|
|
59
|
+
[reporter reportEvent:eventName parameters:attributes onFailure:^(NSError *error) {
|
|
60
|
+
NSLog(@"error: %@", [error localizedDescription]);
|
|
61
|
+
}];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
RCT_EXPORT_METHOD(pauseSession:(NSString *)apiKey)
|
|
66
|
+
{
|
|
67
|
+
id<AMAAppMetricaReporting> reporter = [AMAAppMetrica reporterForAPIKey:apiKey];
|
|
68
|
+
[reporter pauseSession];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
RCT_EXPORT_METHOD(resumeSession:(NSString *)apiKey)
|
|
72
|
+
{
|
|
73
|
+
id<AMAAppMetricaReporting> reporter = [AMAAppMetrica reporterForAPIKey:apiKey];
|
|
74
|
+
[reporter resumeSession];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
RCT_EXPORT_METHOD(sendEventsBuffer:(NSString *)apiKey)
|
|
78
|
+
{
|
|
79
|
+
id<AMAAppMetricaReporting> reporter = [AMAAppMetrica reporterForAPIKey:apiKey];
|
|
80
|
+
[reporter sendEventsBuffer];
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
RCT_EXPORT_METHOD(putAppEnvironmentValue:(NSString *)apiKey:(NSString *)key:(NSString *)value)
|
|
84
|
+
{
|
|
85
|
+
id<AMAAppMetricaReporting> reporter = [AMAAppMetrica reporterForAPIKey:apiKey];
|
|
86
|
+
[reporter setAppEnvironmentValue:value forKey:key];
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
RCT_EXPORT_METHOD(clearAppEnvironment:(NSString *)apiKey)
|
|
90
|
+
{
|
|
91
|
+
id<AMAAppMetricaReporting> reporter = [AMAAppMetrica reporterForAPIKey:apiKey];
|
|
92
|
+
[reporter clearAppEnvironment];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
RCT_EXPORT_METHOD(setUserProfileID:(NSString *)apiKey:(NSString *)userProfileID)
|
|
96
|
+
{
|
|
97
|
+
id<AMAAppMetricaReporting> reporter = [AMAAppMetrica reporterForAPIKey:apiKey];
|
|
98
|
+
[reporter setUserProfileID:userProfileID];
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
RCT_EXPORT_METHOD(setDataSendingEnabled:(NSString *)apiKey:(BOOL)enabled)
|
|
102
|
+
{
|
|
103
|
+
id<AMAAppMetricaReporting> reporter = [AMAAppMetrica reporterForAPIKey:apiKey];
|
|
104
|
+
[reporter setDataSendingEnabled:enabled];
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
RCT_EXPORT_METHOD(reportUserProfile:(NSString *)apiKey:(NSDictionary *)userProfileDict)
|
|
108
|
+
{
|
|
109
|
+
id<AMAAppMetricaReporting> reporter = [AMAAppMetrica reporterForAPIKey:apiKey];
|
|
110
|
+
[reporter reportUserProfile:[AMARNAppMetricaUtils userProfileForDict:userProfileDict] onFailure:nil];
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
RCT_EXPORT_METHOD(reportRevenue:(NSString *)apiKey:(NSDictionary *)revenueDict)
|
|
114
|
+
{
|
|
115
|
+
id<AMAAppMetricaReporting> reporter = [AMAAppMetrica reporterForAPIKey:apiKey];
|
|
116
|
+
[reporter reportRevenue:[AMARNAppMetricaUtils revenueForDict:revenueDict] onFailure:nil];
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
RCT_EXPORT_METHOD(reportAdRevenue:(NSString *)apiKey:(NSDictionary *)revenueDict)
|
|
120
|
+
{
|
|
121
|
+
id<AMAAppMetricaReporting> reporter = [AMAAppMetrica reporterForAPIKey:apiKey];
|
|
122
|
+
[reporter reportAdRevenue:[AMARNAppMetricaUtils adRevenueForDict:revenueDict] onFailure:nil];
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
RCT_EXPORT_METHOD(reportECommerce:(NSString *)apiKey:(NSDictionary *)ecommerceDict)
|
|
126
|
+
{
|
|
127
|
+
id<AMAAppMetricaReporting> reporter = [AMAAppMetrica reporterForAPIKey:apiKey];
|
|
128
|
+
[reporter reportECommerce:[AMARNAppMetricaUtils ecommerceForDict:ecommerceDict] onFailure:nil];
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["deferredDeeplink.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AppMetricaError = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
const traceRegex = /^\s*at (.*?) ?\((.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
|
|
11
|
+
function parseTraceLine(line) {
|
|
12
|
+
const parts = traceRegex.exec(line);
|
|
13
|
+
if (parts === null) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
fileName: parts[2],
|
|
18
|
+
methodName: parts[1],
|
|
19
|
+
column: parts[3],
|
|
20
|
+
line: parts[4]
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function getRNVersion() {
|
|
24
|
+
const versions = _reactNative.Platform.constants.reactNativeVersion;
|
|
25
|
+
return versions.major + '.' + versions.minor + '.' + versions.patch;
|
|
26
|
+
}
|
|
27
|
+
function getReactVersion() {
|
|
28
|
+
return _react.default.version;
|
|
29
|
+
}
|
|
30
|
+
function getPluginEnvironment() {
|
|
31
|
+
return {
|
|
32
|
+
reactVersion: getReactVersion()
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function parseStackTrace(stackTrace) {
|
|
36
|
+
if (stackTrace === undefined) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
const lines = stackTrace.split('\n');
|
|
41
|
+
const array = [];
|
|
42
|
+
lines === null || lines === void 0 || lines.forEach(line => {
|
|
43
|
+
const item = parseTraceLine(line);
|
|
44
|
+
if (item !== undefined) {
|
|
45
|
+
array.push(item);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return array;
|
|
49
|
+
} catch (e) {
|
|
50
|
+
console.log(e);
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
class AppMetricaError {
|
|
55
|
+
constructor(errorName, message) {
|
|
56
|
+
this.errorName = errorName;
|
|
57
|
+
this.message = message;
|
|
58
|
+
this.pluginEnvironment = getPluginEnvironment();
|
|
59
|
+
this.virtualMachineVersion = getRNVersion();
|
|
60
|
+
}
|
|
61
|
+
static withError(error) {
|
|
62
|
+
const newError = new AppMetricaError(error.name, error.message);
|
|
63
|
+
newError.stackTrace = parseStackTrace(error.stack);
|
|
64
|
+
return newError;
|
|
65
|
+
}
|
|
66
|
+
static withObject(error) {
|
|
67
|
+
return new AppMetricaError(undefined, JSON.stringify(error));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.AppMetricaError = AppMetricaError;
|
|
71
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_react","_interopRequireDefault","e","__esModule","default","traceRegex","parseTraceLine","line","parts","exec","undefined","fileName","methodName","column","getRNVersion","versions","Platform","constants","reactNativeVersion","major","minor","patch","getReactVersion","React","version","getPluginEnvironment","reactVersion","parseStackTrace","stackTrace","lines","split","array","forEach","item","push","console","log","AppMetricaError","constructor","errorName","message","pluginEnvironment","virtualMachineVersion","withError","error","newError","name","stack","withObject","JSON","stringify","exports"],"sourceRoot":"../../src","sources":["error.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0B,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1B,MAAMG,UAAU,GAAG,qDAAqD;AAExE,SAASC,cAAcA,CAACC,IAAY,EAA8B;EAChE,MAAMC,KAAK,GAAGH,UAAU,CAACI,IAAI,CAACF,IAAI,CAAC;EACnC,IAAIC,KAAK,KAAK,IAAI,EAAE;IAClB,OAAOE,SAAS;EAClB;EACA,OAAO;IACLC,QAAQ,EAAEH,KAAK,CAAC,CAAC,CAAC;IAClBI,UAAU,EAAEJ,KAAK,CAAC,CAAC,CAAC;IACpBK,MAAM,EAAEL,KAAK,CAAC,CAAC,CAAC;IAChBD,IAAI,EAAEC,KAAK,CAAC,CAAC;EACf,CAAC;AACH;AAEA,SAASM,YAAYA,CAAA,EAAW;EAC9B,MAAMC,QAAQ,GAAGC,qBAAQ,CAACC,SAAS,CAACC,kBAAkB;EACtD,OAAOH,QAAQ,CAACI,KAAK,GAAG,GAAG,GAAGJ,QAAQ,CAACK,KAAK,GAAG,GAAG,GAAGL,QAAQ,CAACM,KAAK;AACrE;AAEA,SAASC,eAAeA,CAAA,EAAW;EACjC,OAAOC,cAAK,CAACC,OAAO;AACtB;AAEA,SAASC,oBAAoBA,CAAA,EAAuC;EAClE,OAAO;IACLC,YAAY,EAAEJ,eAAe,CAAC;EAChC,CAAC;AACH;AAEA,SAASK,eAAeA,CACtBC,UAAmB,EACgB;EACnC,IAAIA,UAAU,KAAKlB,SAAS,EAAE;IAC5B,OAAOA,SAAS;EAClB;EACA,IAAI;IACF,MAAMmB,KAAK,GAAGD,UAAU,CAACE,KAAK,CAAC,IAAI,CAAC;IACpC,MAAMC,KAA4B,GAAG,EAAE;IACvCF,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEG,OAAO,CAAEzB,IAAY,IAAK;MAC/B,MAAM0B,IAAI,GAAG3B,cAAc,CAACC,IAAI,CAAC;MACjC,IAAI0B,IAAI,KAAKvB,SAAS,EAAE;QACtBqB,KAAK,CAACG,IAAI,CAACD,IAAI,CAAC;MAClB;IACF,CAAC,CAAC;IACF,OAAOF,KAAK;EACd,CAAC,CAAC,OAAM7B,CAAC,EAAE;IACTiC,OAAO,CAACC,GAAG,CAAClC,CAAC,CAAC;IACd,OAAOQ,SAAS;EAClB;AACF;AAUO,MAAM2B,eAAe,CAAC;EAO3BC,WAAWA,CAACC,SAAkB,EAAEC,OAAgB,EAAE;IAChD,IAAI,CAACD,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,iBAAiB,GAAGhB,oBAAoB,CAAC,CAAC;IAC/C,IAAI,CAACiB,qBAAqB,GAAG5B,YAAY,CAAC,CAAC;EAC7C;EAEA,OAAO6B,SAASA,CAACC,KAAY,EAAmB;IAC9C,MAAMC,QAAQ,GAAG,IAAIR,eAAe,CAACO,KAAK,CAACE,IAAI,EAAEF,KAAK,CAACJ,OAAO,CAAC;IAC/DK,QAAQ,CAACjB,UAAU,GAAGD,eAAe,CAACiB,KAAK,CAACG,KAAK,CAAC;IAClD,OAAOF,QAAQ;EACjB;EAEA,OAAOG,UAAUA,CAACJ,KAAc,EAAmB;IACjD,OAAO,IAAIP,eAAe,CAAC3B,SAAS,EAAEuC,IAAI,CAACC,SAAS,CAACN,KAAK,CAAC,CAAC;EAC9D;AACF;AAACO,OAAA,CAAAd,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ExternalAttributions = void 0;
|
|
7
|
+
class ExternalAttributions {
|
|
8
|
+
static adjust(data) {
|
|
9
|
+
return {
|
|
10
|
+
source: 'Adjust',
|
|
11
|
+
value: data
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
static airbridge(data) {
|
|
15
|
+
return {
|
|
16
|
+
source: 'Airbridge',
|
|
17
|
+
value: data
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
static appsflyer(data) {
|
|
21
|
+
return {
|
|
22
|
+
source: 'AppsFlyer',
|
|
23
|
+
value: data.data
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
static kochava(data) {
|
|
27
|
+
return {
|
|
28
|
+
source: 'Kochava',
|
|
29
|
+
value: data.raw
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
static singular(data) {
|
|
33
|
+
return {
|
|
34
|
+
source: 'Singular',
|
|
35
|
+
value: Object.fromEntries(data)
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
static tenjin(data) {
|
|
39
|
+
return {
|
|
40
|
+
source: 'Tenjin',
|
|
41
|
+
value: data
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.ExternalAttributions = ExternalAttributions;
|
|
46
|
+
//# sourceMappingURL=externalAttribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ExternalAttributions","adjust","data","source","value","airbridge","appsflyer","kochava","raw","singular","Object","fromEntries","tenjin","exports"],"sourceRoot":"../../src","sources":["externalAttribution.ts"],"mappings":";;;;;;AAaO,MAAMA,oBAAoB,CAAC;EAChC,OAAOC,MAAMA,CAACC,IAAyB,EAAuB;IAC5D,OAAO;MACLC,MAAM,EAAE,QAAQ;MAChBC,KAAK,EAAEF;IACT,CAAC;EACH;EAEA,OAAOG,SAASA,CAACH,IAAyB,EAAuB;IAC/D,OAAO;MACLC,MAAM,EAAE,WAAW;MACnBC,KAAK,EAAEF;IACT,CAAC;EACH;EAEA,OAAOI,SAASA,CAACJ,IAAyB,EAAuB;IAC/D,OAAO;MACLC,MAAM,EAAE,WAAW;MACnBC,KAAK,EAAEF,IAAI,CAACA;IACd,CAAC;EACH;EAEA,OAAOK,OAAOA,CAACL,IAAyB,EAAuB;IAC7D,OAAO;MACLC,MAAM,EAAE,SAAS;MACjBC,KAAK,EAAEF,IAAI,CAACM;IACd,CAAC;EACH;EAEA,OAAOC,QAAQA,CAACP,IAAyB,EAAuB;IAC9D,OAAO;MACLC,MAAM,EAAE,UAAU;MAClBC,KAAK,EAAEM,MAAM,CAACC,WAAW,CAACT,IAAI;IAChC,CAAC;EACH;EAEA,OAAOU,MAAMA,CAACV,IAAyB,EAAuB;IAC5D,OAAO;MACLC,MAAM,EAAE,QAAQ;MAChBC,KAAK,EAAEF;IACT,CAAC;EACH;AACF;AAACW,OAAA,CAAAb,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -11,6 +11,8 @@ var _exportNames = {
|
|
|
11
11
|
exports.default = exports.UUID_KEY = exports.DEVICE_ID_KEY = exports.DEVICE_ID_HASH_KEY = void 0;
|
|
12
12
|
var _reactNative = require("react-native");
|
|
13
13
|
var _utils = require("./utils");
|
|
14
|
+
var _error = require("./error");
|
|
15
|
+
var _reporter = require("./reporter");
|
|
14
16
|
var _ecommerce = require("./ecommerce");
|
|
15
17
|
Object.keys(_ecommerce).forEach(function (key) {
|
|
16
18
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -47,6 +49,30 @@ Object.keys(_userProfile).forEach(function (key) {
|
|
|
47
49
|
}
|
|
48
50
|
});
|
|
49
51
|
});
|
|
52
|
+
var _externalAttribution = require("./externalAttribution");
|
|
53
|
+
Object.keys(_externalAttribution).forEach(function (key) {
|
|
54
|
+
if (key === "default" || key === "__esModule") return;
|
|
55
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
56
|
+
if (key in exports && exports[key] === _externalAttribution[key]) return;
|
|
57
|
+
Object.defineProperty(exports, key, {
|
|
58
|
+
enumerable: true,
|
|
59
|
+
get: function () {
|
|
60
|
+
return _externalAttribution[key];
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
var _deferredDeeplink = require("./deferredDeeplink");
|
|
65
|
+
Object.keys(_deferredDeeplink).forEach(function (key) {
|
|
66
|
+
if (key === "default" || key === "__esModule") return;
|
|
67
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
68
|
+
if (key in exports && exports[key] === _deferredDeeplink[key]) return;
|
|
69
|
+
Object.defineProperty(exports, key, {
|
|
70
|
+
enumerable: true,
|
|
71
|
+
get: function () {
|
|
72
|
+
return _deferredDeeplink[key];
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
});
|
|
50
76
|
const LINKING_ERROR = `The package '@appmetrica/react-native-analytics' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
|
|
51
77
|
ios: "- You have run 'pod install'\n",
|
|
52
78
|
default: ''
|
|
@@ -74,6 +100,7 @@ const DEVICE_ID_HASH_KEY = exports.DEVICE_ID_HASH_KEY = 'appmetrica_device_id_ha
|
|
|
74
100
|
const DEVICE_ID_KEY = exports.DEVICE_ID_KEY = 'appmetrica_device_id';
|
|
75
101
|
const UUID_KEY = exports.UUID_KEY = 'appmetrica_uuid';
|
|
76
102
|
class AppMetrica {
|
|
103
|
+
static reporters = new Map();
|
|
77
104
|
static activate(config) {
|
|
78
105
|
if (!activated) {
|
|
79
106
|
AppMetricaNative.activate(config);
|
|
@@ -98,7 +125,13 @@ class AppMetrica {
|
|
|
98
125
|
AppMetricaNative.reportAppOpen(deeplink);
|
|
99
126
|
}
|
|
100
127
|
static reportError(identifier, message, _reason) {
|
|
101
|
-
AppMetricaNative.reportError(identifier, message);
|
|
128
|
+
AppMetricaNative.reportError(identifier, message, _reason instanceof Error ? _error.AppMetricaError.withError(_reason) : _error.AppMetricaError.withObject(_reason));
|
|
129
|
+
}
|
|
130
|
+
static reportUnhandledException(error) {
|
|
131
|
+
AppMetricaNative.reportUnhandledException(_error.AppMetricaError.withError(error));
|
|
132
|
+
}
|
|
133
|
+
static reportErrorWithoutIdentifier(message, error) {
|
|
134
|
+
AppMetricaNative.reportErrorWithoutIdentifier(message, _error.AppMetricaError.withError(error));
|
|
102
135
|
}
|
|
103
136
|
static reportEvent(eventName, attributes) {
|
|
104
137
|
AppMetricaNative.reportEvent(eventName, attributes);
|
|
@@ -139,6 +172,40 @@ class AppMetrica {
|
|
|
139
172
|
static putErrorEnvironmentValue(key, value) {
|
|
140
173
|
AppMetricaNative.putErrorEnvironmentValue(key, value);
|
|
141
174
|
}
|
|
175
|
+
static reportExternalAttribution(attribution) {
|
|
176
|
+
AppMetricaNative.reportExternalAttribution(attribution);
|
|
177
|
+
}
|
|
178
|
+
static putAppEnvironmentValue(key, value) {
|
|
179
|
+
AppMetricaNative.putAppEnvironmentValue(key, value);
|
|
180
|
+
}
|
|
181
|
+
static clearAppEnvironment() {
|
|
182
|
+
AppMetricaNative.clearAppEnvironment();
|
|
183
|
+
}
|
|
184
|
+
static getReporter(apiKey) {
|
|
185
|
+
if (AppMetrica.reporters.has(apiKey)) {
|
|
186
|
+
return AppMetrica.reporters.get(apiKey);
|
|
187
|
+
} else {
|
|
188
|
+
AppMetricaNative.touchReporter(apiKey);
|
|
189
|
+
const reporter = new _reporter.Reporter(apiKey);
|
|
190
|
+
AppMetrica.reporters.set(apiKey, reporter);
|
|
191
|
+
return reporter;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
static activateReporter(config) {
|
|
195
|
+
AppMetricaNative.activateReporter(config);
|
|
196
|
+
}
|
|
197
|
+
static getDeviceId() {
|
|
198
|
+
return AppMetricaNative.getDeviceId();
|
|
199
|
+
}
|
|
200
|
+
static getUuid() {
|
|
201
|
+
return AppMetricaNative.getUuid();
|
|
202
|
+
}
|
|
203
|
+
static requestDeferredDeeplink(listener) {
|
|
204
|
+
AppMetricaNative.requestDeferredDeeplink(listener.onFailure, listener.onSuccess);
|
|
205
|
+
}
|
|
206
|
+
static requestDeferredDeeplinkParameters(listener) {
|
|
207
|
+
AppMetricaNative.requestDeferredDeeplinkParameters(listener.onFailure, listener.onSuccess);
|
|
208
|
+
}
|
|
142
209
|
}
|
|
143
210
|
exports.default = AppMetrica;
|
|
144
211
|
//# sourceMappingURL=index.js.map
|