react-native-inapp-inspector 2.3.14 → 2.3.16

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 (125) hide show
  1. package/README.md +1 -0
  2. package/dist/commonjs/components/AnimatedEntrance.js +3 -3
  3. package/dist/commonjs/components/ConsoleLogCard.js +174 -100
  4. package/dist/commonjs/components/Inspector/AnalyticsTab.js +0 -22
  5. package/dist/commonjs/components/Inspector/ConsoleTab.js +25 -38
  6. package/dist/commonjs/components/Inspector/CrashTab.js +19 -28
  7. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +198 -98
  8. package/dist/commonjs/components/Inspector/FeedbackModal.d.ts +7 -0
  9. package/dist/commonjs/components/Inspector/FeedbackModal.js +552 -0
  10. package/dist/commonjs/components/Inspector/InspectorHeader.js +58 -6
  11. package/dist/commonjs/components/Inspector/MainScreen.js +100 -58
  12. package/dist/commonjs/components/Inspector/NetworkTab.js +26 -371
  13. package/dist/commonjs/components/Inspector/NpmStarPrompt.d.ts +3 -0
  14. package/dist/commonjs/components/Inspector/NpmStarPrompt.js +494 -0
  15. package/dist/commonjs/components/Inspector/PerformanceTab.js +40 -7
  16. package/dist/commonjs/components/Inspector/ReduxTab.js +3 -23
  17. package/dist/commonjs/components/Inspector/SettingsPanel.js +1035 -173
  18. package/dist/commonjs/components/Inspector/StorageTab.js +23 -28
  19. package/dist/commonjs/components/Inspector/TabBar.js +50 -15
  20. package/dist/commonjs/components/JsonViewer.js +14 -2
  21. package/dist/commonjs/components/LogCard.js +428 -227
  22. package/dist/commonjs/components/NetworkIcons.d.ts +5 -0
  23. package/dist/commonjs/components/NetworkIcons.js +33 -2
  24. package/dist/commonjs/constants/version.d.ts +1 -1
  25. package/dist/commonjs/constants/version.js +1 -1
  26. package/dist/commonjs/customHooks/analyticsLogger.js +1 -1
  27. package/dist/commonjs/customHooks/consoleLogger.js +34 -2
  28. package/dist/commonjs/customHooks/crashHandler.js +1 -1
  29. package/dist/commonjs/customHooks/networkLogger.js +184 -26
  30. package/dist/commonjs/helpers/index.d.ts +1 -0
  31. package/dist/commonjs/helpers/index.js +1 -0
  32. package/dist/commonjs/helpers/remoteConfig.d.ts +4 -0
  33. package/dist/commonjs/helpers/remoteConfig.js +165 -0
  34. package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -1
  35. package/dist/commonjs/helpers/searchQueryParser.js +39 -291
  36. package/dist/commonjs/helpers/telemetry.d.ts +5 -0
  37. package/dist/commonjs/helpers/telemetry.js +339 -8
  38. package/dist/commonjs/index.d.ts +1 -0
  39. package/dist/commonjs/index.js +173 -29
  40. package/dist/commonjs/styles/AppFonts.d.ts +2 -0
  41. package/dist/commonjs/styles/AppFonts.js +1 -0
  42. package/dist/commonjs/styles/index.d.ts +22 -0
  43. package/dist/commonjs/styles/index.js +19 -0
  44. package/dist/commonjs/types/enums.d.ts +1 -0
  45. package/dist/commonjs/types/enums.js +1 -0
  46. package/dist/commonjs/types/interfaces.d.ts +12 -0
  47. package/dist/esm/components/AnimatedEntrance.js +3 -3
  48. package/dist/esm/components/ConsoleLogCard.js +141 -100
  49. package/dist/esm/components/Inspector/AnalyticsTab.js +1 -23
  50. package/dist/esm/components/Inspector/ConsoleTab.js +26 -39
  51. package/dist/esm/components/Inspector/CrashTab.js +20 -29
  52. package/dist/esm/components/Inspector/DeviceInfoTab.js +198 -98
  53. package/dist/esm/components/Inspector/FeedbackModal.d.ts +7 -0
  54. package/dist/esm/components/Inspector/FeedbackModal.js +515 -0
  55. package/dist/esm/components/Inspector/InspectorHeader.js +60 -8
  56. package/dist/esm/components/Inspector/MainScreen.js +101 -59
  57. package/dist/esm/components/Inspector/NetworkTab.js +27 -372
  58. package/dist/esm/components/Inspector/NpmStarPrompt.d.ts +3 -0
  59. package/dist/esm/components/Inspector/NpmStarPrompt.js +454 -0
  60. package/dist/esm/components/Inspector/PerformanceTab.js +40 -7
  61. package/dist/esm/components/Inspector/ReduxTab.js +4 -24
  62. package/dist/esm/components/Inspector/SettingsPanel.js +1038 -176
  63. package/dist/esm/components/Inspector/StorageTab.js +23 -28
  64. package/dist/esm/components/Inspector/TabBar.js +50 -15
  65. package/dist/esm/components/JsonViewer.js +14 -2
  66. package/dist/esm/components/LogCard.js +422 -221
  67. package/dist/esm/components/NetworkIcons.d.ts +5 -0
  68. package/dist/esm/components/NetworkIcons.js +26 -0
  69. package/dist/esm/constants/version.d.ts +1 -1
  70. package/dist/esm/constants/version.js +1 -1
  71. package/dist/esm/customHooks/analyticsLogger.js +1 -1
  72. package/dist/esm/customHooks/consoleLogger.js +34 -2
  73. package/dist/esm/customHooks/crashHandler.js +1 -1
  74. package/dist/esm/customHooks/networkLogger.js +184 -26
  75. package/dist/esm/helpers/index.d.ts +1 -0
  76. package/dist/esm/helpers/index.js +1 -0
  77. package/dist/esm/helpers/remoteConfig.d.ts +4 -0
  78. package/dist/esm/helpers/remoteConfig.js +160 -0
  79. package/dist/esm/helpers/searchQueryParser.d.ts +1 -1
  80. package/dist/esm/helpers/searchQueryParser.js +39 -291
  81. package/dist/esm/helpers/telemetry.d.ts +5 -0
  82. package/dist/esm/helpers/telemetry.js +332 -9
  83. package/dist/esm/index.d.ts +1 -0
  84. package/dist/esm/index.js +171 -29
  85. package/dist/esm/styles/AppFonts.d.ts +2 -0
  86. package/dist/esm/styles/AppFonts.js +1 -0
  87. package/dist/esm/styles/index.d.ts +22 -0
  88. package/dist/esm/styles/index.js +19 -0
  89. package/dist/esm/types/enums.d.ts +1 -0
  90. package/dist/esm/types/enums.js +1 -0
  91. package/dist/esm/types/interfaces.d.ts +12 -0
  92. package/package.json +1 -1
  93. package/src/components/AnimatedEntrance.tsx +3 -3
  94. package/src/components/ConsoleLogCard.tsx +154 -103
  95. package/src/components/Inspector/AnalyticsTab.tsx +0 -23
  96. package/src/components/Inspector/ConsoleTab.tsx +27 -41
  97. package/src/components/Inspector/CrashTab.tsx +19 -28
  98. package/src/components/Inspector/DeviceInfoTab.tsx +224 -102
  99. package/src/components/Inspector/FeedbackModal.tsx +626 -0
  100. package/src/components/Inspector/InspectorHeader.tsx +83 -5
  101. package/src/components/Inspector/MainScreen.tsx +61 -6
  102. package/src/components/Inspector/NetworkTab.tsx +70 -480
  103. package/src/components/Inspector/NpmStarPrompt.tsx +532 -0
  104. package/src/components/Inspector/PerformanceTab.tsx +44 -8
  105. package/src/components/Inspector/ReduxTab.tsx +9 -24
  106. package/src/components/Inspector/SettingsPanel.tsx +1162 -197
  107. package/src/components/Inspector/StorageTab.tsx +27 -30
  108. package/src/components/Inspector/TabBar.tsx +57 -20
  109. package/src/components/JsonViewer.tsx +15 -2
  110. package/src/components/LogCard.tsx +528 -339
  111. package/src/components/NetworkIcons.tsx +92 -0
  112. package/src/constants/version.ts +1 -1
  113. package/src/customHooks/analyticsLogger.ts +1 -1
  114. package/src/customHooks/consoleLogger.ts +36 -3
  115. package/src/customHooks/crashHandler.ts +1 -1
  116. package/src/customHooks/networkLogger.ts +214 -26
  117. package/src/helpers/index.ts +1 -0
  118. package/src/helpers/remoteConfig.ts +212 -0
  119. package/src/helpers/searchQueryParser.ts +42 -284
  120. package/src/helpers/telemetry.ts +381 -10
  121. package/src/index.tsx +374 -211
  122. package/src/styles/AppFonts.ts +2 -0
  123. package/src/styles/index.ts +20 -1
  124. package/src/types/enums.ts +1 -0
  125. package/src/types/interfaces.ts +12 -0
