react-native-gleapsdk 10.0.3 → 11.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 (92) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/reactnativegleapsdk/GleapsdkModule.java +13 -1
  3. package/ios/Gleapsdk.m +7 -1
  4. package/lib/commonjs/index.js +11 -27
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/networklogger.js +29 -81
  7. package/lib/commonjs/networklogger.js.map +1 -1
  8. package/lib/module/index.js +11 -23
  9. package/lib/module/index.js.map +1 -1
  10. package/lib/module/networklogger.js +29 -80
  11. package/lib/module/networklogger.js.map +1 -1
  12. package/lib/typescript/index.d.ts +4 -3
  13. package/lib/typescript/index.d.ts.map +1 -0
  14. package/lib/typescript/networklogger.d.ts +1 -0
  15. package/lib/typescript/networklogger.d.ts.map +1 -0
  16. package/package.json +5 -6
  17. package/react-native-gleapsdk.podspec +1 -1
  18. package/src/index.tsx +6 -0
  19. package/android/.gradle/6.8/fileChanges/last-build.bin +0 -0
  20. package/android/.gradle/6.8/fileHashes/fileHashes.bin +0 -0
  21. package/android/.gradle/6.8/fileHashes/fileHashes.lock +0 -0
  22. package/android/.gradle/6.8/gc.properties +0 -0
  23. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  24. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  25. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  26. package/android/.gradle/checksums/checksums.lock +0 -0
  27. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  28. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  29. package/android/.gradle/configuration-cache/gc.properties +0 -0
  30. package/android/.gradle/vcs-1/gc.properties +0 -0
  31. package/android/.idea/compiler.xml +0 -6
  32. package/android/.idea/gradle.xml +0 -18
  33. package/android/.idea/jarRepositories.xml +0 -35
  34. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_0_0.xml +0 -13
  35. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_0_2_aar.xml +0 -16
  36. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_0_0.xml +0 -11
  37. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml +0 -13
  38. package/android/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml +0 -13
  39. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_0_0.xml +0 -11
  40. package/android/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml +0 -16
  41. package/android/.idea/libraries/Gradle__androidx_core_core_1_0_1_aar.xml +0 -16
  42. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +0 -13
  43. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +0 -13
  44. package/android/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml +0 -13
  45. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +0 -16
  46. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_0_0_aar.xml +0 -16
  47. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +0 -13
  48. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml +0 -13
  49. package/android/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml +0 -13
  50. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_0_0.xml +0 -11
  51. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +0 -13
  52. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml +0 -13
  53. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_0_0_aar.xml +0 -13
  54. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_0_0_aar.xml +0 -13
  55. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +0 -13
  56. package/android/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml +0 -13
  57. package/android/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml +0 -16
  58. package/android/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml +0 -13
  59. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +0 -16
  60. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_0_1_aar.xml +0 -13
  61. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml +0 -13
  62. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_0_0_aar.xml +0 -13
  63. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +0 -13
  64. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_0_3.xml +0 -13
  65. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_0_0_aar.xml +0 -15
  66. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_0_0_aar.xml +0 -18
  67. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_0_0_aar.xml +0 -18
  68. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_0_0_aar.xml +0 -18
  69. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_0_0_aar.xml +0 -18
  70. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_0_0_aar.xml +0 -15
  71. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_0_0_aar.xml +0 -15
  72. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_0_0_aar.xml +0 -15
  73. package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2.xml +0 -13
  74. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_63_4_aar.xml +0 -18
  75. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_9_0.xml +0 -13
  76. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_9_0.xml +0 -13
  77. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_9_0_aar.xml +0 -15
  78. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_14_1.xml +0 -13
  79. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +0 -13
  80. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_12.xml +0 -13
  81. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_12_12.xml +0 -13
  82. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0.xml +0 -13
  83. package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +0 -13
  84. package/android/.idea/misc.xml +0 -9
  85. package/android/.idea/modules/android.iml +0 -91
  86. package/android/.idea/modules.xml +0 -8
  87. package/android/.idea/vcs.xml +0 -6
  88. package/android/local.properties +0 -8
  89. package/ios/Gleapsdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  90. package/ios/Gleapsdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  91. package/ios/Gleapsdk.xcodeproj/project.xcworkspace/xcuserdata/lukasboehler.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  92. package/ios/Gleapsdk.xcodeproj/xcuserdata/lukasboehler.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
