react-native-debug-toolkit 3.5.0 → 3.5.1
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/README.md +40 -26
- package/README.zh-CN.md +52 -38
- package/android/src/main/java/com/reactnativedebugtoolkit/DebugToolkitNativeLogsModule.java +146 -0
- package/android/src/main/java/com/reactnativedebugtoolkit/ReactNativeDebugToolkitPackage.java +5 -3
- package/ios/DebugToolkitNativeLogs.mm +92 -0
- package/lib/commonjs/core/initialize.js +3 -1
- package/lib/commonjs/core/initialize.js.map +1 -1
- package/lib/commonjs/features/nativeLogs/NativeLogTab.js +156 -0
- package/lib/commonjs/features/nativeLogs/NativeLogTab.js.map +1 -0
- package/lib/commonjs/features/nativeLogs/index.js +97 -0
- package/lib/commonjs/features/nativeLogs/index.js.map +1 -0
- package/lib/commonjs/features/nativeLogs/nativeLogsBridge.js +71 -0
- package/lib/commonjs/features/nativeLogs/nativeLogsBridge.js.map +1 -0
- package/lib/commonjs/features/network/NetworkLogTab.js +5 -8
- package/lib/commonjs/features/network/NetworkLogTab.js.map +1 -1
- package/lib/commonjs/features/sessionHistory/SessionHistoryTab.js +2 -0
- package/lib/commonjs/features/sessionHistory/SessionHistoryTab.js.map +1 -1
- package/lib/commonjs/features/sessionHistory/index.js +2 -1
- package/lib/commonjs/features/sessionHistory/index.js.map +1 -1
- package/lib/commonjs/index.js +7 -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/FeatureIntroCard.js +49 -29
- package/lib/commonjs/ui/panel/FeatureIntroCard.js.map +1 -1
- package/lib/commonjs/ui/panel/FeatureRail.js +3 -3
- package/lib/commonjs/ui/panel/FeatureRail.js.map +1 -1
- package/lib/commonjs/ui/panel/FloatPanelView.js +4 -32
- package/lib/commonjs/ui/panel/FloatPanelView.js.map +1 -1
- package/lib/commonjs/utils/SessionManager.js +1 -1
- package/lib/commonjs/utils/SessionManager.js.map +1 -1
- package/lib/module/core/initialize.js +3 -1
- package/lib/module/core/initialize.js.map +1 -1
- package/lib/module/features/nativeLogs/NativeLogTab.js +151 -0
- package/lib/module/features/nativeLogs/NativeLogTab.js.map +1 -0
- package/lib/module/features/nativeLogs/index.js +91 -0
- package/lib/module/features/nativeLogs/index.js.map +1 -0
- package/lib/module/features/nativeLogs/nativeLogsBridge.js +63 -0
- package/lib/module/features/nativeLogs/nativeLogsBridge.js.map +1 -0
- package/lib/module/features/network/NetworkLogTab.js +5 -8
- package/lib/module/features/network/NetworkLogTab.js.map +1 -1
- package/lib/module/features/sessionHistory/SessionHistoryTab.js +2 -0
- package/lib/module/features/sessionHistory/SessionHistoryTab.js.map +1 -1
- package/lib/module/features/sessionHistory/index.js +2 -1
- package/lib/module/features/sessionHistory/index.js.map +1 -1
- package/lib/module/index.js +1 -1
- 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/FeatureIntroCard.js +50 -30
- package/lib/module/ui/panel/FeatureIntroCard.js.map +1 -1
- package/lib/module/ui/panel/FeatureRail.js +3 -3
- package/lib/module/ui/panel/FeatureRail.js.map +1 -1
- package/lib/module/ui/panel/FloatPanelView.js +5 -33
- package/lib/module/ui/panel/FloatPanelView.js.map +1 -1
- package/lib/module/utils/SessionManager.js +1 -1
- package/lib/module/utils/SessionManager.js.map +1 -1
- package/lib/typescript/src/core/initialize.d.ts +2 -0
- package/lib/typescript/src/core/initialize.d.ts.map +1 -1
- package/lib/typescript/src/features/nativeLogs/NativeLogTab.d.ts +4 -0
- package/lib/typescript/src/features/nativeLogs/NativeLogTab.d.ts.map +1 -0
- package/lib/typescript/src/features/nativeLogs/index.d.ts +12 -0
- package/lib/typescript/src/features/nativeLogs/index.d.ts.map +1 -0
- package/lib/typescript/src/features/nativeLogs/nativeLogsBridge.d.ts +11 -0
- package/lib/typescript/src/features/nativeLogs/nativeLogsBridge.d.ts.map +1 -0
- package/lib/typescript/src/features/network/NetworkLogTab.d.ts.map +1 -1
- package/lib/typescript/src/features/sessionHistory/SessionHistoryTab.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +3 -1
- 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 +1 -1
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/lib/typescript/src/types/logs.d.ts +15 -0
- package/lib/typescript/src/types/logs.d.ts.map +1 -1
- package/lib/typescript/src/ui/DebugView.d.ts.map +1 -1
- package/lib/typescript/src/ui/panel/FeatureIntroCard.d.ts +4 -1
- package/lib/typescript/src/ui/panel/FeatureIntroCard.d.ts.map +1 -1
- package/lib/typescript/src/ui/panel/FloatPanelView.d.ts.map +1 -1
- package/lib/typescript/src/utils/SessionManager.d.ts +1 -1
- package/lib/typescript/src/utils/SessionManager.d.ts.map +1 -1
- package/node/daemon/src/console/console.html +18 -0
- package/node/mcp/src/logs.js +1 -1
- package/package.json +1 -1
- package/src/core/initialize.ts +5 -0
- package/src/features/nativeLogs/NativeLogTab.tsx +66 -0
- package/src/features/nativeLogs/index.ts +94 -0
- package/src/features/nativeLogs/nativeLogsBridge.ts +51 -0
- package/src/features/network/NetworkLogTab.tsx +3 -4
- package/src/features/sessionHistory/SessionHistoryTab.tsx +2 -0
- package/src/features/sessionHistory/index.ts +2 -2
- package/src/index.ts +5 -0
- package/src/types/feature.ts +1 -0
- package/src/types/index.ts +3 -0
- package/src/types/logs.ts +17 -0
- package/src/ui/DebugView.tsx +1 -0
- package/src/ui/panel/FeatureIntroCard.tsx +47 -27
- package/src/ui/panel/FeatureRail.tsx +3 -3
- package/src/ui/panel/FloatPanelView.tsx +3 -34
- package/src/utils/SessionManager.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SESSION_INDEX_KEY","DEFAULT_MAX_SESSIONS","DEFAULT_FEATURE_KEYS","randomHex","Math","floor","random","toString","padStart","createSession","startedAt","Date","now","id","isLogSession","value","Boolean","parseSessionIndex","raw","parsed","JSON","parse","Array","isArray","sessions","currentSessionId","filter","maxSessions","compareNewestFirst","left","right","SessionManager","constructor","storage","options","currentSession","max","featureKeys","length","initialize","existing","getItem","byId","Map","set","session","from","values","sort","retained","slice","removed","index","setItem","stringify","cleanupSessionLogs","getCurrentSession","getSessionHistory","getLogStorageKey","featureKey","sessionId","loadSessionLogs","getSessionLogCount","clearCurrentSessionLogs","cleanupOldSessions","removeItem"],"sourceRoot":"../../../src","sources":["utils/SessionManager.ts"],"mappings":";;AAkBA,MAAMA,iBAAiB,GAAG,sCAAsC;AAChE,MAAMC,oBAAoB,GAAG,CAAC;AAC9B,MAAMC,oBAAqC,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"names":["SESSION_INDEX_KEY","DEFAULT_MAX_SESSIONS","DEFAULT_FEATURE_KEYS","randomHex","Math","floor","random","toString","padStart","createSession","startedAt","Date","now","id","isLogSession","value","Boolean","parseSessionIndex","raw","parsed","JSON","parse","Array","isArray","sessions","currentSessionId","filter","maxSessions","compareNewestFirst","left","right","SessionManager","constructor","storage","options","currentSession","max","featureKeys","length","initialize","existing","getItem","byId","Map","set","session","from","values","sort","retained","slice","removed","index","setItem","stringify","cleanupSessionLogs","getCurrentSession","getSessionHistory","getLogStorageKey","featureKey","sessionId","loadSessionLogs","getSessionLogCount","clearCurrentSessionLogs","cleanupOldSessions","removeItem"],"sourceRoot":"../../../src","sources":["utils/SessionManager.ts"],"mappings":";;AAkBA,MAAMA,iBAAiB,GAAG,sCAAsC;AAChE,MAAMC,oBAAoB,GAAG,CAAC;AAC9B,MAAMC,oBAAqC,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,CAAC;AAE3G,SAASC,SAASA,CAAA,EAAW;EAC3B,OAAOC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC7E;AAEA,SAASC,aAAaA,CAAA,EAAe;EACnC,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EAC5B,OAAO;IACLC,EAAE,EAAE,GAAGH,SAAS,IAAIP,SAAS,CAAC,CAAC,EAAE;IACjCO;EACF,CAAC;AACH;AAEA,SAASI,YAAYA,CAACC,KAAc,EAAuB;EACzD,OAAOC,OAAO,CACZD,KAAK,IACL,OAAOA,KAAK,KAAK,QAAQ,IACzB,OAAQA,KAAK,CAAyBF,EAAE,KAAK,QAAQ,IACrD,OAAQE,KAAK,CAAyBL,SAAS,KAAK,QACtD,CAAC;AACH;AAEA,SAASO,iBAAiBA,CAACC,GAAkB,EAAuB;EAClE,IAAI,CAACA,GAAG,EAAE;IACR,OAAO,IAAI;EACb;EAEA,IAAI;IACF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACH,GAAG,CAA0B;IACvD,IAAI,CAACC,MAAM,IAAI,CAACG,KAAK,CAACC,OAAO,CAACJ,MAAM,CAACK,QAAQ,CAAC,EAAE;MAC9C,OAAO,IAAI;IACb;IACA,OAAO;MACLC,gBAAgB,EAAE,OAAON,MAAM,CAACM,gBAAgB,KAAK,QAAQ,GAAGN,MAAM,CAACM,gBAAgB,GAAG,EAAE;MAC5FD,QAAQ,EAAEL,MAAM,CAACK,QAAQ,CAACE,MAAM,CAACZ,YAAY,CAAC;MAC9Ca,WAAW,EAAE,OAAOR,MAAM,CAACQ,WAAW,KAAK,QAAQ,GAAGR,MAAM,CAACQ,WAAW,GAAG1B;IAC7E,CAAC;EACH,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAEA,SAAS2B,kBAAkBA,CAACC,IAAgB,EAAEC,KAAiB,EAAU;EACvE,OAAOA,KAAK,CAACpB,SAAS,GAAGmB,IAAI,CAACnB,SAAS;AACzC;AAEA,OAAO,MAAMqB,cAAc,CAAC;EAM1BC,WAAWA,CAACC,OAAuB,EAAEC,OAA8B,GAAG,CAAC,CAAC,EAAE;IACxE,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,cAAc,GAAG1B,aAAa,CAAC,CAAC;IACrC,IAAI,CAACkB,WAAW,GAAGvB,IAAI,CAACgC,GAAG,CAAC,CAAC,EAAEhC,IAAI,CAACC,KAAK,CAAC6B,OAAO,CAACP,WAAW,IAAI1B,oBAAoB,CAAC,CAAC;IACvF,IAAI,CAACoC,WAAW,GAAGH,OAAO,CAACG,WAAW,EAAEC,MAAM,GAAGJ,OAAO,CAACG,WAAW,GAAGnC,oBAAoB;EAC7F;EAEA,MAAMqC,UAAUA,CAAA,EAAkB;IAChC,MAAMC,QAAQ,GAAGvB,iBAAiB,CAAC,MAAM,IAAI,CAACgB,OAAO,CAACQ,OAAO,CAACzC,iBAAiB,CAAC,CAAC;IACjF,MAAM0C,IAAI,GAAG,IAAIC,GAAG,CAAqB,CAAC;IAE1CD,IAAI,CAACE,GAAG,CAAC,IAAI,CAACT,cAAc,CAACtB,EAAE,EAAE,IAAI,CAACsB,cAAc,CAAC;IACrD,KAAK,MAAMU,OAAO,IAAIL,QAAQ,EAAEhB,QAAQ,IAAI,EAAE,EAAE;MAC9CkB,IAAI,CAACE,GAAG,CAACC,OAAO,CAAChC,EAAE,EAAEgC,OAAO,CAAC;IAC/B;IAEA,MAAMrB,QAAQ,GAAGF,KAAK,CAACwB,IAAI,CAACJ,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACpB,kBAAkB,CAAC;IACnE,MAAMqB,QAAQ,GAAGzB,QAAQ,CAAC0B,KAAK,CAAC,CAAC,EAAE,IAAI,CAACvB,WAAW,CAAC;IACpD,MAAMwB,OAAO,GAAG3B,QAAQ,CAAC0B,KAAK,CAAC,IAAI,CAACvB,WAAW,CAAC;IAChD,MAAMyB,KAAmB,GAAG;MAC1B3B,gBAAgB,EAAE,IAAI,CAACU,cAAc,CAACtB,EAAE;MACxCW,QAAQ,EAAEyB,QAAQ;MAClBtB,WAAW,EAAE,IAAI,CAACA;IACpB,CAAC;IAED,MAAM,IAAI,CAACM,OAAO,CAACoB,OAAO,CAACrD,iBAAiB,EAAEoB,IAAI,CAACkC,SAAS,CAACF,KAAK,CAAC,CAAC;IACpE,MAAM,IAAI,CAACG,kBAAkB,CAACJ,OAAO,CAAC;EACxC;EAEAK,iBAAiBA,CAAA,EAAe;IAC9B,OAAO,IAAI,CAACrB,cAAc;EAC5B;EAEA,MAAMsB,iBAAiBA,CAAA,EAA0B;IAC/C,MAAML,KAAK,GAAGnC,iBAAiB,CAAC,MAAM,IAAI,CAACgB,OAAO,CAACQ,OAAO,CAACzC,iBAAiB,CAAC,CAAC;IAC9E,OAAO,CAACoD,KAAK,EAAE5B,QAAQ,IAAI,EAAE,EAAEwB,IAAI,CAACpB,kBAAkB,CAAC;EACzD;EAEA8B,gBAAgBA,CAACC,UAAyB,EAAEC,SAAS,GAAG,IAAI,CAACzB,cAAc,CAACtB,EAAE,EAAU;IACtF,OAAO,+BAA+B+C,SAAS,IAAID,UAAU,EAAE;EACjE;EAEA,MAAME,eAAeA,CAAID,SAAiB,EAAED,UAAyB,EAAgB;IACnF,MAAMzC,GAAG,GAAG,MAAM,IAAI,CAACe,OAAO,CAACQ,OAAO,CAAC,IAAI,CAACiB,gBAAgB,CAACC,UAAU,EAAEC,SAAS,CAAC,CAAC;IACpF,IAAI,CAAC1C,GAAG,EAAE;MACR,OAAO,EAAE;IACX;IAEA,IAAI;MACF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACH,GAAG,CAAY;MACzC,OAAOI,KAAK,CAACC,OAAO,CAACJ,MAAM,CAAC,GAAGA,MAAM,GAAU,EAAE;IACnD,CAAC,CAAC,MAAM;MACN,OAAO,EAAE;IACX;EACF;EAEA,MAAM2C,kBAAkBA,CAACF,SAAiB,EAAED,UAAyB,EAAmB;IACtF,MAAMzC,GAAG,GAAG,MAAM,IAAI,CAACe,OAAO,CAACQ,OAAO,CAAC,IAAI,CAACiB,gBAAgB,CAACC,UAAU,EAAEC,SAAS,CAAC,CAAC;IACpF,IAAI,CAAC1C,GAAG,EAAE,OAAO,CAAC;IAClB,IAAI;MACF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC;MAC9B,OAAOI,KAAK,CAACC,OAAO,CAACJ,MAAM,CAAC,GAAGA,MAAM,CAACmB,MAAM,GAAG,CAAC;IAClD,CAAC,CAAC,MAAM;MACN,OAAO,CAAC;IACV;EACF;EAEA,MAAMyB,uBAAuBA,CAACJ,UAAyB,EAAiB;IACtE,MAAM,IAAI,CAAC1B,OAAO,CAACoB,OAAO,CAAC,IAAI,CAACK,gBAAgB,CAACC,UAAU,CAAC,EAAE,IAAI,CAAC;EACrE;EAEA,MAAMK,kBAAkBA,CAAA,EAAoB;IAC1C,MAAMZ,KAAK,GAAGnC,iBAAiB,CAAC,MAAM,IAAI,CAACgB,OAAO,CAACQ,OAAO,CAACzC,iBAAiB,CAAC,CAAC;IAC9E,IAAI,CAACoD,KAAK,EAAE;MACV,OAAO,CAAC;IACV;IAEA,MAAM5B,QAAQ,GAAG4B,KAAK,CAAC5B,QAAQ,CAACwB,IAAI,CAACpB,kBAAkB,CAAC;IACxD,MAAMqB,QAAQ,GAAGzB,QAAQ,CAAC0B,KAAK,CAAC,CAAC,EAAE,IAAI,CAACvB,WAAW,CAAC;IACpD,MAAMwB,OAAO,GAAG3B,QAAQ,CAAC0B,KAAK,CAAC,IAAI,CAACvB,WAAW,CAAC;IAChD,IAAIwB,OAAO,CAACb,MAAM,KAAK,CAAC,EAAE;MACxB,OAAO,CAAC;IACV;IAEA,MAAM,IAAI,CAACL,OAAO,CAACoB,OAAO,CAACrD,iBAAiB,EAAEoB,IAAI,CAACkC,SAAS,CAAC;MAC3D7B,gBAAgB,EAAE2B,KAAK,CAAC3B,gBAAgB;MACxCD,QAAQ,EAAEyB,QAAQ;MAClBtB,WAAW,EAAE,IAAI,CAACA;IACpB,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,CAAC4B,kBAAkB,CAACJ,OAAO,CAAC;IACtC,OAAOA,OAAO,CAACb,MAAM;EACvB;EAEA,MAAciB,kBAAkBA,CAAC/B,QAAsB,EAAiB;IACtE,KAAK,MAAMqB,OAAO,IAAIrB,QAAQ,EAAE;MAC9B,KAAK,MAAMmC,UAAU,IAAI,IAAI,CAACtB,WAAW,EAAE;QACzC,MAAM,IAAI,CAACJ,OAAO,CAACgC,UAAU,CAAC,IAAI,CAACP,gBAAgB,CAACC,UAAU,EAAEd,OAAO,CAAChC,EAAE,CAAC,CAAC;MAC9E;IACF;EACF;AACF","ignoreList":[]}
|
|
@@ -5,12 +5,14 @@ import type { ZustandFeatureConfig } from '../features/zustand';
|
|
|
5
5
|
import type { NavigationFeatureConfig } from '../features/navigation';
|
|
6
6
|
import type { TrackFeatureConfig } from '../features/track';
|
|
7
7
|
import { createEnvironmentFeature } from '../features/environment';
|
|
8
|
+
import type { NativeLogsFeatureConfig } from '../features/nativeLogs';
|
|
8
9
|
import type { AnyDebugFeature } from '../types';
|
|
9
10
|
import type { StorageAdapter } from '../utils/StorageAdapter';
|
|
10
11
|
/** Feature-specific configuration map */
|
|
11
12
|
export interface FeatureConfigs {
|
|
12
13
|
network?: boolean | NetworkFeatureConfig;
|
|
13
14
|
console?: boolean | ConsoleFeatureConfig;
|
|
15
|
+
native?: boolean | NativeLogsFeatureConfig;
|
|
14
16
|
zustand?: boolean | ZustandFeatureConfig;
|
|
15
17
|
navigation?: boolean | NavigationFeatureConfig;
|
|
16
18
|
track?: boolean | TrackFeatureConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../src/core/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAKnE,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAS9D,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IAC/C,KAAK,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACrC,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,cAAc,CAAC,EAAE,eAAe,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../src/core/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAKnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAS9D,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IAC/C,KAAK,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACrC,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,cAAc,CAAC,EAAE,eAAe,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAuED;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,OAAO,YAAY,CAAC,CA2D9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeLogTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/nativeLogs/NativeLogTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAO3E,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,cAAc,EAAE,CAAC,CAmC3E,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DebugFeature, NativeLogEntry } from '../../types';
|
|
2
|
+
import { type LogRuntimeContext } from '../../utils/logRuntime';
|
|
3
|
+
export interface NativeLogsFeatureConfig {
|
|
4
|
+
maxLogs?: number;
|
|
5
|
+
pollIntervalMs?: number;
|
|
6
|
+
minLevel?: NativeLogEntry['level'];
|
|
7
|
+
includeTags?: Array<string | RegExp>;
|
|
8
|
+
excludeTags?: Array<string | RegExp>;
|
|
9
|
+
}
|
|
10
|
+
export declare const createNativeLogsFeature: (config?: NativeLogsFeatureConfig, runtime?: LogRuntimeContext) => DebugFeature<NativeLogEntry[]>;
|
|
11
|
+
export declare function _resetNativeLogsForTesting(): void;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/nativeLogs/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAwB,cAAc,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAYtF,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CACtC;AAcD,eAAO,MAAM,uBAAuB,GAClC,SAAS,uBAAuB,EAChC,UAAS,iBAA0C,KAClD,YAAY,CAAC,cAAc,EAAE,CAmD/B,CAAC;AAEF,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { NativeLogEntry } from '../../types';
|
|
2
|
+
export declare function isNativeLogsAvailable(): boolean;
|
|
3
|
+
export declare function startNativeLogCapture(options?: Record<string, unknown>): Promise<boolean>;
|
|
4
|
+
export declare function stopNativeLogCapture(): Promise<boolean>;
|
|
5
|
+
export declare function drainNativeLogs(max?: number): Promise<Array<Omit<NativeLogEntry, 'id'>>>;
|
|
6
|
+
export declare function getNativeLogsStatus(): Promise<{
|
|
7
|
+
available: boolean;
|
|
8
|
+
capturing: boolean;
|
|
9
|
+
error?: string;
|
|
10
|
+
}>;
|
|
11
|
+
//# sourceMappingURL=nativeLogsBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeLogsBridge.d.ts","sourceRoot":"","sources":["../../../../../src/features/nativeLogs/nativeLogsBridge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAelD,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED,wBAAsB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAK/F;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAK7D;AAED,wBAAsB,eAAe,CAAC,GAAG,SAAM,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAK3F;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAS/G"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkLogTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/network/NetworkLogTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA4B5E,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,eAAe,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"NetworkLogTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/network/NetworkLogTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA4B5E,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,eAAe,EAAE,CAAC,CA0H7E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionHistoryTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/sessionHistory/SessionHistoryTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAiB9D,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIpG,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,qBAAsB,SAAQ,YAAY,CAAC,mBAAmB,CAAC;IAC9E,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;CACxC;
|
|
1
|
+
{"version":3,"file":"SessionHistoryTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/sessionHistory/SessionHistoryTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAiB9D,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIpG,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,qBAAsB,SAAQ,YAAY,CAAC,mBAAmB,CAAC;IAC9E,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;CACxC;AAuGD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAqHpF,CAAC"}
|
|
@@ -20,6 +20,8 @@ export { createClipboardFeature } from './features/clipboard';
|
|
|
20
20
|
export { createDevConnectFeature } from './features/devConnect';
|
|
21
21
|
export type { DevConnectState } from './features/devConnect';
|
|
22
22
|
export { createSessionHistoryFeature } from './features/sessionHistory';
|
|
23
|
+
export { createNativeLogsFeature } from './features/nativeLogs';
|
|
24
|
+
export type { NativeLogsFeatureConfig } from './features/nativeLogs';
|
|
23
25
|
export { useNavigationLogger } from './features/navigation/useNavigationLogger';
|
|
24
26
|
export { safeStringify } from './utils/safeStringify';
|
|
25
27
|
export { createDebugTab } from './utils/createDebugTab';
|
|
@@ -34,6 +36,6 @@ export { getDefaultDaemonEndpoint } from './utils/DaemonClient';
|
|
|
34
36
|
export { createDefaultLogStorage, MemoryStorageAdapter, } from './utils/StorageAdapter';
|
|
35
37
|
export type { StorageAdapter } from './utils/StorageAdapter';
|
|
36
38
|
export type { LogFeatureKey, LogSession, SessionManagerOptions, } from './utils/SessionManager';
|
|
37
|
-
export type { AnyDebugFeature, BuiltInFeatureName, DebugFeature, DebugFeatureListener, DebugFeatureRenderProps, FeatureDataProvider, NetworkLogEntry, ConsoleLogEntry, ZustandLogEntry, NavigationLogEntry, TrackLogEntry, EnvironmentConfig, EnvironmentState, } from './types';
|
|
39
|
+
export type { AnyDebugFeature, BuiltInFeatureName, DebugFeature, DebugFeatureListener, DebugFeatureRenderProps, FeatureDataProvider, NetworkLogEntry, ConsoleLogEntry, NativeLogEntry, NativeLogLevel, NativeLogSource, ZustandLogEntry, NavigationLogEntry, TrackLogEntry, EnvironmentConfig, EnvironmentState, } from './types';
|
|
38
40
|
export { initializeDebugToolkit as default } from './core/initialize';
|
|
39
41
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClG,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrF,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComponentType } from 'react';
|
|
2
2
|
export type DebugFeatureListener = () => void;
|
|
3
|
-
export type BuiltInFeatureName = 'network' | 'console' | 'zustand' | 'navigation' | 'track' | 'environment' | 'clipboard' | 'devConnect' | 'sessionHistory';
|
|
3
|
+
export type BuiltInFeatureName = 'network' | 'console' | 'native' | 'zustand' | 'navigation' | 'track' | 'environment' | 'clipboard' | 'devConnect' | 'sessionHistory';
|
|
4
4
|
export interface DebugFeatureRenderProps<TSnapshot = unknown> {
|
|
5
5
|
snapshot: TSnapshot;
|
|
6
6
|
feature: DebugFeature<TSnapshot>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../../src/types/feature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,SAAS,GACT,YAAY,GACZ,OAAO,GACP,aAAa,GACb,WAAW,GACX,YAAY,GACZ,gBAAgB,CAAC;AAErB,MAAM,WAAW,uBAAuB,CAAC,SAAS,GAAG,OAAO;IAC1D,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;CAClC;AAGD,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAEhD,wFAAwF;AACxF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;IACrC,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,YAAY,CAAC,SAAS,GAAG,OAAO;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,WAAW,EAAE,MAAM,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,MAAM,IAAI,CAAC;IAC3D,aAAa,CAAC,EAAE,aAAa,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;IAClE,KAAK,CAAC,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACvD"}
|
|
1
|
+
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../../../../src/types/feature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,OAAO,GACP,aAAa,GACb,WAAW,GACX,YAAY,GACZ,gBAAgB,CAAC;AAErB,MAAM,WAAW,uBAAuB,CAAC,SAAS,GAAG,OAAO;IAC1D,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;CAClC;AAGD,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAEhD,wFAAwF;AACxF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;IACrC,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,YAAY,CAAC,SAAS,GAAG,OAAO;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,WAAW,EAAE,MAAM,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,MAAM,IAAI,CAAC;IAC3D,aAAa,CAAC,EAAE,aAAa,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;IAClE,KAAK,CAAC,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACvD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { AnyDebugFeature, BuiltInFeatureName, DebugFeature, DebugFeatureListener, DebugFeatureRenderProps, FeatureDataProvider, } from './feature';
|
|
2
|
-
export type { ConsoleLogEntry, NavigationLogEntry, NetworkLogEntry, TrackLogEntry, ZustandLogEntry, } from './logs';
|
|
2
|
+
export type { ConsoleLogEntry, NavigationLogEntry, NativeLogEntry, NativeLogLevel, NativeLogSource, NetworkLogEntry, TrackLogEntry, ZustandLogEntry, } from './logs';
|
|
3
3
|
export type { EnvironmentConfig, EnvironmentState, } from './environment';
|
|
4
4
|
export type { NavigationContainerRef, } from './navigation';
|
|
5
5
|
export type { ThirdPartyLib, ThirdPartyLibAction, } from './thirdPartyLibs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,QAAQ,CAAC;AAEhB,YAAY,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,aAAa,EACb,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,cAAc,GACf,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,aAAa,EACb,UAAU,EACV,qBAAqB,GACtB,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,QAAQ,CAAC;AAEhB,YAAY,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,aAAa,EACb,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,cAAc,GACf,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,aAAa,EACb,UAAU,EACV,qBAAqB,GACtB,MAAM,yBAAyB,CAAC"}
|
|
@@ -48,4 +48,19 @@ export interface TrackLogEntry {
|
|
|
48
48
|
eventName: string;
|
|
49
49
|
[key: string]: unknown;
|
|
50
50
|
}
|
|
51
|
+
export type NativeLogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal' | 'unknown';
|
|
52
|
+
export type NativeLogSource = 'logcat' | 'rctLog' | 'manual';
|
|
53
|
+
export interface NativeLogEntry {
|
|
54
|
+
id: string;
|
|
55
|
+
timestamp: number;
|
|
56
|
+
platform: 'android' | 'ios' | 'unknown';
|
|
57
|
+
level: NativeLogLevel;
|
|
58
|
+
source: NativeLogSource;
|
|
59
|
+
message: string;
|
|
60
|
+
tag?: string;
|
|
61
|
+
thread?: string;
|
|
62
|
+
file?: string;
|
|
63
|
+
line?: number;
|
|
64
|
+
raw?: string;
|
|
65
|
+
}
|
|
51
66
|
//# sourceMappingURL=logs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../../src/types/logs.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACzC,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../../src/types/logs.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACzC,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AACjG,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;IACxC,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DebugView.d.ts","sourceRoot":"","sources":["../../../../src/ui/DebugView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAI3F,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,6DAA6D;IAC7D,cAAc,CAAC,EAAE,eAAe,EAAE,CAAC;IACnC,mDAAmD;IACnD,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAC/D,sDAAsD;IACtD,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAeD,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,aAAa,EACb,YAAY,EACZ,OAAO,GACR,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"DebugView.d.ts","sourceRoot":"","sources":["../../../../src/ui/DebugView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAI3F,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,6DAA6D;IAC7D,cAAc,CAAC,EAAE,eAAe,EAAE,CAAC;IACnC,mDAAmD;IACnD,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAC/D,sDAAsD;IACtD,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAeD,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,aAAa,EACb,YAAY,EACZ,OAAO,GACR,EAAE,cAAc,qBAiDhB"}
|
|
@@ -5,7 +5,10 @@ interface FeatureIntroCardProps {
|
|
|
5
5
|
summary: FeatureSummary;
|
|
6
6
|
filterBad: boolean;
|
|
7
7
|
onFilterBad: (bad: boolean) => void;
|
|
8
|
+
searchQuery?: string;
|
|
9
|
+
onSearchChange?: (text: string) => void;
|
|
10
|
+
showSearch?: boolean;
|
|
8
11
|
}
|
|
9
|
-
export declare function FeatureIntroCard({ title, summary, filterBad, onFilterBad, }: FeatureIntroCardProps): React.JSX.Element;
|
|
12
|
+
export declare function FeatureIntroCard({ title, summary, filterBad, onFilterBad, searchQuery, onSearchChange, showSearch, }: FeatureIntroCardProps): React.JSX.Element;
|
|
10
13
|
export {};
|
|
11
14
|
//# sourceMappingURL=FeatureIntroCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureIntroCard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/panel/FeatureIntroCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAO5D,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"FeatureIntroCard.d.ts","sourceRoot":"","sources":["../../../../../src/ui/panel/FeatureIntroCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAO5D,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,GACX,EAAE,qBAAqB,qBA2CvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatPanelView.d.ts","sourceRoot":"","sources":["../../../../../src/ui/panel/FloatPanelView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FloatPanelView.d.ts","sourceRoot":"","sources":["../../../../../src/ui/panel/FloatPanelView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8D,MAAM,OAAO,CAAC;AAOnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA0FnD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,mBAAmB,qBA4JjH"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SessionInfo } from './deviceReport';
|
|
2
2
|
import type { StorageAdapter } from './StorageAdapter';
|
|
3
|
-
export type LogFeatureKey = 'console_logs' | 'network_logs' | 'track_logs';
|
|
3
|
+
export type LogFeatureKey = 'console_logs' | 'network_logs' | 'native_logs' | 'track_logs';
|
|
4
4
|
export type LogSession = SessionInfo;
|
|
5
5
|
export interface SessionIndex {
|
|
6
6
|
currentSessionId: string;
|
|
@@ -1 +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;
|
|
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,aAAa,GAAG,YAAY,CAAC;AAE3F,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"}
|
|
@@ -300,6 +300,7 @@ header h1 span{color:var(--text3);font-weight:400}
|
|
|
300
300
|
}
|
|
301
301
|
.log-type-network{color:var(--cyan)}
|
|
302
302
|
.log-type-console{color:var(--green)}
|
|
303
|
+
.log-type-native{color:var(--amber)}
|
|
303
304
|
.log-type-navigation{color:var(--purple)}
|
|
304
305
|
.log-type-track{color:var(--orange)}
|
|
305
306
|
.log-type-zustand{color:var(--pink)}
|
|
@@ -713,6 +714,7 @@ mark{
|
|
|
713
714
|
navigation: 'Navigation',
|
|
714
715
|
track: 'Track',
|
|
715
716
|
zustand: 'State',
|
|
717
|
+
native: 'Native',
|
|
716
718
|
clipboard: 'Clipboard',
|
|
717
719
|
environment: 'Environment',
|
|
718
720
|
};
|
|
@@ -764,6 +766,9 @@ mark{
|
|
|
764
766
|
var data = Array.isArray(entry.data) ? entry.data.map(formatInlineValue).join(' ') : formatInlineValue(entry.data);
|
|
765
767
|
return escapeHtml(data.substring(0, 200));
|
|
766
768
|
}
|
|
769
|
+
if (entry.source === 'logcat' || entry.source === 'rctLog') {
|
|
770
|
+
return escapeHtml([entry.tag, entry.message].filter(Boolean).join(': ').substring(0, 200));
|
|
771
|
+
}
|
|
767
772
|
if (entry.from || entry.to) return escapeHtml((entry.from || '-') + ' -> ' + (entry.to || '-'));
|
|
768
773
|
if (entry.eventName) return escapeHtml(String(entry.eventName));
|
|
769
774
|
if (entry.event) return escapeHtml(String(entry.event));
|
|
@@ -778,6 +783,7 @@ mark{
|
|
|
778
783
|
if (entry.from || entry.to || entry.path) return 'navigation';
|
|
779
784
|
if (entry.eventName || entry.event) return 'track';
|
|
780
785
|
if (entry.prevState !== undefined || entry.nextState !== undefined || entry.storeName) return 'zustand';
|
|
786
|
+
if (entry.source === 'logcat' || entry.source === 'rctLog' || entry.platform === 'android' || entry.platform === 'ios') return 'native';
|
|
781
787
|
if (entry.action) return 'zustand';
|
|
782
788
|
return 'unknown';
|
|
783
789
|
}
|
|
@@ -919,6 +925,17 @@ mark{
|
|
|
919
925
|
entry.data);
|
|
920
926
|
}
|
|
921
927
|
|
|
928
|
+
function renderNativeDetails(entry) {
|
|
929
|
+
return renderSection('Native Log', renderRows([
|
|
930
|
+
['Level', entry.level], ['Platform', entry.platform], ['Source', entry.source],
|
|
931
|
+
['Tag', entry.tag], ['Thread', entry.thread], ['File', entry.file],
|
|
932
|
+
['Line', entry.line], ['Time', entry.timestamp ? formatTime(new Date(entry.timestamp).toISOString()) : ''],
|
|
933
|
+
])) +
|
|
934
|
+
renderSection('Message', renderValue(entry.message || ''), entry.message || '') +
|
|
935
|
+
(entry.raw ? renderSection('Raw', renderValue(entry.raw), entry.raw) : '') +
|
|
936
|
+
renderSection('Entry JSON', renderValue(entry), entry);
|
|
937
|
+
}
|
|
938
|
+
|
|
922
939
|
function estimateByteSize(value) {
|
|
923
940
|
if (value == null) return 0;
|
|
924
941
|
if (typeof value === 'string') return new Blob([value]).size;
|
|
@@ -1084,6 +1101,7 @@ mark{
|
|
|
1084
1101
|
}
|
|
1085
1102
|
if (logType === 'network') return renderNetworkDetails(entry);
|
|
1086
1103
|
if (logType === 'console') return renderConsoleDetails(entry);
|
|
1104
|
+
if (logType === 'native') return renderNativeDetails(entry);
|
|
1087
1105
|
if (logType === 'navigation') return renderNavigationDetails(entry);
|
|
1088
1106
|
if (logType === 'track') return renderTrackDetails(entry);
|
|
1089
1107
|
if (logType === 'zustand') return renderStateDetails(entry);
|
package/node/mcp/src/logs.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-debug-toolkit",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.1",
|
|
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",
|
package/src/core/initialize.ts
CHANGED
|
@@ -13,6 +13,8 @@ import { createEnvironmentFeature } from '../features/environment';
|
|
|
13
13
|
import { createClipboardFeature } from '../features/clipboard';
|
|
14
14
|
import { createDevConnectFeature, restoreDevConnectSettingsToDaemon, nativeIsDebugBuild } from '../features/devConnect';
|
|
15
15
|
import { createSessionHistoryFeature } from '../features/sessionHistory';
|
|
16
|
+
import { createNativeLogsFeature } from '../features/nativeLogs';
|
|
17
|
+
import type { NativeLogsFeatureConfig } from '../features/nativeLogs';
|
|
16
18
|
import { daemonClient } from '../utils/DaemonClient';
|
|
17
19
|
import type { AnyDebugFeature, BuiltInFeatureName } from '../types';
|
|
18
20
|
import type { StorageAdapter } from '../utils/StorageAdapter';
|
|
@@ -28,6 +30,7 @@ const isDebugMode = __DEV__;
|
|
|
28
30
|
export interface FeatureConfigs {
|
|
29
31
|
network?: boolean | NetworkFeatureConfig;
|
|
30
32
|
console?: boolean | ConsoleFeatureConfig;
|
|
33
|
+
native?: boolean | NativeLogsFeatureConfig;
|
|
31
34
|
zustand?: boolean | ZustandFeatureConfig;
|
|
32
35
|
navigation?: boolean | NavigationFeatureConfig;
|
|
33
36
|
track?: boolean | TrackFeatureConfig;
|
|
@@ -52,6 +55,7 @@ type BuiltInFeatureCreator = (config?: unknown, runtime?: LogRuntimeContext) =>
|
|
|
52
55
|
const featureRegistry: Record<BuiltInFeatureName, BuiltInFeatureCreator> = {
|
|
53
56
|
network: (config, runtime) => createNetworkFeature(config as NetworkFeatureConfig | undefined, runtime),
|
|
54
57
|
console: (config, runtime) => createConsoleLogFeature(config as ConsoleFeatureConfig | undefined, runtime),
|
|
58
|
+
native: (config) => createNativeLogsFeature(config as NativeLogsFeatureConfig | undefined),
|
|
55
59
|
zustand: (config) => createZustandLogFeature(config as ZustandFeatureConfig | undefined),
|
|
56
60
|
navigation: (config) => createNavigationLogFeature(config as NavigationFeatureConfig | undefined),
|
|
57
61
|
track: (config, runtime) => createTrackFeature(config as TrackFeatureConfig | undefined, runtime),
|
|
@@ -64,6 +68,7 @@ const featureRegistry: Record<BuiltInFeatureName, BuiltInFeatureCreator> = {
|
|
|
64
68
|
const DEFAULT_FEATURES: BuiltInFeatureName[] = [
|
|
65
69
|
'network',
|
|
66
70
|
'console',
|
|
71
|
+
'native',
|
|
67
72
|
'navigation',
|
|
68
73
|
'zustand',
|
|
69
74
|
'track',
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ScrollView, StyleSheet, Text, View } from 'react-native';
|
|
3
|
+
import { CopyButton } from '../../ui/shared/CopyButton';
|
|
4
|
+
import { LogListScreen } from '../../ui/shared/LogListScreen';
|
|
5
|
+
import { Colors } from '../../ui/theme/colors';
|
|
6
|
+
import { fmt } from '../../utils/copyToComputer';
|
|
7
|
+
import type { DebugFeatureRenderProps, NativeLogEntry } from '../../types';
|
|
8
|
+
|
|
9
|
+
const LEVEL_COLORS: Record<string, string> = {
|
|
10
|
+
trace: '#8E8E93', debug: '#8E8E93', info: '#007AFF',
|
|
11
|
+
warn: '#FF9500', error: '#FF3B30', fatal: '#AF52DE', unknown: '#8E8E93',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const NativeLogTab: React.FC<DebugFeatureRenderProps<NativeLogEntry[]>> = React.memo(({ snapshot }) => (
|
|
15
|
+
<LogListScreen
|
|
16
|
+
data={snapshot}
|
|
17
|
+
emptyText="No native logs"
|
|
18
|
+
renderRow={(item) => (
|
|
19
|
+
<View style={s.row}>
|
|
20
|
+
<View style={[s.level, { backgroundColor: LEVEL_COLORS[item.level] ?? LEVEL_COLORS.unknown }]}>
|
|
21
|
+
<Text style={s.levelText}>{item.level.slice(0, 1).toUpperCase()}</Text>
|
|
22
|
+
</View>
|
|
23
|
+
<View style={s.content}>
|
|
24
|
+
<Text style={s.message} numberOfLines={2}>{item.message}</Text>
|
|
25
|
+
<Text style={s.meta}>
|
|
26
|
+
{[item.platform, item.source, item.tag].filter(Boolean).join(' / ')} · {new Date(item.timestamp).toLocaleTimeString()}
|
|
27
|
+
</Text>
|
|
28
|
+
</View>
|
|
29
|
+
</View>
|
|
30
|
+
)}
|
|
31
|
+
renderDetailHeader={(item) => (
|
|
32
|
+
<>
|
|
33
|
+
<View style={[s.badge, { backgroundColor: LEVEL_COLORS[item.level] ?? LEVEL_COLORS.unknown }]}>
|
|
34
|
+
<Text style={s.badgeText}>{item.level.toUpperCase()}</Text>
|
|
35
|
+
</View>
|
|
36
|
+
<Text style={s.detailTime}>{new Date(item.timestamp).toLocaleString()}</Text>
|
|
37
|
+
</>
|
|
38
|
+
)}
|
|
39
|
+
renderDetailBody={(item) => (
|
|
40
|
+
<ScrollView style={s.detailBody} contentContainerStyle={s.detailContent}>
|
|
41
|
+
<View style={s.copyRow}>
|
|
42
|
+
<CopyButton text={fmt(item)} label="Native Log" />
|
|
43
|
+
</View>
|
|
44
|
+
<Text style={s.messageBlock} selectable>{item.message}</Text>
|
|
45
|
+
<Text style={s.rawBlock} selectable>{fmt(item)}</Text>
|
|
46
|
+
</ScrollView>
|
|
47
|
+
)}
|
|
48
|
+
/>
|
|
49
|
+
));
|
|
50
|
+
|
|
51
|
+
const s = StyleSheet.create({
|
|
52
|
+
row: { flexDirection: 'row', padding: 14, alignItems: 'flex-start' },
|
|
53
|
+
level: { width: 24, height: 24, borderRadius: 12, alignItems: 'center', justifyContent: 'center', marginRight: 12 },
|
|
54
|
+
levelText: { color: '#FFF', fontSize: 11, fontWeight: '700' },
|
|
55
|
+
content: { flex: 1 },
|
|
56
|
+
message: { fontSize: 14, color: Colors.text, lineHeight: 20 },
|
|
57
|
+
meta: { fontSize: 12, color: Colors.textSecondary, marginTop: 4 },
|
|
58
|
+
badge: { paddingHorizontal: 10, paddingVertical: 4, borderRadius: 6 },
|
|
59
|
+
badgeText: { color: '#FFF', fontSize: 12, fontWeight: '700' },
|
|
60
|
+
detailTime: { flex: 1, fontSize: 13, color: Colors.textSecondary, textAlign: 'right' },
|
|
61
|
+
detailBody: { flex: 1 },
|
|
62
|
+
detailContent: { padding: 12, gap: 12 },
|
|
63
|
+
copyRow: { alignItems: 'flex-end' },
|
|
64
|
+
messageBlock: { fontFamily: 'Courier', fontSize: 13, color: Colors.text, lineHeight: 20 },
|
|
65
|
+
rawBlock: { fontFamily: 'Courier', fontSize: 12, color: Colors.textSecondary, lineHeight: 18 },
|
|
66
|
+
});
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { NativeLogTab } from './NativeLogTab';
|
|
2
|
+
import type { DebugFeature, DebugFeatureListener, NativeLogEntry } from '../../types';
|
|
3
|
+
import { createPersistedObservableStore } from '../../utils/createPersistedObservableStore';
|
|
4
|
+
import { getDefaultLogRuntime, type LogRuntimeContext } from '../../utils/logRuntime';
|
|
5
|
+
import { drainNativeLogs, startNativeLogCapture, stopNativeLogCapture } from './nativeLogsBridge';
|
|
6
|
+
|
|
7
|
+
const DEFAULT_MAX_LOGS = 200;
|
|
8
|
+
const DEFAULT_MAX_PERSIST = 50;
|
|
9
|
+
const DEFAULT_POLL_INTERVAL_MS = 500;
|
|
10
|
+
const DEFAULT_DRAIN_LIMIT = 100;
|
|
11
|
+
|
|
12
|
+
const LEVEL_RANK: Record<NativeLogEntry['level'], number> = {
|
|
13
|
+
trace: 0, debug: 1, info: 2, warn: 3, error: 4, fatal: 5, unknown: 0,
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export interface NativeLogsFeatureConfig {
|
|
17
|
+
maxLogs?: number;
|
|
18
|
+
pollIntervalMs?: number;
|
|
19
|
+
minLevel?: NativeLogEntry['level'];
|
|
20
|
+
includeTags?: Array<string | RegExp>;
|
|
21
|
+
excludeTags?: Array<string | RegExp>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function matchesPattern(value: string | undefined, patterns: Array<string | RegExp> | undefined): boolean {
|
|
25
|
+
if (!value || !patterns?.length) return false;
|
|
26
|
+
return patterns.some((p) => p instanceof RegExp ? p.test(value) : value.includes(p));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function shouldKeepEntry(entry: Omit<NativeLogEntry, 'id'>, config?: NativeLogsFeatureConfig): boolean {
|
|
30
|
+
if (config?.minLevel && LEVEL_RANK[entry.level] < LEVEL_RANK[config.minLevel]) return false;
|
|
31
|
+
if (config?.includeTags?.length && !matchesPattern(entry.tag, config.includeTags)) return false;
|
|
32
|
+
if (matchesPattern(entry.tag, config?.excludeTags)) return false;
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export const createNativeLogsFeature = (
|
|
37
|
+
config?: NativeLogsFeatureConfig,
|
|
38
|
+
runtime: LogRuntimeContext = getDefaultLogRuntime(),
|
|
39
|
+
): DebugFeature<NativeLogEntry[]> => {
|
|
40
|
+
const maxLogs = config?.maxLogs ?? DEFAULT_MAX_LOGS;
|
|
41
|
+
const pollIntervalMs = Math.max(100, Math.floor(config?.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS));
|
|
42
|
+
const logStore = createPersistedObservableStore<NativeLogEntry>({
|
|
43
|
+
storage: runtime.logStorage,
|
|
44
|
+
storageKey: runtime.sessionManager.getLogStorageKey('native_logs'),
|
|
45
|
+
maxPersist: DEFAULT_MAX_PERSIST,
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
let initialized = false;
|
|
49
|
+
let timer: ReturnType<typeof setInterval> | null = null;
|
|
50
|
+
let draining = false;
|
|
51
|
+
|
|
52
|
+
async function drainOnce(): Promise<void> {
|
|
53
|
+
if (draining) return;
|
|
54
|
+
draining = true;
|
|
55
|
+
try {
|
|
56
|
+
const entries = await drainNativeLogs(DEFAULT_DRAIN_LIMIT);
|
|
57
|
+
entries.filter((e) => shouldKeepEntry(e, config)).forEach((entry) => {
|
|
58
|
+
logStore.push({ ...entry, id: logStore.nextId() }, maxLogs);
|
|
59
|
+
});
|
|
60
|
+
} finally { draining = false; }
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
name: 'native',
|
|
65
|
+
label: 'Native',
|
|
66
|
+
renderContent: NativeLogTab,
|
|
67
|
+
setup: () => {
|
|
68
|
+
if (initialized) return;
|
|
69
|
+
initialized = true;
|
|
70
|
+
startNativeLogCapture({
|
|
71
|
+
minLevel: config?.minLevel,
|
|
72
|
+
includeTags: config?.includeTags?.filter((p) => typeof p === 'string'),
|
|
73
|
+
excludeTags: config?.excludeTags?.filter((p) => typeof p === 'string'),
|
|
74
|
+
}).catch(() => {});
|
|
75
|
+
timer = setInterval(() => { drainOnce().catch(() => {}); }, pollIntervalMs);
|
|
76
|
+
},
|
|
77
|
+
getSnapshot: () => logStore.getData(),
|
|
78
|
+
clear: () => { logStore.clearPersisted(); },
|
|
79
|
+
cleanup: () => {
|
|
80
|
+
if (!initialized) return;
|
|
81
|
+
if (timer) clearInterval(timer);
|
|
82
|
+
timer = null;
|
|
83
|
+
stopNativeLogCapture().catch(() => {});
|
|
84
|
+
logStore.dispose();
|
|
85
|
+
initialized = false;
|
|
86
|
+
draining = false;
|
|
87
|
+
},
|
|
88
|
+
subscribe: (listener: DebugFeatureListener) => logStore.subscribe(listener),
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export function _resetNativeLogsForTesting(): void {
|
|
93
|
+
stopNativeLogCapture().catch(() => {});
|
|
94
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { NativeModules } from 'react-native';
|
|
2
|
+
import type { NativeLogEntry } from '../../types';
|
|
3
|
+
|
|
4
|
+
interface NativeLogsModule {
|
|
5
|
+
startCapture?: (options?: Record<string, unknown>) => Promise<{ ok: boolean }>;
|
|
6
|
+
stopCapture?: () => Promise<{ ok: boolean }>;
|
|
7
|
+
drainLogs?: (max?: number) => Promise<Array<Omit<NativeLogEntry, 'id'>>>;
|
|
8
|
+
getStatus?: () => Promise<{ available: boolean; capturing: boolean; error?: string }>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function getNativeModule(): NativeLogsModule | null {
|
|
12
|
+
const mod = NativeModules.DebugToolkitNativeLogs as NativeLogsModule | undefined;
|
|
13
|
+
if (!mod || typeof mod.drainLogs !== 'function') return null;
|
|
14
|
+
return mod;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function isNativeLogsAvailable(): boolean {
|
|
18
|
+
return getNativeModule() !== null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export async function startNativeLogCapture(options?: Record<string, unknown>): Promise<boolean> {
|
|
22
|
+
const mod = getNativeModule();
|
|
23
|
+
if (!mod?.startCapture) return false;
|
|
24
|
+
try { const r = await mod.startCapture(options ?? {}); return r?.ok === true; }
|
|
25
|
+
catch { return false; }
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export async function stopNativeLogCapture(): Promise<boolean> {
|
|
29
|
+
const mod = getNativeModule();
|
|
30
|
+
if (!mod?.stopCapture) return false;
|
|
31
|
+
try { const r = await mod.stopCapture(); return r?.ok === true; }
|
|
32
|
+
catch { return false; }
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export async function drainNativeLogs(max = 100): Promise<Array<Omit<NativeLogEntry, 'id'>>> {
|
|
36
|
+
const mod = getNativeModule();
|
|
37
|
+
if (!mod?.drainLogs) return [];
|
|
38
|
+
try { const entries = await mod.drainLogs(Math.max(1, Math.floor(max))); return Array.isArray(entries) ? entries : []; }
|
|
39
|
+
catch { return []; }
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export async function getNativeLogsStatus(): Promise<{ available: boolean; capturing: boolean; error?: string }> {
|
|
43
|
+
const mod = getNativeModule();
|
|
44
|
+
if (!mod?.getStatus) return { available: false, capturing: false };
|
|
45
|
+
try {
|
|
46
|
+
const s = await mod.getStatus();
|
|
47
|
+
return { available: s?.available === true, capturing: s?.capturing === true, error: typeof s?.error === 'string' ? s.error : undefined };
|
|
48
|
+
} catch (error) {
|
|
49
|
+
return { available: true, capturing: false, error: error instanceof Error ? error.message : String(error) };
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -62,15 +62,14 @@ export const NetworkLogTab: React.FC<DebugFeatureRenderProps<NetworkLogEntry[]>>
|
|
|
62
62
|
<View style={[s.methodChip, { backgroundColor: getMethodColor(item.request.method) }]}>
|
|
63
63
|
<Text style={s.methodChipText}>{item.request.method}</Text>
|
|
64
64
|
</View>
|
|
65
|
-
<Text style={[s.pathText, !ok && { color: Colors.error }]} numberOfLines={
|
|
65
|
+
<Text style={[s.pathText, !ok && { color: Colors.error }]} numberOfLines={2}>
|
|
66
66
|
{urlParts.path}
|
|
67
67
|
</Text>
|
|
68
|
+
</View>
|
|
69
|
+
<View style={s.metaRow}>
|
|
68
70
|
<View style={[s.statusChip, { backgroundColor: statusColor }]}>
|
|
69
71
|
<Text style={s.statusChipText}>{item.response?.status ?? 'ERR'}</Text>
|
|
70
72
|
</View>
|
|
71
|
-
</View>
|
|
72
|
-
<View style={s.metaRow}>
|
|
73
|
-
{item.duration != null && <Text style={s.metaText}>{item.duration}ms</Text>}
|
|
74
73
|
{!!urlParts.host && <Text style={[s.metaText, s.hostText]} numberOfLines={1}>{urlParts.host}</Text>}
|
|
75
74
|
<Text style={s.time}>{new Date(item.timestamp).toLocaleTimeString()}</Text>
|
|
76
75
|
</View>
|