@@ -38,7 +38,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.registerComponentProfile = exports.getHermesMemoryStats = exports.measureAsync = exports.trackHeavyTask = exports.trackNavigationTransition = exports.trackComponentRender = exports.useNavigationProfiler = exports.useComponentProfiler = exports.usePerformanceTracker = exports.registerGAPlugin = exports.getEventCategory = exports.getLastActionForReducer = exports.clearActionHistory = exports.getActionHistory = exports.subscribeReduxState = exports.getReduxState = exports.inspectorReduxMiddleware = exports.connectReduxStore = exports.ErrorBoundary = exports.CrashTab = exports.computeCrashFingerprint = exports.recordUserActionBreadcrumb = exports.recordReduxBreadcrumb = exports.recordNetworkBreadcrumb = exports.recordNavigationBreadcrumb = exports.addCrashBreadcrumb = exports.recordCustomCrash = exports.parseCrashStackTrace = exports.exportCrashReport = exports.simulateTestCrash = exports.clearCrashRecords = exports.getCrashRecords = exports.emitCrashEvent = exports.subscribeCrashEvents = exports.setupGlobalCrashHandler = exports.getCollectionEnabled = exports.getDefaultEventParameters = exports.getCurrentUserId = exports.getCurrentUserProperties = exports.clearAnalyticsEvents = exports.subscribeAnalyticsEvents = exports.logAnalyticsEvent = exports.setupAnalyticsLogger = exports.subscribeConsoleLogs = exports.clearConsoleLogs = exports.setupConsoleLogger = exports.addAxiosInterceptors = exports.subscribeNetworkLogs = exports.clearNetworkLogs = exports.setupNetworkLogger = void 0;
40
40
  exports.connectMMKV = exports.connectAsyncStorage = exports.BrandCircleIcon = exports.BrandSquareIcon = exports.prunePerformanceEvents = exports.getMaxPerformanceEventsLimit = exports.setMaxPerformanceEventsLimit = exports.pruneCrashRecords = exports.getMaxCrashLogsLimit = exports.pruneAnalyticsLogs = exports.getMaxAnalyticsLogsLimit = exports.setMaxAnalyticsLogsLimit = exports.pruneReduxHistory = exports.getMaxReduxHistoryLimit = exports.setMaxReduxHistoryLimit = exports.pruneConsoleLogs = exports.getMaxConsoleLogsLimit = exports.setMaxConsoleLogsLimit = exports.pruneNetworkLogs = exports.getMaxNetworkLogsLimit = exports.setMaxNetworkLogsLimit = exports.subscribeMemoryWarning = exports.pruneAllLogs = exports.setupMemoryWarningHandler = exports.isNativeModuleAvailable = exports.setNativeStorageItem = exports.getNativeStorageItem = exports.getNativeFpsMetrics = exports.stopNativeFpsMonitoring = exports.startNativeFpsMonitoring = exports.subscribeNativeDeviceShake = exports.subscribeNativeFloatingButtonPress = exports.setNativeFloatingButtonBadge = exports.hideNativeFloatingButton = exports.showNativeFloatingButton = exports.subscribeNativeCrashes = exports.enableNativeCrashProtection = exports.getNativeDeviceMetrics = exports.InspectCatch = exports.InspectTrackTime = exports.InspectLog = exports.generateFixSnippet = exports.getInitialPerformanceEvents = exports.getInitialRenderProfiles = exports.getPerformanceEvents = exports.subscribePerformanceEvents = exports.clearPerformanceEvents = exports.logPerformanceEvent = exports.getRenderProfiles = exports.subscribeRenderProfiles = void 0;