@@ -51,7 +51,7 @@ repositories {
51
51
 
52
52
  dependencies {
53
53
  implementation "com.facebook.react:react-native:+"
54
- implementation group: 'io.gleap', name: 'gleap-android-sdk', version: '10.0.3'
54
+ implementation group: 'io.gleap', name: 'gleap-android-sdk', version: '11.1.0'
55
55
 
56
56
 
57
57
  if(rootProject && rootProject.ext) {
@@ -43,6 +43,7 @@ import io.gleap.PrefillHelper;
43
43
  import io.gleap.RequestType;
44
44
  import io.gleap.UserSessionController;
45
45
  import io.gleap.callbacks.ConfigLoadedCallback;
46
+ import io.gleap.callbacks.InitializedCallback;
46
47
  import io.gleap.callbacks.CustomActionCallback;
47
48
  import io.gleap.callbacks.FeedbackFlowStartedCallback;
48
49
  import io.gleap.callbacks.FeedbackSendingFailedCallback;
@@ -130,6 +131,17 @@ public class GleapsdkModule extends ReactContextBaseJavaModule {
130
131
  }
131
132
  });
132
133
 
134
+ Gleap.getInstance().setInitializedCallback(new InitializedCallback() {
135
+ @Override
136
+ public void initialized() {
137
+ if (!invalidated) {
138
+ getReactApplicationContext().getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
139
+ .emit("initialized", null);
140
+ }
141
+
142
+ }
143
+ });
144
+
133
145
  Gleap.getInstance().setFeedbackSentCallback(new FeedbackSentCallback() {
134
146
  @Override
135
147
  public void invoke(String message) {
@@ -581,7 +593,7 @@ public class GleapsdkModule extends ReactContextBaseJavaModule {
581
593
  public void run() {
582
594
  try {
583
595
  JSONObject body = new JSONObject();
584
- body.put("page", "MainActivity" + Math.random() * 100);
596
+ body.put("page", pageName);
585
597
  Gleap.getInstance().trackEvent("pageView", body);
586
598
  } catch (Exception ignore) {
587
599
  }
package/ios/Gleapsdk.m CHANGED
@@ -81,6 +81,12 @@ RCT_EXPORT_METHOD(initialize:(NSString *)token)
81
81
  }
82
82
  }
83
83
 
84
+ - (void)initialized {
85
+ if (_hasListeners) {
86
+ [self sendEventWithName:@"initialized" body: @{}];
87
+ }
88
+ }
89
+
84
90
  - (void)motionEnded:(NSNotification *)notification
85
91
  {
86
92
  if ([Gleap isActivationMethodActive: SHAKE]) {
@@ -149,7 +155,7 @@ RCT_EXPORT_METHOD(initialize:(NSString *)token)
149
155
  }
150
156
 
151
157
  - (NSArray<NSString *> *)supportedEvents {
152
- return @[@"feedbackSent", @"feedbackSendingFailed", @"configLoaded", @"customActionTriggered", @"feedbackFlowStarted", @"widgetOpened", @"widgetClosed", @"registerPushMessageGroup", @"unregisterPushMessageGroup"];
158
+ return @[@"feedbackSent", @"feedbackSendingFailed", @"initialized", @"configLoaded", @"customActionTriggered", @"feedbackFlowStarted", @"widgetOpened", @"widgetClosed", @"registerPushMessageGroup", @"unregisterPushMessageGroup"];
153
159
  }
154
160
 
155
161
  RCT_EXPORT_METHOD(sendSilentCrashReport:(NSString *)description andSeverity:(NSString *)severity)
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _reactNative = require("react-native");
9
-
10
8
  var _networklogger = _interopRequireDefault(require("./networklogger"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  const LINKING_ERROR = `The package 'react-native-gleapsdk' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
15
11
  ios: "- You have run 'pod install'\n",
16
12
  default: ''
@@ -19,21 +15,18 @@ const GleapSdk = _reactNative.NativeModules.Gleapsdk ? _reactNative.NativeModule
19
15
  get() {
20
16
  throw new Error(LINKING_ERROR);
21
17
  }
22
-
23
18
  });
24
-
25
19
  if (GleapSdk && !GleapSdk.touched) {
26
- const networkLogger = new _networklogger.default(); // Push the network log to the native SDK.
20
+ const networkLogger = new _networklogger.default();
27
21
 
22
+ // Push the network log to the native SDK.
28
23
  GleapSdk.startNetworkLogging = () => {
29
24
  // Set the callback.
30
25
  networkLogger.setUpdatedCallback(() => {
31
26
  if (!networkLogger) {
32
27
  return;
33
28
  }
34
-
35
29
  const requests = networkLogger.getRequests();
36
-
37
30
  if (requests && GleapSdk && typeof GleapSdk.attachNetworkLog !== 'undefined') {
38
31
  if (_reactNative.Platform.OS === 'android') {
39
32
  GleapSdk.attachNetworkLog(JSON.stringify(requests));
@@ -41,35 +34,30 @@ if (GleapSdk && !GleapSdk.touched) {
41
34
  GleapSdk.attachNetworkLog(JSON.parse(JSON.stringify(requests)));
42
35
  }
43
36
  }
44
- }); // Start the logger.
37
+ });
45
38
 
39
+ // Start the logger.
46
40
  networkLogger.start();
47
41
  };
48
-
49
42
  GleapSdk.stopNetworkLogging = () => {
50
43
  networkLogger.setStopped(true);
51
- }; // eslint-disable-next-line @typescript-eslint/no-unused-vars
52
-
44
+ };
53
45
 
46
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
54
47
  GleapSdk.logEvent = (name, data) => {
55
48
  console.log('logEvent is deprecated. Use trackEvent instead.');
56
49
  GleapSdk.trackEvent(name, data);
57
50
  };
58
-
59
51
  var callbacks = {};
60
-
61
52
  GleapSdk.registerListener = (eventType, callback) => {
62
53
  if (!callbacks[eventType]) {
63
54
  callbacks[eventType] = [];
64
55
  }
65
-
66
56
  callbacks[eventType].push(callback);
67
57
  };
68
-
69
58
  GleapSdk.registerCustomAction = customActionCallback => {
70
59
  GleapSdk.registerListener('customActionTriggered', customActionCallback);
71
60
  };
72
-
73
61
  const notifyCallback = function (eventType, data) {
74
62
  if (callbacks && callbacks[eventType] && callbacks[eventType].length > 0) {
75
63
  for (var i = 0; i < callbacks[eventType].length; i++) {
@@ -79,19 +67,21 @@ if (GleapSdk && !GleapSdk.touched) {
79
67
  }
80
68
  }
81
69
  };
82
-
83
70
  const gleapEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.Gleapsdk);
84
71
  gleapEmitter.addListener('configLoaded', config => {
85
72
  try {
86
73
  const configJSON = config instanceof Object ? config : JSON.parse(config);
87
-
88
74
  if (configJSON.enableNetworkLogs) {
89
75
  GleapSdk.startNetworkLogging();
90
76
  }
91
-
92
77
  notifyCallback('configLoaded', configJSON);
93
78
  } catch (exp) {}
94
79
  });
80
+ gleapEmitter.addListener('initialized', () => {
81
+ try {
82
+ notifyCallback('initialized');
83
+ } catch (exp) {}
84
+ });
95
85
  gleapEmitter.addListener('feedbackSent', data => {
96
86
  try {
97
87
  const dataJSON = data instanceof Object ? data : JSON.parse(data);
@@ -116,27 +106,22 @@ if (GleapSdk && !GleapSdk.touched) {
116
106
  gleapEmitter.addListener('unregisterPushMessageGroup', pushMessageGroup => {
117
107
  notifyCallback('unregisterPushMessageGroup', pushMessageGroup);
118
108
  });
119
-
120
109
  function isJsonString(str) {
121
110
  try {
122
111
  JSON.parse(str);
123
112
  } catch (e) {
124
113
  return false;
125
114
  }
126
-
127
115
  return true;
128
116
  }
129
-
130
117
  gleapEmitter.addListener('customActionTriggered', data => {
131
118
  try {
132
119
  if (isJsonString(data)) {
133
120
  data = JSON.parse(data);
134
121
  }
135
-
136
122
  const {
137
123
  name
138
124
  } = data;
139
-
140
125
  if (name) {
141
126
  notifyCallback('customActionTriggered', {
142
127
  name
@@ -147,7 +132,6 @@ if (GleapSdk && !GleapSdk.touched) {
147
132
  GleapSdk.removeAllAttachments();
148
133
  GleapSdk.touched = true;
149
134
  }
150
-
151
135
  var _default = GleapSdk;
152
136
  exports.default = _default;
153
137
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["LINKING_ERROR","Platform","select","ios","default","GleapSdk","NativeModules","Gleapsdk","Proxy","get","Error","touched","networkLogger","GleapNetworkIntercepter","startNetworkLogging","setUpdatedCallback","requests","getRequests","attachNetworkLog","OS","JSON","stringify","parse","start","stopNetworkLogging","setStopped","logEvent","name","data","console","log","trackEvent","callbacks","registerListener","eventType","callback","push","registerCustomAction","customActionCallback","notifyCallback","length","i","gleapEmitter","NativeEventEmitter","addListener","config","configJSON","Object","enableNetworkLogs","exp","dataJSON","feedbackAction","pushMessageGroup","isJsonString","str","e","removeAllAttachments"],"mappings":"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","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform } from 'react-native';\nimport GleapNetworkIntercepter from './networklogger';\n\nconst LINKING_ERROR =\n `The package 'react-native-gleapsdk' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nexport type GleapUserProperty = {\n email?: string;\n name?: string;\n phone?: string;\n value?: number;\n customData?: { [key: string]: string | number };\n};\n\ntype GleapActivationMethod = 'SHAKE' | 'SCREENSHOT';\n\ntype GleapSdkType = {\n initialize(token: string): void;\n startFeedbackFlow(feedbackFlow: string, showBackButton: boolean): void;\n startBot(botId: string, showBackButton: boolean): void;\n sendSilentCrashReport(\n description: string,\n severity: 'LOW' | 'MEDIUM' | 'HIGH'\n ): void;\n sendSilentCrashReportWithExcludeData(\n description: string,\n severity: 'LOW' | 'MEDIUM' | 'HIGH',\n excludeData: {\n customData?: Boolean;\n metaData?: Boolean;\n attachments?: Boolean;\n consoleLog?: Boolean;\n networkLogs?: Boolean;\n customEventLog?: Boolean;\n screenshot?: Boolean;\n replays?: Boolean;\n }\n ): void;\n open(): void;\n openNews(showBackButton: boolean): void;\n openNewsArticle(articleId: string, showBackButton: boolean): void;\n openFeatureRequests(showBackButton: boolean): void;\n openHelpCenter(showBackButton: boolean): void;\n openHelpCenterCollection(collectionId: string, showBackButton: boolean): void;\n openHelpCenterArticle(articleId: string, showBackButton: boolean): void;\n searchHelpCenter(term: string, showBackButton: boolean): void;\n close(): void;\n isOpened(): Promise<boolean>;\n identify(userId: string, userProperties: GleapUserProperty): void;\n identifyWithUserHash(\n userId: string,\n userProperties: GleapUserProperty,\n userHash: string\n ): void;\n showFeedbackButton(show: boolean): void;\n clearIdentity(): void;\n preFillForm(formData: { [key: string]: string }): void;\n setApiUrl(apiUrl: string): void;\n setFrameUrl(frameUrl: string): void;\n attachCustomData(customData: any): void;\n setCustomData(key: string, value: string): void;\n removeCustomDataForKey(key: string): void;\n clearCustomData(): void;\n setDisableInAppNotifications(disableInAppNotifications: boolean): void;\n registerListener(eventType: string, callback: (data?: any) => void): void;\n setLanguage(language: string): void;\n enableDebugConsoleLog(): void;\n disableConsoleLog(): void;\n setTags(tags: string[]): void;\n trackPage(pageName: String): void;\n showSurvey(surveyId: String, format: 'survey' | 'survey_full'): void;\n log(message: string): void;\n logWithLogLevel(\n message: string,\n logLevel: 'INFO' | 'WARNING' | 'ERROR'\n ): void;\n logEvent(name: string, data: any): void;\n trackEvent(name: string, data: any): void;\n addAttachment(base64file: string, fileName: string): void;\n removeAllAttachments(): void;\n startNetworkLogging(): void;\n stopNetworkLogging(): void;\n setActivationMethods(activationMethods: GleapActivationMethod[]): void;\n registerCustomAction(\n customActionCallback: (data: { name: string }) => void\n ): void;\n getIdentity(): Promise<any>;\n isUserIdentified(): Promise<boolean>;\n};\n\nconst GleapSdk = NativeModules.Gleapsdk\n ? NativeModules.Gleapsdk\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nif (GleapSdk && !GleapSdk.touched) {\n const networkLogger = new GleapNetworkIntercepter();\n\n // Push the network log to the native SDK.\n GleapSdk.startNetworkLogging = () => {\n // Set the callback.\n networkLogger.setUpdatedCallback(() => {\n if (!networkLogger) {\n return;\n }\n\n const requests = networkLogger.getRequests();\n\n if (\n requests &&\n GleapSdk &&\n typeof GleapSdk.attachNetworkLog !== 'undefined'\n ) {\n if (Platform.OS === 'android') {\n GleapSdk.attachNetworkLog(JSON.stringify(requests));\n } else {\n GleapSdk.attachNetworkLog(JSON.parse(JSON.stringify(requests)));\n }\n }\n });\n\n // Start the logger.\n networkLogger.start();\n };\n\n GleapSdk.stopNetworkLogging = () => {\n networkLogger.setStopped(true);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n GleapSdk.logEvent = (name: string, data: any) => {\n console.log('logEvent is deprecated. Use trackEvent instead.');\n GleapSdk.trackEvent(name, data);\n };\n\n var callbacks: any = {};\n\n GleapSdk.registerListener = (eventType: string, callback: any) => {\n if (!callbacks[eventType]) {\n callbacks[eventType] = [];\n }\n callbacks[eventType].push(callback);\n };\n\n GleapSdk.registerCustomAction = (customActionCallback: any) => {\n GleapSdk.registerListener('customActionTriggered', customActionCallback);\n };\n\n const notifyCallback = function (eventType: string, data?: any) {\n if (callbacks && callbacks[eventType] && callbacks[eventType].length > 0) {\n for (var i = 0; i < callbacks[eventType].length; i++) {\n if (callbacks[eventType][i]) {\n callbacks[eventType][i](data);\n }\n }\n }\n };\n\n const gleapEmitter = new NativeEventEmitter(NativeModules.Gleapsdk);\n\n gleapEmitter.addListener('configLoaded', (config: any) => {\n try {\n const configJSON = config instanceof Object ? config : JSON.parse(config);\n if (configJSON.enableNetworkLogs) {\n GleapSdk.startNetworkLogging();\n }\n notifyCallback('configLoaded', configJSON);\n } catch (exp) {}\n });\n\n gleapEmitter.addListener('feedbackSent', (data) => {\n try {\n const dataJSON = data instanceof Object ? data : JSON.parse(data);\n notifyCallback('feedbackSent', dataJSON);\n } catch (exp) {}\n });\n\n gleapEmitter.addListener('feedbackFlowStarted', (feedbackAction) => {\n notifyCallback('feedbackFlowStarted', feedbackAction);\n });\n\n gleapEmitter.addListener('feedbackSendingFailed', () => {\n notifyCallback('feedbackSendingFailed');\n });\n\n gleapEmitter.addListener('widgetOpened', () => {\n notifyCallback('widgetOpened');\n });\n\n gleapEmitter.addListener('widgetClosed', () => {\n notifyCallback('widgetClosed');\n });\n\n gleapEmitter.addListener('registerPushMessageGroup', (pushMessageGroup) => {\n notifyCallback('registerPushMessageGroup', pushMessageGroup);\n });\n\n gleapEmitter.addListener('unregisterPushMessageGroup', (pushMessageGroup) => {\n notifyCallback('unregisterPushMessageGroup', pushMessageGroup);\n });\n\n function isJsonString(str: string) {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n }\n\n gleapEmitter.addListener('customActionTriggered', (data: any) => {\n try {\n if (isJsonString(data)) {\n data = JSON.parse(data);\n }\n const { name } = data;\n if (name) {\n notifyCallback('customActionTriggered', {\n name,\n });\n }\n } catch (exp) {}\n });\n\n GleapSdk.removeAllAttachments();\n GleapSdk.touched = true;\n}\n\nexport default GleapSdk as GleapSdkType;\n"]}
1
+ {"version":3,"names":["_reactNative","require","_networklogger","_interopRequireDefault","obj","__esModule","default","LINKING_ERROR","Platform","select","ios","GleapSdk","NativeModules","Gleapsdk","Proxy","get","Error","touched","networkLogger","GleapNetworkIntercepter","startNetworkLogging","setUpdatedCallback","requests","getRequests","attachNetworkLog","OS","JSON","stringify","parse","start","stopNetworkLogging","setStopped","logEvent","name","data","console","log","trackEvent","callbacks","registerListener","eventType","callback","push","registerCustomAction","customActionCallback","notifyCallback","length","i","gleapEmitter","NativeEventEmitter","addListener","config","configJSON","Object","enableNetworkLogs","exp","dataJSON","feedbackAction","pushMessageGroup","isJsonString","str","e","removeAllAttachments","_default","exports"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -4,109 +4,79 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
-
10
7
  /* eslint-disable @typescript-eslint/no-unused-vars */
11
8
  class GleapNetworkIntercepter {
12
- constructor() {
13
- _defineProperty(this, "requestId", 0);
14
-
15
- _defineProperty(this, "requests", {});
16
-
17
- _defineProperty(this, "maxRequests", 25);
18
-
19
- _defineProperty(this, "stopped", false);
20
-
21
- _defineProperty(this, "updatedCallback", null);
22
- }
23
-
9
+ requestId = 0;
10
+ requests = {};
11
+ maxRequests = 25;
12
+ stopped = false;
13
+ updatedCallback = null;
24
14
  setUpdatedCallback(updatedCallback) {
25
15
  this.updatedCallback = updatedCallback;
26
16
  }
27
-
28
17
  getRequests() {
29
18
  return Object.values(this.requests);
30
19
  }
31
-
32
20
  setMaxRequests(maxRequests) {
33
21
  this.maxRequests = maxRequests;
34
22
  }
35
-
36
23
  setStopped(stopped) {
37
24
  this.stopped = stopped;
38
25
  }
39
-
40
26
  cleanRequests() {
41
27
  var keys = Object.keys(this.requests);
42
-
43
28
  if (keys.length > this.maxRequests) {
44
29
  var keysToRemove = keys.slice(0, keys.length - this.maxRequests);
45
-
46
30
  for (var i = 0; i < keysToRemove.length; i++) {
47
31
  delete this.requests[keysToRemove[i]];
48
32
  }
49
33
  }
50
-
51
34
  if (this.updatedCallback) {
52
35
  this.updatedCallback();
53
36
  }
54
37
  }
55
-
56
38
  calcRequestTime(gleapRequestId) {
57
39
  if (!this.requests[gleapRequestId]) {
58
40
  return;
59
41
  }
60
-
61
42
  var startDate = this.requests[gleapRequestId].date;
62
-
63
43
  if (startDate && typeof startDate.getTime === 'function' && !Object.isFrozen(this.requests[gleapRequestId])) {
64
44
  this.requests[gleapRequestId].duration = new Date().getTime() - startDate.getTime();
65
45
  this.requests[gleapRequestId].date = this.requests[gleapRequestId].date.toString();
66
46
  }
67
47
  }
68
-
69
48
  getTextContentSizeOk(text) {
70
49
  if (text && text.length) {
71
50
  const size = text.length * 16;
72
51
  const kiloBytes = size / 1024;
73
52
  const megaBytes = kiloBytes / 1024;
74
-
75
53
  if (megaBytes < 0.2) {
76
54
  return true;
77
55
  }
78
56
  }
79
-
80
57
  return false;
81
58
  }
82
-
83
59
  prepareContent(text) {
84
60
  if (!this.getTextContentSizeOk(text)) {
85
61
  return '<content_too_large>';
86
62
  }
87
-
88
63
  return text;
89
64
  }
90
-
91
65
  cleanupPayload(payload) {
92
66
  if (payload === undefined || payload === null) {
93
67
  return '{}';
94
68
  }
95
-
96
69
  try {
97
70
  if (ArrayBuffer.isView(payload)) {
98
71
  return `{ type: "binary", length: ${payload.byteLength} }`;
99
72
  }
100
73
  } catch (exp) {}
101
-
102
74
  return payload;
103
75
  }
104
-
105
76
  preparePayload(payload) {
106
77
  var payloadText = this.cleanupPayload(payload);
107
78
  return this.prepareContent(payloadText);
108
79
  }
109
-
110
80
  start() {
111
81
  this.setStopped(false);
112
82
  this.interceptNetworkRequests({
@@ -114,7 +84,6 @@ class GleapNetworkIntercepter {
114
84
  if (this.stopped || params.length === 0) {
115
85
  return;
116
86
  }
117
-
118
87
  if (params.length >= 2 && params[1] !== undefined) {
119
88
  var method = params[1].method ? params[1].method : 'GET';
120
89
  this.requests[gleapRequestId] = {
@@ -134,14 +103,12 @@ class GleapNetworkIntercepter {
134
103
  date: new Date()
135
104
  };
136
105
  }
137
-
138
106
  this.cleanRequests();
139
107
  },
140
108
  onFetchLoad: (req, gleapRequestId) => {
141
109
  if (this.stopped || !gleapRequestId || !this.requests || !this.requests[gleapRequestId]) {
142
110
  return;
143
111
  }
144
-
145
112
  try {
146
113
  this.requests[gleapRequestId].success = true;
147
114
  this.requests[gleapRequestId].response = {
@@ -151,7 +118,6 @@ class GleapNetworkIntercepter {
151
118
  };
152
119
  this.calcRequestTime(gleapRequestId);
153
120
  } catch (exp) {}
154
-
155
121
  req.text().then(responseText => {
156
122
  if (this.requests && this.requests[gleapRequestId]) {
157
123
  this.requests[gleapRequestId].success = true;
@@ -173,7 +139,6 @@ class GleapNetworkIntercepter {
173
139
  if (this.stopped) {
174
140
  return;
175
141
  }
176
-
177
142
  this.requests[gleapRequestId].success = false;
178
143
  this.calcRequestTime(gleapRequestId);
179
144
  this.cleanRequests();
@@ -182,7 +147,6 @@ class GleapNetworkIntercepter {
182
147
  if (this.stopped) {
183
148
  return;
184
149
  }
185
-
186
150
  if (request && request.gleapRequestId && args.length >= 2 && this.requests) {
187
151
  this.requests[request.gleapRequestId] = {
188
152
  type: args[0],
@@ -190,21 +154,18 @@ class GleapNetworkIntercepter {
190
154
  date: new Date()
191
155
  };
192
156
  }
193
-
194
157
  this.cleanRequests();
195
158
  },
196
159
  onSend: (request, args) => {
197
160
  if (this.stopped) {
198
161
  return;
199
162
  }
200
-
201
163
  if (request && request.gleapRequestId && this.requests && this.requests[request.gleapRequestId]) {
202
164
  this.requests[request.gleapRequestId].request = {
203
165
  payload: this.preparePayload(args.length > 0 ? args[0] : ''),
204
166
  headers: request.requestHeaders
205
167
  };
206
168
  }
207
-
208
169
  this.cleanRequests();
209
170
  },
210
171
  onError: request => {
@@ -212,27 +173,22 @@ class GleapNetworkIntercepter {
212
173
  this.requests[request.gleapRequestId].success = false;
213
174
  this.calcRequestTime(request.gleapRequestId);
214
175
  }
215
-
216
176
  this.cleanRequests();
217
177
  },
218
178
  onLoad: request => {
219
179
  if (this.stopped) {
220
180
  return;
221
181
  }
222
-
223
182
  if (request && request.gleapRequestId && this.requests && this.requests[request.gleapRequestId]) {
224
183
  const contentType = request.getResponseHeader('content-type');
225
184
  const isTextOrJSON = contentType && (contentType.includes('json') || contentType.includes('text'));
226
185
  var responseText = '<' + contentType + '>';
227
-
228
186
  if (request.responseType === '' || request.responseType === 'text') {
229
187
  responseText = request.responseText;
230
188
  }
231
-
232
189
  if (request._response && isTextOrJSON) {
233
190
  responseText = request._response;
234
191
  }
235
-
236
192
  this.requests[request.gleapRequestId].success = true;
237
193
  this.requests[request.gleapRequestId].response = {
238
194
  status: request.status,
@@ -240,95 +196,90 @@ class GleapNetworkIntercepter {
240
196
  };
241
197
  this.calcRequestTime(request.gleapRequestId);
242
198
  }
243
-
244
199
  this.cleanRequests();
245
200
  }
246
201
  });
247
202
  }
248
-
249
203
  interceptNetworkRequests(callback) {
250
204
  // eslint-disable-next-line consistent-this
251
- var self = this; // @ts-ignore
205
+ var self = this;
252
206
 
207
+ // @ts-ignore
253
208
  if (XMLHttpRequest.prototype.gleapTouched) {
254
209
  return;
255
- } // @ts-ignore
256
-
210
+ }
257
211
 
258
- XMLHttpRequest.prototype.gleapTouched = true; // XMLHttpRequest
212
+ // @ts-ignore
213
+ XMLHttpRequest.prototype.gleapTouched = true;
259
214
 
215
+ // XMLHttpRequest
260
216
  const open = XMLHttpRequest.prototype.open;
261
- const send = XMLHttpRequest.prototype.send; // @ts-ignore
217
+ const send = XMLHttpRequest.prototype.send;
262
218
 
219
+ // @ts-ignore
263
220
  XMLHttpRequest.prototype.wrappedSetRequestHeader = XMLHttpRequest.prototype.setRequestHeader;
264
-
265
221
  XMLHttpRequest.prototype.setRequestHeader = function (header, value) {
266
222
  // @ts-ignore
267
223
  if (!this.requestHeaders) {
268
224
  // @ts-ignore
269
225
  this.requestHeaders = {};
270
- } // @ts-ignore
271
-
226
+ }
272
227
 
228
+ // @ts-ignore
273
229
  if (this.requestHeaders && this.requestHeaders.hasOwnProperty(header)) {
274
230
  return;
275
- } // @ts-ignore
276
-
231
+ }
277
232
 
233
+ // @ts-ignore
278
234
  if (!this.requestHeaders[header]) {
279
235
  // @ts-ignore
280
236
  this.requestHeaders[header] = [];
281
- } // @ts-ignore
282
-
283
-
284
- this.requestHeaders[header].push(value); // @ts-ignore
237
+ }
285
238
 
239
+ // @ts-ignore
240
+ this.requestHeaders[header].push(value);
241
+ // @ts-ignore
286
242
  this.wrappedSetRequestHeader(header, value);
287
243
  };
288
-
289
244
  XMLHttpRequest.prototype.open = function () {
290
245
  this.gleapRequestId = ++self.requestId;
291
246
  callback.onOpen && callback.onOpen(this, arguments);
292
-
293
247
  if (callback.onLoad) {
294
248
  this.addEventListener('load', function () {
295
249
  // @ts-ignore
296
250
  callback.onLoad(this);
297
251
  });
298
252
  }
299
-
300
253
  if (callback.onError) {
301
254
  this.addEventListener('error', function () {
302
255
  // @ts-ignore
303
256
  callback.onError(this);
304
257
  });
305
- } // @ts-ignore
306
-
258
+ }
307
259
 
260
+ // @ts-ignore
308
261
  return open.apply(this, arguments);
309
262
  };
310
-
311
263
  XMLHttpRequest.prototype.send = function () {
312
- callback.onSend && callback.onSend(this, arguments); // @ts-ignore
313
-
264
+ callback.onSend && callback.onSend(this, arguments);
265
+ // @ts-ignore
314
266
  return send.apply(this, arguments);
315
- }; // Fetch
316
-
267
+ };
317
268
 
269
+ // Fetch
318
270
  if (global) {
319
271
  (function () {
320
272
  var originalFetch = global.fetch;
321
-
322
273
  global.fetch = function () {
323
274
  var gleapRequestId = ++self.requestId;
324
275
  callback.onFetch(arguments, gleapRequestId);
325
- return originalFetch // @ts-ignore
276
+ return originalFetch
277
+ // @ts-ignore
326
278
  .apply(this, arguments).then(function (response) {
327
279
  if (response && typeof response.clone === 'function') {
328
280
  const data = response.clone();
329
281
  callback.onFetchLoad(data, gleapRequestId);
330
282
  }
331
-
332
283
  return response;
333
284
  }).catch(err => {
334
285
  callback.onFetchFailed(err, gleapRequestId);
@@ -337,12 +288,9 @@ class GleapNetworkIntercepter {
337
288
  };
338
289
  })();
339
290
  }
340
-
341
291
  return callback;
342
292
  }
343
-
344
293
  }
345
-
346
294
  var _default = GleapNetworkIntercepter;
347
295
  exports.default = _default;
348
296
  //# sourceMappingURL=networklogger.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["networklogger.ts"],"names":["GleapNetworkIntercepter","setUpdatedCallback","updatedCallback","getRequests","Object","values","requests","setMaxRequests","maxRequests","setStopped","stopped","cleanRequests","keys","length","keysToRemove","slice","i","calcRequestTime","gleapRequestId","startDate","date","getTime","isFrozen","duration","Date","toString","getTextContentSizeOk","text","size","kiloBytes","megaBytes","prepareContent","cleanupPayload","payload","undefined","ArrayBuffer","isView","byteLength","exp","preparePayload","payloadText","start","interceptNetworkRequests","onFetch","params","method","request","body","headers","type","url","onFetchLoad","req","success","response","status","statusText","responseText","then","catch","_err","onFetchFailed","onOpen","args","onSend","requestHeaders","onError","onLoad","contentType","getResponseHeader","isTextOrJSON","includes","responseType","_response","callback","self","XMLHttpRequest","prototype","gleapTouched","open","send","wrappedSetRequestHeader","setRequestHeader","header","value","hasOwnProperty","push","requestId","arguments","addEventListener","apply","global","originalFetch","fetch","clone","data","err"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nclass GleapNetworkIntercepter {\n requestId = 0;\n requests: any = {};\n maxRequests = 25;\n stopped = false;\n updatedCallback: any = null;\n\n setUpdatedCallback(updatedCallback: any) {\n this.updatedCallback = updatedCallback;\n }\n\n getRequests() {\n return Object.values(this.requests);\n }\n\n setMaxRequests(maxRequests: number) {\n this.maxRequests = maxRequests;\n }\n\n setStopped(stopped: boolean) {\n this.stopped = stopped;\n }\n\n cleanRequests() {\n var keys = Object.keys(this.requests);\n if (keys.length > this.maxRequests) {\n var keysToRemove = keys.slice(0, keys.length - this.maxRequests);\n for (var i = 0; i < keysToRemove.length; i++) {\n delete this.requests[keysToRemove[i]];\n }\n }\n\n if (this.updatedCallback) {\n this.updatedCallback();\n }\n }\n\n calcRequestTime(gleapRequestId: string | number) {\n if (!this.requests[gleapRequestId]) {\n return;\n }\n\n var startDate = this.requests[gleapRequestId].date;\n if (\n startDate &&\n typeof startDate.getTime === 'function' &&\n !Object.isFrozen(this.requests[gleapRequestId])\n ) {\n this.requests[gleapRequestId].duration =\n new Date().getTime() - startDate.getTime();\n this.requests[gleapRequestId].date =\n this.requests[gleapRequestId].date.toString();\n }\n }\n\n getTextContentSizeOk(text: string) {\n if (text && text.length) {\n const size = text.length * 16;\n const kiloBytes = size / 1024;\n const megaBytes = kiloBytes / 1024;\n if (megaBytes < 0.2) {\n return true;\n }\n }\n return false;\n }\n\n prepareContent(text: string) {\n if (!this.getTextContentSizeOk(text)) {\n return '<content_too_large>';\n }\n\n return text;\n }\n\n cleanupPayload(payload: any) {\n if (payload === undefined || payload === null) {\n return '{}';\n }\n\n try {\n if (ArrayBuffer.isView(payload)) {\n return `{ type: \"binary\", length: ${payload.byteLength} }`;\n }\n } catch (exp) {}\n\n return payload;\n }\n\n preparePayload(payload: any) {\n var payloadText = this.cleanupPayload(payload);\n return this.prepareContent(payloadText);\n }\n\n start() {\n this.setStopped(false);\n this.interceptNetworkRequests({\n onFetch: (params: any[], gleapRequestId: any) => {\n if (this.stopped || params.length === 0) {\n return;\n }\n\n if (params.length >= 2 && params[1] !== undefined) {\n var method = params[1].method ? params[1].method : 'GET';\n this.requests[gleapRequestId] = {\n request: {\n payload: this.preparePayload(params[1].body),\n headers: params[1].headers,\n },\n type: method,\n url: params[0],\n date: new Date(),\n };\n } else {\n this.requests[gleapRequestId] = {\n request: {},\n url: params[0],\n type: 'GET',\n date: new Date(),\n };\n }\n\n this.cleanRequests();\n },\n onFetchLoad: (req: any, gleapRequestId: any) => {\n if (\n this.stopped ||\n !gleapRequestId ||\n !this.requests ||\n !this.requests[gleapRequestId]\n ) {\n return;\n }\n\n try {\n this.requests[gleapRequestId].success = true;\n this.requests[gleapRequestId].response = {\n status: req.status,\n statusText: '',\n responseText: '<request_still_open>',\n };\n this.calcRequestTime(gleapRequestId);\n } catch (exp) {}\n\n req\n .text()\n .then((responseText: any) => {\n if (this.requests && this.requests[gleapRequestId]) {\n this.requests[gleapRequestId].success = true;\n this.requests[gleapRequestId].response = {\n status: req.status,\n statusText: req.statusText,\n responseText: this.prepareContent(responseText),\n };\n\n this.calcRequestTime(gleapRequestId);\n this.cleanRequests();\n }\n })\n .catch((_err: any) => {\n if (this) {\n this.cleanRequests();\n }\n });\n },\n onFetchFailed: (_err: any, gleapRequestId: any) => {\n if (this.stopped) {\n return;\n }\n\n this.requests[gleapRequestId].success = false;\n this.calcRequestTime(gleapRequestId);\n this.cleanRequests();\n },\n onOpen: (request: any, args: string | any[]) => {\n if (this.stopped) {\n return;\n }\n\n if (\n request &&\n request.gleapRequestId &&\n args.length >= 2 &&\n this.requests\n ) {\n this.requests[request.gleapRequestId] = {\n type: args[0],\n url: args[1],\n date: new Date(),\n };\n }\n\n this.cleanRequests();\n },\n onSend: (request: any, args: string | any[]) => {\n if (this.stopped) {\n return;\n }\n\n if (\n request &&\n request.gleapRequestId &&\n this.requests &&\n this.requests[request.gleapRequestId]\n ) {\n this.requests[request.gleapRequestId].request = {\n payload: this.preparePayload(args.length > 0 ? args[0] : ''),\n headers: request.requestHeaders,\n };\n }\n\n this.cleanRequests();\n },\n onError: (request: any) => {\n if (\n !this.stopped &&\n this.requests &&\n request &&\n request.gleapRequestId &&\n this.requests[request.gleapRequestId]\n ) {\n this.requests[request.gleapRequestId].success = false;\n this.calcRequestTime(request.gleapRequestId);\n }\n\n this.cleanRequests();\n },\n onLoad: (request: any) => {\n if (this.stopped) {\n return;\n }\n\n if (\n request &&\n request.gleapRequestId &&\n this.requests &&\n this.requests[request.gleapRequestId]\n ) {\n const contentType = request.getResponseHeader('content-type');\n const isTextOrJSON =\n contentType &&\n (contentType.includes('json') || contentType.includes('text'));\n\n var responseText = '<' + contentType + '>';\n if (request.responseType === '' || request.responseType === 'text') {\n responseText = request.responseText;\n }\n if (request._response && isTextOrJSON) {\n responseText = request._response;\n }\n\n this.requests[request.gleapRequestId].success = true;\n this.requests[request.gleapRequestId].response = {\n status: request.status,\n responseText: this.prepareContent(responseText),\n };\n\n this.calcRequestTime(request.gleapRequestId);\n }\n\n this.cleanRequests();\n },\n });\n }\n\n interceptNetworkRequests(callback: any) {\n // eslint-disable-next-line consistent-this\n var self = this;\n\n // @ts-ignore\n if (XMLHttpRequest.prototype.gleapTouched) {\n return;\n }\n\n // @ts-ignore\n XMLHttpRequest.prototype.gleapTouched = true;\n\n // XMLHttpRequest\n const open = XMLHttpRequest.prototype.open;\n const send = XMLHttpRequest.prototype.send;\n\n // @ts-ignore\n XMLHttpRequest.prototype.wrappedSetRequestHeader =\n XMLHttpRequest.prototype.setRequestHeader;\n XMLHttpRequest.prototype.setRequestHeader = function (header, value) {\n // @ts-ignore\n if (!this.requestHeaders) {\n // @ts-ignore\n this.requestHeaders = {};\n }\n\n // @ts-ignore\n if (this.requestHeaders && this.requestHeaders.hasOwnProperty(header)) {\n return;\n }\n\n // @ts-ignore\n if (!this.requestHeaders[header]) {\n // @ts-ignore\n this.requestHeaders[header] = [];\n }\n\n // @ts-ignore\n this.requestHeaders[header].push(value);\n // @ts-ignore\n this.wrappedSetRequestHeader(header, value);\n };\n\n XMLHttpRequest.prototype.open = function () {\n (this as any).gleapRequestId = ++self.requestId;\n callback.onOpen && callback.onOpen(this, arguments);\n\n if (callback.onLoad) {\n this.addEventListener('load', function () {\n // @ts-ignore\n callback.onLoad(this);\n });\n }\n if (callback.onError) {\n this.addEventListener('error', function () {\n // @ts-ignore\n callback.onError(this);\n });\n }\n\n // @ts-ignore\n return open.apply(this, arguments);\n };\n\n XMLHttpRequest.prototype.send = function () {\n callback.onSend && callback.onSend(this, arguments);\n // @ts-ignore\n return send.apply(this, arguments);\n };\n\n // Fetch\n if (global) {\n (function () {\n var originalFetch = global.fetch;\n global.fetch = function () {\n var gleapRequestId = ++self.requestId;\n callback.onFetch(arguments, gleapRequestId);\n\n return (\n originalFetch\n // @ts-ignore\n .apply(this, arguments)\n .then(function (response) {\n if (response && typeof response.clone === 'function') {\n const data = response.clone();\n callback.onFetchLoad(data, gleapRequestId);\n }\n\n return response;\n })\n .catch((err) => {\n callback.onFetchFailed(err, gleapRequestId);\n throw err;\n })\n );\n };\n })();\n }\n\n return callback;\n }\n}\n\nexport default GleapNetworkIntercepter;\n"]}
1
+ {"version":3,"names":["GleapNetworkIntercepter","requestId","requests","maxRequests","stopped","updatedCallback","setUpdatedCallback","getRequests","Object","values","setMaxRequests","setStopped","cleanRequests","keys","length","keysToRemove","slice","i","calcRequestTime","gleapRequestId","startDate","date","getTime","isFrozen","duration","Date","toString","getTextContentSizeOk","text","size","kiloBytes","megaBytes","prepareContent","cleanupPayload","payload","undefined","ArrayBuffer","isView","byteLength","exp","preparePayload","payloadText","start","interceptNetworkRequests","onFetch","params","method","request","body","headers","type","url","onFetchLoad","req","success","response","status","statusText","responseText","then","catch","_err","onFetchFailed","onOpen","args","onSend","requestHeaders","onError","onLoad","contentType","getResponseHeader","isTextOrJSON","includes","responseType","_response","callback","self","XMLHttpRequest","prototype","gleapTouched","open","send","wrappedSetRequestHeader","setRequestHeader","header","value","hasOwnProperty","push","arguments","addEventListener","apply","global","originalFetch","fetch","clone","data","err","_default","exports","default"],"sourceRoot":"../../src","sources":["networklogger.ts"],"mappings":"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"}