react-native-inapp-inspector 2.0.4 → 2.0.6
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/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
- package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/9.2.0/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build/reports/problems/problems-report.html +659 -0
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +11 -0
- package/dist/commonjs/components/Inspector/AuditTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/AuditTab.js +741 -0
- package/dist/commonjs/components/Inspector/DeviceTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/DeviceTab.js +717 -0
- package/dist/commonjs/components/Inspector/InspectorHeader.js +115 -75
- package/dist/commonjs/components/Inspector/MainScreen.js +16 -2
- package/dist/commonjs/components/Inspector/NetworkDetail.js +15 -0
- package/dist/commonjs/components/Inspector/NetworkTab.js +317 -12
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +88 -39
- package/dist/commonjs/components/Inspector/PerformanceHud.d.ts +7 -0
- package/dist/commonjs/components/Inspector/PerformanceHud.js +210 -0
- package/dist/commonjs/components/Inspector/PerformanceTab.js +30 -18
- package/dist/commonjs/components/Inspector/RequestReplayModal.d.ts +9 -0
- package/dist/commonjs/components/Inspector/RequestReplayModal.js +792 -0
- package/dist/commonjs/components/Inspector/RequestReplayView.d.ts +8 -0
- package/dist/commonjs/components/Inspector/RequestReplayView.js +871 -0
- package/dist/commonjs/components/Inspector/SettingsPanel.js +847 -370
- package/dist/commonjs/components/Inspector/StorageTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/StorageTab.js +610 -0
- package/dist/commonjs/components/Inspector/TabBar.js +23 -2
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.d.ts +8 -0
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +469 -0
- package/dist/commonjs/components/NetworkIcons.d.ts +12 -0
- package/dist/commonjs/components/NetworkIcons.js +72 -3
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/storageInspector.d.ts +13 -0
- package/dist/commonjs/customHooks/storageInspector.js +179 -0
- package/dist/commonjs/helpers/deviceInfo.d.ts +4 -0
- package/dist/commonjs/helpers/deviceInfo.js +94 -0
- package/dist/commonjs/helpers/index.d.ts +2 -0
- package/dist/commonjs/helpers/index.js +12 -1
- package/dist/commonjs/helpers/packageAuditor.d.ts +5 -0
- package/dist/commonjs/helpers/packageAuditor.js +182 -0
- package/dist/commonjs/helpers/searchQueryParser.d.ts +8 -3
- package/dist/commonjs/helpers/searchQueryParser.js +85 -31
- package/dist/commonjs/helpers/telemetry.js +4 -4
- package/dist/commonjs/i18n/locales/en.json +3 -2
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.js +171 -16
- package/dist/commonjs/native/NativeInspector.d.ts +1 -0
- package/dist/commonjs/types/enums.d.ts +7 -0
- package/dist/commonjs/types/enums.js +7 -0
- package/dist/commonjs/types/interfaces.d.ts +82 -0
- package/dist/esm/components/Inspector/AuditTab.d.ts +3 -0
- package/dist/esm/components/Inspector/AuditTab.js +702 -0
- package/dist/esm/components/Inspector/DeviceTab.d.ts +3 -0
- package/dist/esm/components/Inspector/DeviceTab.js +678 -0
- package/dist/esm/components/Inspector/InspectorHeader.js +115 -75
- package/dist/esm/components/Inspector/MainScreen.js +16 -2
- package/dist/esm/components/Inspector/NetworkDetail.js +16 -1
- package/dist/esm/components/Inspector/NetworkTab.js +317 -12
- package/dist/esm/components/Inspector/NpmUpdateToast.js +88 -39
- package/dist/esm/components/Inspector/PerformanceHud.d.ts +7 -0
- package/dist/esm/components/Inspector/PerformanceHud.js +170 -0
- package/dist/esm/components/Inspector/PerformanceTab.js +31 -19
- package/dist/esm/components/Inspector/RequestReplayModal.d.ts +9 -0
- package/dist/esm/components/Inspector/RequestReplayModal.js +752 -0
- package/dist/esm/components/Inspector/RequestReplayView.d.ts +8 -0
- package/dist/esm/components/Inspector/RequestReplayView.js +831 -0
- package/dist/esm/components/Inspector/SettingsPanel.js +848 -371
- package/dist/esm/components/Inspector/StorageTab.d.ts +3 -0
- package/dist/esm/components/Inspector/StorageTab.js +571 -0
- package/dist/esm/components/Inspector/TabBar.js +24 -3
- package/dist/esm/components/Inspector/UpdateAvailableModal.d.ts +8 -0
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +432 -0
- package/dist/esm/components/NetworkIcons.d.ts +12 -0
- package/dist/esm/components/NetworkIcons.js +57 -0
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/storageInspector.d.ts +13 -0
- package/dist/esm/customHooks/storageInspector.js +170 -0
- package/dist/esm/helpers/deviceInfo.d.ts +4 -0
- package/dist/esm/helpers/deviceInfo.js +89 -0
- package/dist/esm/helpers/index.d.ts +2 -0
- package/dist/esm/helpers/index.js +10 -0
- package/dist/esm/helpers/packageAuditor.d.ts +5 -0
- package/dist/esm/helpers/packageAuditor.js +173 -0
- package/dist/esm/helpers/searchQueryParser.d.ts +8 -3
- package/dist/esm/helpers/searchQueryParser.js +85 -31
- package/dist/esm/helpers/telemetry.js +4 -4
- package/dist/esm/i18n/locales/en.json +3 -2
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +167 -15
- package/dist/esm/native/NativeInspector.d.ts +1 -0
- package/dist/esm/types/enums.d.ts +7 -0
- package/dist/esm/types/enums.js +7 -0
- package/dist/esm/types/interfaces.d.ts +82 -0
- package/ios/NetworkInspectorModule.mm +12 -5
- package/package.json +4 -1
|
@@ -3,38 +3,74 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.matchNetworkLogQuery = matchNetworkLogQuery;
|
|
4
4
|
/**
|
|
5
5
|
* Parses query strings like `method:POST is:error slow:>1s status:200 auth`
|
|
6
|
-
* and checks whether a given NetworkLog matches all tokens.
|
|
6
|
+
* and checks whether a given NetworkLog matches all tokens against the specified scope.
|
|
7
7
|
*/
|
|
8
|
-
function matchNetworkLogQuery(log, searchQuery, routePath) {
|
|
8
|
+
function matchNetworkLogQuery(log, searchQuery, routePath, options) {
|
|
9
9
|
if (!searchQuery || searchQuery.trim().length === 0)
|
|
10
10
|
return true;
|
|
11
|
-
const rawTokens = searchQuery
|
|
12
|
-
.trim()
|
|
13
|
-
.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g) || [];
|
|
11
|
+
const rawTokens = searchQuery.trim().match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g) || [];
|
|
14
12
|
if (rawTokens.length === 0)
|
|
15
13
|
return true;
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
14
|
+
const isCaseSensitive = Boolean(options?.isCaseSensitive);
|
|
15
|
+
const isRegex = Boolean(options?.isRegex);
|
|
16
|
+
const scope = options?.scope || 'all';
|
|
17
|
+
const methodRaw = log.method || '';
|
|
18
|
+
const urlRaw = log.url || '';
|
|
19
|
+
const statusNum = typeof log.status === 'number'
|
|
20
|
+
? log.status
|
|
21
|
+
: parseInt(String(log.status || 0), 10);
|
|
19
22
|
const statusStr = String(log.status ?? '');
|
|
20
23
|
const durationNum = log.duration || 0;
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
24
|
+
const clientRaw = log.client || '';
|
|
25
|
+
const reqRaw = typeof log.request === 'string'
|
|
26
|
+
? log.request
|
|
27
|
+
: JSON.stringify(log.request || '');
|
|
28
|
+
const resRaw = typeof log.response === 'string'
|
|
29
|
+
? log.response
|
|
30
|
+
: JSON.stringify(log.response || '');
|
|
31
|
+
const reqHeadersRaw = JSON.stringify(log.requestHeaders || '');
|
|
32
|
+
const resHeadersRaw = JSON.stringify(log.responseHeaders || '');
|
|
33
|
+
const pathRaw = routePath || '';
|
|
34
|
+
// Construct search corpus based on active scope
|
|
35
|
+
const getScopedCorpus = (caseSens) => {
|
|
36
|
+
let parts = [];
|
|
37
|
+
if (scope === 'url') {
|
|
38
|
+
parts = [methodRaw, urlRaw, pathRaw];
|
|
39
|
+
}
|
|
40
|
+
else if (scope === 'reqBody') {
|
|
41
|
+
parts = [reqRaw];
|
|
42
|
+
}
|
|
43
|
+
else if (scope === 'resBody') {
|
|
44
|
+
parts = [resRaw];
|
|
45
|
+
}
|
|
46
|
+
else if (scope === 'headers') {
|
|
47
|
+
parts = [reqHeadersRaw, resHeadersRaw];
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
parts = [
|
|
51
|
+
methodRaw,
|
|
52
|
+
urlRaw,
|
|
53
|
+
statusStr,
|
|
54
|
+
pathRaw,
|
|
55
|
+
clientRaw,
|
|
56
|
+
reqRaw,
|
|
57
|
+
resRaw,
|
|
58
|
+
reqHeadersRaw,
|
|
59
|
+
resHeadersRaw,
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
const combined = parts.join(' ');
|
|
63
|
+
return caseSens ? combined : combined.toLowerCase();
|
|
64
|
+
};
|
|
65
|
+
const targetCorpus = getScopedCorpus(isCaseSensitive);
|
|
66
|
+
const methodStr = methodRaw.toLowerCase();
|
|
67
|
+
const urlStr = urlRaw.toLowerCase();
|
|
68
|
+
const clientStr = clientRaw.toLowerCase();
|
|
69
|
+
const reqStr = reqRaw.toLowerCase();
|
|
70
|
+
const resStr = resRaw.toLowerCase();
|
|
71
|
+
const reqHeadersStr = reqHeadersRaw.toLowerCase();
|
|
72
|
+
const resHeadersStr = resHeadersRaw.toLowerCase();
|
|
73
|
+
const pathStr = pathRaw.toLowerCase();
|
|
38
74
|
for (const rawToken of rawTokens) {
|
|
39
75
|
const token = rawToken.replace(/^["']|["']$/g, '').trim();
|
|
40
76
|
if (!token)
|
|
@@ -96,7 +132,10 @@ function matchNetworkLogQuery(log, searchQuery, routePath) {
|
|
|
96
132
|
// 3. is:<FLAG>
|
|
97
133
|
if (lowerToken.startsWith('is:')) {
|
|
98
134
|
const flag = lowerToken.slice(3).trim();
|
|
99
|
-
if (flag === 'error' ||
|
|
135
|
+
if (flag === 'error' ||
|
|
136
|
+
flag === 'failed' ||
|
|
137
|
+
flag === 'err' ||
|
|
138
|
+
flag === 'fail') {
|
|
100
139
|
const isErr = log.status === 0 || log.status == null || statusNum >= 400;
|
|
101
140
|
if (!isErr)
|
|
102
141
|
return false;
|
|
@@ -208,14 +247,14 @@ function matchNetworkLogQuery(log, searchQuery, routePath) {
|
|
|
208
247
|
// 8. req:<TERM> or body:<TERM>
|
|
209
248
|
if (lowerToken.startsWith('req:') || lowerToken.startsWith('body:')) {
|
|
210
249
|
const target = lowerToken.replace(/^(req:|body:)/, '').trim();
|
|
211
|
-
if (!reqStr.
|
|
250
|
+
if (!reqStr.includes(target))
|
|
212
251
|
return false;
|
|
213
252
|
continue;
|
|
214
253
|
}
|
|
215
254
|
// 9. res:<TERM>
|
|
216
255
|
if (lowerToken.startsWith('res:')) {
|
|
217
256
|
const target = lowerToken.slice(4).trim();
|
|
218
|
-
if (!resStr.
|
|
257
|
+
if (!resStr.includes(target))
|
|
219
258
|
return false;
|
|
220
259
|
continue;
|
|
221
260
|
}
|
|
@@ -227,9 +266,24 @@ function matchNetworkLogQuery(log, searchQuery, routePath) {
|
|
|
227
266
|
}
|
|
228
267
|
continue;
|
|
229
268
|
}
|
|
230
|
-
// 11. Generic
|
|
231
|
-
if (
|
|
232
|
-
|
|
269
|
+
// 11. Generic Match (handles Regex, Case-sensitivity, and Scoped corpus)
|
|
270
|
+
if (isRegex) {
|
|
271
|
+
try {
|
|
272
|
+
const re = new RegExp(token, isCaseSensitive ? '' : 'i');
|
|
273
|
+
if (!re.test(targetCorpus))
|
|
274
|
+
return false;
|
|
275
|
+
}
|
|
276
|
+
catch {
|
|
277
|
+
const queryTerm = isCaseSensitive ? token : lowerToken;
|
|
278
|
+
if (!targetCorpus.includes(queryTerm))
|
|
279
|
+
return false;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
const queryTerm = isCaseSensitive ? token : lowerToken;
|
|
284
|
+
if (!targetCorpus.includes(queryTerm)) {
|
|
285
|
+
return false;
|
|
286
|
+
}
|
|
233
287
|
}
|
|
234
288
|
}
|
|
235
289
|
return true;
|
|
@@ -31,8 +31,8 @@ const constants_1 = require("../constants");
|
|
|
31
31
|
const NativeInspector_1 = require("../native/NativeInspector");
|
|
32
32
|
// ─── GA4 Measurement Protocol Configuration ──────────────────────────────────
|
|
33
33
|
// Automatically replaced at build-time from .env by scripts/inject-telemetry.js
|
|
34
|
-
exports.GA4_MEASUREMENT_ID = 'G-
|
|
35
|
-
exports.GA4_API_SECRET = '
|
|
34
|
+
exports.GA4_MEASUREMENT_ID = 'G-3QGMQVZX5V';
|
|
35
|
+
exports.GA4_API_SECRET = 'C46RQZ3PTfmHDnLnvU3KIg';
|
|
36
36
|
const GA4_ENDPOINT = 'https://www.google-analytics.com/mp/collect';
|
|
37
37
|
const CLIENT_ID_KEY = 'telemetry_client_id';
|
|
38
38
|
// Stable session ID created once per JavaScript runtime instance
|
|
@@ -254,9 +254,9 @@ async function trackTelemetryEvent(eventName, params = {}, options) {
|
|
|
254
254
|
return;
|
|
255
255
|
// Don't send if credentials haven't been configured yet
|
|
256
256
|
if (!exports.GA4_MEASUREMENT_ID ||
|
|
257
|
-
exports.GA4_MEASUREMENT_ID === 'G-
|
|
257
|
+
exports.GA4_MEASUREMENT_ID === 'G-3QGMQVZX5V' ||
|
|
258
258
|
!exports.GA4_API_SECRET ||
|
|
259
|
-
exports.GA4_API_SECRET === '
|
|
259
|
+
exports.GA4_API_SECRET === 'C46RQZ3PTfmHDnLnvU3KIg') {
|
|
260
260
|
return;
|
|
261
261
|
}
|
|
262
262
|
try {
|
|
@@ -50,8 +50,9 @@
|
|
|
50
50
|
"activeBadge": "ACTIVE",
|
|
51
51
|
"dormantBadge": "DORMANT",
|
|
52
52
|
"protectedBadge": "PROTECTED",
|
|
53
|
-
"modulesAndTools": "Modules &
|
|
54
|
-
"
|
|
53
|
+
"modulesAndTools": "Modules & Tabs",
|
|
54
|
+
"ramLimits": "RAM & Limits",
|
|
55
|
+
"uiPreferences": "UI & Appearance",
|
|
55
56
|
"zeroOverheadTitle": "Zero Background Overhead",
|
|
56
57
|
"zeroOverheadDesc": "Check the modules you wish to activate. Disabled modules consume 0% CPU & memory until saved.",
|
|
57
58
|
"unsavedPending": "● Unsaved selections pending",
|
package/dist/commonjs/index.d.ts
CHANGED
|
@@ -14,5 +14,6 @@ export { usePerformanceTracker, useComponentProfiler, useNavigationProfiler, tra
|
|
|
14
14
|
export { InspectLog, InspectTrackTime, InspectCatch, type InspectLogOptions, } from './decorators';
|
|
15
15
|
export { getNativeDeviceMetrics, enableNativeCrashProtection, subscribeNativeCrashes, showNativeFloatingButton, hideNativeFloatingButton, setNativeFloatingButtonBadge, subscribeNativeFloatingButtonPress, subscribeNativeDeviceShake, startNativeFpsMonitoring, stopNativeFpsMonitoring, getNativeFpsMetrics, getNativeStorageItem, setNativeStorageItem, isNativeModuleAvailable, type NativeDeviceMetrics, type NativeCrashEvent, type FloatingButtonOptions, type NativeFpsMetrics, } from './native/NativeInspector';
|
|
16
16
|
export { sendSessionTelemetryPing, trackTelemetryEvent, trackInspectorOpen, trackTabSwitch, trackLogExport, GA4_MEASUREMENT_ID, GA4_API_SECRET, } from './helpers';
|
|
17
|
+
export { runLivePackageAudit, logCodeQualityIssue, clearCustomAuditIssues, } from './helpers/packageAuditor';
|
|
17
18
|
export { BrandSquareIcon, BrandCircleIcon, } from './components/NetworkIcons';
|
|
18
19
|
export { ActiveTab, Method, StatusFilter, SortOrder, LocalFilter, ModalAnimationType, SettingsPage, SettingsSubTab, LogFilter, ConsoleLogType, AnalyticsEventSource, GAEventCategory, StackFrameType, DiffResultType, BundleSubTab, PerformanceSubTab, CrashType, CrashExportFormat, CrashDetailSubTab, CrashFilterType, BreadcrumbType, } from './types';
|
package/dist/commonjs/index.js
CHANGED
|
@@ -37,8 +37,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
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
|
-
exports.
|
|
41
|
-
exports.BreadcrumbType = exports.CrashFilterType = exports.CrashDetailSubTab = exports.CrashExportFormat = exports.CrashType = exports.PerformanceSubTab = void 0;
|
|
40
|
+
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.BrandCircleIcon = exports.BrandSquareIcon = exports.clearCustomAuditIssues = exports.logCodeQualityIssue = exports.runLivePackageAudit = exports.GA4_API_SECRET = exports.GA4_MEASUREMENT_ID = exports.trackLogExport = exports.trackTabSwitch = exports.trackInspectorOpen = exports.trackTelemetryEvent = exports.sendSessionTelemetryPing = 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.BreadcrumbType = exports.CrashFilterType = exports.CrashDetailSubTab = exports.CrashExportFormat = exports.CrashType = exports.PerformanceSubTab = exports.BundleSubTab = exports.DiffResultType = exports.StackFrameType = 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");
|
|
@@ -64,14 +64,22 @@ const analyticsLogger_1 = require("./customHooks/analyticsLogger");
|
|
|
64
64
|
const reduxLogger_1 = require("./customHooks/reduxLogger");
|
|
65
65
|
const performanceTracker_1 = require("./customHooks/performanceTracker");
|
|
66
66
|
const bundleAnalyzer_1 = require("./customHooks/bundleAnalyzer");
|
|
67
|
+
const storageInspector_1 = require("./customHooks/storageInspector");
|
|
68
|
+
const deviceInfo_1 = require("./helpers/deviceInfo");
|
|
69
|
+
const packageAuditor_1 = require("./helpers/packageAuditor");
|
|
67
70
|
const NativeInspector_2 = require("./native/NativeInspector");
|
|
68
71
|
const constants_1 = require("./constants");
|
|
69
72
|
// Stylesheet
|
|
70
73
|
const styles_1 = require("./styles");
|
|
71
|
-
const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigationRef, appIcon, environment, initialVisible, visible: controlledVisible, }) => {
|
|
74
|
+
const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigationRef, appIcon, environment, initialVisible, visible: controlledVisible, initialTab, enablePerformanceHud = false, }) => {
|
|
75
|
+
// Zero-overhead production stub: if disabled, return null immediately
|
|
76
|
+
if (!enabled || !isEnabled) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
72
79
|
// Set custom storage synchronously during render phase
|
|
73
80
|
(0, settingsStore_1.setCustomStorage)(storage || null);
|
|
74
81
|
const [isDark, setIsDark] = (0, react_1.useState)(false);
|
|
82
|
+
const [isPerformanceHudEnabled, setIsPerformanceHudEnabled] = (0, react_1.useState)(enablePerformanceHud);
|
|
75
83
|
const [reduxState, setReduxState] = (0, react_1.useState)(null);
|
|
76
84
|
// Per-reducer last action is kept in component state so the
|
|
77
85
|
// Redux tab re-renders live on every dispatch, independent of the state tree ref.
|
|
@@ -86,10 +94,19 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
86
94
|
setVisible(controlledVisible);
|
|
87
95
|
}
|
|
88
96
|
}, [controlledVisible]);
|
|
97
|
+
(0, react_1.useEffect)(() => {
|
|
98
|
+
if (enablePerformanceHud !== undefined) {
|
|
99
|
+
setIsPerformanceHudEnabled(enablePerformanceHud);
|
|
100
|
+
}
|
|
101
|
+
}, [enablePerformanceHud]);
|
|
89
102
|
const [isReady, setIsReady] = (0, react_1.useState)(false);
|
|
90
103
|
const [selected, setSelected] = (0, react_1.useState)(null);
|
|
91
104
|
const [selectedLogs, setSelectedLogs] = (0, react_1.useState)(new Set());
|
|
92
105
|
const [search, setSearch] = (0, react_1.useState)('');
|
|
106
|
+
const [searchScope, setSearchScope] = (0, react_1.useState)('all');
|
|
107
|
+
const [isRegexSearch, setIsRegexSearch] = (0, react_1.useState)(false);
|
|
108
|
+
const [isCaseSensitive, setIsCaseSensitive] = (0, react_1.useState)(false);
|
|
109
|
+
const [quickFilter, setQuickFilter] = (0, react_1.useState)('all');
|
|
93
110
|
const [detailSearch, setDetailSearch] = (0, react_1.useState)('');
|
|
94
111
|
const [reduxSearch, setReduxSearch] = (0, react_1.useState)('');
|
|
95
112
|
const [selectedReduxSlice, setSelectedReduxSlice] = (0, react_1.useState)(null);
|
|
@@ -121,7 +138,7 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
121
138
|
const [showReqDiff, setShowReqDiff] = (0, react_1.useState)(false);
|
|
122
139
|
const [showResDiff, setShowResDiff] = (0, react_1.useState)(false);
|
|
123
140
|
// ─── Analytics state ───────────────────────────────────────────────────────
|
|
124
|
-
const [activeTab, setActiveTab] = (0, react_1.useState)('apis');
|
|
141
|
+
const [activeTab, setActiveTab] = (0, react_1.useState)(initialTab || 'apis');
|
|
125
142
|
const [analyticsEvents, setAnalyticsEvents] = (0, react_1.useState)([]);
|
|
126
143
|
// ─── Logs state ────────────────────────────────────────────────────────────
|
|
127
144
|
const [consoleLogs, setConsoleLogs] = (0, react_1.useState)([]);
|
|
@@ -177,6 +194,47 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
177
194
|
setLastReadCrashesCount(crashRecords.length);
|
|
178
195
|
}
|
|
179
196
|
}, [activeTab, crashRecords.length]);
|
|
197
|
+
// ─── Storage state ─────────────────────────────────────────────────────────
|
|
198
|
+
const [storageEntries, setStorageEntries] = (0, react_1.useState)([]);
|
|
199
|
+
const [selectedStorageKey, setSelectedStorageKey] = (0, react_1.useState)(null);
|
|
200
|
+
const refreshStorageEntries = (0, react_1.useCallback)(async () => {
|
|
201
|
+
try {
|
|
202
|
+
const entries = await (0, storageInspector_1.fetchAllStorageEntries)();
|
|
203
|
+
setStorageEntries(entries);
|
|
204
|
+
}
|
|
205
|
+
catch { }
|
|
206
|
+
}, []);
|
|
207
|
+
const updateStorageEntry = (0, react_1.useCallback)(async (key, value) => {
|
|
208
|
+
await (0, storageInspector_1.setStorageItem)(key, value);
|
|
209
|
+
await refreshStorageEntries();
|
|
210
|
+
}, [refreshStorageEntries]);
|
|
211
|
+
const deleteStorageEntry = (0, react_1.useCallback)(async (key) => {
|
|
212
|
+
await (0, storageInspector_1.removeStorageItem)(key);
|
|
213
|
+
await refreshStorageEntries();
|
|
214
|
+
}, [refreshStorageEntries]);
|
|
215
|
+
const clearAllStorageEntries = (0, react_1.useCallback)(async () => {
|
|
216
|
+
await (0, storageInspector_1.clearAllStorage)();
|
|
217
|
+
await refreshStorageEntries();
|
|
218
|
+
}, [refreshStorageEntries]);
|
|
219
|
+
(0, react_1.useEffect)(() => {
|
|
220
|
+
refreshStorageEntries();
|
|
221
|
+
const unsub = (0, storageInspector_1.subscribeStorageChanges)(refreshStorageEntries);
|
|
222
|
+
return () => unsub();
|
|
223
|
+
}, [refreshStorageEntries]);
|
|
224
|
+
// ─── Device info state ──────────────────────────────────────────────────────
|
|
225
|
+
const [deviceInfo] = (0, react_1.useState)(() => (0, deviceInfo_1.getSystemDiagnostics)());
|
|
226
|
+
// ─── Code Quality & Package Audit state ─────────────────────────────────────
|
|
227
|
+
const [auditReport, setAuditReport] = (0, react_1.useState)(() => (0, packageAuditor_1.runLivePackageAudit)());
|
|
228
|
+
(0, react_1.useEffect)(() => {
|
|
229
|
+
const unsub = (0, packageAuditor_1.subscribeAuditChanges)(setAuditReport);
|
|
230
|
+
return () => unsub();
|
|
231
|
+
}, []);
|
|
232
|
+
const refreshAuditReport = (0, react_1.useCallback)(() => {
|
|
233
|
+
setAuditReport((0, packageAuditor_1.runLivePackageAudit)());
|
|
234
|
+
}, []);
|
|
235
|
+
const logCustomAuditIssue = (0, react_1.useCallback)((issue) => {
|
|
236
|
+
(0, packageAuditor_1.logCodeQualityIssue)(issue);
|
|
237
|
+
}, []);
|
|
180
238
|
const [maxConsoleLogs, setMaxConsoleLogs] = (0, react_1.useState)(100);
|
|
181
239
|
const [showConsoleLevels, setShowConsoleLevels] = (0, react_1.useState)({
|
|
182
240
|
info: true,
|
|
@@ -217,6 +275,9 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
217
275
|
logs: true,
|
|
218
276
|
analytics: false,
|
|
219
277
|
redux: false,
|
|
278
|
+
storage: false,
|
|
279
|
+
device: false,
|
|
280
|
+
audit: false,
|
|
220
281
|
bundle: false,
|
|
221
282
|
performance: false,
|
|
222
283
|
crash: false,
|
|
@@ -271,6 +332,9 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
271
332
|
logs: true,
|
|
272
333
|
analytics: false,
|
|
273
334
|
redux: false,
|
|
335
|
+
storage: false,
|
|
336
|
+
device: false,
|
|
337
|
+
audit: false,
|
|
274
338
|
bundle: false,
|
|
275
339
|
performance: false,
|
|
276
340
|
crash: false,
|
|
@@ -308,14 +372,24 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
308
372
|
setModalHeightPercent(saved.modalHeightPercent);
|
|
309
373
|
if (saved.modalAnimationType)
|
|
310
374
|
setModalAnimationType(saved.modalAnimationType);
|
|
311
|
-
if (saved.tabVisibility)
|
|
375
|
+
if (saved.tabVisibility) {
|
|
376
|
+
const savedVis = saved.tabVisibility;
|
|
312
377
|
setTabVisibility(prev => ({
|
|
313
378
|
...prev,
|
|
314
|
-
...
|
|
379
|
+
...savedVis,
|
|
380
|
+
storage: savedVis.storage ?? false,
|
|
381
|
+
device: savedVis.device ?? false,
|
|
382
|
+
audit: savedVis.audit ?? false,
|
|
315
383
|
apis: true, // APIs is always required
|
|
316
384
|
}));
|
|
317
|
-
|
|
385
|
+
}
|
|
386
|
+
if (initialTab) {
|
|
387
|
+
setActiveTab(initialTab);
|
|
388
|
+
}
|
|
389
|
+
else if (saved.defaultTab) {
|
|
318
390
|
setDefaultTab(saved.defaultTab);
|
|
391
|
+
setActiveTab(saved.defaultTab);
|
|
392
|
+
}
|
|
319
393
|
if (saved.isAutoRamLimitEnabled != null)
|
|
320
394
|
setIsAutoRamLimitEnabled(saved.isAutoRamLimitEnabled);
|
|
321
395
|
if (saved.maxNetworkLogs != null)
|
|
@@ -336,7 +410,10 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
336
410
|
setShowDuplicateLogs(saved.showDuplicateLogs);
|
|
337
411
|
if (saved.showUpdateToast != null)
|
|
338
412
|
setShowUpdateToast(saved.showUpdateToast);
|
|
339
|
-
if (
|
|
413
|
+
if (initialTab) {
|
|
414
|
+
setActiveTab(initialTab);
|
|
415
|
+
}
|
|
416
|
+
else if (saved.defaultTab) {
|
|
340
417
|
const dt = saved.defaultTab;
|
|
341
418
|
const vis = {
|
|
342
419
|
...{
|
|
@@ -344,6 +421,9 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
344
421
|
logs: true,
|
|
345
422
|
analytics: false,
|
|
346
423
|
redux: false,
|
|
424
|
+
storage: false,
|
|
425
|
+
device: false,
|
|
426
|
+
audit: false,
|
|
347
427
|
bundle: false,
|
|
348
428
|
performance: false,
|
|
349
429
|
crash: false,
|
|
@@ -812,6 +892,12 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
812
892
|
? defaultTab
|
|
813
893
|
: 'apis';
|
|
814
894
|
setActiveTab(target);
|
|
895
|
+
setSelected(null);
|
|
896
|
+
setSelectedEvent(null);
|
|
897
|
+
setSelectedLog(null);
|
|
898
|
+
setSelectedReduxSlice(null);
|
|
899
|
+
setSelectedReduxAction(null);
|
|
900
|
+
setSelectedCrash(null);
|
|
815
901
|
// Track inspector opened event in GA4
|
|
816
902
|
(0, helpers_1.trackInspectorOpen)({ activeTab: target });
|
|
817
903
|
// Instant synchronization of data collected while modal was closed
|
|
@@ -1041,7 +1127,40 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1041
1127
|
}, [selected]);
|
|
1042
1128
|
const filteredLogs = (0, react_1.useMemo)(() => {
|
|
1043
1129
|
let result = logs.filter(log => {
|
|
1044
|
-
//
|
|
1130
|
+
// 1. Quick Filter Check (All, Errors, Success, Slow, GET, POST, GraphQL)
|
|
1131
|
+
if (quickFilter && quickFilter !== 'all') {
|
|
1132
|
+
if (quickFilter === 'errors') {
|
|
1133
|
+
const isErr = log.status === 0 ||
|
|
1134
|
+
log.status == null ||
|
|
1135
|
+
(typeof log.status === 'number' && log.status >= 400);
|
|
1136
|
+
if (!isErr)
|
|
1137
|
+
return false;
|
|
1138
|
+
}
|
|
1139
|
+
else if (quickFilter === 'success') {
|
|
1140
|
+
const isSuccess = typeof log.status === 'number' &&
|
|
1141
|
+
log.status >= 200 &&
|
|
1142
|
+
log.status < 400;
|
|
1143
|
+
if (!isSuccess)
|
|
1144
|
+
return false;
|
|
1145
|
+
}
|
|
1146
|
+
else if (quickFilter === 'slow') {
|
|
1147
|
+
if ((log.duration || 0) < 500)
|
|
1148
|
+
return false;
|
|
1149
|
+
}
|
|
1150
|
+
else if (quickFilter === 'graphql') {
|
|
1151
|
+
const isGql = (log.url || '').toLowerCase().includes('graphql') ||
|
|
1152
|
+
(log.client || '').toLowerCase().includes('graphql') ||
|
|
1153
|
+
(log.client || '').toLowerCase().includes('apollo');
|
|
1154
|
+
if (!isGql)
|
|
1155
|
+
return false;
|
|
1156
|
+
}
|
|
1157
|
+
else {
|
|
1158
|
+
if (log.method?.toUpperCase() !== quickFilter.toUpperCase()) {
|
|
1159
|
+
return false;
|
|
1160
|
+
}
|
|
1161
|
+
}
|
|
1162
|
+
}
|
|
1163
|
+
// 2. Status Filter Check (from filters accordion dropdown)
|
|
1045
1164
|
if (statusFilters.size > 0) {
|
|
1046
1165
|
const matched = [...statusFilters].some(f => {
|
|
1047
1166
|
if (f === 'ALL')
|
|
@@ -1057,7 +1176,7 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1057
1176
|
if (!matched)
|
|
1058
1177
|
return false;
|
|
1059
1178
|
}
|
|
1060
|
-
// Method Filter Check
|
|
1179
|
+
// 3. Method Filter Check (from filters accordion dropdown)
|
|
1061
1180
|
if (methodFilters.size > 0) {
|
|
1062
1181
|
const matchedMethod = [...methodFilters].some(m => {
|
|
1063
1182
|
if (m === 'ALL')
|
|
@@ -1067,10 +1186,14 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1067
1186
|
if (!matchedMethod)
|
|
1068
1187
|
return false;
|
|
1069
1188
|
}
|
|
1070
|
-
// Advanced Search Query Engine Check
|
|
1189
|
+
// 4. Advanced Search Query Engine Check with Scope, Regex and Case-Sensitivity
|
|
1071
1190
|
if (search && search.trim().length > 0) {
|
|
1072
1191
|
const routePath = logRouteMapRef.current.get(log.id)?.path || '';
|
|
1073
|
-
const isMatch = (0, helpers_1.matchNetworkLogQuery)(log, search, routePath
|
|
1192
|
+
const isMatch = (0, helpers_1.matchNetworkLogQuery)(log, search, routePath, {
|
|
1193
|
+
scope: searchScope,
|
|
1194
|
+
isRegex: isRegexSearch,
|
|
1195
|
+
isCaseSensitive: isCaseSensitive,
|
|
1196
|
+
});
|
|
1074
1197
|
if (!isMatch)
|
|
1075
1198
|
return false;
|
|
1076
1199
|
}
|
|
@@ -1079,9 +1202,7 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1079
1202
|
if (sortOrder === 'oldest') {
|
|
1080
1203
|
result = [...result].reverse();
|
|
1081
1204
|
}
|
|
1082
|
-
// #9 — collapse consecutive identical requests
|
|
1083
|
-
// status) into one row carrying a ×N counter, unless the user opted in
|
|
1084
|
-
// to seeing every duplicate via Settings → "Show Duplicate Logs".
|
|
1205
|
+
// #9 — collapse consecutive identical requests
|
|
1085
1206
|
if (!showDuplicateLogs) {
|
|
1086
1207
|
const collapsed = [];
|
|
1087
1208
|
for (const log of result) {
|
|
@@ -1105,6 +1226,10 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1105
1226
|
}, [
|
|
1106
1227
|
logs,
|
|
1107
1228
|
search,
|
|
1229
|
+
searchScope,
|
|
1230
|
+
isRegexSearch,
|
|
1231
|
+
isCaseSensitive,
|
|
1232
|
+
quickFilter,
|
|
1108
1233
|
statusFilters,
|
|
1109
1234
|
methodFilters,
|
|
1110
1235
|
sortOrder,
|
|
@@ -1655,6 +1780,14 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1655
1780
|
groupedData,
|
|
1656
1781
|
search,
|
|
1657
1782
|
setSearch,
|
|
1783
|
+
searchScope,
|
|
1784
|
+
setSearchScope,
|
|
1785
|
+
isRegexSearch,
|
|
1786
|
+
setIsRegexSearch,
|
|
1787
|
+
isCaseSensitive,
|
|
1788
|
+
setIsCaseSensitive,
|
|
1789
|
+
quickFilter,
|
|
1790
|
+
setQuickFilter,
|
|
1658
1791
|
statusFilters,
|
|
1659
1792
|
setStatusFilters,
|
|
1660
1793
|
methodFilters,
|
|
@@ -1744,6 +1877,20 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1744
1877
|
setCrashRecords([]);
|
|
1745
1878
|
setSelectedCrash(null);
|
|
1746
1879
|
},
|
|
1880
|
+
// ─── Storage ─────────────────────────────────────────────────────────
|
|
1881
|
+
storageEntries,
|
|
1882
|
+
refreshStorageEntries,
|
|
1883
|
+
updateStorageEntry,
|
|
1884
|
+
deleteStorageEntry,
|
|
1885
|
+
clearAllStorageEntries,
|
|
1886
|
+
selectedStorageKey,
|
|
1887
|
+
setSelectedStorageKey,
|
|
1888
|
+
// ─── Device ──────────────────────────────────────────────────────────
|
|
1889
|
+
deviceInfo,
|
|
1890
|
+
// ─── Audit / Code Quality ─────────────────────────────────────────────
|
|
1891
|
+
auditReport,
|
|
1892
|
+
refreshAuditReport,
|
|
1893
|
+
logCustomAuditIssue,
|
|
1747
1894
|
// ─── Settings ───────────────────────────────────────────────────────
|
|
1748
1895
|
settingsActiveSubTab,
|
|
1749
1896
|
setSettingsActiveSubTab,
|
|
@@ -1768,13 +1915,17 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
1768
1915
|
isAutoRamLimitEnabled,
|
|
1769
1916
|
setIsAutoRamLimitEnabled,
|
|
1770
1917
|
deviceFreeRamMb,
|
|
1918
|
+
isPerformanceHudEnabled,
|
|
1919
|
+
setIsPerformanceHudEnabled,
|
|
1771
1920
|
reduxAutoRefresh,
|
|
1772
1921
|
setReduxAutoRefreshState,
|
|
1773
1922
|
reduxExpandDepth,
|
|
1774
1923
|
setReduxExpandDepth,
|
|
1775
1924
|
};
|
|
1776
1925
|
return (<InspectorContext_1.InspectorContext.Provider value={contextValue}>
|
|
1777
|
-
<
|
|
1926
|
+
<react_native_1.View style={react_native_1.StyleSheet.absoluteFill} pointerEvents="box-none">
|
|
1927
|
+
<MainScreen_1.default />
|
|
1928
|
+
</react_native_1.View>
|
|
1778
1929
|
</InspectorContext_1.InspectorContext.Provider>);
|
|
1779
1930
|
};
|
|
1780
1931
|
const NetworkInspectorWrapper = (props) => {
|
|
@@ -1886,6 +2037,10 @@ Object.defineProperty(exports, "trackTabSwitch", { enumerable: true, get: functi
|
|
|
1886
2037
|
Object.defineProperty(exports, "trackLogExport", { enumerable: true, get: function () { return helpers_2.trackLogExport; } });
|
|
1887
2038
|
Object.defineProperty(exports, "GA4_MEASUREMENT_ID", { enumerable: true, get: function () { return helpers_2.GA4_MEASUREMENT_ID; } });
|
|
1888
2039
|
Object.defineProperty(exports, "GA4_API_SECRET", { enumerable: true, get: function () { return helpers_2.GA4_API_SECRET; } });
|
|
2040
|
+
var packageAuditor_2 = require("./helpers/packageAuditor");
|
|
2041
|
+
Object.defineProperty(exports, "runLivePackageAudit", { enumerable: true, get: function () { return packageAuditor_2.runLivePackageAudit; } });
|
|
2042
|
+
Object.defineProperty(exports, "logCodeQualityIssue", { enumerable: true, get: function () { return packageAuditor_2.logCodeQualityIssue; } });
|
|
2043
|
+
Object.defineProperty(exports, "clearCustomAuditIssues", { enumerable: true, get: function () { return packageAuditor_2.clearCustomAuditIssues; } });
|
|
1889
2044
|
var NetworkIcons_1 = require("./components/NetworkIcons");
|
|
1890
2045
|
Object.defineProperty(exports, "BrandSquareIcon", { enumerable: true, get: function () { return NetworkIcons_1.BrandSquareIcon; } });
|
|
1891
2046
|
Object.defineProperty(exports, "BrandCircleIcon", { enumerable: true, get: function () { return NetworkIcons_1.BrandCircleIcon; } });
|
|
@@ -3,6 +3,9 @@ export declare const ActiveTab: {
|
|
|
3
3
|
readonly Analytics: "analytics";
|
|
4
4
|
readonly Logs: "logs";
|
|
5
5
|
readonly Redux: "redux";
|
|
6
|
+
readonly Storage: "storage";
|
|
7
|
+
readonly Device: "device";
|
|
8
|
+
readonly Audit: "audit";
|
|
6
9
|
readonly Bundle: "bundle";
|
|
7
10
|
readonly Performance: "performance";
|
|
8
11
|
readonly Crash: "crash";
|
|
@@ -49,6 +52,9 @@ export declare const SettingsPage: {
|
|
|
49
52
|
readonly Logs: "logs";
|
|
50
53
|
readonly Analytics: "analytics";
|
|
51
54
|
readonly Redux: "redux";
|
|
55
|
+
readonly Storage: "storage";
|
|
56
|
+
readonly Device: "device";
|
|
57
|
+
readonly Audit: "audit";
|
|
52
58
|
readonly Bundle: "bundle";
|
|
53
59
|
readonly Performance: "performance";
|
|
54
60
|
readonly Crash: "crash";
|
|
@@ -56,6 +62,7 @@ export declare const SettingsPage: {
|
|
|
56
62
|
export type SettingsPage = (typeof SettingsPage)[keyof typeof SettingsPage] | null;
|
|
57
63
|
export declare const SettingsSubTab: {
|
|
58
64
|
readonly Module: "module";
|
|
65
|
+
readonly Limits: "limits";
|
|
59
66
|
readonly Ui: "ui";
|
|
60
67
|
};
|
|
61
68
|
export type SettingsSubTab = (typeof SettingsSubTab)[keyof typeof SettingsSubTab];
|
|
@@ -9,6 +9,9 @@ exports.ActiveTab = {
|
|
|
9
9
|
Analytics: 'analytics',
|
|
10
10
|
Logs: 'logs',
|
|
11
11
|
Redux: 'redux',
|
|
12
|
+
Storage: 'storage',
|
|
13
|
+
Device: 'device',
|
|
14
|
+
Audit: 'audit',
|
|
12
15
|
Bundle: 'bundle',
|
|
13
16
|
Performance: 'performance',
|
|
14
17
|
Crash: 'crash',
|
|
@@ -49,12 +52,16 @@ exports.SettingsPage = {
|
|
|
49
52
|
Logs: 'logs',
|
|
50
53
|
Analytics: 'analytics',
|
|
51
54
|
Redux: 'redux',
|
|
55
|
+
Storage: 'storage',
|
|
56
|
+
Device: 'device',
|
|
57
|
+
Audit: 'audit',
|
|
52
58
|
Bundle: 'bundle',
|
|
53
59
|
Performance: 'performance',
|
|
54
60
|
Crash: 'crash',
|
|
55
61
|
};
|
|
56
62
|
exports.SettingsSubTab = {
|
|
57
63
|
Module: 'module',
|
|
64
|
+
Limits: 'limits',
|
|
58
65
|
Ui: 'ui',
|
|
59
66
|
};
|
|
60
67
|
exports.LogFilter = {
|