41
- exports.LIB_VERSION = exports.I18nextProvider = exports.setTranslations = exports.addTranslations = exports.setLanguage = exports.useTranslation = exports.i18n = exports.t = exports.updateAppColorsTheme = exports.getThemeColors = exports.setAppColors = exports.AppColors = exports.setAppFonts = exports.AppFonts = exports.BreadcrumbType = exports.CrashFilterType = exports.CrashDetailSubTab = exports.CrashExportFormat = exports.CrashType = exports.PerformanceSubTab = exports.BundleSubTab = exports.DiffResultType = exports.StackFrameType = exports.GAEventCategory = exports.AnalyticsEventSource = exports.ConsoleLogType = exports.LogFilter = exports.SettingsSubTab = exports.SettingsPage = exports.ModalAnimationType = exports.LocalFilter = exports.SortOrder = exports.StatusFilter = exports.Method = exports.ActiveTab = exports.subscribeToStorageChanges = exports.clearStorageDriver = exports.removeStorageEntry = exports.setStorageEntry = exports.fetchStorageEntries = exports.getRegisteredMMKVInstanceIds = exports.isMMKVConnected = exports.isAsyncStorageConnected = void 0;
41
+ exports.LIB_VERSION = exports.isFirebaseRemoteConfigAvailable = exports.fetchRemoteConfigModuleStatus = exports.I18nextProvider = exports.setTranslations = exports.addTranslations = exports.setLanguage = exports.useTranslation = exports.i18n = exports.t = exports.updateAppColorsTheme = exports.getThemeColors = exports.setAppColors = exports.AppColors = exports.setAppFonts = exports.AppFonts = exports.BreadcrumbType = exports.CrashFilterType = exports.CrashDetailSubTab = exports.CrashExportFormat = exports.CrashType = exports.PerformanceSubTab = exports.BundleSubTab = exports.DiffResultType = exports.StackFrameType = exports.GAEventCategory = exports.AnalyticsEventSource = exports.ConsoleLogType = exports.LogFilter = exports.SettingsSubTab = exports.SettingsPage = exports.ModalAnimationType = exports.LocalFilter = exports.SortOrder = exports.StatusFilter = exports.Method = exports.ActiveTab = exports.subscribeToStorageChanges = exports.clearStorageDriver = exports.removeStorageEntry = exports.setStorageEntry = exports.fetchStorageEntries = exports.getRegisteredMMKVInstanceIds = exports.isMMKVConnected = exports.isAsyncStorageConnected = void 0;
42
42
  const react_1 = __importStar(require("react"));
