react-native-debug-toolkit 3.3.8 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/constants/logLevels.js +19 -0
- package/lib/commonjs/constants/logLevels.js.map +1 -0
- package/lib/commonjs/core/initialize.js +30 -19
- package/lib/commonjs/core/initialize.js.map +1 -1
- package/lib/commonjs/features/console/ConsoleLogTab.js +4 -15
- package/lib/commonjs/features/console/ConsoleLogTab.js.map +1 -1
- package/lib/commonjs/features/console/index.js +15 -8
- package/lib/commonjs/features/console/index.js.map +1 -1
- package/lib/commonjs/features/network/NetworkLogTab.js +91 -93
- package/lib/commonjs/features/network/NetworkLogTab.js.map +1 -1
- package/lib/commonjs/features/network/index.js +7 -4
- package/lib/commonjs/features/network/index.js.map +1 -1
- package/lib/commonjs/features/sessionHistory/SessionHistoryTab.js +1044 -0
- package/lib/commonjs/features/sessionHistory/SessionHistoryTab.js.map +1 -0
- package/lib/commonjs/features/sessionHistory/index.js +103 -0
- package/lib/commonjs/features/sessionHistory/index.js.map +1 -0
- package/lib/commonjs/features/track/index.js +4 -3
- package/lib/commonjs/features/track/index.js.map +1 -1
- package/lib/commonjs/index.js +20 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/DebugView.js +1 -0
- package/lib/commonjs/ui/DebugView.js.map +1 -1
- package/lib/commonjs/ui/panel/DebugPanel.js +67 -34
- package/lib/commonjs/ui/panel/DebugPanel.js.map +1 -1
- package/lib/commonjs/ui/panel/FeatureIntroCard.js +131 -0
- package/lib/commonjs/ui/panel/FeatureIntroCard.js.map +1 -0
- package/lib/commonjs/ui/panel/FeatureRail.js +163 -0
- package/lib/commonjs/ui/panel/FeatureRail.js.map +1 -0
- package/lib/commonjs/ui/panel/FloatPanelView.js +147 -22
- package/lib/commonjs/ui/panel/FloatPanelView.js.map +1 -1
- package/lib/commonjs/ui/panel/buildFeatureSummary.js +207 -0
- package/lib/commonjs/ui/panel/buildFeatureSummary.js.map +1 -0
- package/lib/commonjs/ui/panel/filterFeatureSnapshot.js +43 -0
- package/lib/commonjs/ui/panel/filterFeatureSnapshot.js.map +1 -0
- package/lib/commonjs/ui/theme/colors.js +6 -0
- package/lib/commonjs/ui/theme/colors.js.map +1 -1
- package/lib/commonjs/utils/DaemonClient.js +30 -8
- package/lib/commonjs/utils/DaemonClient.js.map +1 -1
- package/lib/commonjs/utils/SessionManager.js +132 -0
- package/lib/commonjs/utils/SessionManager.js.map +1 -0
- package/lib/commonjs/utils/StorageAdapter.js +104 -0
- package/lib/commonjs/utils/StorageAdapter.js.map +1 -0
- package/lib/commonjs/utils/createChannelFeature.js +22 -5
- package/lib/commonjs/utils/createChannelFeature.js.map +1 -1
- package/lib/commonjs/utils/createPersistedObservableStore.js +14 -8
- package/lib/commonjs/utils/createPersistedObservableStore.js.map +1 -1
- package/lib/commonjs/utils/debugPreferences.js +28 -5
- package/lib/commonjs/utils/debugPreferences.js.map +1 -1
- package/lib/commonjs/utils/deviceReport.js +5 -1
- package/lib/commonjs/utils/deviceReport.js.map +1 -1
- package/lib/commonjs/utils/logRuntime.js +32 -0
- package/lib/commonjs/utils/logRuntime.js.map +1 -0
- package/lib/module/constants/logLevels.js +15 -0
- package/lib/module/constants/logLevels.js.map +1 -0
- package/lib/module/core/initialize.js +30 -19
- package/lib/module/core/initialize.js.map +1 -1
- package/lib/module/features/console/ConsoleLogTab.js +1 -12
- package/lib/module/features/console/ConsoleLogTab.js.map +1 -1
- package/lib/module/features/console/index.js +15 -8
- package/lib/module/features/console/index.js.map +1 -1
- package/lib/module/features/network/NetworkLogTab.js +91 -93
- package/lib/module/features/network/NetworkLogTab.js.map +1 -1
- package/lib/module/features/network/index.js +7 -4
- package/lib/module/features/network/index.js.map +1 -1
- package/lib/module/features/sessionHistory/SessionHistoryTab.js +1039 -0
- package/lib/module/features/sessionHistory/SessionHistoryTab.js.map +1 -0
- package/lib/module/features/sessionHistory/index.js +99 -0
- package/lib/module/features/sessionHistory/index.js.map +1 -0
- package/lib/module/features/track/index.js +4 -3
- package/lib/module/features/track/index.js.map +1 -1
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/DebugView.js +1 -0
- package/lib/module/ui/DebugView.js.map +1 -1
- package/lib/module/ui/panel/DebugPanel.js +67 -34
- package/lib/module/ui/panel/DebugPanel.js.map +1 -1
- package/lib/module/ui/panel/FeatureIntroCard.js +126 -0
- package/lib/module/ui/panel/FeatureIntroCard.js.map +1 -0
- package/lib/module/ui/panel/FeatureRail.js +158 -0
- package/lib/module/ui/panel/FeatureRail.js.map +1 -0
- package/lib/module/ui/panel/FloatPanelView.js +148 -23
- package/lib/module/ui/panel/FloatPanelView.js.map +1 -1
- package/lib/module/ui/panel/buildFeatureSummary.js +203 -0
- package/lib/module/ui/panel/buildFeatureSummary.js.map +1 -0
- package/lib/module/ui/panel/filterFeatureSnapshot.js +39 -0
- package/lib/module/ui/panel/filterFeatureSnapshot.js.map +1 -0
- package/lib/module/ui/theme/colors.js +6 -0
- package/lib/module/ui/theme/colors.js.map +1 -1
- package/lib/module/utils/DaemonClient.js +30 -8
- package/lib/module/utils/DaemonClient.js.map +1 -1
- package/lib/module/utils/SessionManager.js +127 -0
- package/lib/module/utils/SessionManager.js.map +1 -0
- package/lib/module/utils/StorageAdapter.js +96 -0
- package/lib/module/utils/StorageAdapter.js.map +1 -0
- package/lib/module/utils/createChannelFeature.js +22 -5
- package/lib/module/utils/createChannelFeature.js.map +1 -1
- package/lib/module/utils/createPersistedObservableStore.js +14 -8
- package/lib/module/utils/createPersistedObservableStore.js.map +1 -1
- package/lib/module/utils/debugPreferences.js +27 -5
- package/lib/module/utils/debugPreferences.js.map +1 -1
- package/lib/module/utils/deviceReport.js +4 -1
- package/lib/module/utils/deviceReport.js.map +1 -1
- package/lib/module/utils/logRuntime.js +26 -0
- package/lib/module/utils/logRuntime.js.map +1 -0
- package/lib/typescript/src/constants/logLevels.d.ts +3 -0
- package/lib/typescript/src/constants/logLevels.d.ts.map +1 -0
- package/lib/typescript/src/core/initialize.d.ts +4 -0
- package/lib/typescript/src/core/initialize.d.ts.map +1 -1
- package/lib/typescript/src/features/console/ConsoleLogTab.d.ts.map +1 -1
- package/lib/typescript/src/features/console/index.d.ts +2 -1
- package/lib/typescript/src/features/console/index.d.ts.map +1 -1
- package/lib/typescript/src/features/network/NetworkLogTab.d.ts.map +1 -1
- package/lib/typescript/src/features/network/index.d.ts +2 -1
- package/lib/typescript/src/features/network/index.d.ts.map +1 -1
- package/lib/typescript/src/features/sessionHistory/SessionHistoryTab.d.ts +20 -0
- package/lib/typescript/src/features/sessionHistory/SessionHistoryTab.d.ts.map +1 -0
- package/lib/typescript/src/features/sessionHistory/index.d.ts +4 -0
- package/lib/typescript/src/features/sessionHistory/index.d.ts.map +1 -0
- package/lib/typescript/src/features/track/index.d.ts +2 -1
- package/lib/typescript/src/features/track/index.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +4 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types/feature.d.ts +1 -1
- package/lib/typescript/src/types/feature.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +2 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/lib/typescript/src/ui/DebugView.d.ts.map +1 -1
- package/lib/typescript/src/ui/panel/DebugPanel.d.ts +3 -1
- package/lib/typescript/src/ui/panel/DebugPanel.d.ts.map +1 -1
- package/lib/typescript/src/ui/panel/FeatureIntroCard.d.ts +11 -0
- package/lib/typescript/src/ui/panel/FeatureIntroCard.d.ts.map +1 -0
- package/lib/typescript/src/ui/panel/FeatureRail.d.ts +16 -0
- package/lib/typescript/src/ui/panel/FeatureRail.d.ts.map +1 -0
- package/lib/typescript/src/ui/panel/FloatPanelView.d.ts.map +1 -1
- package/lib/typescript/src/ui/panel/buildFeatureSummary.d.ts +13 -0
- package/lib/typescript/src/ui/panel/buildFeatureSummary.d.ts.map +1 -0
- package/lib/typescript/src/ui/panel/filterFeatureSnapshot.d.ts +3 -0
- package/lib/typescript/src/ui/panel/filterFeatureSnapshot.d.ts.map +1 -0
- package/lib/typescript/src/ui/theme/colors.d.ts +5 -0
- package/lib/typescript/src/ui/theme/colors.d.ts.map +1 -1
- package/lib/typescript/src/utils/DaemonClient.d.ts +7 -1
- package/lib/typescript/src/utils/DaemonClient.d.ts.map +1 -1
- package/lib/typescript/src/utils/SessionManager.d.ts +30 -0
- package/lib/typescript/src/utils/SessionManager.d.ts.map +1 -0
- package/lib/typescript/src/utils/StorageAdapter.d.ts +38 -0
- package/lib/typescript/src/utils/StorageAdapter.d.ts.map +1 -0
- package/lib/typescript/src/utils/createChannelFeature.d.ts +2 -0
- package/lib/typescript/src/utils/createChannelFeature.d.ts.map +1 -1
- package/lib/typescript/src/utils/createPersistedObservableStore.d.ts +4 -1
- package/lib/typescript/src/utils/createPersistedObservableStore.d.ts.map +1 -1
- package/lib/typescript/src/utils/debugPreferences.d.ts +1 -3
- package/lib/typescript/src/utils/debugPreferences.d.ts.map +1 -1
- package/lib/typescript/src/utils/deviceReport.d.ts +1 -0
- package/lib/typescript/src/utils/deviceReport.d.ts.map +1 -1
- package/lib/typescript/src/utils/logRuntime.d.ts +13 -0
- package/lib/typescript/src/utils/logRuntime.d.ts.map +1 -0
- package/package.json +9 -1
- package/src/constants/logLevels.ts +13 -0
- package/src/core/initialize.ts +49 -25
- package/src/features/console/ConsoleLogTab.tsx +1 -14
- package/src/features/console/index.ts +18 -8
- package/src/features/network/NetworkLogTab.tsx +61 -71
- package/src/features/network/index.ts +12 -3
- package/src/features/sessionHistory/SessionHistoryTab.tsx +691 -0
- package/src/features/sessionHistory/index.ts +102 -0
- package/src/features/track/index.ts +10 -3
- package/src/index.ts +11 -0
- package/src/types/feature.ts +2 -1
- package/src/types/index.ts +10 -0
- package/src/ui/DebugView.tsx +1 -0
- package/src/ui/panel/DebugPanel.tsx +60 -30
- package/src/ui/panel/FeatureIntroCard.tsx +127 -0
- package/src/ui/panel/FeatureRail.tsx +165 -0
- package/src/ui/panel/FloatPanelView.tsx +154 -15
- package/src/ui/panel/buildFeatureSummary.ts +288 -0
- package/src/ui/panel/filterFeatureSnapshot.ts +51 -0
- package/src/ui/theme/colors.ts +7 -0
- package/src/utils/DaemonClient.ts +33 -5
- package/src/utils/SessionManager.ts +174 -0
- package/src/utils/StorageAdapter.ts +135 -0
- package/src/utils/createChannelFeature.ts +28 -6
- package/src/utils/createPersistedObservableStore.ts +18 -10
- package/src/utils/debugPreferences.ts +38 -7
- package/src/utils/deviceReport.ts +5 -1
- package/src/utils/logRuntime.ts +39 -0
- package/lib/commonjs/ui/panel/FeatureTabBar.js +0 -182
- package/lib/commonjs/ui/panel/FeatureTabBar.js.map +0 -1
- package/lib/module/ui/panel/FeatureTabBar.js +0 -177
- package/lib/module/ui/panel/FeatureTabBar.js.map +0 -1
- package/lib/typescript/src/ui/panel/FeatureTabBar.d.ts +0 -13
- package/lib/typescript/src/ui/panel/FeatureTabBar.d.ts.map +0 -1
- package/src/ui/panel/FeatureTabBar.tsx +0 -204
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FeatureDataProvider } from '../types';
|
|
2
|
-
import { type DebugDeviceReport, type DebugDeviceReportOptions } from './deviceReport';
|
|
2
|
+
import { type DebugDeviceReport, type DebugDeviceReportOptions, type SessionInfo } from './deviceReport';
|
|
3
3
|
export type DaemonConnectionMode = 'simulator' | 'device';
|
|
4
4
|
export interface DaemonSettings {
|
|
5
5
|
mode: DaemonConnectionMode;
|
|
@@ -47,6 +47,7 @@ export interface ReportToDaemonOptions extends DebugDeviceReportOptions {
|
|
|
47
47
|
endpoint?: string;
|
|
48
48
|
timeoutMs?: number;
|
|
49
49
|
token?: string;
|
|
50
|
+
session?: SessionInfo;
|
|
50
51
|
}
|
|
51
52
|
export interface ReportResult {
|
|
52
53
|
ok: boolean;
|
|
@@ -75,6 +76,7 @@ type AbortControllerLike = {
|
|
|
75
76
|
abort: () => void;
|
|
76
77
|
};
|
|
77
78
|
type AbortControllerCtor = new () => AbortControllerLike;
|
|
79
|
+
type SessionProvider = () => SessionInfo;
|
|
78
80
|
export declare function getDefaultDaemonEndpoint(): string;
|
|
79
81
|
export declare function buildDeviceDaemonEndpoint(host: string): string;
|
|
80
82
|
export declare function normalizeDaemonSettings(settings: DaemonSettings): {
|
|
@@ -97,6 +99,7 @@ export declare class DaemonClient {
|
|
|
97
99
|
private _onEndpointDetected;
|
|
98
100
|
private _restorePromise;
|
|
99
101
|
private _sessionId;
|
|
102
|
+
private _sessionProvider;
|
|
100
103
|
private _onConnectionChange;
|
|
101
104
|
constructor(options: DaemonClientOptions);
|
|
102
105
|
getSettings(): DaemonSettings;
|
|
@@ -109,6 +112,8 @@ export declare class DaemonClient {
|
|
|
109
112
|
setStreamingEnabled(enabled: boolean): void;
|
|
110
113
|
setEndpointDetector(callback: (url: string) => void): void;
|
|
111
114
|
setOnConnectionChange(callback: (() => void) | undefined): void;
|
|
115
|
+
setSessionProvider(provider: SessionProvider): void;
|
|
116
|
+
clearSessionProvider(): void;
|
|
112
117
|
restore(): Promise<void>;
|
|
113
118
|
private doRestore;
|
|
114
119
|
reportOnce(options?: ReportToDaemonOptions): Promise<ReportResult>;
|
|
@@ -117,6 +122,7 @@ export declare class DaemonClient {
|
|
|
117
122
|
private resolveFetch;
|
|
118
123
|
private createAbortController;
|
|
119
124
|
private notifyEndpoint;
|
|
125
|
+
private resolveSession;
|
|
120
126
|
private emitStatus;
|
|
121
127
|
private doPost;
|
|
122
128
|
private emitStreamStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DaemonClient.d.ts","sourceRoot":"","sources":["../../../../src/utils/DaemonClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,
|
|
1
|
+
{"version":3,"file":"DaemonClient.d.ts","sourceRoot":"","sources":["../../../../src/utils/DaemonClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { SessionInfo } from './deviceReport';
|
|
2
|
+
import type { StorageAdapter } from './StorageAdapter';
|
|
3
|
+
export type LogFeatureKey = 'console_logs' | 'network_logs' | 'track_logs';
|
|
4
|
+
export type LogSession = SessionInfo;
|
|
5
|
+
export interface SessionIndex {
|
|
6
|
+
currentSessionId: string;
|
|
7
|
+
sessions: LogSession[];
|
|
8
|
+
maxSessions: number;
|
|
9
|
+
}
|
|
10
|
+
export interface SessionManagerOptions {
|
|
11
|
+
maxSessions?: number;
|
|
12
|
+
featureKeys?: LogFeatureKey[];
|
|
13
|
+
}
|
|
14
|
+
export declare class SessionManager {
|
|
15
|
+
private readonly storage;
|
|
16
|
+
private readonly currentSession;
|
|
17
|
+
private readonly maxSessions;
|
|
18
|
+
private readonly featureKeys;
|
|
19
|
+
constructor(storage: StorageAdapter, options?: SessionManagerOptions);
|
|
20
|
+
initialize(): Promise<void>;
|
|
21
|
+
getCurrentSession(): LogSession;
|
|
22
|
+
getSessionHistory(): Promise<LogSession[]>;
|
|
23
|
+
getLogStorageKey(featureKey: LogFeatureKey, sessionId?: string): string;
|
|
24
|
+
loadSessionLogs<T>(sessionId: string, featureKey: LogFeatureKey): Promise<T[]>;
|
|
25
|
+
getSessionLogCount(sessionId: string, featureKey: LogFeatureKey): Promise<number>;
|
|
26
|
+
clearCurrentSessionLogs(featureKey: LogFeatureKey): Promise<void>;
|
|
27
|
+
cleanupOldSessions(): Promise<number>;
|
|
28
|
+
private cleanupSessionLogs;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=SessionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../../src/utils/SessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,YAAY,CAAC;AAE3E,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAErC,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;CAC/B;AAmDD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAa;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;gBAElC,OAAO,EAAE,cAAc,EAAE,OAAO,GAAE,qBAA0B;IAOlE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC,iBAAiB,IAAI,UAAU;IAIzB,iBAAiB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAKhD,gBAAgB,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,SAAyB,GAAG,MAAM;IAIjF,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAc9E,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAWjF,uBAAuB,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;YAsB7B,kBAAkB;CAOjC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export interface StorageAdapter {
|
|
2
|
+
getItem(key: string): string | null | Promise<string | null>;
|
|
3
|
+
setItem(key: string, value: string): void | Promise<void>;
|
|
4
|
+
removeItem(key: string): void | Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
type AsyncStorageLike = {
|
|
7
|
+
getItem: (key: string) => Promise<string | null>;
|
|
8
|
+
setItem: (key: string, value: string) => Promise<void>;
|
|
9
|
+
removeItem: (key: string) => Promise<void>;
|
|
10
|
+
};
|
|
11
|
+
type MMKVLike = {
|
|
12
|
+
getString: (key: string) => string | undefined;
|
|
13
|
+
set: (key: string, value: string) => void;
|
|
14
|
+
delete: (key: string) => void;
|
|
15
|
+
};
|
|
16
|
+
export declare class MemoryStorageAdapter implements StorageAdapter {
|
|
17
|
+
private readonly store;
|
|
18
|
+
getItem(key: string): string | null;
|
|
19
|
+
setItem(key: string, value: string): void;
|
|
20
|
+
removeItem(key: string): void;
|
|
21
|
+
}
|
|
22
|
+
export declare class AsyncStorageAdapter implements StorageAdapter {
|
|
23
|
+
private readonly storage;
|
|
24
|
+
constructor(storage: AsyncStorageLike);
|
|
25
|
+
getItem(key: string): Promise<string | null>;
|
|
26
|
+
setItem(key: string, value: string): Promise<void>;
|
|
27
|
+
removeItem(key: string): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
export declare class MMKVStorageAdapter implements StorageAdapter {
|
|
30
|
+
private readonly storage;
|
|
31
|
+
constructor(storage: MMKVLike);
|
|
32
|
+
getItem(key: string): string | null;
|
|
33
|
+
setItem(key: string, value: string): void;
|
|
34
|
+
removeItem(key: string): void;
|
|
35
|
+
}
|
|
36
|
+
export declare function createDefaultLogStorage(): StorageAdapter;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=StorageAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageAdapter.d.ts","sourceRoot":"","sources":["../../../../src/utils/StorageAdapter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC/C,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AAQF,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAInC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAG9B;AAED,qBAAa,mBAAoB,YAAW,cAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,gBAAgB;IAEtD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvC;AAED,qBAAa,kBAAmB,YAAW,cAAc;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;gBAEvB,OAAO,EAAE,QAAQ;IAI7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAInC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAO9B;AAsDD,wBAAgB,uBAAuB,IAAI,cAAc,CAExD"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { ComponentType } from 'react';
|
|
2
2
|
import type { DebugFeature, DebugFeatureRenderProps } from '../types';
|
|
3
3
|
import type { EventChannel } from './createEventChannel';
|
|
4
|
+
import type { StorageAdapter } from './StorageAdapter';
|
|
4
5
|
export interface ChannelFeaturePersistConfig<TEntry> {
|
|
6
|
+
storage: StorageAdapter;
|
|
5
7
|
storageKey: string;
|
|
6
8
|
maxPersist: number;
|
|
7
9
|
debounceMs?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createChannelFeature.d.ts","sourceRoot":"","sources":["../../../../src/utils/createChannelFeature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAwB,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAMzD,MAAM,WAAW,2BAA2B,CAAC,MAAM;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,SAAS;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3E,UAAU,EAAE,MAAM,YAAY,CAAC,QAAQ,CAAC,EACxC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,EAClD,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC9C,0EAA0E;IAC1E,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC;IACpD,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;CACrC,GACA,YAAY,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"createChannelFeature.d.ts","sourceRoot":"","sources":["../../../../src/utils/createChannelFeature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAwB,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAMzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,MAAM,WAAW,2BAA2B,CAAC,MAAM;IACjD,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,SAAS;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3E,UAAU,EAAE,MAAM,YAAY,CAAC,QAAQ,CAAC,EACxC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,EAClD,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC9C,0EAA0E;IAC1E,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC;IACpD,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;CACrC,GACA,YAAY,CAAC,MAAM,EAAE,CAAC,CAsExB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type ObservableStore } from './createObservableStore';
|
|
2
|
+
import type { StorageAdapter } from './StorageAdapter';
|
|
2
3
|
export interface PersistedStoreOptions<T> {
|
|
4
|
+
storage: StorageAdapter;
|
|
3
5
|
storageKey: string;
|
|
4
6
|
maxPersist: number;
|
|
5
7
|
debounceMs?: number;
|
|
@@ -8,7 +10,8 @@ export interface PersistedStoreOptions<T> {
|
|
|
8
10
|
export interface PersistedObservableStore<T> extends ObservableStore<T> {
|
|
9
11
|
nextId: () => string;
|
|
10
12
|
ready: Promise<void>;
|
|
11
|
-
|
|
13
|
+
clearPersisted: () => void;
|
|
14
|
+
dispose: () => void;
|
|
12
15
|
}
|
|
13
16
|
export declare function createPersistedObservableStore<T extends {
|
|
14
17
|
id?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPersistedObservableStore.d.ts","sourceRoot":"","sources":["../../../../src/utils/createPersistedObservableStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"createPersistedObservableStore.d.ts","sourceRoot":"","sources":["../../../../src/utils/createPersistedObservableStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IACrE,MAAM,EAAE,MAAM,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,8BAA8B,CAAC,CAAC,SAAS;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EACtE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAChC,wBAAwB,CAAC,CAAC,CAAC,CA4E7B"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
export declare function setPreference(key: string, value: string): Promise<void>;
|
|
2
2
|
export declare function getPreference(key: string): Promise<string | null>;
|
|
3
|
+
export declare function removePreference(key: string): Promise<void>;
|
|
3
4
|
export declare const KEYS: {
|
|
4
5
|
readonly fabPosition: "@react_native_debug_toolkit/fab_position";
|
|
5
6
|
readonly lastTab: "@react_native_debug_toolkit/last_tab";
|
|
6
|
-
readonly consoleLogs: "@react_native_debug_toolkit/console_logs";
|
|
7
|
-
readonly networkLogs: "@react_native_debug_toolkit/network_logs";
|
|
8
|
-
readonly trackLogs: "@react_native_debug_toolkit/track_logs";
|
|
9
7
|
readonly computerHost: "@react_native_debug_toolkit/computer_host";
|
|
10
8
|
readonly daemonPort: "@react_native_debug_toolkit/daemon_port";
|
|
11
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debugPreferences.d.ts","sourceRoot":"","sources":["../../../../src/utils/debugPreferences.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"debugPreferences.d.ts","sourceRoot":"","sources":["../../../../src/utils/debugPreferences.ts"],"names":[],"mappings":"AA0CA,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB7E;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BvE;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBjE;AAED,eAAO,MAAM,IAAI;;;;;CAKP,CAAC"}
|
|
@@ -20,6 +20,7 @@ export interface DebugDeviceReport {
|
|
|
20
20
|
session?: SessionInfo;
|
|
21
21
|
logs: Record<string, unknown[] | undefined>;
|
|
22
22
|
}
|
|
23
|
+
export declare function sanitizeDebugLogEntry(value: unknown, maxBodyBytes?: number): unknown;
|
|
23
24
|
export declare function createDebugDeviceReport(options?: DebugDeviceReportOptions & {
|
|
24
25
|
featureProvider?: FeatureDataProvider;
|
|
25
26
|
session?: SessionInfo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceReport.d.ts","sourceRoot":"","sources":["../../../../src/utils/deviceReport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAOpD,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;CAC7C;AAuID,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,wBAAwB,GAAG;IAAE,eAAe,CAAC,EAAE,mBAAmB,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAA;CAAO,GACxG,iBAAiB,CAyCnB"}
|
|
1
|
+
{"version":3,"file":"deviceReport.d.ts","sourceRoot":"","sources":["../../../../src/utils/deviceReport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAOpD,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;CAC7C;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,SAAyB,GAAG,OAAO,CAEpG;AAuID,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,wBAAwB,GAAG;IAAE,eAAe,CAAC,EAAE,mBAAmB,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAA;CAAO,GACxG,iBAAiB,CAyCnB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SessionManager, type SessionManagerOptions } from './SessionManager';
|
|
2
|
+
import { type StorageAdapter } from './StorageAdapter';
|
|
3
|
+
export interface LogRuntimeContext {
|
|
4
|
+
logStorage: StorageAdapter;
|
|
5
|
+
sessionManager: SessionManager;
|
|
6
|
+
}
|
|
7
|
+
export interface LogRuntimeOptions extends SessionManagerOptions {
|
|
8
|
+
logStorage?: StorageAdapter;
|
|
9
|
+
}
|
|
10
|
+
export declare function createLogRuntime(options?: LogRuntimeOptions): LogRuntimeContext;
|
|
11
|
+
export declare function setDefaultLogRuntime(runtime: LogRuntimeContext | null): void;
|
|
12
|
+
export declare function getDefaultLogRuntime(): LogRuntimeContext;
|
|
13
|
+
//# sourceMappingURL=logRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logRuntime.d.ts","sourceRoot":"","sources":["../../../../src/utils/logRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,cAAc,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAID,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,iBAAiB,CASnF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAE5E;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAMxD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-debug-toolkit",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "A local-first React Native debug toolkit with Web Console, HTTP API, and MCP support for AI-readable app logs",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -54,12 +54,20 @@
|
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
56
|
"@react-native-clipboard/clipboard": ">=1.0.0",
|
|
57
|
+
"@react-native-async-storage/async-storage": ">=1.0.0",
|
|
58
|
+
"react-native-mmkv": ">=2.0.0",
|
|
57
59
|
"react": ">=18.0.0",
|
|
58
60
|
"react-native": ">=0.72.0"
|
|
59
61
|
},
|
|
60
62
|
"peerDependenciesMeta": {
|
|
63
|
+
"@react-native-async-storage/async-storage": {
|
|
64
|
+
"optional": true
|
|
65
|
+
},
|
|
61
66
|
"@react-native-clipboard/clipboard": {
|
|
62
67
|
"optional": true
|
|
68
|
+
},
|
|
69
|
+
"react-native-mmkv": {
|
|
70
|
+
"optional": true
|
|
63
71
|
}
|
|
64
72
|
},
|
|
65
73
|
"devDependencies": {
|
package/src/core/initialize.ts
CHANGED
|
@@ -12,8 +12,15 @@ import type { TrackFeatureConfig } from '../features/track';
|
|
|
12
12
|
import { createEnvironmentFeature } from '../features/environment';
|
|
13
13
|
import { createClipboardFeature } from '../features/clipboard';
|
|
14
14
|
import { createDevConnectFeature, restoreDevConnectSettingsToDaemon, nativeIsDebugBuild } from '../features/devConnect';
|
|
15
|
+
import { createSessionHistoryFeature } from '../features/sessionHistory';
|
|
15
16
|
import { daemonClient } from '../utils/DaemonClient';
|
|
16
17
|
import type { AnyDebugFeature, BuiltInFeatureName } from '../types';
|
|
18
|
+
import type { StorageAdapter } from '../utils/StorageAdapter';
|
|
19
|
+
import {
|
|
20
|
+
createLogRuntime,
|
|
21
|
+
setDefaultLogRuntime,
|
|
22
|
+
type LogRuntimeContext,
|
|
23
|
+
} from '../utils/logRuntime';
|
|
17
24
|
|
|
18
25
|
const isDebugMode = __DEV__;
|
|
19
26
|
|
|
@@ -27,26 +34,31 @@ export interface FeatureConfigs {
|
|
|
27
34
|
environment?: Parameters<typeof createEnvironmentFeature>[0];
|
|
28
35
|
clipboard?: boolean;
|
|
29
36
|
devConnect?: boolean;
|
|
37
|
+
sessionHistory?: boolean;
|
|
30
38
|
}
|
|
31
39
|
|
|
32
40
|
export interface InitializeOptions {
|
|
33
41
|
features?: FeatureConfigs;
|
|
34
42
|
customFeatures?: AnyDebugFeature[];
|
|
35
43
|
enabled?: boolean;
|
|
44
|
+
logStorage?: StorageAdapter;
|
|
45
|
+
maxLogSessions?: number;
|
|
36
46
|
}
|
|
37
47
|
|
|
48
|
+
type EnvironmentFeatureConfig = Parameters<typeof createEnvironmentFeature>[0];
|
|
49
|
+
type BuiltInFeatureCreator = (config?: unknown, runtime?: LogRuntimeContext) => AnyDebugFeature;
|
|
50
|
+
|
|
38
51
|
/** Registry mapping feature names to creator functions */
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
devConnect: createDevConnectFeature,
|
|
52
|
+
const featureRegistry: Record<BuiltInFeatureName, BuiltInFeatureCreator> = {
|
|
53
|
+
network: (config, runtime) => createNetworkFeature(config as NetworkFeatureConfig | undefined, runtime),
|
|
54
|
+
console: (config, runtime) => createConsoleLogFeature(config as ConsoleFeatureConfig | undefined, runtime),
|
|
55
|
+
zustand: (config) => createZustandLogFeature(config as ZustandFeatureConfig | undefined),
|
|
56
|
+
navigation: (config) => createNavigationLogFeature(config as NavigationFeatureConfig | undefined),
|
|
57
|
+
track: (config, runtime) => createTrackFeature(config as TrackFeatureConfig | undefined, runtime),
|
|
58
|
+
environment: (config) => createEnvironmentFeature(config as EnvironmentFeatureConfig | undefined),
|
|
59
|
+
clipboard: () => createClipboardFeature(),
|
|
60
|
+
devConnect: () => createDevConnectFeature(),
|
|
61
|
+
sessionHistory: (_config, runtime) => createSessionHistoryFeature(runtime),
|
|
50
62
|
};
|
|
51
63
|
|
|
52
64
|
const DEFAULT_FEATURES: BuiltInFeatureName[] = [
|
|
@@ -57,14 +69,17 @@ const DEFAULT_FEATURES: BuiltInFeatureName[] = [
|
|
|
57
69
|
'track',
|
|
58
70
|
'clipboard',
|
|
59
71
|
'devConnect',
|
|
72
|
+
'sessionHistory',
|
|
60
73
|
];
|
|
61
74
|
|
|
62
|
-
function resolveFeatureConfigs(configs: FeatureConfigs): AnyDebugFeature[] {
|
|
75
|
+
function resolveFeatureConfigs(configs: FeatureConfigs, runtime: LogRuntimeContext): AnyDebugFeature[] {
|
|
63
76
|
const features: AnyDebugFeature[] = [];
|
|
64
77
|
const entries = Object.entries(configs) as [BuiltInFeatureName, unknown][];
|
|
65
78
|
|
|
66
79
|
for (const [name, config] of entries) {
|
|
67
|
-
if (config === false)
|
|
80
|
+
if (config === false) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
68
83
|
|
|
69
84
|
const creator = featureRegistry[name];
|
|
70
85
|
if (!creator) {
|
|
@@ -73,17 +88,17 @@ function resolveFeatureConfigs(configs: FeatureConfigs): AnyDebugFeature[] {
|
|
|
73
88
|
}
|
|
74
89
|
|
|
75
90
|
if (config === true || config === undefined) {
|
|
76
|
-
features.push(creator());
|
|
91
|
+
features.push(creator(undefined, runtime));
|
|
77
92
|
} else if (typeof config === 'object') {
|
|
78
|
-
features.push(creator(config as Record<string, unknown
|
|
93
|
+
features.push(creator(config as Record<string, unknown>, runtime));
|
|
79
94
|
}
|
|
80
95
|
}
|
|
81
96
|
|
|
82
97
|
return features;
|
|
83
98
|
}
|
|
84
99
|
|
|
85
|
-
function resolveDefaultFeatures(): AnyDebugFeature[] {
|
|
86
|
-
return DEFAULT_FEATURES.map((name) => featureRegistry[name]!());
|
|
100
|
+
function resolveDefaultFeatures(runtime: LogRuntimeContext): AnyDebugFeature[] {
|
|
101
|
+
return DEFAULT_FEATURES.map((name) => featureRegistry[name]!(undefined, runtime));
|
|
87
102
|
}
|
|
88
103
|
|
|
89
104
|
function appendCustomFeatures(
|
|
@@ -123,23 +138,32 @@ export async function initializeDebugToolkit(
|
|
|
123
138
|
}
|
|
124
139
|
}
|
|
125
140
|
|
|
126
|
-
const resolvedBuiltInFeatures = options?.features
|
|
127
|
-
? resolveFeatureConfigs(options.features)
|
|
128
|
-
: resolveDefaultFeatures();
|
|
129
|
-
const resolvedFeatures = appendCustomFeatures(
|
|
130
|
-
resolvedBuiltInFeatures,
|
|
131
|
-
options?.customFeatures,
|
|
132
|
-
);
|
|
133
|
-
|
|
134
141
|
try {
|
|
135
142
|
DebugToolkit.setEnabled(enabled);
|
|
136
143
|
|
|
137
144
|
if (!enabled) {
|
|
145
|
+
daemonClient.clearSessionProvider();
|
|
138
146
|
DebugToolkit.reset();
|
|
139
147
|
return DebugToolkit;
|
|
140
148
|
}
|
|
141
149
|
|
|
150
|
+
const runtime = createLogRuntime({
|
|
151
|
+
logStorage: options?.logStorage,
|
|
152
|
+
maxSessions: options?.maxLogSessions,
|
|
153
|
+
});
|
|
154
|
+
setDefaultLogRuntime(runtime);
|
|
155
|
+
daemonClient.setSessionProvider(() => runtime.sessionManager.getCurrentSession());
|
|
156
|
+
|
|
157
|
+
const resolvedBuiltInFeatures = options?.features
|
|
158
|
+
? resolveFeatureConfigs(options.features, runtime)
|
|
159
|
+
: resolveDefaultFeatures(runtime);
|
|
160
|
+
const resolvedFeatures = appendCustomFeatures(
|
|
161
|
+
resolvedBuiltInFeatures,
|
|
162
|
+
options?.customFeatures,
|
|
163
|
+
);
|
|
164
|
+
|
|
142
165
|
DebugToolkit.replaceFeatures(resolvedFeatures);
|
|
166
|
+
runtime.sessionManager.initialize().catch(() => {});
|
|
143
167
|
|
|
144
168
|
daemonClient.setEndpointDetector((url) => {
|
|
145
169
|
addToBlacklist(url);
|
|
@@ -7,22 +7,9 @@ import { JsonView } from '../../ui/shared/JsonView';
|
|
|
7
7
|
import { CopyButton } from '../../ui/shared/CopyButton';
|
|
8
8
|
import { LogListScreen } from '../../ui/shared/LogListScreen';
|
|
9
9
|
import { fmt } from '../../utils/copyToComputer';
|
|
10
|
+
import { LEVEL_COLORS, LEVEL_ICONS } from '../../constants/logLevels';
|
|
10
11
|
import type { ConsoleLogEntry, DebugFeatureRenderProps } from '../../types';
|
|
11
12
|
|
|
12
|
-
const LEVEL_COLORS: Record<string, string> = {
|
|
13
|
-
log: '#8E8E93',
|
|
14
|
-
info: '#007AFF',
|
|
15
|
-
warn: '#FF9500',
|
|
16
|
-
error: '#FF3B30',
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
const LEVEL_ICONS: Record<string, string> = {
|
|
20
|
-
log: '●',
|
|
21
|
-
info: 'ℹ',
|
|
22
|
-
warn: '⚠',
|
|
23
|
-
error: '✕',
|
|
24
|
-
};
|
|
25
|
-
|
|
26
13
|
export const ConsoleLogTab: React.FC<DebugFeatureRenderProps<ConsoleLogEntry[]>> = React.memo(({ snapshot }) => (
|
|
27
14
|
<LogListScreen
|
|
28
15
|
data={snapshot}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ConsoleLogTab } from './ConsoleLogTab';
|
|
2
2
|
import type { ConsoleLogEntry, DebugFeature } from '../../types';
|
|
3
3
|
import { createPersistedObservableStore } from '../../utils/createPersistedObservableStore';
|
|
4
|
-
import {
|
|
4
|
+
import { getDefaultLogRuntime, type LogRuntimeContext } from '../../utils/logRuntime';
|
|
5
5
|
|
|
6
6
|
const LEVELS: ConsoleLogEntry['level'][] = ['log', 'info', 'warn', 'error'];
|
|
7
7
|
|
|
@@ -13,7 +13,9 @@ const consoleCapture = (() => {
|
|
|
13
13
|
|
|
14
14
|
function stop(): void {
|
|
15
15
|
refCount = Math.max(0, refCount - 1);
|
|
16
|
-
if (refCount > 0)
|
|
16
|
+
if (refCount > 0) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
17
19
|
|
|
18
20
|
LEVELS.forEach((level) => {
|
|
19
21
|
const original = originalMethods[level];
|
|
@@ -78,10 +80,14 @@ export interface ConsoleFeatureConfig {
|
|
|
78
80
|
maxLogs?: number;
|
|
79
81
|
}
|
|
80
82
|
|
|
81
|
-
export const createConsoleLogFeature = (
|
|
83
|
+
export const createConsoleLogFeature = (
|
|
84
|
+
config?: ConsoleFeatureConfig,
|
|
85
|
+
runtime: LogRuntimeContext = getDefaultLogRuntime(),
|
|
86
|
+
): DebugFeature<ConsoleLogEntry[]> => {
|
|
82
87
|
const maxLogs = config?.maxLogs ?? DEFAULT_MAX_LOGS;
|
|
83
88
|
const logStore = createPersistedObservableStore<ConsoleLogEntry>({
|
|
84
|
-
|
|
89
|
+
storage: runtime.logStorage,
|
|
90
|
+
storageKey: runtime.sessionManager.getLogStorageKey('console_logs'),
|
|
85
91
|
maxPersist: 50,
|
|
86
92
|
});
|
|
87
93
|
let initialized = false;
|
|
@@ -92,7 +98,9 @@ export const createConsoleLogFeature = (config?: ConsoleFeatureConfig): DebugFea
|
|
|
92
98
|
label: 'Console',
|
|
93
99
|
renderContent: ConsoleLogTab,
|
|
94
100
|
setup: () => {
|
|
95
|
-
if (initialized)
|
|
101
|
+
if (initialized) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
96
104
|
|
|
97
105
|
stopCapture = consoleCapture.start((entry) => {
|
|
98
106
|
logStore.push({ ...entry, id: logStore.nextId() }, maxLogs);
|
|
@@ -100,13 +108,15 @@ export const createConsoleLogFeature = (config?: ConsoleFeatureConfig): DebugFea
|
|
|
100
108
|
initialized = true;
|
|
101
109
|
},
|
|
102
110
|
getSnapshot: () => logStore.getData(),
|
|
103
|
-
clear: () => { logStore.
|
|
111
|
+
clear: () => { logStore.clearPersisted(); },
|
|
104
112
|
cleanup: () => {
|
|
105
|
-
if (!initialized)
|
|
113
|
+
if (!initialized) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
106
116
|
|
|
107
117
|
stopCapture?.();
|
|
108
118
|
stopCapture = null;
|
|
109
|
-
logStore.
|
|
119
|
+
logStore.dispose();
|
|
110
120
|
initialized = false;
|
|
111
121
|
},
|
|
112
122
|
subscribe: (listener) => logStore.subscribe(listener),
|