react-native-xenon 0.2.0 → 0.2.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/lib/commonjs/assets/icons/record.png +0 -0
- package/lib/commonjs/colors.js +14 -0
- package/lib/commonjs/colors.js.map +1 -0
- package/lib/commonjs/hooks/useConsoleInterceptor.js +3 -3
- package/lib/commonjs/hooks/useConsoleInterceptor.js.map +1 -1
- package/lib/commonjs/hooks/useNetworkInterceptor.js +3 -3
- package/lib/commonjs/hooks/useNetworkInterceptor.js.map +1 -1
- package/lib/commonjs/icons.js +15 -0
- package/lib/commonjs/icons.js.map +1 -0
- package/lib/commonjs/interceptors/ConsoleInterceptor.js.map +1 -1
- package/lib/commonjs/interceptors/FetchInterceptor.js.map +1 -1
- package/lib/commonjs/interceptors/Interceptor.js +7 -1
- package/lib/commonjs/interceptors/Interceptor.js.map +1 -1
- package/lib/commonjs/interceptors/WebSocketInterceptor.js.map +1 -1
- package/lib/commonjs/interceptors/XHRInterceptor.js.map +1 -1
- package/lib/commonjs/ui/Xenon.js +5 -4
- package/lib/commonjs/ui/Xenon.js.map +1 -1
- package/lib/commonjs/ui/components/bubble/Bubble.js +5 -2
- package/lib/commonjs/ui/components/bubble/Bubble.js.map +1 -1
- package/lib/commonjs/ui/components/details/LogMessageDetails.js +3 -1
- package/lib/commonjs/ui/components/details/LogMessageDetails.js.map +1 -1
- package/lib/commonjs/ui/components/details/NetworkRequestDetails.js +9 -14
- package/lib/commonjs/ui/components/details/NetworkRequestDetails.js.map +1 -1
- package/lib/commonjs/ui/components/headers/DebuggerHeader.js +9 -7
- package/lib/commonjs/ui/components/headers/DebuggerHeader.js.map +1 -1
- package/lib/commonjs/ui/components/headers/NetworkPanelHeader.js +12 -8
- package/lib/commonjs/ui/components/headers/NetworkPanelHeader.js.map +1 -1
- package/lib/commonjs/ui/components/items/ConsolePanelItem.js +3 -1
- package/lib/commonjs/ui/components/items/ConsolePanelItem.js.map +1 -1
- package/lib/commonjs/ui/components/items/DebuggerHeaderItem.js +17 -10
- package/lib/commonjs/ui/components/items/DebuggerHeaderItem.js.map +1 -1
- package/lib/commonjs/ui/components/items/NetworkPanelItem.js +10 -6
- package/lib/commonjs/ui/components/items/NetworkPanelItem.js.map +1 -1
- package/lib/commonjs/ui/components/items/NetworkRequestDetailsHeaderItem.js +4 -2
- package/lib/commonjs/ui/components/items/NetworkRequestDetailsHeaderItem.js.map +1 -1
- package/lib/commonjs/ui/components/items/NetworkRequestDetailsItem.js +4 -2
- package/lib/commonjs/ui/components/items/NetworkRequestDetailsItem.js.map +1 -1
- package/lib/commonjs/ui/components/panels/ConsolePanel.js +2 -1
- package/lib/commonjs/ui/components/panels/ConsolePanel.js.map +1 -1
- package/lib/commonjs/ui/components/panels/NetworkPanel.js +2 -1
- package/lib/commonjs/ui/components/panels/NetworkPanel.js.map +1 -1
- package/lib/module/assets/icons/record.png +0 -0
- package/lib/module/colors.js +10 -0
- package/lib/module/colors.js.map +1 -0
- package/lib/module/hooks/useConsoleInterceptor.js +3 -3
- package/lib/module/hooks/useConsoleInterceptor.js.map +1 -1
- package/lib/module/hooks/useNetworkInterceptor.js +3 -3
- package/lib/module/hooks/useNetworkInterceptor.js.map +1 -1
- package/lib/module/icons.js +11 -0
- package/lib/module/icons.js.map +1 -0
- package/lib/module/interceptors/ConsoleInterceptor.js.map +1 -1
- package/lib/module/interceptors/FetchInterceptor.js.map +1 -1
- package/lib/module/interceptors/Interceptor.js +7 -1
- package/lib/module/interceptors/Interceptor.js.map +1 -1
- package/lib/module/interceptors/WebSocketInterceptor.js.map +1 -1
- package/lib/module/interceptors/XHRInterceptor.js.map +1 -1
- package/lib/module/ui/Xenon.js +6 -5
- package/lib/module/ui/Xenon.js.map +1 -1
- package/lib/module/ui/components/bubble/Bubble.js +4 -2
- package/lib/module/ui/components/bubble/Bubble.js.map +1 -1
- package/lib/module/ui/components/details/LogMessageDetails.js +2 -1
- package/lib/module/ui/components/details/LogMessageDetails.js.map +1 -1
- package/lib/module/ui/components/details/NetworkRequestDetails.js +9 -14
- package/lib/module/ui/components/details/NetworkRequestDetails.js.map +1 -1
- package/lib/module/ui/components/headers/DebuggerHeader.js +9 -7
- package/lib/module/ui/components/headers/DebuggerHeader.js.map +1 -1
- package/lib/module/ui/components/headers/NetworkPanelHeader.js +11 -8
- package/lib/module/ui/components/headers/NetworkPanelHeader.js.map +1 -1
- package/lib/module/ui/components/items/ConsolePanelItem.js +2 -1
- package/lib/module/ui/components/items/ConsolePanelItem.js.map +1 -1
- package/lib/module/ui/components/items/DebuggerHeaderItem.js +16 -10
- package/lib/module/ui/components/items/DebuggerHeaderItem.js.map +1 -1
- package/lib/module/ui/components/items/NetworkPanelItem.js +9 -6
- package/lib/module/ui/components/items/NetworkPanelItem.js.map +1 -1
- package/lib/module/ui/components/items/NetworkRequestDetailsHeaderItem.js +3 -2
- package/lib/module/ui/components/items/NetworkRequestDetailsHeaderItem.js.map +1 -1
- package/lib/module/ui/components/items/NetworkRequestDetailsItem.js +3 -2
- package/lib/module/ui/components/items/NetworkRequestDetailsItem.js.map +1 -1
- package/lib/module/ui/components/panels/ConsolePanel.js +2 -1
- package/lib/module/ui/components/panels/ConsolePanel.js.map +1 -1
- package/lib/module/ui/components/panels/NetworkPanel.js +2 -1
- package/lib/module/ui/components/panels/NetworkPanel.js.map +1 -1
- package/lib/typescript/commonjs/src/colors.d.ts +8 -0
- package/lib/typescript/commonjs/src/colors.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/icons.d.ts +9 -0
- package/lib/typescript/commonjs/src/icons.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/interceptors/ConsoleInterceptor.d.ts +1 -1
- package/lib/typescript/commonjs/src/interceptors/ConsoleInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/FetchInterceptor.d.ts +1 -1
- package/lib/typescript/commonjs/src/interceptors/FetchInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/Interceptor.d.ts +3 -1
- package/lib/typescript/commonjs/src/interceptors/Interceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/WebSocketInterceptor.d.ts +2 -2
- package/lib/typescript/commonjs/src/interceptors/WebSocketInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/interceptors/XHRInterceptor.d.ts +1 -1
- package/lib/typescript/commonjs/src/interceptors/XHRInterceptor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/Xenon.d.ts +2 -2
- package/lib/typescript/commonjs/src/ui/Xenon.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/bubble/Bubble.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/details/LogMessageDetails.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/details/NetworkRequestDetails.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/headers/DebuggerHeader.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/headers/NetworkPanelHeader.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/items/ConsolePanelItem.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/items/DebuggerHeaderItem.d.ts +1 -1
- package/lib/typescript/commonjs/src/ui/components/items/DebuggerHeaderItem.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/items/NetworkPanelItem.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/items/NetworkRequestDetailsItem.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/panels/ConsolePanel.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ui/components/panels/NetworkPanel.d.ts.map +1 -1
- package/lib/typescript/module/src/colors.d.ts +8 -0
- package/lib/typescript/module/src/colors.d.ts.map +1 -0
- package/lib/typescript/module/src/icons.d.ts +9 -0
- package/lib/typescript/module/src/icons.d.ts.map +1 -0
- package/lib/typescript/module/src/interceptors/ConsoleInterceptor.d.ts +1 -1
- package/lib/typescript/module/src/interceptors/ConsoleInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/FetchInterceptor.d.ts +1 -1
- package/lib/typescript/module/src/interceptors/FetchInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/Interceptor.d.ts +3 -1
- package/lib/typescript/module/src/interceptors/Interceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/WebSocketInterceptor.d.ts +2 -2
- package/lib/typescript/module/src/interceptors/WebSocketInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/interceptors/XHRInterceptor.d.ts +1 -1
- package/lib/typescript/module/src/interceptors/XHRInterceptor.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/Xenon.d.ts +2 -2
- package/lib/typescript/module/src/ui/Xenon.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/bubble/Bubble.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/details/LogMessageDetails.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/details/NetworkRequestDetails.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/headers/DebuggerHeader.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/headers/NetworkPanelHeader.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/items/ConsolePanelItem.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/items/DebuggerHeaderItem.d.ts +1 -1
- package/lib/typescript/module/src/ui/components/items/DebuggerHeaderItem.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/items/NetworkPanelItem.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsItem.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/panels/ConsolePanel.d.ts.map +1 -1
- package/lib/typescript/module/src/ui/components/panels/NetworkPanel.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/assets/icons/record.png +0 -0
- package/src/colors.ts +8 -0
- package/src/hooks/useConsoleInterceptor.ts +3 -3
- package/src/hooks/useNetworkInterceptor.ts +3 -3
- package/src/icons.ts +9 -0
- package/src/interceptors/ConsoleInterceptor.ts +3 -3
- package/src/interceptors/FetchInterceptor.ts +1 -1
- package/src/interceptors/Interceptor.ts +9 -1
- package/src/interceptors/WebSocketInterceptor.ts +2 -2
- package/src/interceptors/XHRInterceptor.ts +1 -1
- package/src/ui/Xenon.tsx +105 -98
- package/src/ui/components/bubble/Bubble.tsx +4 -2
- package/src/ui/components/details/LogMessageDetails.tsx +2 -1
- package/src/ui/components/details/NetworkRequestDetails.tsx +10 -13
- package/src/ui/components/headers/DebuggerHeader.tsx +9 -13
- package/src/ui/components/headers/NetworkPanelHeader.tsx +11 -8
- package/src/ui/components/items/ConsolePanelItem.tsx +2 -1
- package/src/ui/components/items/DebuggerHeaderItem.tsx +18 -12
- package/src/ui/components/items/NetworkPanelItem.tsx +9 -6
- package/src/ui/components/items/NetworkRequestDetailsHeaderItem.tsx +3 -2
- package/src/ui/components/items/NetworkRequestDetailsItem.tsx +3 -2
- package/src/ui/components/panels/ConsolePanel.tsx +2 -1
- package/src/ui/components/panels/NetworkPanel.tsx +2 -1
- package/lib/commonjs/assets/record.png +0 -0
- package/lib/module/assets/record.png +0 -0
- package/src/assets/record.png +0 -0
- /package/lib/commonjs/assets/{code.png → icons/code.png} +0 -0
- /package/lib/commonjs/assets/{delete.png → icons/delete.png} +0 -0
- /package/lib/commonjs/assets/{hide.png → icons/hide.png} +0 -0
- /package/lib/commonjs/assets/{move.png → icons/move.png} +0 -0
- /package/lib/module/assets/{code.png → icons/code.png} +0 -0
- /package/lib/module/assets/{delete.png → icons/delete.png} +0 -0
- /package/lib/module/assets/{hide.png → icons/hide.png} +0 -0
- /package/lib/module/assets/{move.png → icons/move.png} +0 -0
- /package/src/assets/{code.png → icons/code.png} +0 -0
- /package/src/assets/{delete.png → icons/delete.png} +0 -0
- /package/src/assets/{hide.png → icons/hide.png} +0 -0
- /package/src/assets/{move.png → icons/move.png} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ConsolePanelItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/ConsolePanelItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"ConsolePanelItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/ConsolePanelItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,UAAU,qBAAsB,SAAQ,UAAU;IAChD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,qBAAqB,2CAQxF"}
|
@@ -5,6 +5,6 @@ interface DebuggerHeaderItemProps {
|
|
5
5
|
isActive?: boolean;
|
6
6
|
onPress: () => void;
|
7
7
|
}
|
8
|
-
export default function DebuggerHeaderItem(
|
8
|
+
export default function DebuggerHeaderItem({ content, isLabel, isActive, onPress, }: DebuggerHeaderItemProps): import("react/jsx-runtime").JSX.Element;
|
9
9
|
export {};
|
10
10
|
//# sourceMappingURL=DebuggerHeaderItem.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DebuggerHeaderItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/DebuggerHeaderItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"DebuggerHeaderItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/DebuggerHeaderItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6C,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlG,UAAU,uBAAuB;IAC/B,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,GACR,EAAE,uBAAuB,2CAuBzB"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NetworkPanelItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/NetworkPanelItem.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"NetworkPanelItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/NetworkPanelItem.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQlE,UAAU,qBAAqB;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,GACR,EAAE,qBAAqB,2CA0CvB"}
|
package/lib/typescript/module/src/ui/components/items/NetworkRequestDetailsHeaderItem.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NetworkRequestDetailsHeaderItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/NetworkRequestDetailsHeaderItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"NetworkRequestDetailsHeaderItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/NetworkRequestDetailsHeaderItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,UAAU,oCAAoC;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,+BAA+B,CAAC,EACtD,OAAO,EACP,IAAI,EACJ,UAAU,EACV,KAAK,EACL,OAAO,GACR,EAAE,oCAAoC,kDAatC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NetworkRequestDetailsItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/NetworkRequestDetailsItem.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"NetworkRequestDetailsItem.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/items/NetworkRequestDetailsItem.tsx"],"names":[],"mappings":"AAGA,UAAU,8BAA8B;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,EAChD,KAAK,EACL,OAAO,EACP,UAAU,GACX,EAAE,8BAA8B,2CAkBhC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/panels/ConsolePanel.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/panels/ConsolePanel.tsx"],"names":[],"mappings":"AAUA,MAAM,CAAC,OAAO,UAAU,YAAY,4CAkCnC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NetworkPanel.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/panels/NetworkPanel.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"NetworkPanel.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/panels/NetworkPanel.tsx"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,YAAY,4CA2CnC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-native-xenon",
|
3
|
-
"version": "0.2.
|
3
|
+
"version": "0.2.1",
|
4
4
|
"description": "A comprehensive tool for analyzing HTTP(S) requests and logs in React Native apps. Designed for use across all environments, it offers an intuitive interface for efficient debugging and issue resolution.",
|
5
5
|
"source": "./src/index.ts",
|
6
6
|
"main": "./lib/commonjs/index.js",
|
Binary file
|
package/src/colors.ts
ADDED
@@ -16,10 +16,10 @@ export default function useConsoleInterceptor({ autoEnabled }: ConsoleIntercepto
|
|
16
16
|
setLogMessages([]);
|
17
17
|
};
|
18
18
|
|
19
|
-
const
|
19
|
+
const isEnabled = () => ConsoleInterceptor.instance.isInterceptorEnabled;
|
20
20
|
|
21
21
|
const enableInterception = useCallback(() => {
|
22
|
-
if (
|
22
|
+
if (isEnabled()) return;
|
23
23
|
|
24
24
|
ConsoleInterceptor.instance
|
25
25
|
.setCallback((type, args) => {
|
@@ -33,7 +33,7 @@ export default function useConsoleInterceptor({ autoEnabled }: ConsoleIntercepto
|
|
33
33
|
}, [setLogMessages]);
|
34
34
|
|
35
35
|
const disableInterception = useCallback(() => {
|
36
|
-
if (!
|
36
|
+
if (!isEnabled()) return;
|
37
37
|
|
38
38
|
ConsoleInterceptor.instance.disableInterception();
|
39
39
|
|
@@ -35,7 +35,7 @@ export default function useNetworkInterceptor({ autoEnabled }: NetworkIntercepto
|
|
35
35
|
|
36
36
|
const [networkRequests, setNetworkRequests] = useImmer(initRequests);
|
37
37
|
|
38
|
-
const
|
38
|
+
const isEnabled = () =>
|
39
39
|
XHRInterceptor.instance.isInterceptorEnabled &&
|
40
40
|
FetchInterceptor.instance.isInterceptorEnabled &&
|
41
41
|
WebSocketInterceptor.instance.isInterceptorEnabled;
|
@@ -237,7 +237,7 @@ export default function useNetworkInterceptor({ autoEnabled }: NetworkIntercepto
|
|
237
237
|
}, [setNetworkRequests]);
|
238
238
|
|
239
239
|
const enableInterception = useCallback(() => {
|
240
|
-
if (
|
240
|
+
if (isEnabled()) return;
|
241
241
|
|
242
242
|
enableHttpInterceptions();
|
243
243
|
enableWebSocketInterception();
|
@@ -245,7 +245,7 @@ export default function useNetworkInterceptor({ autoEnabled }: NetworkIntercepto
|
|
245
245
|
}, [enableHttpInterceptions, enableWebSocketInterception]);
|
246
246
|
|
247
247
|
const disableInterception = useCallback(() => {
|
248
|
-
if (!
|
248
|
+
if (!isEnabled()) return;
|
249
249
|
|
250
250
|
XHRInterceptor.instance.disableInterception();
|
251
251
|
FetchInterceptor.instance.disableInterception();
|
package/src/icons.ts
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
const icons = Object.freeze({
|
2
|
+
code: require('./assets/icons/code.png'),
|
3
|
+
delete: require('./assets/icons/delete.png'),
|
4
|
+
hide: require('./assets/icons/hide.png'),
|
5
|
+
move: require('./assets/icons/move.png'),
|
6
|
+
record: require('./assets/icons/record.png'),
|
7
|
+
});
|
8
|
+
|
9
|
+
export default icons;
|
@@ -13,7 +13,7 @@ const originalConsoleGroupEnd = console.groupEnd;
|
|
13
13
|
const originalConsoleGroup = console.group;
|
14
14
|
|
15
15
|
export default class ConsoleInterceptor extends Interceptor {
|
16
|
-
static instance = new ConsoleInterceptor();
|
16
|
+
static readonly instance = new ConsoleInterceptor();
|
17
17
|
|
18
18
|
private constructor() {
|
19
19
|
super();
|
@@ -67,10 +67,10 @@ export default class ConsoleInterceptor extends Interceptor {
|
|
67
67
|
originalConsoleDebug.call(this, ...args);
|
68
68
|
};
|
69
69
|
|
70
|
-
console.table = function (...args) {
|
70
|
+
console.table = function (...args: Parameters<typeof originalConsoleTable>) {
|
71
71
|
callback?.('table', args);
|
72
72
|
|
73
|
-
originalConsoleTable.call(this, ...
|
73
|
+
originalConsoleTable.call(this, ...args);
|
74
74
|
};
|
75
75
|
|
76
76
|
console.groupCollapsed = function (...args) {
|
@@ -6,7 +6,7 @@ import HttpInterceptor from './HttpInterceptor';
|
|
6
6
|
const originalFetch = global.fetch;
|
7
7
|
|
8
8
|
export default class FetchInterceptor extends HttpInterceptor {
|
9
|
-
static instance = new FetchInterceptor();
|
9
|
+
static readonly instance = new FetchInterceptor();
|
10
10
|
|
11
11
|
private constructor() {
|
12
12
|
super();
|
@@ -1,5 +1,13 @@
|
|
1
1
|
export default abstract class Interceptor {
|
2
|
-
isInterceptorEnabled = false;
|
2
|
+
#isInterceptorEnabled = false;
|
3
|
+
|
4
|
+
get isInterceptorEnabled() {
|
5
|
+
return this.#isInterceptorEnabled;
|
6
|
+
}
|
7
|
+
|
8
|
+
protected set isInterceptorEnabled(value: boolean) {
|
9
|
+
this.#isInterceptorEnabled = value;
|
10
|
+
}
|
3
11
|
|
4
12
|
abstract enableInterception(): void;
|
5
13
|
abstract disableInterception(): void;
|
@@ -17,7 +17,7 @@ const originalWebSocketSendBinary = NativeWebSocketModule.sendBinary;
|
|
17
17
|
const originalWebSocketClose = NativeWebSocketModule.close;
|
18
18
|
|
19
19
|
export default class WebSocketInterceptor extends NetworkInterceptor {
|
20
|
-
static instance = new WebSocketInterceptor();
|
20
|
+
static readonly instance = new WebSocketInterceptor();
|
21
21
|
|
22
22
|
private constructor() {
|
23
23
|
super();
|
@@ -92,7 +92,7 @@ export default class WebSocketInterceptor extends NetworkInterceptor {
|
|
92
92
|
|
93
93
|
private eventEmitter: NativeEventEmitter | null = null;
|
94
94
|
private subscriptions: EmitterSubscription[] = [];
|
95
|
-
private timeStart: Map<number, number> = new Map();
|
95
|
+
private readonly timeStart: Map<number, number> = new Map();
|
96
96
|
|
97
97
|
private arrayBufferToString(data?: string) {
|
98
98
|
try {
|
@@ -7,7 +7,7 @@ const originalXHRSend = XMLHttpRequest.prototype.send;
|
|
7
7
|
const originalXHRSetRequestHeader = XMLHttpRequest.prototype.setRequestHeader;
|
8
8
|
|
9
9
|
export default class XHRInterceptor extends HttpInterceptor {
|
10
|
-
static instance = new XHRInterceptor();
|
10
|
+
static readonly instance = new XHRInterceptor();
|
11
11
|
|
12
12
|
private constructor() {
|
13
13
|
super();
|
package/src/ui/Xenon.tsx
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
import { enableMapSet } from 'immer';
|
2
|
-
import {
|
2
|
+
import {
|
3
|
+
createRef,
|
4
|
+
memo,
|
5
|
+
useImperativeHandle,
|
6
|
+
useRef,
|
7
|
+
useState,
|
8
|
+
type NamedExoticComponent,
|
9
|
+
} from 'react';
|
3
10
|
import { Animated, SafeAreaView, StyleSheet, useWindowDimensions, View } from 'react-native';
|
11
|
+
import colors from '../colors';
|
4
12
|
import MainContext, { type MainContextValue } from '../contexts/MainContext';
|
5
13
|
import { useConsoleInterceptor, useNetworkInterceptor } from '../hooks';
|
6
14
|
import { DebuggerPanel, type DebuggerPosition, type DebuggerVisibility } from '../types';
|
@@ -18,107 +26,106 @@ interface XenonComponentProps {
|
|
18
26
|
}
|
19
27
|
|
20
28
|
interface ReactNativeXenon extends XenonComponentMethods {
|
21
|
-
Component
|
29
|
+
Component: NamedExoticComponent<XenonComponentProps>;
|
22
30
|
}
|
23
31
|
|
24
32
|
enableMapSet();
|
33
|
+
|
25
34
|
const rootRef = createRef<XenonComponentMethods>();
|
26
35
|
|
27
|
-
|
28
|
-
autoInspectNetworkEnabled = true,
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
);
|
121
|
-
}
|
36
|
+
const XenonComponent = memo<XenonComponentProps>(
|
37
|
+
({ autoInspectNetworkEnabled = true, autoInspectConsoleEnabled = true, bubbleSize = 40 }) => {
|
38
|
+
const { width: screenWidth, height: screenHeight } = useWindowDimensions();
|
39
|
+
const verticalSafeMargin = screenHeight / 8;
|
40
|
+
|
41
|
+
const pan = useRef(new Animated.ValueXY({ x: 0, y: verticalSafeMargin }));
|
42
|
+
|
43
|
+
const detailsData: MainContextValue['detailsData'] = useRef(null);
|
44
|
+
|
45
|
+
const [debuggerVisibility, setDebuggerVisibility] = useState<DebuggerVisibility>('hidden');
|
46
|
+
|
47
|
+
const [debuggerPosition, setDebuggerPosition] = useState<DebuggerPosition>('bottom');
|
48
|
+
|
49
|
+
const [panelSelected, setPanelSelected] = useState<DebuggerPanel | null>(DebuggerPanel.Network);
|
50
|
+
|
51
|
+
const networkInterceptor = useNetworkInterceptor({
|
52
|
+
autoEnabled: autoInspectNetworkEnabled,
|
53
|
+
});
|
54
|
+
|
55
|
+
const logInterceptor = useConsoleInterceptor({
|
56
|
+
autoEnabled: autoInspectConsoleEnabled,
|
57
|
+
});
|
58
|
+
|
59
|
+
useImperativeHandle(
|
60
|
+
rootRef,
|
61
|
+
() => ({
|
62
|
+
show() {
|
63
|
+
setDebuggerVisibility('bubble');
|
64
|
+
},
|
65
|
+
hide() {
|
66
|
+
setDebuggerVisibility('hidden');
|
67
|
+
},
|
68
|
+
}),
|
69
|
+
[],
|
70
|
+
);
|
71
|
+
|
72
|
+
let content;
|
73
|
+
|
74
|
+
switch (debuggerVisibility) {
|
75
|
+
case 'bubble':
|
76
|
+
content = (
|
77
|
+
<View style={styles.bubbleBackdrop}>
|
78
|
+
<Bubble bubbleSize={bubbleSize} pan={pan} />
|
79
|
+
</View>
|
80
|
+
);
|
81
|
+
break;
|
82
|
+
case 'panel':
|
83
|
+
content = (
|
84
|
+
<SafeAreaView
|
85
|
+
style={[
|
86
|
+
styles.container,
|
87
|
+
// eslint-disable-next-line react-native/no-inline-styles
|
88
|
+
{
|
89
|
+
[debuggerPosition]: 0,
|
90
|
+
height: Math.min(screenWidth, screenHeight) * 0.75,
|
91
|
+
},
|
92
|
+
]}
|
93
|
+
>
|
94
|
+
<DebuggerHeader />
|
95
|
+
|
96
|
+
{panelSelected === DebuggerPanel.Network && <NetworkPanel />}
|
97
|
+
{panelSelected === DebuggerPanel.Console && <ConsolePanel />}
|
98
|
+
|
99
|
+
{!panelSelected && !!detailsData.current && <DetailsViewer />}
|
100
|
+
</SafeAreaView>
|
101
|
+
);
|
102
|
+
break;
|
103
|
+
default:
|
104
|
+
content = null;
|
105
|
+
}
|
106
|
+
|
107
|
+
return (
|
108
|
+
<MainContext.Provider
|
109
|
+
value={{
|
110
|
+
debuggerVisibility,
|
111
|
+
setDebuggerVisibility,
|
112
|
+
debuggerPosition,
|
113
|
+
setDebuggerPosition,
|
114
|
+
panelSelected,
|
115
|
+
setPanelSelected,
|
116
|
+
networkInterceptor,
|
117
|
+
logInterceptor,
|
118
|
+
detailsData,
|
119
|
+
screenWidth,
|
120
|
+
screenHeight,
|
121
|
+
verticalSafeMargin,
|
122
|
+
}}
|
123
|
+
>
|
124
|
+
{content}
|
125
|
+
</MainContext.Provider>
|
126
|
+
);
|
127
|
+
},
|
128
|
+
);
|
122
129
|
|
123
130
|
const styles = StyleSheet.create({
|
124
131
|
container: {
|
@@ -127,7 +134,7 @@ const styles = StyleSheet.create({
|
|
127
134
|
top: undefined,
|
128
135
|
bottom: undefined,
|
129
136
|
zIndex: 9999,
|
130
|
-
backgroundColor:
|
137
|
+
backgroundColor: colors.lightGray,
|
131
138
|
},
|
132
139
|
bubbleBackdrop: {
|
133
140
|
flex: 1,
|
@@ -7,6 +7,8 @@ import {
|
|
7
7
|
type PanResponderGestureState,
|
8
8
|
} from 'react-native';
|
9
9
|
import { MainContext } from '../../../contexts';
|
10
|
+
import icons from '../../../icons';
|
11
|
+
import colors from '../../../colors';
|
10
12
|
|
11
13
|
interface BubbleProps {
|
12
14
|
bubbleSize: number;
|
@@ -73,7 +75,7 @@ export default function Bubble({ bubbleSize, pan }: BubbleProps) {
|
|
73
75
|
]}
|
74
76
|
>
|
75
77
|
<Image
|
76
|
-
source={
|
78
|
+
source={icons.code}
|
77
79
|
style={{
|
78
80
|
width: bubbleSize * 0.75,
|
79
81
|
height: bubbleSize * 0.75,
|
@@ -85,7 +87,7 @@ export default function Bubble({ bubbleSize, pan }: BubbleProps) {
|
|
85
87
|
|
86
88
|
const styles = StyleSheet.create({
|
87
89
|
bubble: {
|
88
|
-
backgroundColor:
|
90
|
+
backgroundColor: colors.lightGray,
|
89
91
|
position: 'absolute',
|
90
92
|
justifyContent: 'center',
|
91
93
|
alignItems: 'center',
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { ScrollView, StyleSheet, Text } from 'react-native';
|
2
2
|
import type { LogMessage } from '../../../types';
|
3
3
|
import { formatLogMessage } from '../../../utils';
|
4
|
+
import colors from '../../../colors';
|
4
5
|
|
5
6
|
interface LogMessageDetailsProps {
|
6
7
|
item: LogMessage;
|
@@ -21,6 +22,6 @@ const styles = StyleSheet.create({
|
|
21
22
|
},
|
22
23
|
divider: {
|
23
24
|
height: 1,
|
24
|
-
backgroundColor:
|
25
|
+
backgroundColor: colors.gray,
|
25
26
|
},
|
26
27
|
});
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { useRef, useState, type JSX } from 'react';
|
1
|
+
import { useRef, useState, type JSX, type ReactNode } from 'react';
|
2
2
|
import { ScrollView, StyleSheet } from 'react-native';
|
3
3
|
import { URL } from 'react-native-url-polyfill';
|
4
4
|
import {
|
@@ -16,6 +16,7 @@ import {
|
|
16
16
|
} from '../../../utils';
|
17
17
|
import NetworkDetailsHeader from '../headers/NetworkRequestDetailsHeader';
|
18
18
|
import NetworkRequestDetailsItem from '../items/NetworkRequestDetailsItem';
|
19
|
+
import colors from '../../../colors';
|
19
20
|
|
20
21
|
interface NetworkRequestDetailsProps {
|
21
22
|
item: HttpRequest | WebSocketRequest;
|
@@ -87,19 +88,15 @@ export default function NetworkRequestDetails({ item }: NetworkRequestDetailsPro
|
|
87
88
|
}
|
88
89
|
|
89
90
|
if (queryStringParametersShown && !content.current.queryStringParameters) {
|
90
|
-
const queryStringParameters:
|
91
|
+
const queryStringParameters: ReactNode[] = [];
|
91
92
|
|
92
93
|
requestUrl.searchParams.forEach((value, name) => {
|
93
|
-
queryStringParameters.push(
|
94
|
+
queryStringParameters.push(
|
95
|
+
<NetworkRequestDetailsItem key={name} label={name} content={value} />,
|
96
|
+
);
|
94
97
|
});
|
95
98
|
|
96
|
-
content.current.queryStringParameters =
|
97
|
-
<>
|
98
|
-
{queryStringParameters.map(({ name, value }, index) => (
|
99
|
-
<NetworkRequestDetailsItem key={index} label={name} content={value} />
|
100
|
-
))}
|
101
|
-
</>
|
102
|
-
);
|
99
|
+
content.current.queryStringParameters = <>{queryStringParameters}</>;
|
103
100
|
}
|
104
101
|
|
105
102
|
if (bodyShown && !content.current.body) {
|
@@ -137,15 +134,15 @@ const styles = StyleSheet.create({
|
|
137
134
|
},
|
138
135
|
divider: {
|
139
136
|
height: 1,
|
140
|
-
backgroundColor:
|
137
|
+
backgroundColor: colors.gray,
|
141
138
|
},
|
142
139
|
text: {
|
143
140
|
fontSize: 14,
|
144
|
-
color:
|
141
|
+
color: colors.black,
|
145
142
|
},
|
146
143
|
label: {
|
147
144
|
fontSize: 14,
|
148
145
|
fontWeight: 'bold',
|
149
|
-
color:
|
146
|
+
color: colors.black,
|
150
147
|
},
|
151
148
|
});
|
@@ -3,6 +3,8 @@ import { ScrollView, StyleSheet, View } from 'react-native';
|
|
3
3
|
import { MainContext } from '../../../contexts';
|
4
4
|
import { DebuggerPanel } from '../../../types';
|
5
5
|
import DebuggerHeaderItem from '../items/DebuggerHeaderItem';
|
6
|
+
import icons from '../../../icons';
|
7
|
+
import colors from '../../../colors';
|
6
8
|
|
7
9
|
export default function DebuggerHeader() {
|
8
10
|
const {
|
@@ -49,12 +51,9 @@ export default function DebuggerHeader() {
|
|
49
51
|
contentContainerStyle={styles.contentContainer}
|
50
52
|
showsHorizontalScrollIndicator={false}
|
51
53
|
>
|
52
|
-
<DebuggerHeaderItem onPress={hideDebugger} content={
|
54
|
+
<DebuggerHeaderItem onPress={hideDebugger} content={icons.hide} />
|
53
55
|
|
54
|
-
<DebuggerHeaderItem
|
55
|
-
onPress={toggleDebuggerPosition}
|
56
|
-
content={require('../../../assets/move.png')}
|
57
|
-
/>
|
56
|
+
<DebuggerHeaderItem onPress={toggleDebuggerPosition} content={icons.move} />
|
58
57
|
|
59
58
|
<DebuggerHeaderItem
|
60
59
|
isLabel
|
@@ -66,12 +65,12 @@ export default function DebuggerHeader() {
|
|
66
65
|
<DebuggerHeaderItem
|
67
66
|
onPress={toggleNetworkInterception}
|
68
67
|
isActive={networkInterceptor.isInterceptorEnabled}
|
69
|
-
content={
|
68
|
+
content={icons.record}
|
70
69
|
/>
|
71
70
|
|
72
71
|
<DebuggerHeaderItem
|
73
72
|
onPress={networkInterceptor.clearAllNetworkRequests}
|
74
|
-
content={
|
73
|
+
content={icons.delete}
|
75
74
|
/>
|
76
75
|
|
77
76
|
<View style={styles.divider} />
|
@@ -86,13 +85,10 @@ export default function DebuggerHeader() {
|
|
86
85
|
<DebuggerHeaderItem
|
87
86
|
onPress={toggleLogInterception}
|
88
87
|
isActive={logInterceptor.isInterceptorEnabled}
|
89
|
-
content={
|
88
|
+
content={icons.record}
|
90
89
|
/>
|
91
90
|
|
92
|
-
<DebuggerHeaderItem
|
93
|
-
onPress={logInterceptor.clearAllLogMessages}
|
94
|
-
content={require('../../../assets/delete.png')}
|
95
|
-
/>
|
91
|
+
<DebuggerHeaderItem onPress={logInterceptor.clearAllLogMessages} content={icons.delete} />
|
96
92
|
</ScrollView>
|
97
93
|
);
|
98
94
|
}
|
@@ -107,6 +103,6 @@ const styles = StyleSheet.create({
|
|
107
103
|
},
|
108
104
|
divider: {
|
109
105
|
width: 1,
|
110
|
-
backgroundColor:
|
106
|
+
backgroundColor: colors.gray,
|
111
107
|
},
|
112
108
|
});
|