43
43
  const react_native_1 = require("react-native");
44
44
  const native_1 = require("@react-navigation/native");
@@ -59,9 +59,10 @@ const reduxLogger_1 = require("./customHooks/reduxLogger");
59
59
  const performanceTracker_1 = require("./customHooks/performanceTracker");
60
60
  const bundleAnalyzer_1 = require("./customHooks/bundleAnalyzer");
61
61
  const NativeInspector_2 = require("./native/NativeInspector");
62
+ const remoteConfig_1 = require("./helpers/remoteConfig");
62
63
  const constants_1 = require("./constants");
63
64
  const styles_1 = require("./styles");
64
- const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, environment, initialVisible = false, visible: controlledVisible, }) => {
65
+ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, environment, initialVisible = false, visible: controlledVisible, remoteConfig, }) => {
65
66
  (0, settingsStore_1.setCustomStorage)(storage || null);
66
67
  const [isDark, setIsDark] = (0, react_1.useState)(false);
67
68
  const [reduxState, setReduxState] = (0, react_1.useState)(null);
@@ -168,7 +169,7 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
168
169
  const [maxConsoleLogs, setMaxConsoleLogs] = (0, react_1.useState)(100);
169
170
  const [showConsoleLevels, setShowConsoleLevels] = (0, react_1.useState)({
170
171
  info: true,
171
- warn: false,
172
+ warn: true,
172
173
  error: true,
173
174
  });
174
175
  const visibleConsoleLogs = (0, react_1.useMemo)(() => {
@@ -196,8 +197,9 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
196
197
  return filtered.slice(0, maxConsoleLogs);
197
198
  }, [consoleLogs, showConsoleLevels, maxConsoleLogs]);
198
199
  const [logSearch, setLogSearch] = (0, react_1.useState)('');
199
- const [logFilters, setLogFilters] = (0, react_1.useState)(new Set(['user-log']));
200
+ const [logFilters, setLogFilters] = (0, react_1.useState)(new Set(['all']));
200
201
  const [settingsPage, setSettingsPage] = (0, react_1.useState)(null);
202
+ const [isFeedbackOpen, setIsFeedbackOpen] = (0, react_1.useState)(false);
201
203
  const [settingsActiveSubTab, setSettingsActiveSubTab] = (0, react_1.useState)('module');
202
204
  const [tabVisibility, setTabVisibility] = (0, react_1.useState)({
203
205
  apis: true,
@@ -211,8 +213,8 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
211
213
  storage: false,
212
214
  debugging: false,
213
215
  });
214
- const [maxNetworkLogs, setMaxNetworkLogs] = (0, react_1.useState)(100);
215
- const [maxAnalyticsEventsLimit, setMaxAnalyticsEventsLimit] = (0, react_1.useState)(75);
216
+ const [maxNetworkLogs, setMaxNetworkLogs] = (0, react_1.useState)(250);
217
+ const [maxAnalyticsEventsLimit, setMaxAnalyticsEventsLimit] = (0, react_1.useState)(150);
216
218
  const [isAutoRamLimitEnabled, setIsAutoRamLimitEnabled] = (0, react_1.useState)(true);
217
219
  const [deviceFreeRamMb, setDeviceFreeRamMb] = (0, react_1.useState)(1800);
218
220
  const [reduxAutoRefresh, setReduxAutoRefreshState] = (0, react_1.useState)(true);
@@ -350,6 +352,25 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
350
352
  cancelled = true;
351
353
  };
352
354
  }, []);
