react-native-inapp-inspector 2.3.18 → 2.3.20
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/src/main/java/com/inappinspector/NetworkInspectorModule.kt +57 -0
- package/dist/commonjs/analytics.js +1 -24
- package/dist/commonjs/bundle.js +1 -16
- package/dist/commonjs/capture.d.ts +2 -0
- package/dist/commonjs/capture.js +1 -32
- package/dist/commonjs/components/AnalyticsDetail.js +92 -623
- package/dist/commonjs/components/AnalyticsEventCard.js +54 -350
- package/dist/commonjs/components/AnalyticsGraph.js +70 -370
- package/dist/commonjs/components/AnimatedEntrance.js +1 -11
- package/dist/commonjs/components/AppHeaderLogo.js +7 -134
- package/dist/commonjs/components/BrandCircleIcon.js +73 -118
- package/dist/commonjs/components/BrandSquareIcon.js +63 -108
- package/dist/commonjs/components/CodeSnippet.js +48 -623
- package/dist/commonjs/components/ConsoleLogCard.js +63 -537
- package/dist/commonjs/components/CopyButton.js +3 -89
- package/dist/commonjs/components/DiffViewer.js +19 -83
- package/dist/commonjs/components/DomainHeader.js +27 -127
- package/dist/commonjs/components/EmptyState.d.ts +1 -0
- package/dist/commonjs/components/EmptyState.js +10 -87
- package/dist/commonjs/components/EndOfListFooter.js +7 -81
- package/dist/commonjs/components/ErrorBoundary.js +72 -566
- package/dist/commonjs/components/HeadersSection.js +31 -110
- package/dist/commonjs/components/HighlightText.js +17 -58
- package/dist/commonjs/components/Inspector/AboutModal.d.ts +6 -0
- package/dist/commonjs/components/Inspector/AboutModal.js +351 -0
- package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +98 -797
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +284 -930
- package/dist/commonjs/components/Inspector/BundleTab.js +551 -2918
- package/dist/commonjs/components/Inspector/ConsoleTab.js +79 -492
- package/dist/commonjs/components/Inspector/CrashDetail.js +123 -672
- package/dist/commonjs/components/Inspector/CrashFilterModal.js +66 -498
- package/dist/commonjs/components/Inspector/CrashTab.js +98 -670
- package/dist/commonjs/components/Inspector/DebuggingTab.js +64 -871
- package/dist/commonjs/components/Inspector/DeviceInfoTab.js +143 -907
- package/dist/commonjs/components/Inspector/FabLauncher.js +85 -54
- package/dist/commonjs/components/Inspector/FeatureUnderDevNotice.js +6 -99
- package/dist/commonjs/components/Inspector/FeedbackModal.d.ts +9 -0
- package/dist/commonjs/components/Inspector/FeedbackModal.js +167 -521
- package/dist/commonjs/components/Inspector/InspectorContext.js +1 -21
- package/dist/commonjs/components/Inspector/InspectorHeader.js +219 -1093
- package/dist/commonjs/components/Inspector/LogDetail.js +168 -994
- package/dist/commonjs/components/Inspector/MainScreen.js +60 -332
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +136 -278
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +134 -361
- package/dist/commonjs/components/Inspector/NavigationTracker.js +1 -12
- package/dist/commonjs/components/Inspector/NetworkDetail.js +96 -432
- package/dist/commonjs/components/Inspector/NetworkFilterModal.js +60 -576
- package/dist/commonjs/components/Inspector/NetworkTab.js +84 -514
- package/dist/commonjs/components/Inspector/NpmStarPrompt.js +17 -433
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +25 -298
- package/dist/commonjs/components/Inspector/PerformanceTab.js +182 -1397
- package/dist/commonjs/components/Inspector/ReduxDetail.js +188 -1089
- package/dist/commonjs/components/Inspector/ReduxTab.js +85 -701
- package/dist/commonjs/components/Inspector/SettingsPanel.js +431 -3431
- package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +11 -180
- package/dist/commonjs/components/Inspector/StorageTab.js +93 -826
- package/dist/commonjs/components/Inspector/TabBar.js +47 -183
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +34 -408
- package/dist/commonjs/components/JsonViewer.js +168 -380
- package/dist/commonjs/components/LogCard.js +57 -567
- package/dist/commonjs/components/LogSyntaxHighlighter.js +11 -130
- package/dist/commonjs/components/MetaAccordion.js +69 -238
- package/dist/commonjs/components/MiniBarChart.js +3 -56
- package/dist/commonjs/components/MiniLineChart.js +3 -58
- package/dist/commonjs/components/NetworkIcons.d.ts +7 -0
- package/dist/commonjs/components/NetworkIcons.js +479 -997
- package/dist/commonjs/components/QRCodeView.js +5 -79
- package/dist/commonjs/components/SectionHeader.js +15 -37
- package/dist/commonjs/components/SegmentedTabs.js +7 -61
- package/dist/commonjs/components/SkeletonPlaceholder.js +11 -180
- package/dist/commonjs/components/Slider.js +15 -243
- package/dist/commonjs/components/SourcePageCard.js +30 -89
- package/dist/commonjs/components/Toast.js +5 -147
- package/dist/commonjs/components/TouchableScale.js +3 -24
- package/dist/commonjs/components/TreeNode.js +55 -130
- package/dist/commonjs/console.js +1 -16
- package/dist/commonjs/constants/index.js +1 -32
- package/dist/commonjs/constants/telemetryConfig.js +1 -6
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -4
- package/dist/commonjs/crash.js +1 -23
- package/dist/commonjs/customHooks/analyticsLogger.js +1 -250
- package/dist/commonjs/customHooks/bundleAnalyzer.js +1 -957
- package/dist/commonjs/customHooks/consoleLogger.js +6 -445
- package/dist/commonjs/customHooks/crashHandler.js +7 -656
- package/dist/commonjs/customHooks/logFilters.js +1 -23
- package/dist/commonjs/customHooks/networkLogger.js +2 -536
- package/dist/commonjs/customHooks/performanceTracker.js +63 -750
- package/dist/commonjs/customHooks/reduxLogger.js +2 -313
- package/dist/commonjs/customHooks/storageInspector.js +1 -435
- package/dist/commonjs/customHooks/useAccordion.js +1 -18
- package/dist/commonjs/decorators/index.js +1 -100
- package/dist/commonjs/helpers/gaAnalyticsRegistry.js +1 -148
- package/dist/commonjs/helpers/index.js +8 -921
- package/dist/commonjs/helpers/memoryManager.js +1 -99
- package/dist/commonjs/helpers/qrGenerator.js +1 -367
- package/dist/commonjs/helpers/remoteConfig.js +1 -165
- package/dist/commonjs/helpers/searchQueryParser.js +1 -62
- package/dist/commonjs/helpers/settingsStore.js +1 -144
- package/dist/commonjs/helpers/telemetry.js +1 -501
- package/dist/commonjs/helpers/toast.js +1 -20
- package/dist/commonjs/i18n/index.js +1 -90
- package/dist/commonjs/i18n/locales/en.json +1 -1122
- package/dist/commonjs/index.js +5 -2153
- package/dist/commonjs/metro.js +6 -468
- package/dist/commonjs/native/NativeInspector.d.ts +3 -0
- package/dist/commonjs/native/NativeInspector.js +1 -402
- package/dist/commonjs/native/NativeNetworkInspector.d.ts +1 -0
- package/dist/commonjs/native/NativeNetworkInspector.js +1 -4
- package/dist/commonjs/network.js +1 -13
- package/dist/commonjs/performance.js +1 -29
- package/dist/commonjs/redux.js +1 -20
- package/dist/commonjs/storage.js +1 -14
- package/dist/commonjs/styles/AppColors.js +1 -423
- package/dist/commonjs/styles/AppFonts.js +1 -17
- package/dist/commonjs/styles/common.js +1 -190
- package/dist/commonjs/styles/index.d.ts +6 -0
- package/dist/commonjs/styles/index.js +1 -1589
- package/dist/commonjs/types/enums.d.ts +2 -1
- package/dist/commonjs/types/enums.js +1 -150
- package/dist/commonjs/types/index.js +1 -18
- package/dist/commonjs/types/interfaces.d.ts +7 -0
- package/dist/commonjs/types/interfaces.js +1 -2
- package/dist/esm/analytics.js +1 -2
- package/dist/esm/bundle.js +1 -2
- package/dist/esm/capture.d.ts +2 -0
- package/dist/esm/capture.js +1 -29
- package/dist/esm/components/AnalyticsDetail.js +171 -664
- package/dist/esm/components/AnalyticsEventCard.js +77 -335
- package/dist/esm/components/AnalyticsGraph.js +95 -357
- package/dist/esm/components/AnimatedEntrance.js +1 -6
- package/dist/esm/components/AppHeaderLogo.js +7 -94
- package/dist/esm/components/BrandCircleIcon.js +114 -119
- package/dist/esm/components/BrandSquareIcon.js +73 -78
- package/dist/esm/components/CodeSnippet.js +58 -595
- package/dist/esm/components/ConsoleLogCard.js +91 -526
- package/dist/esm/components/CopyButton.js +3 -51
- package/dist/esm/components/DiffViewer.js +22 -48
- package/dist/esm/components/DomainHeader.js +43 -138
- package/dist/esm/components/EmptyState.d.ts +1 -0
- package/dist/esm/components/EmptyState.js +17 -56
- package/dist/esm/components/EndOfListFooter.js +15 -83
- package/dist/esm/components/ErrorBoundary.js +125 -582
- package/dist/esm/components/HeadersSection.js +52 -93
- package/dist/esm/components/HighlightText.js +17 -53
- package/dist/esm/components/Inspector/AboutModal.d.ts +6 -0
- package/dist/esm/components/Inspector/AboutModal.js +351 -0
- package/dist/esm/components/Inspector/AnalyticsFilterModal.js +225 -886
- package/dist/esm/components/Inspector/AnalyticsTab.js +296 -904
- package/dist/esm/components/Inspector/BundleTab.js +1175 -3502
- package/dist/esm/components/Inspector/ConsoleTab.js +113 -488
- package/dist/esm/components/Inspector/CrashDetail.js +236 -747
- package/dist/esm/components/Inspector/CrashFilterModal.js +149 -541
- package/dist/esm/components/Inspector/CrashTab.js +177 -711
- package/dist/esm/components/Inspector/DebuggingTab.js +156 -923
- package/dist/esm/components/Inspector/DeviceInfoTab.js +199 -924
- package/dist/esm/components/Inspector/FabLauncher.js +85 -49
- package/dist/esm/components/Inspector/FeatureUnderDevNotice.js +14 -70
- package/dist/esm/components/Inspector/FeedbackModal.d.ts +9 -0
- package/dist/esm/components/Inspector/FeedbackModal.js +182 -499
- package/dist/esm/components/Inspector/InspectorContext.js +1 -12
- package/dist/esm/components/Inspector/InspectorHeader.js +309 -1145
- package/dist/esm/components/Inspector/LogDetail.js +235 -1023
- package/dist/esm/components/Inspector/MainScreen.js +86 -320
- package/dist/esm/components/Inspector/MediaGalleryTab.js +157 -259
- package/dist/esm/components/Inspector/MediaPreviewModal.js +153 -340
- package/dist/esm/components/Inspector/NavigationTracker.js +1 -10
- package/dist/esm/components/Inspector/NetworkDetail.js +141 -472
- package/dist/esm/components/Inspector/NetworkFilterModal.js +122 -597
- package/dist/esm/components/Inspector/NetworkTab.js +125 -517
- package/dist/esm/components/Inspector/NpmStarPrompt.js +58 -434
- package/dist/esm/components/Inspector/NpmUpdateToast.js +45 -281
- package/dist/esm/components/Inspector/PerformanceTab.js +393 -1570
- package/dist/esm/components/Inspector/ReduxDetail.js +307 -1170
- package/dist/esm/components/Inspector/ReduxTab.js +144 -722
- package/dist/esm/components/Inspector/SettingsPanel.js +647 -3609
- package/dist/esm/components/Inspector/SkeletonPlaceholder.js +30 -163
- package/dist/esm/components/Inspector/StorageTab.js +172 -866
- package/dist/esm/components/Inspector/TabBar.js +52 -183
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +79 -416
- package/dist/esm/components/JsonViewer.js +179 -353
- package/dist/esm/components/LogCard.js +93 -565
- package/dist/esm/components/LogSyntaxHighlighter.js +11 -123
- package/dist/esm/components/MetaAccordion.js +136 -267
- package/dist/esm/components/MiniBarChart.js +3 -18
- package/dist/esm/components/MiniLineChart.js +3 -20
- package/dist/esm/components/NetworkIcons.d.ts +7 -0
- package/dist/esm/components/NetworkIcons.js +481 -817
- package/dist/esm/components/QRCodeView.js +8 -45
- package/dist/esm/components/SectionHeader.js +22 -39
- package/dist/esm/components/SegmentedTabs.js +8 -57
- package/dist/esm/components/SkeletonPlaceholder.js +30 -163
- package/dist/esm/components/Slider.js +24 -213
- package/dist/esm/components/SourcePageCard.js +65 -86
- package/dist/esm/components/Toast.js +10 -117
- package/dist/esm/components/TouchableScale.js +3 -19
- package/dist/esm/components/TreeNode.js +58 -95
- package/dist/esm/console.js +1 -2
- package/dist/esm/constants/index.js +1 -28
- package/dist/esm/constants/telemetryConfig.js +1 -3
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/crash.js +1 -2
- package/dist/esm/customHooks/analyticsLogger.js +1 -230
- package/dist/esm/customHooks/bundleAnalyzer.js +1 -944
- package/dist/esm/customHooks/consoleLogger.js +6 -432
- package/dist/esm/customHooks/crashHandler.js +7 -630
- package/dist/esm/customHooks/logFilters.js +1 -20
- package/dist/esm/customHooks/networkLogger.js +2 -519
- package/dist/esm/customHooks/performanceTracker.js +63 -723
- package/dist/esm/customHooks/reduxLogger.js +2 -293
- package/dist/esm/customHooks/storageInspector.js +1 -418
- package/dist/esm/customHooks/useAccordion.js +1 -16
- package/dist/esm/decorators/index.js +1 -95
- package/dist/esm/helpers/gaAnalyticsRegistry.js +1 -143
- package/dist/esm/helpers/index.js +8 -861
- package/dist/esm/helpers/memoryManager.js +1 -91
- package/dist/esm/helpers/qrGenerator.js +1 -364
- package/dist/esm/helpers/remoteConfig.js +1 -160
- package/dist/esm/helpers/searchQueryParser.js +1 -59
- package/dist/esm/helpers/settingsStore.js +1 -134
- package/dist/esm/helpers/telemetry.js +1 -489
- package/dist/esm/helpers/toast.js +1 -15
- package/dist/esm/i18n/index.js +1 -78
- package/dist/esm/i18n/locales/en.json +1 -1122
- package/dist/esm/index.js +7 -1967
- package/dist/esm/metro.js +6 -459
- package/dist/esm/native/NativeInspector.d.ts +3 -0
- package/dist/esm/native/NativeInspector.js +1 -370
- package/dist/esm/native/NativeNetworkInspector.d.ts +1 -0
- package/dist/esm/native/NativeNetworkInspector.js +1 -2
- package/dist/esm/network.js +1 -1
- package/dist/esm/performance.js +1 -2
- package/dist/esm/redux.js +1 -1
- package/dist/esm/storage.js +1 -1
- package/dist/esm/styles/AppColors.js +1 -417
- package/dist/esm/styles/AppFonts.js +1 -13
- package/dist/esm/styles/common.js +1 -186
- package/dist/esm/styles/index.d.ts +6 -0
- package/dist/esm/styles/index.js +1 -1551
- package/dist/esm/types/enums.d.ts +2 -1
- package/dist/esm/types/enums.js +1 -147
- package/dist/esm/types/index.js +1 -2
- package/dist/esm/types/interfaces.d.ts +7 -0
- package/dist/esm/types/interfaces.js +1 -1
- package/ios/NetworkInspectorModule.mm +253 -136
- package/package.json +5 -3
- package/react-native-inapp-inspector.podspec +1 -1
- package/src/native/NativeInspector.ts +17 -0
- package/src/native/NativeNetworkInspector.ts +1 -0
- package/src/analytics.ts +0 -35
- package/src/bundle.ts +0 -25
- package/src/capture.ts +0 -101
- package/src/components/AnalyticsDetail.tsx +0 -870
- package/src/components/AnalyticsEventCard.tsx +0 -444
- package/src/components/AnalyticsGraph.tsx +0 -583
- package/src/components/AnimatedEntrance.tsx +0 -20
- package/src/components/AppHeaderLogo.tsx +0 -143
- package/src/components/BrandCircleIcon.tsx +0 -144
- package/src/components/BrandSquareIcon.tsx +0 -184
- package/src/components/CodeSnippet.tsx +0 -725
- package/src/components/ConsoleLogCard.tsx +0 -679
- package/src/components/CopyButton.tsx +0 -87
- package/src/components/DiffViewer.tsx +0 -82
- package/src/components/DomainHeader.tsx +0 -224
- package/src/components/EmptyState.tsx +0 -95
- package/src/components/EndOfListFooter.tsx +0 -100
- package/src/components/ErrorBoundary.tsx +0 -688
- package/src/components/HeadersSection.tsx +0 -172
- package/src/components/HighlightText.tsx +0 -100
- package/src/components/Inspector/AnalyticsFilterModal.tsx +0 -1250
- package/src/components/Inspector/AnalyticsTab.tsx +0 -1362
- package/src/components/Inspector/BundleTab.tsx +0 -4768
- package/src/components/Inspector/ConsoleTab.tsx +0 -726
- package/src/components/Inspector/CrashDetail.tsx +0 -997
- package/src/components/Inspector/CrashFilterModal.tsx +0 -721
- package/src/components/Inspector/CrashTab.tsx +0 -933
- package/src/components/Inspector/DebuggingTab.tsx +0 -1103
- package/src/components/Inspector/DeviceInfoTab.tsx +0 -1397
- package/src/components/Inspector/FabLauncher.tsx +0 -80
- package/src/components/Inspector/FeatureUnderDevNotice.tsx +0 -94
- package/src/components/Inspector/FeedbackModal.tsx +0 -626
- package/src/components/Inspector/InspectorContext.tsx +0 -28
- package/src/components/Inspector/InspectorHeader.tsx +0 -1545
- package/src/components/Inspector/LogDetail.tsx +0 -1431
- package/src/components/Inspector/MainScreen.tsx +0 -459
- package/src/components/Inspector/MediaGalleryTab.tsx +0 -355
- package/src/components/Inspector/MediaPreviewModal.tsx +0 -435
- package/src/components/Inspector/NavigationTracker.tsx +0 -13
- package/src/components/Inspector/NetworkDetail.tsx +0 -795
- package/src/components/Inspector/NetworkFilterModal.tsx +0 -730
- package/src/components/Inspector/NetworkTab.tsx +0 -820
- package/src/components/Inspector/NpmStarPrompt.tsx +0 -532
- package/src/components/Inspector/NpmUpdateToast.tsx +0 -387
- package/src/components/Inspector/PerformanceTab.tsx +0 -1967
- package/src/components/Inspector/ReduxDetail.tsx +0 -1651
- package/src/components/Inspector/ReduxTab.tsx +0 -987
- package/src/components/Inspector/SettingsPanel.tsx +0 -4580
- package/src/components/Inspector/SkeletonPlaceholder.tsx +0 -206
- package/src/components/Inspector/StorageTab.tsx +0 -1159
- package/src/components/Inspector/TabBar.tsx +0 -263
- package/src/components/Inspector/UpdateAvailableModal.tsx +0 -555
- package/src/components/JsonViewer.tsx +0 -547
- package/src/components/LogCard.tsx +0 -694
- package/src/components/LogSyntaxHighlighter.tsx +0 -178
- package/src/components/MetaAccordion.tsx +0 -355
- package/src/components/MiniBarChart.tsx +0 -42
- package/src/components/MiniLineChart.tsx +0 -33
- package/src/components/NetworkIcons.tsx +0 -2599
- package/src/components/QRCodeView.tsx +0 -75
- package/src/components/SectionHeader.tsx +0 -101
- package/src/components/SegmentedTabs.tsx +0 -83
- package/src/components/SkeletonPlaceholder.tsx +0 -206
- package/src/components/Slider.tsx +0 -300
- package/src/components/SourcePageCard.tsx +0 -150
- package/src/components/Toast.tsx +0 -131
- package/src/components/TouchableScale.tsx +0 -61
- package/src/components/TreeNode.tsx +0 -171
- package/src/console.ts +0 -24
- package/src/constants/index.ts +0 -41
- package/src/constants/telemetryConfig.ts +0 -4
- package/src/constants/version.ts +0 -3
- package/src/crash.ts +0 -32
- package/src/customHooks/analyticsLogger.ts +0 -336
- package/src/customHooks/bundleAnalyzer.ts +0 -1256
- package/src/customHooks/consoleLogger.ts +0 -530
- package/src/customHooks/crashHandler.ts +0 -944
- package/src/customHooks/logFilters.ts +0 -32
- package/src/customHooks/networkLogger.ts +0 -624
- package/src/customHooks/performanceTracker.ts +0 -1014
- package/src/customHooks/reduxLogger.ts +0 -406
- package/src/customHooks/storageInspector.ts +0 -513
- package/src/customHooks/useAccordion.tsx +0 -27
- package/src/decorators/index.ts +0 -184
- package/src/helpers/gaAnalyticsRegistry.ts +0 -204
- package/src/helpers/index.ts +0 -1092
- package/src/helpers/memoryManager.ts +0 -138
- package/src/helpers/qrGenerator.ts +0 -430
- package/src/helpers/remoteConfig.ts +0 -212
- package/src/helpers/searchQueryParser.ts +0 -84
- package/src/helpers/settingsStore.ts +0 -171
- package/src/helpers/telemetry.ts +0 -568
- package/src/helpers/toast.ts +0 -17
- package/src/i18n/index.ts +0 -104
- package/src/i18n/locales/en.json +0 -1125
- package/src/index.tsx +0 -2635
- package/src/metro.ts +0 -598
- package/src/network.ts +0 -22
- package/src/performance.ts +0 -38
- package/src/redux.ts +0 -23
- package/src/storage.ts +0 -18
- package/src/styles/AppColors.ts +0 -455
- package/src/styles/AppFonts.ts +0 -26
- package/src/styles/common.ts +0 -209
- package/src/styles/index.ts +0 -1606
- package/src/types/enums.ts +0 -208
- package/src/types/index.ts +0 -34
- package/src/types/interfaces.ts +0 -530
|
@@ -1,20 +1 @@
|
|
|
1
|
-
export const IGNORED_LOG_PREFIXES
|
|
2
|
-
info: [
|
|
3
|
-
'VirtualizedList: You have a large list that is slow to update',
|
|
4
|
-
],
|
|
5
|
-
warn: [
|
|
6
|
-
'This method is deprecated (as well as all React Native Firebase namespaced API) and will be removed in the next major release as part of move to match Firebase Web modular SDK API.',
|
|
7
|
-
'SerializableStateInvariantMiddleware took',
|
|
8
|
-
'Non-serializable values were found in the navigation state.',
|
|
9
|
-
'SafeAreaView has been deprecated and will be removed in a future release.',
|
|
10
|
-
'Clipboard has been extracted from react-native core and will be removed in a future release.',
|
|
11
|
-
'You should always pass contentWidth prop to properly handle screen rotations and have a seamless support for images scaling.',
|
|
12
|
-
'Selector unknown returned a different result when called with the same parameters.',
|
|
13
|
-
'You seem to update props of the "TRenderEngineProvider" component in short periods of time',
|
|
14
|
-
'A non-serializable value was detected in an action',
|
|
15
|
-
],
|
|
16
|
-
error: [
|
|
17
|
-
'A non-serializable value was detected in the state, in the path: `tierStatusCalculator.date`',
|
|
18
|
-
'VirtualizedLists should never be nested inside plain ScrollViews with the same orientation because it can break windowing and other functionality - use another VirtualizedList-backed container instead.',
|
|
19
|
-
],
|
|
20
|
-
};
|
|
1
|
+
export const IGNORED_LOG_PREFIXES={info:["VirtualizedList: You have a large list that is slow to update"],warn:["This method is deprecated (as well as all React Native Firebase namespaced API) and will be removed in the next major release as part of move to match Firebase Web modular SDK API.","SerializableStateInvariantMiddleware took","Non-serializable values were found in the navigation state.","SafeAreaView has been deprecated and will be removed in a future release.","Clipboard has been extracted from react-native core and will be removed in a future release.","You should always pass contentWidth prop to properly handle screen rotations and have a seamless support for images scaling.","Selector unknown returned a different result when called with the same parameters.",'You seem to update props of the "TRenderEngineProvider" component in short periods of time',"A non-serializable value was detected in an action"],error:["A non-serializable value was detected in the state, in the path: `tierStatusCalculator.date`","VirtualizedLists should never be nested inside plain ScrollViews with the same orientation because it can break windowing and other functionality - use another VirtualizedList-backed container instead."]};
|
|
@@ -1,519 +1,2 @@
|
|
|
1
|
-
import axios from "
|
|
2
|
-
|
|
3
|
-
let logs = [];
|
|
4
|
-
let listeners = [];
|
|
5
|
-
let counter = 0;
|
|
6
|
-
let isNetworkModuleEnabled = true;
|
|
7
|
-
let currentRouteProvider = null;
|
|
8
|
-
export const setRouteInfoProvider = (provider) => {
|
|
9
|
-
currentRouteProvider = provider;
|
|
10
|
-
};
|
|
11
|
-
export const setNetworkModuleEnabled = (enabled) => {
|
|
12
|
-
isNetworkModuleEnabled = enabled;
|
|
13
|
-
};
|
|
14
|
-
export const getNetworkModuleEnabled = () => isNetworkModuleEnabled;
|
|
15
|
-
const ALLOWED_METHODS = [
|
|
16
|
-
"GET",
|
|
17
|
-
"POST",
|
|
18
|
-
"PUT",
|
|
19
|
-
"PATCH",
|
|
20
|
-
"DELETE",
|
|
21
|
-
"HEAD",
|
|
22
|
-
"OPTIONS",
|
|
23
|
-
"CONNECT",
|
|
24
|
-
"TRACE",
|
|
25
|
-
];
|
|
26
|
-
const IGNORED_URL_PATTERNS = [
|
|
27
|
-
/\/symbolicate(?:\?|$)/i,
|
|
28
|
-
/\/index\.bundle(?:\?|$)/i,
|
|
29
|
-
/\/open-debugger(?:\?|$)/i,
|
|
30
|
-
/:(?:8081|8082|8083|19000|19001)\/(?:index\.bundle|symbolicate|hot|message|status)/i,
|
|
31
|
-
/google-analytics\.com\/mp\/collect/i,
|
|
32
|
-
/analytics\.google\.com/i,
|
|
33
|
-
];
|
|
34
|
-
function shouldIgnoreUrl(url) {
|
|
35
|
-
if (!url)
|
|
36
|
-
return false;
|
|
37
|
-
return IGNORED_URL_PATTERNS.some((re) => re.test(url));
|
|
38
|
-
}
|
|
39
|
-
function parseXHRResponseHeaders(headerStr) {
|
|
40
|
-
if (!headerStr || typeof headerStr !== "string")
|
|
41
|
-
return undefined;
|
|
42
|
-
const lines = headerStr.trim().split(/[\r\n]+/);
|
|
43
|
-
const result = {};
|
|
44
|
-
lines.forEach((line) => {
|
|
45
|
-
const idx = line.indexOf(":");
|
|
46
|
-
if (idx > 0) {
|
|
47
|
-
const key = line.substring(0, idx).trim().toLowerCase();
|
|
48
|
-
const val = line.substring(idx + 1).trim();
|
|
49
|
-
result[key] = val;
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
return Object.keys(result).length > 0 ? result : undefined;
|
|
53
|
-
}
|
|
54
|
-
function normaliseHeaders(raw) {
|
|
55
|
-
if (!raw)
|
|
56
|
-
return undefined;
|
|
57
|
-
if (typeof raw.forEach === "function") {
|
|
58
|
-
const result = {};
|
|
59
|
-
raw.forEach((value, key) => {
|
|
60
|
-
result[key] = value;
|
|
61
|
-
});
|
|
62
|
-
return Object.keys(result).length > 0 ? result : undefined;
|
|
63
|
-
}
|
|
64
|
-
if (Array.isArray(raw)) {
|
|
65
|
-
const result = {};
|
|
66
|
-
raw.forEach(([key, value]) => {
|
|
67
|
-
result[key] = value;
|
|
68
|
-
});
|
|
69
|
-
return Object.keys(result).length > 0 ? result : undefined;
|
|
70
|
-
}
|
|
71
|
-
const obj = raw;
|
|
72
|
-
const result = {};
|
|
73
|
-
Object.entries(obj).forEach(([key, value]) => {
|
|
74
|
-
if (value != null) {
|
|
75
|
-
result[key] = String(value);
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
return Object.keys(result).length > 0 ? result : undefined;
|
|
79
|
-
}
|
|
80
|
-
function parseRequestData(data) {
|
|
81
|
-
if (!data)
|
|
82
|
-
return data;
|
|
83
|
-
if (data && data._parts && Array.isArray(data._parts)) {
|
|
84
|
-
const parsedFormData = {};
|
|
85
|
-
data._parts.forEach((part) => {
|
|
86
|
-
const key = part[0];
|
|
87
|
-
const value = part[1];
|
|
88
|
-
if (value && typeof value === "object" && value.uri) {
|
|
89
|
-
parsedFormData[key] = {
|
|
90
|
-
_isFile: true,
|
|
91
|
-
name: value.name || "unknown",
|
|
92
|
-
type: value.type || "unknown",
|
|
93
|
-
uri: value.uri,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
parsedFormData[key] = value;
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
return { _isFormData: true, ...parsedFormData };
|
|
101
|
-
}
|
|
102
|
-
return data;
|
|
103
|
-
}
|
|
104
|
-
function getCallerFromStack() {
|
|
105
|
-
try {
|
|
106
|
-
const stack = new Error().stack;
|
|
107
|
-
if (!stack)
|
|
108
|
-
return "Unknown";
|
|
109
|
-
const lines = stack.split("\n");
|
|
110
|
-
for (let i = 0; i < lines.length; i++) {
|
|
111
|
-
const line = lines[i];
|
|
112
|
-
if (line.includes("networkLogger") ||
|
|
113
|
-
line.includes("node_modules") ||
|
|
114
|
-
line.includes("Error") ||
|
|
115
|
-
line.includes("regeneratorRuntime")) {
|
|
116
|
-
continue;
|
|
117
|
-
}
|
|
118
|
-
return line.trim().replace(/^at /, "");
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
catch (e) { }
|
|
122
|
-
return "Unknown";
|
|
123
|
-
}
|
|
124
|
-
export const subscribeNetworkLogs = (callback) => {
|
|
125
|
-
listeners.push(callback);
|
|
126
|
-
callback([...logs]);
|
|
127
|
-
return () => {
|
|
128
|
-
listeners = listeners.filter((l) => l !== callback);
|
|
129
|
-
};
|
|
130
|
-
};
|
|
131
|
-
export const clearNetworkLogs = () => {
|
|
132
|
-
logs = [];
|
|
133
|
-
notify();
|
|
134
|
-
};
|
|
135
|
-
export const getNetworkLogs = () => [...logs];
|
|
136
|
-
let maxNetworkLogsLimit = 250;
|
|
137
|
-
export const setMaxNetworkLogsLimit = (limit) => {
|
|
138
|
-
maxNetworkLogsLimit = Math.max(10, limit);
|
|
139
|
-
if (logs.length > maxNetworkLogsLimit) {
|
|
140
|
-
logs = logs.slice(0, maxNetworkLogsLimit);
|
|
141
|
-
notify();
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
export const getMaxNetworkLogsLimit = () => maxNetworkLogsLimit;
|
|
145
|
-
export const pruneNetworkLogs = (targetCount) => {
|
|
146
|
-
const countToKeep = targetCount !== undefined ? Math.max(0, targetCount) : Math.floor(logs.length / 2);
|
|
147
|
-
const pruned = logs.length - countToKeep;
|
|
148
|
-
if (pruned > 0) {
|
|
149
|
-
logs = logs.slice(0, countToKeep);
|
|
150
|
-
notify();
|
|
151
|
-
}
|
|
152
|
-
return Math.max(0, pruned);
|
|
153
|
-
};
|
|
154
|
-
const notify = () => {
|
|
155
|
-
const snapshot = [...logs];
|
|
156
|
-
listeners.forEach((cb) => cb(snapshot));
|
|
157
|
-
};
|
|
158
|
-
const addOrUpdateLog = (log) => {
|
|
159
|
-
if (!isNetworkModuleEnabled)
|
|
160
|
-
return;
|
|
161
|
-
const method = log.method?.toUpperCase();
|
|
162
|
-
if (method && !ALLOWED_METHODS.includes(method))
|
|
163
|
-
return;
|
|
164
|
-
if (shouldIgnoreUrl(log.url))
|
|
165
|
-
return;
|
|
166
|
-
const index = logs.findIndex((l) => l.id === log.id);
|
|
167
|
-
if (index >= 0) {
|
|
168
|
-
logs[index] = { ...logs[index], ...log };
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
logs.unshift(log);
|
|
172
|
-
}
|
|
173
|
-
logs = logs.slice(0, maxNetworkLogsLimit);
|
|
174
|
-
notify();
|
|
175
|
-
};
|
|
176
|
-
let isInsideFetch = false;
|
|
177
|
-
export const setupNetworkLogger = () => {
|
|
178
|
-
if (globalThis.__NETWORK_LOGGER_INITIALIZED__)
|
|
179
|
-
return;
|
|
180
|
-
globalThis.__NETWORK_LOGGER__ = addOrUpdateLog;
|
|
181
|
-
const globalXHR = globalThis.XMLHttpRequest;
|
|
182
|
-
if (globalXHR && globalXHR.prototype && !globalThis.__XHR_LOGGER_INITIALIZED__) {
|
|
183
|
-
globalThis.__XHR_LOGGER_INITIALIZED__ = true;
|
|
184
|
-
const originalOpen = globalXHR.prototype.open;
|
|
185
|
-
const originalSend = globalXHR.prototype.send;
|
|
186
|
-
const originalSetRequestHeader = globalXHR.prototype.setRequestHeader;
|
|
187
|
-
globalXHR.prototype.open = function (method, url, async, user, password) {
|
|
188
|
-
this.__logMethod = (method || "GET").toUpperCase();
|
|
189
|
-
this.__logUrl = typeof url === "string" ? url : String(url);
|
|
190
|
-
this.__logRequestHeaders = {};
|
|
191
|
-
this.__logStartTime = Date.now();
|
|
192
|
-
this.__logCaller = getCallerFromStack();
|
|
193
|
-
return originalOpen.apply(this, [method, url, async !== false, user, password]);
|
|
194
|
-
};
|
|
195
|
-
globalXHR.prototype.setRequestHeader = function (header, value) {
|
|
196
|
-
if (header && value != null) {
|
|
197
|
-
if (!this.__logRequestHeaders)
|
|
198
|
-
this.__logRequestHeaders = {};
|
|
199
|
-
this.__logRequestHeaders[header.toLowerCase()] = String(value);
|
|
200
|
-
}
|
|
201
|
-
return originalSetRequestHeader.apply(this, [header, value]);
|
|
202
|
-
};
|
|
203
|
-
globalXHR.prototype.send = function (body) {
|
|
204
|
-
if (!isNetworkModuleEnabled || isInsideFetch || this.__inAppInspectorTracked) {
|
|
205
|
-
return originalSend.apply(this, [body]);
|
|
206
|
-
}
|
|
207
|
-
const url = this.__logUrl || "";
|
|
208
|
-
const method = this.__logMethod || "GET";
|
|
209
|
-
if (shouldIgnoreUrl(url)) {
|
|
210
|
-
return originalSend.apply(this, [body]);
|
|
211
|
-
}
|
|
212
|
-
const id = counter++;
|
|
213
|
-
this.__logId = id;
|
|
214
|
-
const start = this.__logStartTime || Date.now();
|
|
215
|
-
const caller = this.__logCaller || "Unknown";
|
|
216
|
-
const requestHeaders = this.__logRequestHeaders;
|
|
217
|
-
let client = "xhr";
|
|
218
|
-
if (requestHeaders?.["apollographql-client-name"] ||
|
|
219
|
-
url.toLowerCase().includes("/graphql")) {
|
|
220
|
-
client = "apollo";
|
|
221
|
-
}
|
|
222
|
-
else if (caller.toLowerCase().includes("axios")) {
|
|
223
|
-
client = "axios";
|
|
224
|
-
}
|
|
225
|
-
const currentRoute = currentRouteProvider ? currentRouteProvider() : null;
|
|
226
|
-
addOrUpdateLog({
|
|
227
|
-
id,
|
|
228
|
-
url,
|
|
229
|
-
method,
|
|
230
|
-
startTime: start,
|
|
231
|
-
caller,
|
|
232
|
-
client,
|
|
233
|
-
routeInfo: currentRoute || undefined,
|
|
234
|
-
request: method === "GET" ? undefined : parseRequestData(body),
|
|
235
|
-
requestHeaders: Object.keys(requestHeaders || {}).length > 0 ? requestHeaders : undefined,
|
|
236
|
-
});
|
|
237
|
-
const onFinished = () => {
|
|
238
|
-
if (this.__logFinished)
|
|
239
|
-
return;
|
|
240
|
-
this.__logFinished = true;
|
|
241
|
-
const duration = Date.now() - start;
|
|
242
|
-
let responseData = null;
|
|
243
|
-
try {
|
|
244
|
-
if (this.responseType === "" || this.responseType === "text") {
|
|
245
|
-
const raw = this.responseText;
|
|
246
|
-
try {
|
|
247
|
-
responseData = JSON.parse(raw);
|
|
248
|
-
}
|
|
249
|
-
catch {
|
|
250
|
-
responseData = raw;
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
else if (this.responseType === "json") {
|
|
254
|
-
responseData = this.response;
|
|
255
|
-
}
|
|
256
|
-
else if (this.responseType === "blob") {
|
|
257
|
-
responseData = `[Blob: ${this.response?.size || 0} bytes]`;
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
responseData = `[${this.responseType || "Unknown"} Data]`;
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
catch {
|
|
264
|
-
responseData = this.response || null;
|
|
265
|
-
}
|
|
266
|
-
const rawRespHeaders = this.getAllResponseHeaders
|
|
267
|
-
? this.getAllResponseHeaders()
|
|
268
|
-
: "";
|
|
269
|
-
const responseHeaders = parseXHRResponseHeaders(rawRespHeaders);
|
|
270
|
-
addOrUpdateLog({
|
|
271
|
-
id,
|
|
272
|
-
url,
|
|
273
|
-
method,
|
|
274
|
-
status: this.status,
|
|
275
|
-
response: responseData,
|
|
276
|
-
duration,
|
|
277
|
-
startTime: start,
|
|
278
|
-
caller,
|
|
279
|
-
client,
|
|
280
|
-
responseHeaders,
|
|
281
|
-
});
|
|
282
|
-
};
|
|
283
|
-
const onErrorOrAbort = () => {
|
|
284
|
-
if (this.__logFinished)
|
|
285
|
-
return;
|
|
286
|
-
this.__logFinished = true;
|
|
287
|
-
const duration = Date.now() - start;
|
|
288
|
-
addOrUpdateLog({
|
|
289
|
-
id,
|
|
290
|
-
url,
|
|
291
|
-
method,
|
|
292
|
-
status: this.status || 0,
|
|
293
|
-
response: "Network request failed",
|
|
294
|
-
duration,
|
|
295
|
-
startTime: start,
|
|
296
|
-
caller,
|
|
297
|
-
client,
|
|
298
|
-
});
|
|
299
|
-
};
|
|
300
|
-
this.addEventListener("load", onFinished);
|
|
301
|
-
this.addEventListener("error", onErrorOrAbort);
|
|
302
|
-
this.addEventListener("abort", onErrorOrAbort);
|
|
303
|
-
this.addEventListener("timeout", onErrorOrAbort);
|
|
304
|
-
return originalSend.apply(this, [body]);
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
const originalFetch = globalThis.fetch;
|
|
308
|
-
if (originalFetch) {
|
|
309
|
-
globalThis.fetch = async (url, options = {}) => {
|
|
310
|
-
if (!isNetworkModuleEnabled)
|
|
311
|
-
return originalFetch(url, options);
|
|
312
|
-
const method = (options?.method || "GET").toUpperCase();
|
|
313
|
-
const id = counter++;
|
|
314
|
-
const start = Date.now();
|
|
315
|
-
const finalUrl = typeof url === "string" ? url : url?.url;
|
|
316
|
-
if (shouldIgnoreUrl(finalUrl))
|
|
317
|
-
return originalFetch(url, options);
|
|
318
|
-
let caller = "Unknown";
|
|
319
|
-
let requestHeaders;
|
|
320
|
-
let client = "fetch";
|
|
321
|
-
try {
|
|
322
|
-
requestHeaders = normaliseHeaders(options?.headers);
|
|
323
|
-
caller = getCallerFromStack();
|
|
324
|
-
if (requestHeaders?.["apollographql-client-name"] ||
|
|
325
|
-
finalUrl?.toLowerCase().includes("/graphql")) {
|
|
326
|
-
client = "apollo";
|
|
327
|
-
}
|
|
328
|
-
else if (requestHeaders?.["x-requested-with"]?.toLowerCase().includes("xmlhttprequest")) {
|
|
329
|
-
client = "xhr";
|
|
330
|
-
}
|
|
331
|
-
else if (caller?.toLowerCase().includes("axios")) {
|
|
332
|
-
client = "axios";
|
|
333
|
-
}
|
|
334
|
-
const currentRoute = currentRouteProvider ? currentRouteProvider() : null;
|
|
335
|
-
addOrUpdateLog({
|
|
336
|
-
id,
|
|
337
|
-
url: finalUrl,
|
|
338
|
-
method,
|
|
339
|
-
startTime: start,
|
|
340
|
-
caller,
|
|
341
|
-
client,
|
|
342
|
-
routeInfo: currentRoute || undefined,
|
|
343
|
-
request: method === "GET" ? undefined : parseRequestData(options?.body),
|
|
344
|
-
requestHeaders,
|
|
345
|
-
});
|
|
346
|
-
}
|
|
347
|
-
catch { }
|
|
348
|
-
try {
|
|
349
|
-
isInsideFetch = true;
|
|
350
|
-
let response;
|
|
351
|
-
try {
|
|
352
|
-
response = await originalFetch(url, options);
|
|
353
|
-
}
|
|
354
|
-
finally {
|
|
355
|
-
isInsideFetch = false;
|
|
356
|
-
}
|
|
357
|
-
const duration = Date.now() - start;
|
|
358
|
-
try {
|
|
359
|
-
const responseHeaders = normaliseHeaders(response.headers);
|
|
360
|
-
let data = null;
|
|
361
|
-
const contentType = responseHeaders?.["content-type"] ||
|
|
362
|
-
responseHeaders?.["Content-Type"] ||
|
|
363
|
-
"";
|
|
364
|
-
if (contentType.includes("image/")) {
|
|
365
|
-
data = "[Image Data]";
|
|
366
|
-
}
|
|
367
|
-
else {
|
|
368
|
-
try {
|
|
369
|
-
const clone = response.clone();
|
|
370
|
-
const text = await clone.text();
|
|
371
|
-
try {
|
|
372
|
-
data = JSON.parse(text);
|
|
373
|
-
}
|
|
374
|
-
catch {
|
|
375
|
-
data = text;
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
catch { }
|
|
379
|
-
}
|
|
380
|
-
addOrUpdateLog({
|
|
381
|
-
id,
|
|
382
|
-
url: finalUrl,
|
|
383
|
-
method,
|
|
384
|
-
status: response.status,
|
|
385
|
-
response: data,
|
|
386
|
-
duration,
|
|
387
|
-
startTime: start,
|
|
388
|
-
caller,
|
|
389
|
-
client,
|
|
390
|
-
responseHeaders,
|
|
391
|
-
});
|
|
392
|
-
}
|
|
393
|
-
catch { }
|
|
394
|
-
return response;
|
|
395
|
-
}
|
|
396
|
-
catch (error) {
|
|
397
|
-
try {
|
|
398
|
-
addOrUpdateLog({
|
|
399
|
-
id,
|
|
400
|
-
url: finalUrl,
|
|
401
|
-
method,
|
|
402
|
-
status: 0,
|
|
403
|
-
startTime: start,
|
|
404
|
-
response: error,
|
|
405
|
-
caller,
|
|
406
|
-
client,
|
|
407
|
-
duration: Date.now() - start,
|
|
408
|
-
});
|
|
409
|
-
}
|
|
410
|
-
catch { }
|
|
411
|
-
throw error;
|
|
412
|
-
}
|
|
413
|
-
};
|
|
414
|
-
}
|
|
415
|
-
try {
|
|
416
|
-
if (axios) {
|
|
417
|
-
addAxiosInterceptors(axios);
|
|
418
|
-
const originalCreate = axios.create;
|
|
419
|
-
if (typeof originalCreate === "function") {
|
|
420
|
-
axios.create = function (...args) {
|
|
421
|
-
const instance = originalCreate.apply(this, args);
|
|
422
|
-
addAxiosInterceptors(instance);
|
|
423
|
-
return instance;
|
|
424
|
-
};
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
catch (_e) {
|
|
429
|
-
}
|
|
430
|
-
try {
|
|
431
|
-
setupGlobalCrashHandler();
|
|
432
|
-
}
|
|
433
|
-
catch { }
|
|
434
|
-
globalThis.__NETWORK_LOGGER_INITIALIZED__ = true;
|
|
435
|
-
};
|
|
436
|
-
export const addAxiosInterceptors = (axiosInstance) => {
|
|
437
|
-
axiosInstance.interceptors.request.use(async (config) => {
|
|
438
|
-
const method = (config.method || "GET").toUpperCase();
|
|
439
|
-
const id = counter++;
|
|
440
|
-
const start = Date.now();
|
|
441
|
-
const caller = getCallerFromStack();
|
|
442
|
-
let url = config.url ?? "";
|
|
443
|
-
if (!url.startsWith("http"))
|
|
444
|
-
url = `${config.baseURL ?? ""}${url}`;
|
|
445
|
-
if (shouldIgnoreUrl(url))
|
|
446
|
-
return config;
|
|
447
|
-
config.__logId = id;
|
|
448
|
-
config.__logStart = start;
|
|
449
|
-
config.__logCaller = caller;
|
|
450
|
-
const currentRoute = currentRouteProvider ? currentRouteProvider() : null;
|
|
451
|
-
addOrUpdateLog({
|
|
452
|
-
id,
|
|
453
|
-
url,
|
|
454
|
-
method,
|
|
455
|
-
startTime: start,
|
|
456
|
-
caller,
|
|
457
|
-
client: "axios",
|
|
458
|
-
routeInfo: currentRoute || undefined,
|
|
459
|
-
request: method === "GET" ? undefined : parseRequestData(config.data),
|
|
460
|
-
requestHeaders: normaliseHeaders(config.headers),
|
|
461
|
-
});
|
|
462
|
-
return config;
|
|
463
|
-
});
|
|
464
|
-
axiosInstance.interceptors.response.use((response) => {
|
|
465
|
-
const config = response.config || {};
|
|
466
|
-
const id = config.__logId;
|
|
467
|
-
const start = config.__logStart;
|
|
468
|
-
const caller = config.__logCaller;
|
|
469
|
-
const method = (config.method || "GET").toUpperCase();
|
|
470
|
-
if (id == null)
|
|
471
|
-
return response;
|
|
472
|
-
let url = config.url ?? "";
|
|
473
|
-
if (!url.startsWith("http"))
|
|
474
|
-
url = `${config.baseURL ?? ""}${url}`;
|
|
475
|
-
addOrUpdateLog({
|
|
476
|
-
id,
|
|
477
|
-
url,
|
|
478
|
-
method,
|
|
479
|
-
status: response.status,
|
|
480
|
-
response: response.data,
|
|
481
|
-
startTime: start || Date.now(),
|
|
482
|
-
duration: start != null ? Date.now() - start : undefined,
|
|
483
|
-
caller,
|
|
484
|
-
client: "axios",
|
|
485
|
-
responseHeaders: normaliseHeaders(response.headers),
|
|
486
|
-
});
|
|
487
|
-
return response;
|
|
488
|
-
}, (error) => {
|
|
489
|
-
const config = error.config || {};
|
|
490
|
-
const id = config.__logId;
|
|
491
|
-
const start = config.__logStart;
|
|
492
|
-
const caller = config.__logCaller;
|
|
493
|
-
const method = (config.method || "GET").toUpperCase();
|
|
494
|
-
if (id != null) {
|
|
495
|
-
let url = config.url ?? "";
|
|
496
|
-
if (!url.startsWith("http"))
|
|
497
|
-
url = `${config.baseURL ?? ""}${url}`;
|
|
498
|
-
addOrUpdateLog({
|
|
499
|
-
id,
|
|
500
|
-
url,
|
|
501
|
-
method,
|
|
502
|
-
status: error.response?.status ?? 0,
|
|
503
|
-
response: error.response?.data ?? error.message,
|
|
504
|
-
startTime: start || Date.now(),
|
|
505
|
-
duration: start != null ? Date.now() - start : undefined,
|
|
506
|
-
caller,
|
|
507
|
-
client: "axios",
|
|
508
|
-
responseHeaders: normaliseHeaders(error.response?.headers),
|
|
509
|
-
});
|
|
510
|
-
}
|
|
511
|
-
return Promise.reject(error);
|
|
512
|
-
});
|
|
513
|
-
};
|
|
514
|
-
if (typeof globalThis !== "undefined") {
|
|
515
|
-
try {
|
|
516
|
-
setupNetworkLogger();
|
|
517
|
-
}
|
|
518
|
-
catch { }
|
|
519
|
-
}
|
|
1
|
+
import R from"axios";import{setupGlobalCrashHandler as U}from"./crashHandler";let l=[],b=[],k=0,T=!0,g=null;export const setRouteInfoProvider=e=>{g=e},setNetworkModuleEnabled=e=>{T=e},getNetworkModuleEnabled=()=>T;const A=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS","CONNECT","TRACE"],S=[/\/symbolicate(?:\?|$)/i,/\/index\.bundle(?:\?|$)/i,/\/open-debugger(?:\?|$)/i,/:(?:8081|8082|8083|19000|19001)\/(?:index\.bundle|symbolicate|hot|message|status)/i,/google-analytics\.com\/mp\/collect/i,/analytics\.google\.com/i];function I(e){return e?S.some(t=>t.test(e)):!1}function M(e){if(!e||typeof e!="string")return;const t=e.trim().split(/[\r\n]+/),s={};return t.forEach(n=>{const o=n.indexOf(":");if(o>0){const i=n.substring(0,o).trim().toLowerCase(),r=n.substring(o+1).trim();s[i]=r}}),Object.keys(s).length>0?s:void 0}function E(e){if(!e)return;if(typeof e.forEach=="function"){const n={};return e.forEach((o,i)=>{n[i]=o}),Object.keys(n).length>0?n:void 0}if(Array.isArray(e)){const n={};return e.forEach(([o,i])=>{n[o]=i}),Object.keys(n).length>0?n:void 0}const t=e,s={};return Object.entries(t).forEach(([n,o])=>{o!=null&&(s[n]=String(o))}),Object.keys(s).length>0?s:void 0}function D(e){if(!e)return e;if(e&&e._parts&&Array.isArray(e._parts)){const t={};return e._parts.forEach(s=>{const n=s[0],o=s[1];o&&typeof o=="object"&&o.uri?t[n]={_isFile:!0,name:o.name||"unknown",type:o.type||"unknown",uri:o.uri}:t[n]=o}),{_isFormData:!0,...t}}return e}function O(){try{const e=new Error().stack;if(!e)return"Unknown";const t=e.split(`
|
|
2
|
+
`);for(let s=0;s<t.length;s++){const n=t[s];if(!(n.includes("networkLogger")||n.includes("node_modules")||n.includes("Error")||n.includes("regeneratorRuntime")))return n.trim().replace(/^at /,"")}}catch{}return"Unknown"}export const subscribeNetworkLogs=e=>(b.push(e),e([...l]),()=>{b=b.filter(t=>t!==e)}),clearNetworkLogs=()=>{l=[],H()},getNetworkLogs=()=>[...l];let w=250;export const setMaxNetworkLogsLimit=e=>{w=Math.max(10,e),l.length>w&&(l=l.slice(0,w),H())},getMaxNetworkLogsLimit=()=>w,pruneNetworkLogs=e=>{const t=e!==void 0?Math.max(0,e):Math.floor(l.length/2),s=l.length-t;return s>0&&(l=l.slice(0,t),H()),Math.max(0,s)};const H=()=>{const e=[...l];b.forEach(t=>t(e))},f=e=>{if(!T)return;const t=e.method?.toUpperCase();if(t&&!A.includes(t)||I(e.url))return;const s=l.findIndex(n=>n.id===e.id);s>=0?l[s]={...l[s],...e}:l.unshift(e),l=l.slice(0,w),H()};let N=!1;export const setupNetworkLogger=()=>{if(globalThis.__NETWORK_LOGGER_INITIALIZED__)return;globalThis.__NETWORK_LOGGER__=f;const e=globalThis.XMLHttpRequest;if(e&&e.prototype&&!globalThis.__XHR_LOGGER_INITIALIZED__){globalThis.__XHR_LOGGER_INITIALIZED__=!0;const s=e.prototype.open,n=e.prototype.send,o=e.prototype.setRequestHeader;e.prototype.open=function(i,r,a,u,d){return this.__logMethod=(i||"GET").toUpperCase(),this.__logUrl=typeof r=="string"?r:String(r),this.__logRequestHeaders={},this.__logStartTime=Date.now(),this.__logCaller=O(),s.apply(this,[i,r,a!==!1,u,d])},e.prototype.setRequestHeader=function(i,r){return i&&r!=null&&(this.__logRequestHeaders||(this.__logRequestHeaders={}),this.__logRequestHeaders[i.toLowerCase()]=String(r)),o.apply(this,[i,r])},e.prototype.send=function(i){if(!T||N||this.__inAppInspectorTracked)return n.apply(this,[i]);const r=this.__logUrl||"",a=this.__logMethod||"GET";if(I(r))return n.apply(this,[i]);const u=k++;this.__logId=u;const d=this.__logStartTime||Date.now(),p=this.__logCaller||"Unknown",c=this.__logRequestHeaders;let _="xhr";c?.["apollographql-client-name"]||r.toLowerCase().includes("/graphql")?_="apollo":p.toLowerCase().includes("axios")&&(_="axios");const m=g?g():null;f({id:u,url:r,method:a,startTime:d,caller:p,client:_,routeInfo:m||void 0,request:a==="GET"?void 0:D(i),requestHeaders:Object.keys(c||{}).length>0?c:void 0});const y=()=>{if(this.__logFinished)return;this.__logFinished=!0;const x=Date.now()-d;let h=null;try{if(this.responseType===""||this.responseType==="text"){const q=this.responseText;try{h=JSON.parse(q)}catch{h=q}}else this.responseType==="json"?h=this.response:this.responseType==="blob"?h=`[Blob: ${this.response?.size||0} bytes]`:h=`[${this.responseType||"Unknown"} Data]`}catch{h=this.response||null}const C=this.getAllResponseHeaders?this.getAllResponseHeaders():"",G=M(C);f({id:u,url:r,method:a,status:this.status,response:h,duration:x,startTime:d,caller:p,client:_,responseHeaders:G})},L=()=>{if(this.__logFinished)return;this.__logFinished=!0;const x=Date.now()-d;f({id:u,url:r,method:a,status:this.status||0,response:"Network request failed",duration:x,startTime:d,caller:p,client:_})};return this.addEventListener("load",y),this.addEventListener("error",L),this.addEventListener("abort",L),this.addEventListener("timeout",L),n.apply(this,[i])}}const t=globalThis.fetch;t&&(globalThis.fetch=async(s,n={})=>{if(!T)return t(s,n);const o=(n?.method||"GET").toUpperCase(),i=k++,r=Date.now(),a=typeof s=="string"?s:s?.url;if(I(a))return t(s,n);let u="Unknown",d,p="fetch";try{d=E(n?.headers),u=O(),d?.["apollographql-client-name"]||a?.toLowerCase().includes("/graphql")?p="apollo":d?.["x-requested-with"]?.toLowerCase().includes("xmlhttprequest")?p="xhr":u?.toLowerCase().includes("axios")&&(p="axios");const c=g?g():null;f({id:i,url:a,method:o,startTime:r,caller:u,client:p,routeInfo:c||void 0,request:o==="GET"?void 0:D(n?.body),requestHeaders:d})}catch{}try{N=!0;let c;try{c=await t(s,n)}finally{N=!1}const _=Date.now()-r;try{const m=E(c.headers);let y=null;if((m?.["content-type"]||m?.["Content-Type"]||"").includes("image/"))y="[Image Data]";else try{const h=await c.clone().text();try{y=JSON.parse(h)}catch{y=h}}catch{}f({id:i,url:a,method:o,status:c.status,response:y,duration:_,startTime:r,caller:u,client:p,responseHeaders:m})}catch{}return c}catch(c){try{f({id:i,url:a,method:o,status:0,startTime:r,response:c,caller:u,client:p,duration:Date.now()-r})}catch{}throw c}});try{if(R){addAxiosInterceptors(R);const s=R.create;typeof s=="function"&&(R.create=function(...n){const o=s.apply(this,n);return addAxiosInterceptors(o),o})}}catch{}try{U()}catch{}globalThis.__NETWORK_LOGGER_INITIALIZED__=!0},addAxiosInterceptors=e=>{e.interceptors.request.use(async t=>{const s=(t.method||"GET").toUpperCase(),n=k++,o=Date.now(),i=O();let r=t.url??"";if(r.startsWith("http")||(r=`${t.baseURL??""}${r}`),I(r))return t;t.__logId=n,t.__logStart=o,t.__logCaller=i;const a=g?g():null;return f({id:n,url:r,method:s,startTime:o,caller:i,client:"axios",routeInfo:a||void 0,request:s==="GET"?void 0:D(t.data),requestHeaders:E(t.headers)}),t}),e.interceptors.response.use(t=>{const s=t.config||{},n=s.__logId,o=s.__logStart,i=s.__logCaller,r=(s.method||"GET").toUpperCase();if(n==null)return t;let a=s.url??"";return a.startsWith("http")||(a=`${s.baseURL??""}${a}`),f({id:n,url:a,method:r,status:t.status,response:t.data,startTime:o||Date.now(),duration:o!=null?Date.now()-o:void 0,caller:i,client:"axios",responseHeaders:E(t.headers)}),t},t=>{const s=t.config||{},n=s.__logId,o=s.__logStart,i=s.__logCaller,r=(s.method||"GET").toUpperCase();if(n!=null){let a=s.url??"";a.startsWith("http")||(a=`${s.baseURL??""}${a}`),f({id:n,url:a,method:r,status:t.response?.status??0,response:t.response?.data??t.message,startTime:o||Date.now(),duration:o!=null?Date.now()-o:void 0,caller:i,client:"axios",responseHeaders:E(t.response?.headers)})}return Promise.reject(t)})};if(typeof globalThis<"u")try{setupNetworkLogger()}catch{}
|