355
+ (0, react_1.useEffect)(() => {
356
+ let isMounted = true;
357
+ if (remoteConfig === false)
358
+ return;
359
+ (0, remoteConfig_1.fetchRemoteConfigModuleStatus)(typeof remoteConfig === 'object' ? remoteConfig : undefined)
360
+ .then(remoteModules => {
361
+ if (isMounted && remoteModules) {
362
+ setTabVisibility(prev => ({
363
+ ...prev,
364
+ ...remoteModules,
365
+ apis: remoteModules.apis ?? true,
366
+ }));
367
+ }
368
+ })
369
+ .catch(() => { });
370
+ return () => {
371
+ isMounted = false;
372
+ };
373
+ }, [remoteConfig]);
353
374
  (0, react_1.useEffect)(() => {
354
375
  if (!settingsHydratedRef.current)
355
376
  return;
@@ -489,6 +510,7 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
489
510
  setActiveTab(key);
490
511
  loadNativePage(key);
491
512
  }
513
+ (0, telemetry_1.trackInspectorTabView)(key);
492
514
  }, [loadNativePage]);
493
515
  const [selectedEvent, setSelectedEvent] = (0, react_1.useState)(null);
494
516
  const [analyticsSearch, setAnalyticsSearch] = (0, react_1.useState)('');
@@ -799,10 +821,12 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
799
821
  (0, react_1.useEffect)(() => {
800
822
  isVisibleRefObj.current = visible;
801
823
  if (visible) {
824
+ (0, telemetry_1.trackInspectorScreenView)('InspectorModal');
802
825
  const target = defaultTab === 'apis' || tabVisibility?.[defaultTab]
803
826
  ? defaultTab
804
827
  : 'apis';
805
828
  setActiveTab(target);
829
+ (0, telemetry_1.trackInspectorTabView)(target);
806
830
  if (latestNetworkLogsRef.current.length > 0) {
807
831
  const deduped = (0, helpers_1.deduplicateLogs)(latestNetworkLogsRef.current);
808
832
  const incoming = new Set(deduped.map(l => l.id));
@@ -1407,27 +1431,18 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
1407
1431
  log.caller || '',
1408
1432
  log.type || '',
1409
1433
  log.sourceMethod || '',
1434
+ log.stack || '',
1410
1435
  ].join(' ').toLowerCase();
1411
1436
  return queryTokens.every(token => {
1412
- if (token.startsWith('level:') || token.startsWith('is:') || token.startsWith('type:')) {
1413
- const flag = token.replace(/^(level:|is:|type:)/, '').trim();
1414
- if (flag === 'error' || flag === 'err')
1415
- return log.type === 'error';
1416
- if (flag === 'warn' || flag === 'warning')
1417
- return log.type === 'warn';
1418
- if (flag === 'info')
1419
- return log.type === 'info';
1420
- if (flag === 'log')
1421
- return log.sourceMethod === 'log';
1422
- if (flag === 'analytics')
1423
- return (log.message || '').toLowerCase().includes('[analytics');
1424
- }
1425
1437
  if (token === 'error' || token === 'err') {
1426
1438
  return log.type === 'error' || searchTarget.includes(token);
1427
1439
  }
1428
1440
  if (token === 'warn' || token === 'warning') {
1429
1441
  return log.type === 'warn' || searchTarget.includes(token);
1430
1442
  }
1443
+ if (token === 'info') {
1444
+ return log.type === 'info' || searchTarget.includes(token);
1445
+ }
1431
1446
  return searchTarget.includes(token);
1432
1447
  });
1433
1448
  });
@@ -1472,8 +1487,20 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
1472
1487
  log.caller || '',
1473
1488
  log.type || '',
1474
1489
  log.sourceMethod || '',
1490
+ log.stack || '',
1475
1491
  ].join(' ').toLowerCase();
1476
- return queryTokens.every(token => searchTarget.includes(token));
1492
+ return queryTokens.every(token => {
1493
+ if (token === 'error' || token === 'err') {
1494
+ return log.type === 'error' || searchTarget.includes(token);
1495
+ }
1496
+ if (token === 'warn' || token === 'warning') {
1497
+ return log.type === 'warn' || searchTarget.includes(token);
1498
+ }
1499
+ if (token === 'info') {
1500
+ return log.type === 'info' || searchTarget.includes(token);
1501
+ }
1502
+ return searchTarget.includes(token);
1503
+ });
1477
1504
  });
1478
1505
  }
1479
1506
  const total = visibleConsoleLogs.length;
@@ -1487,14 +1514,15 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
1487
1514
  };
1488
1515
  }, [visibleConsoleLogs, logSearch]);
1489
1516
  function closeModal() {
1490
- (0, InspectorContext_1.animateNextLayout)();
1491
1517
  setVisible(false);
1492
- setSelected(null);
1493
- setSelectedEvent(null);
1494
- setSelectedLog(null);
1495
- setSelectedReduxSlice(null);
1496
- setSelectedReduxAction(null);
1497
- setSelectedCrash(null);
1518
+ setTimeout(() => {
1519
+ setSelected(null);
1520
+ setSelectedEvent(null);
1521
+ setSelectedLog(null);
1522
+ setSelectedReduxSlice(null);
1523
+ setSelectedReduxAction(null);
1524
+ setSelectedCrash(null);
1525
+ }, 300);
1498
1526
  }
1499
1527
  function handleClearAll() {
1500
1528
  (0, networkLogger_1.clearNetworkLogs)();
@@ -1504,13 +1532,17 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
1504
1532
  setCollapsedSections(new Set());
1505
1533
  setStatusFilters(new Set());
1506
1534
  setMethodFilters(new Set());
1535
+ setSearch('');
1507
1536
  prevLogIdsRef.current = new Set();
1508
1537
  logRouteMapRef.current = new Map();
1509
1538
  (0, analyticsLogger_1.clearAnalyticsEvents)();
1510
1539
  setAnalyticsEvents([]);
1540
+ setAnalyticsSearch('');
1511
1541
  prevEventIdsRef.current = new Set();
1512
1542
  (0, consoleLogger_1.clearConsoleLogs)();
1513
1543
  setConsoleLogs([]);
1544
+ setLogFilters(new Set(['all']));
1545
+ setLogSearch('');
1514
1546
  }
1515
1547
  function handleDelete() {
1516
1548
  if (activeTab === 'logs') {
@@ -1624,7 +1656,7 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
1624
1656
  return next;
1625
1657
  });
1626
1658
  }, []);
1627
- const contextValue = {
1659
+ const contextValue = (0, react_1.useMemo)(() => ({
1628
1660
  visible,
1629
1661
  setVisible,
1630
1662
  closeModal,
@@ -1655,6 +1687,8 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
1655
1687
  setShowHeaderInfo,
1656
1688
  settingsPage,
1657
1689
  setSettingsPage,
1690
+ isFeedbackOpen,
1691
+ setIsFeedbackOpen,
1658
1692
  updateAvailable,
1659
1693
  latestNpmVersion,
1660
1694
  clearAnim,
@@ -1791,7 +1825,114 @@ const NetworkInspector = ({ enabled = true, storage, navigationRef, appIcon, env
1791
1825
  setReduxAutoRefreshState,
1792
1826
  reduxExpandDepth,
1793
1827
  setReduxExpandDepth,
1794
- };
1828
+ }), [
1829
+ visible,
1830
+ closeModal,
1831
+ isReady,
1832
+ enabled,
1833
+ appIcon,
1834
+ environment,
1835
+ modalHeightPercent,
1836
+ modalAnimationType,
1837
+ hasNavigationContext,
1838
+ setNavState,
1839
+ activeTab,
1840
+ switchActiveTab,
1841
+ tabVisibility,
1842
+ toggleTabVisibility,
1843
+ lastReadApisCount,
1844
+ lastReadLogsCount,
1845
+ selected,
1846
+ selectedEvent,
1847
+ selectedLog,
1848
+ showHeaderInfo,
1849
+ settingsPage,
1850
+ isFeedbackOpen,
1851
+ updateAvailable,
1852
+ latestNpmVersion,
1853
+ clearAnim,
1854
+ activePulseAnim,
1855
+ unreadPulseAnim,
1856
+ runClearAllWithAnimation,
1857
+ useNativeFab,
1858
+ fabPan,
1859
+ fabPanResponder,
1860
+ pulseAnim,
1861
+ fabShineAnim,
1862
+ logs,
1863
+ filteredLogs,
1864
+ groupedData,
1865
+ search,
1866
+ searchScope,
1867
+ isRegexSearch,
1868
+ isCaseSensitive,
1869
+ quickFilter,
1870
+ statusFilters,
1871
+ methodFilters,
1872
+ availableMethods,
1873
+ sortOrder,
1874
+ selectedLogs,
1875
+ toggleSelect,
1876
+ minStart,
1877
+ totalRange,
1878
+ newLogIds,
1879
+ toggleSectionFilter,
1880
+ toggleSectionCollapse,
1881
+ handleDelete,
1882
+ isNetworkPaused,
1883
+ detailTitle,
1884
+ detailDisplayUrl,
1885
+ apiDetailActiveTab,
1886
+ detailSearch,
1887
+ reqExpanded,
1888
+ resExpanded,
1889
+ showReqDiff,
1890
+ showResDiff,
1891
+ prevRequestData,
1892
+ prevResponseData,
1893
+ consoleLogs,
1894
+ visibleConsoleLogs,
1895
+ filteredConsoleLogs,
1896
+ logSearch,
1897
+ logFilters,
1898
+ logCounts,
1899
+ logSortOrder,
1900
+ isConsolePaused,
1901
+ analyticsEvents,
1902
+ filteredAnalyticsEvents,
1903
+ analyticsSearch,
1904
+ analyticsFilters,
1905
+ isAnalyticsFilterApplied,
1906
+ resetAnalyticsFilters,
1907
+ newEventIds,
1908
+ isAnalyticsLayoutReady,
1909
+ analyticsHeaderExpanded,
1910
+ isAnalyticsPaused,
1911
+ reduxState,
1912
+ reduxLastActionMap,
1913
+ reduxSearch,
1914
+ selectedReduxSlice,
1915
+ selectedReduxAction,
1916
+ reduxActiveSubTab,
1917
+ crashRecords,
1918
+ selectedCrash,
1919
+ lastReadCrashesCount,
1920
+ maxCrashLogs,
1921
+ settingsActiveSubTab,
1922
+ defaultTab,
1923
+ isDark,
1924
+ showDuplicateLogs,
1925
+ showUpdateToast,
1926
+ showConsoleLevels,
1927
+ storage,
1928
+ maxNetworkLogs,
1929
+ maxConsoleLogs,
1930
+ maxAnalyticsEventsLimit,
1931
+ isAutoRamLimitEnabled,
1932
+ deviceFreeRamMb,
1933
+ reduxAutoRefresh,
1934
+ reduxExpandDepth,
1935
+ ]);
1795
1936
  return (<InspectorContext_1.InspectorContext.Provider value={contextValue}>
1796
1937
  <MainScreen_1.default />
1797
1938
  </InspectorContext_1.InspectorContext.Provider>);
@@ -1990,5 +2131,8 @@ Object.defineProperty(exports, "setLanguage", { enumerable: true, get: function
1990
2131
  Object.defineProperty(exports, "addTranslations", { enumerable: true, get: function () { return i18n_2.addTranslations; } });
1991
2132
  Object.defineProperty(exports, "setTranslations", { enumerable: true, get: function () { return i18n_2.setTranslations; } });
1992
2133
  Object.defineProperty(exports, "I18nextProvider", { enumerable: true, get: function () { return i18n_2.I18nextProvider; } });
2134
+ var remoteConfig_2 = require("./helpers/remoteConfig");
2135
+ Object.defineProperty(exports, "fetchRemoteConfigModuleStatus", { enumerable: true, get: function () { return remoteConfig_2.fetchRemoteConfigModuleStatus; } });
2136
+ Object.defineProperty(exports, "isFirebaseRemoteConfigAvailable", { enumerable: true, get: function () { return remoteConfig_2.isFirebaseRemoteConfigAvailable; } });
1993
2137
  var version_1 = require("./constants/version");
1994
2138
  Object.defineProperty(exports, "LIB_VERSION", { enumerable: true, get: function () { return version_1.LIB_VERSION; } });
@@ -1,12 +1,14 @@
1
1
  export interface AppFontConfig {
2
2
  interRegular?: string;
3
3
  interMedium?: string;
4
+ interSemiBold?: string;
4
5
  interBold?: string;
5
6
  Sfprotext?: string;
6
7
  }
7
8
  export declare const AppFonts: {
8
9
  interRegular: string;
9
10
  interMedium: string;
11
+ interSemiBold: string;
10
12
  interBold: string;
11
13
  Sfprotext: string;
12
14
  };
@@ -4,6 +4,7 @@ exports.setAppFonts = exports.AppFonts = void 0;
4
4
  exports.AppFonts = {
5
5
  interRegular: 'Inter-Regular',
6
6
  interMedium: 'Inter-Medium',
7
+ interSemiBold: 'Inter-SemiBold',
7
8
  interBold: 'Inter-Bold',
8
9
  Sfprotext: 'Inter-Regular',
9
10
  };
@@ -149,6 +149,28 @@ export declare const getRawStyles: (colors: typeof AppColors) => {
149
149
  listContent: {
150
150
  paddingBottom: number;
151
151
  };
152
+ supportFab: {
153
+ position: string;
154
+ bottom: number;
155
+ right: number;
156
+ width: number;
157
+ height: number;
158
+ borderRadius: number;
159
+ backgroundColor: string;
160
+ alignItems: string;
161
+ justifyContent: string;
162
+ shadowColor: string;
163
+ shadowOffset: {
164
+ width: number;
165
+ height: number;
166
+ };
167
+ shadowOpacity: number;
168
+ shadowRadius: number;
169
+ elevation: number;
170
+ zIndex: number;
171
+ borderWidth: number;
172
+ borderColor: string;
173
+ };
152
174
  scrollTopBtn: {
153
175
  position: string;
154
176
  bottom: number;
@@ -173,6 +173,25 @@ const getRawStyles = (colors) => ({
173
173
  letterSpacing: 0.2,
174
174
  },
175
175
  listContent: { paddingBottom: react_native_1.Platform.OS === 'ios' ? 44 : 32 },
176
+ supportFab: {
177
+ position: 'absolute',
178
+ bottom: 22,
179
+ right: 16,
180
+ width: 42,
181
+ height: 42,
182
+ borderRadius: 21,
183
+ backgroundColor: colors.purple,
184
+ alignItems: 'center',
185
+ justifyContent: 'center',
186
+ shadowColor: colors.purple,
187
+ shadowOffset: { width: 0, height: 4 },
188
+ shadowOpacity: 0.45,
189
+ shadowRadius: 8,
190
+ elevation: 14,
191
+ zIndex: 999,
192
+ borderWidth: 1.5,
193
+ borderColor: 'rgba(255, 255, 255, 0.25)',
194
+ },
176
195
  scrollTopBtn: {
177
196
  position: 'absolute',
178
197
  bottom: 22,
@@ -67,6 +67,7 @@ export declare const SettingsSubTab: {
67
67
  readonly Module: "module";
68
68
  readonly Ui: "ui";
69
69
  readonly Limits: "limits";
70
+ readonly About: "about";
70
71
  };
71
72
  export type SettingsSubTab = (typeof SettingsSubTab)[keyof typeof SettingsSubTab];
72
73
  export declare const LogFilter: {
@@ -63,6 +63,7 @@ exports.SettingsSubTab = {
63
63
  Module: 'module',
64
64
  Ui: 'ui',
65
65
  Limits: 'limits',
66
+ About: 'about',
66
67
  };
67
68
  exports.LogFilter = {
68
69
  All: 'all',
@@ -151,8 +151,17 @@ export interface PersistedSettings {
151
151
  reduxExpandDepth?: number;
152
152
  showDuplicateLogs?: boolean;
153
153
  showUpdateToast?: boolean;
154
+ useNativeFab?: boolean;
155
+ shakeToOpen?: boolean;
154
156
  telemetryClientId?: string;
157
+ telemetryDeviceId?: string;
158
+ deviceRegistered?: boolean;
159
+ deviceFirstSeen?: number;
155
160
  telemetryLastPing?: number;
161
+ telemetryLastActive?: number;
162
+ starPromptActioned?: boolean;
163
+ starPromptLastShown?: number;
164
+ starPromptFirstSeen?: number;
156
165
  }
157
166
  export interface NetworkInspectorProps {
158
167
  enabled?: boolean;
@@ -163,6 +172,7 @@ export interface NetworkInspectorProps {
163
172
  environment?: 'DEV' | 'UAT' | 'PrePROD' | 'PROD' | 'QA' | 'Staging' | string;
164
173
  initialVisible?: boolean;
165
174
  visible?: boolean;
175
+ remoteConfig?: boolean | any;
166
176
  }
167
177
  export interface NavigationTrackerProps {
168
178
  onStateChange: (state: any) => void;
@@ -198,6 +208,8 @@ export interface InspectorContextValue {
198
208
  setShowHeaderInfo: React.Dispatch<React.SetStateAction<boolean>>;
199
209
  settingsPage: SettingsPage;
200
210
  setSettingsPage: React.Dispatch<React.SetStateAction<SettingsPage>>;
211
+ isFeedbackOpen: boolean;
212
+ setIsFeedbackOpen: React.Dispatch<React.SetStateAction<boolean>>;
201
213
  updateAvailable: boolean;
202
214
  latestNpmVersion: string | null;
203
215
  clearAnim: Animated.Value;
@@ -5,15 +5,15 @@ const AnimatedEntrance = React.memo(function AnimatedEntrance({ children, delay
5
5
  return <View style={style}>{children}</View>;
6
6
  }
7
7
  const progress = useRef(new Animated.Value(0)).current;
8
+ const initialIndex = useRef(index).current;
8
9
  useEffect(() => {
9
- progress.setValue(0);
10
10
  Animated.timing(progress, {
11
11
  toValue: 1,
12
12
  duration,
13
- delay: delay + Math.min(index, 12) * 18,
13
+ delay: delay + Math.min(initialIndex, 8) * 12,
14
14
  useNativeDriver: true,
15
15
  }).start();
16
- }, [delay, duration, index, progress]);
16
+ }, []);
17
17
  return (<Animated.View style={[
18
18
  style,
19
19
  {