react-native-network-lens 0.0.0-stage → 0.1.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/LICENSE +20 -0
- package/README.md +208 -2
- package/lib/module/backHandler.js +31 -0
- package/lib/module/backHandler.js.map +1 -0
- package/lib/module/components/BodyViewer.js +213 -0
- package/lib/module/components/BodyViewer.js.map +1 -0
- package/lib/module/components/CodeList.js +104 -0
- package/lib/module/components/CodeList.js.map +1 -0
- package/lib/module/components/JsonTree/JsonTreeView.js +206 -0
- package/lib/module/components/JsonTree/JsonTreeView.js.map +1 -0
- package/lib/module/components/JsonTree/model.js +196 -0
- package/lib/module/components/JsonTree/model.js.map +1 -0
- package/lib/module/components/NetworkLens.js +110 -0
- package/lib/module/components/NetworkLens.js.map +1 -0
- package/lib/module/components/NetworkLensOverlay.js +158 -0
- package/lib/module/components/NetworkLensOverlay.js.map +1 -0
- package/lib/module/components/RawTextView.js +119 -0
- package/lib/module/components/RawTextView.js.map +1 -0
- package/lib/module/components/RequestDetails/RequestDetails.js +256 -0
- package/lib/module/components/RequestDetails/RequestDetails.js.map +1 -0
- package/lib/module/components/RequestList/FilterBar.js +138 -0
- package/lib/module/components/RequestList/FilterBar.js.map +1 -0
- package/lib/module/components/RequestList/RequestList.js +163 -0
- package/lib/module/components/RequestList/RequestList.js.map +1 -0
- package/lib/module/components/RequestList/RequestRow.js +161 -0
- package/lib/module/components/RequestList/RequestRow.js.map +1 -0
- package/lib/module/components/RequestList/filters.js +57 -0
- package/lib/module/components/RequestList/filters.js.map +1 -0
- package/lib/module/components/ui/ActionSheet.js +94 -0
- package/lib/module/components/ui/ActionSheet.js.map +1 -0
- package/lib/module/components/ui/Button.js +104 -0
- package/lib/module/components/ui/Button.js.map +1 -0
- package/lib/module/components/ui/Pill.js +53 -0
- package/lib/module/components/ui/Pill.js.map +1 -0
- package/lib/module/components/ui/SearchInput.js +77 -0
- package/lib/module/components/ui/SearchInput.js.map +1 -0
- package/lib/module/components/ui/Section.js +147 -0
- package/lib/module/components/ui/Section.js.map +1 -0
- package/lib/module/components/ui/SegmentedControl.js +65 -0
- package/lib/module/components/ui/SegmentedControl.js.map +1 -0
- package/lib/module/components/ui/index.js +9 -0
- package/lib/module/components/ui/index.js.map +1 -0
- package/lib/module/core/Logger.js +230 -0
- package/lib/module/core/Logger.js.map +1 -0
- package/lib/module/core/NetworkRequest.js +155 -0
- package/lib/module/core/NetworkRequest.js.map +1 -0
- package/lib/module/core/XHRInterceptor.js +104 -0
- package/lib/module/core/XHRInterceptor.js.map +1 -0
- package/lib/module/core/har.js +72 -0
- package/lib/module/core/har.js.map +1 -0
- package/lib/module/core/loggerSingleton.js +12 -0
- package/lib/module/core/loggerSingleton.js.map +1 -0
- package/lib/module/hooks.js +42 -0
- package/lib/module/hooks.js.map +1 -0
- package/lib/module/index.js +34 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/theme.js +136 -0
- package/lib/module/theme.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/body.js +179 -0
- package/lib/module/utils/body.js.map +1 -0
- package/lib/module/utils/debounce.js +18 -0
- package/lib/module/utils/debounce.js.map +1 -0
- package/lib/module/utils/format.js +45 -0
- package/lib/module/utils/format.js.map +1 -0
- package/lib/module/utils/logger.js +6 -0
- package/lib/module/utils/logger.js.map +1 -0
- package/lib/module/utils/search.js +70 -0
- package/lib/module/utils/search.js.map +1 -0
- package/lib/module/utils/url.js +50 -0
- package/lib/module/utils/url.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/backHandler.d.ts +15 -0
- package/lib/typescript/src/backHandler.d.ts.map +1 -0
- package/lib/typescript/src/components/BodyViewer.d.ts +16 -0
- package/lib/typescript/src/components/BodyViewer.d.ts.map +1 -0
- package/lib/typescript/src/components/CodeList.d.ts +21 -0
- package/lib/typescript/src/components/CodeList.d.ts.map +1 -0
- package/lib/typescript/src/components/JsonTree/JsonTreeView.d.ts +21 -0
- package/lib/typescript/src/components/JsonTree/JsonTreeView.d.ts.map +1 -0
- package/lib/typescript/src/components/JsonTree/model.d.ts +53 -0
- package/lib/typescript/src/components/JsonTree/model.d.ts.map +1 -0
- package/lib/typescript/src/components/NetworkLens.d.ts +31 -0
- package/lib/typescript/src/components/NetworkLens.d.ts.map +1 -0
- package/lib/typescript/src/components/NetworkLensOverlay.d.ts +32 -0
- package/lib/typescript/src/components/NetworkLensOverlay.d.ts.map +1 -0
- package/lib/typescript/src/components/RawTextView.d.ts +14 -0
- package/lib/typescript/src/components/RawTextView.d.ts.map +1 -0
- package/lib/typescript/src/components/RequestDetails/RequestDetails.d.ts +9 -0
- package/lib/typescript/src/components/RequestDetails/RequestDetails.d.ts.map +1 -0
- package/lib/typescript/src/components/RequestList/FilterBar.d.ts +12 -0
- package/lib/typescript/src/components/RequestList/FilterBar.d.ts.map +1 -0
- package/lib/typescript/src/components/RequestList/RequestList.d.ts +18 -0
- package/lib/typescript/src/components/RequestList/RequestList.d.ts.map +1 -0
- package/lib/typescript/src/components/RequestList/RequestRow.d.ts +11 -0
- package/lib/typescript/src/components/RequestList/RequestRow.d.ts.map +1 -0
- package/lib/typescript/src/components/RequestList/filters.d.ts +17 -0
- package/lib/typescript/src/components/RequestList/filters.d.ts.map +1 -0
- package/lib/typescript/src/components/ui/ActionSheet.d.ts +15 -0
- package/lib/typescript/src/components/ui/ActionSheet.d.ts.map +1 -0
- package/lib/typescript/src/components/ui/Button.d.ts +21 -0
- package/lib/typescript/src/components/ui/Button.d.ts.map +1 -0
- package/lib/typescript/src/components/ui/Pill.d.ts +11 -0
- package/lib/typescript/src/components/ui/Pill.d.ts.map +1 -0
- package/lib/typescript/src/components/ui/SearchInput.d.ts +17 -0
- package/lib/typescript/src/components/ui/SearchInput.d.ts.map +1 -0
- package/lib/typescript/src/components/ui/Section.d.ts +16 -0
- package/lib/typescript/src/components/ui/Section.d.ts.map +1 -0
- package/lib/typescript/src/components/ui/SegmentedControl.d.ts +14 -0
- package/lib/typescript/src/components/ui/SegmentedControl.d.ts.map +1 -0
- package/lib/typescript/src/components/ui/index.d.ts +7 -0
- package/lib/typescript/src/components/ui/index.d.ts.map +1 -0
- package/lib/typescript/src/core/Logger.d.ts +48 -0
- package/lib/typescript/src/core/Logger.d.ts.map +1 -0
- package/lib/typescript/src/core/NetworkRequest.d.ts +48 -0
- package/lib/typescript/src/core/NetworkRequest.d.ts.map +1 -0
- package/lib/typescript/src/core/XHRInterceptor.d.ts +29 -0
- package/lib/typescript/src/core/XHRInterceptor.d.ts.map +1 -0
- package/lib/typescript/src/core/har.d.ts +65 -0
- package/lib/typescript/src/core/har.d.ts.map +1 -0
- package/lib/typescript/src/core/loggerSingleton.d.ts +9 -0
- package/lib/typescript/src/core/loggerSingleton.d.ts.map +1 -0
- package/lib/typescript/src/hooks.d.ts +11 -0
- package/lib/typescript/src/hooks.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +33 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/theme.d.ts +49 -0
- package/lib/typescript/src/theme.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +80 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils/body.d.ts +19 -0
- package/lib/typescript/src/utils/body.d.ts.map +1 -0
- package/lib/typescript/src/utils/debounce.d.ts +4 -0
- package/lib/typescript/src/utils/debounce.d.ts.map +1 -0
- package/lib/typescript/src/utils/format.d.ts +7 -0
- package/lib/typescript/src/utils/format.d.ts.map +1 -0
- package/lib/typescript/src/utils/logger.d.ts +2 -0
- package/lib/typescript/src/utils/logger.d.ts.map +1 -0
- package/lib/typescript/src/utils/search.d.ts +17 -0
- package/lib/typescript/src/utils/search.d.ts.map +1 -0
- package/lib/typescript/src/utils/url.d.ts +15 -0
- package/lib/typescript/src/utils/url.d.ts.map +1 -0
- package/package.json +186 -4
- package/src/backHandler.ts +29 -0
- package/src/components/BodyViewer.tsx +250 -0
- package/src/components/CodeList.tsx +120 -0
- package/src/components/JsonTree/JsonTreeView.tsx +304 -0
- package/src/components/JsonTree/model.ts +266 -0
- package/src/components/NetworkLens.tsx +176 -0
- package/src/components/NetworkLensOverlay.tsx +187 -0
- package/src/components/RawTextView.tsx +163 -0
- package/src/components/RequestDetails/RequestDetails.tsx +315 -0
- package/src/components/RequestList/FilterBar.tsx +168 -0
- package/src/components/RequestList/RequestList.tsx +226 -0
- package/src/components/RequestList/RequestRow.tsx +150 -0
- package/src/components/RequestList/filters.ts +98 -0
- package/src/components/ui/ActionSheet.tsx +109 -0
- package/src/components/ui/Button.tsx +124 -0
- package/src/components/ui/Pill.tsx +53 -0
- package/src/components/ui/SearchInput.tsx +97 -0
- package/src/components/ui/Section.tsx +133 -0
- package/src/components/ui/SegmentedControl.tsx +79 -0
- package/src/components/ui/index.ts +6 -0
- package/src/core/Logger.ts +293 -0
- package/src/core/NetworkRequest.ts +216 -0
- package/src/core/XHRInterceptor.ts +179 -0
- package/src/core/har.ts +71 -0
- package/src/core/loggerSingleton.ts +14 -0
- package/src/hooks.ts +51 -0
- package/src/index.tsx +56 -0
- package/src/theme.ts +174 -0
- package/src/types.ts +83 -0
- package/src/utils/body.ts +194 -0
- package/src/utils/debounce.ts +18 -0
- package/src/utils/format.ts +50 -0
- package/src/utils/logger.ts +3 -0
- package/src/utils/search.ts +72 -0
- package/src/utils/url.ts +59 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRef, useState } from 'react';
|
|
4
|
+
import { Modal, Platform, Pressable, StatusBar, StyleSheet, Text, View } from 'react-native';
|
|
5
|
+
import { useLoggerEnabled, useNetworkRequests } from "../hooks.js";
|
|
6
|
+
import { ThemeContext, useTheme } from "../theme.js";
|
|
7
|
+
import NetworkLens from "./NetworkLens.js";
|
|
8
|
+
import { IconButton } from "./ui/index.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
10
|
+
/**
|
|
11
|
+
* Drop-in overlay: a floating badge with the number of captured requests that
|
|
12
|
+
* opens the inspector in a modal. Place it once near the root of your app.
|
|
13
|
+
*/
|
|
14
|
+
const NetworkLensOverlay = ({
|
|
15
|
+
enabled = true,
|
|
16
|
+
theme = 'auto',
|
|
17
|
+
...props
|
|
18
|
+
}) => {
|
|
19
|
+
if (!enabled) return null;
|
|
20
|
+
return /*#__PURE__*/_jsx(ThemeContext.Provider, {
|
|
21
|
+
value: theme,
|
|
22
|
+
children: /*#__PURE__*/_jsx(Overlay, {
|
|
23
|
+
...props,
|
|
24
|
+
theme: theme
|
|
25
|
+
})
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
const Overlay = ({
|
|
29
|
+
theme,
|
|
30
|
+
position = 'bottom-right',
|
|
31
|
+
offset,
|
|
32
|
+
visible,
|
|
33
|
+
onVisibleChange,
|
|
34
|
+
hideButton,
|
|
35
|
+
title = 'Network',
|
|
36
|
+
...lensProps
|
|
37
|
+
}) => {
|
|
38
|
+
const t = useTheme();
|
|
39
|
+
const lensRef = useRef(null);
|
|
40
|
+
const [internalVisible, setInternalVisible] = useState(false);
|
|
41
|
+
const open = visible ?? internalVisible;
|
|
42
|
+
const setOpen = next => {
|
|
43
|
+
if (visible === undefined) setInternalVisible(next);
|
|
44
|
+
onVisibleChange?.(next);
|
|
45
|
+
};
|
|
46
|
+
const requests = useNetworkRequests();
|
|
47
|
+
const loggingEnabled = useLoggerEnabled();
|
|
48
|
+
const hasErrors = requests.some(r => r.state === 'failed' || r.status >= 400);
|
|
49
|
+
const placement = {
|
|
50
|
+
[position.startsWith('bottom') ? 'bottom' : 'top']: offset?.y ?? 32,
|
|
51
|
+
[position.endsWith('right') ? 'right' : 'left']: offset?.x ?? 16
|
|
52
|
+
};
|
|
53
|
+
const header = /*#__PURE__*/_jsxs(View, {
|
|
54
|
+
style: styles.header,
|
|
55
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
56
|
+
style: [styles.title, {
|
|
57
|
+
color: t.colors.text
|
|
58
|
+
}],
|
|
59
|
+
children: title
|
|
60
|
+
}), /*#__PURE__*/_jsx(IconButton, {
|
|
61
|
+
glyph: "\u2715",
|
|
62
|
+
accessibilityLabel: "Close network inspector",
|
|
63
|
+
onPress: () => setOpen(false)
|
|
64
|
+
})]
|
|
65
|
+
});
|
|
66
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
67
|
+
children: [!hideButton && /*#__PURE__*/_jsxs(Pressable, {
|
|
68
|
+
accessibilityRole: "button",
|
|
69
|
+
accessibilityLabel: `Open network inspector, ${requests.length} requests`,
|
|
70
|
+
onPress: () => setOpen(true),
|
|
71
|
+
style: ({
|
|
72
|
+
pressed
|
|
73
|
+
}) => [styles.fab, placement, {
|
|
74
|
+
backgroundColor: hasErrors ? t.colors.statusBad : t.colors.primary
|
|
75
|
+
}, pressed && styles.fabPressed],
|
|
76
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
77
|
+
style: [styles.fabCount, {
|
|
78
|
+
color: t.colors.onPrimary
|
|
79
|
+
}],
|
|
80
|
+
children: loggingEnabled ? requests.length : '•'
|
|
81
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
82
|
+
style: [styles.fabCaption, {
|
|
83
|
+
color: t.colors.onPrimary
|
|
84
|
+
}],
|
|
85
|
+
children: "NET"
|
|
86
|
+
})]
|
|
87
|
+
}), /*#__PURE__*/_jsx(Modal, {
|
|
88
|
+
visible: open,
|
|
89
|
+
animationType: "slide",
|
|
90
|
+
presentationStyle: Platform.OS === 'ios' ? 'pageSheet' : 'fullScreen',
|
|
91
|
+
onRequestClose: () => {
|
|
92
|
+
// Android back button: step back inside the inspector first, then close.
|
|
93
|
+
if (!lensRef.current?.goBack()) setOpen(false);
|
|
94
|
+
},
|
|
95
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
96
|
+
style: [styles.sheet, {
|
|
97
|
+
backgroundColor: t.colors.surface
|
|
98
|
+
}],
|
|
99
|
+
children: /*#__PURE__*/_jsx(NetworkLens, {
|
|
100
|
+
ref: lensRef,
|
|
101
|
+
...lensProps,
|
|
102
|
+
theme: theme,
|
|
103
|
+
header: header
|
|
104
|
+
})
|
|
105
|
+
})
|
|
106
|
+
})]
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
const styles = StyleSheet.create({
|
|
110
|
+
fab: {
|
|
111
|
+
position: 'absolute',
|
|
112
|
+
width: 56,
|
|
113
|
+
height: 56,
|
|
114
|
+
borderRadius: 28,
|
|
115
|
+
alignItems: 'center',
|
|
116
|
+
justifyContent: 'center',
|
|
117
|
+
elevation: 6,
|
|
118
|
+
shadowColor: '#000',
|
|
119
|
+
shadowOpacity: 0.25,
|
|
120
|
+
shadowRadius: 6,
|
|
121
|
+
shadowOffset: {
|
|
122
|
+
width: 0,
|
|
123
|
+
height: 3
|
|
124
|
+
},
|
|
125
|
+
zIndex: 9999
|
|
126
|
+
},
|
|
127
|
+
fabPressed: {
|
|
128
|
+
opacity: 0.8
|
|
129
|
+
},
|
|
130
|
+
fabCount: {
|
|
131
|
+
fontSize: 15,
|
|
132
|
+
fontWeight: '800',
|
|
133
|
+
fontVariant: ['tabular-nums']
|
|
134
|
+
},
|
|
135
|
+
fabCaption: {
|
|
136
|
+
fontSize: 9,
|
|
137
|
+
fontWeight: '700',
|
|
138
|
+
letterSpacing: 1,
|
|
139
|
+
marginTop: -2
|
|
140
|
+
},
|
|
141
|
+
sheet: {
|
|
142
|
+
flex: 1,
|
|
143
|
+
paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight ?? 0 : 0
|
|
144
|
+
},
|
|
145
|
+
header: {
|
|
146
|
+
flexDirection: 'row',
|
|
147
|
+
alignItems: 'center',
|
|
148
|
+
justifyContent: 'space-between',
|
|
149
|
+
paddingLeft: 8,
|
|
150
|
+
paddingBottom: 6
|
|
151
|
+
},
|
|
152
|
+
title: {
|
|
153
|
+
fontSize: 17,
|
|
154
|
+
fontWeight: '700'
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
export default NetworkLensOverlay;
|
|
158
|
+
//# sourceMappingURL=NetworkLensOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","useState","Modal","Platform","Pressable","StatusBar","StyleSheet","Text","View","useLoggerEnabled","useNetworkRequests","ThemeContext","useTheme","NetworkLens","IconButton","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","NetworkLensOverlay","enabled","theme","props","Provider","value","children","Overlay","position","offset","visible","onVisibleChange","hideButton","title","lensProps","t","lensRef","internalVisible","setInternalVisible","open","setOpen","next","undefined","requests","loggingEnabled","hasErrors","some","r","state","status","placement","startsWith","y","endsWith","x","header","style","styles","color","colors","text","glyph","accessibilityLabel","onPress","accessibilityRole","length","pressed","fab","backgroundColor","statusBad","primary","fabPressed","fabCount","onPrimary","fabCaption","animationType","presentationStyle","OS","onRequestClose","current","goBack","sheet","surface","ref","create","width","height","borderRadius","alignItems","justifyContent","elevation","shadowColor","shadowOpacity","shadowRadius","shadowOffset","zIndex","opacity","fontSize","fontWeight","fontVariant","letterSpacing","marginTop","flex","paddingTop","currentHeight","flexDirection","paddingLeft","paddingBottom"],"sourceRoot":"../../../src","sources":["components/NetworkLensOverlay.tsx"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACxC,SACEC,KAAK,EACLC,QAAQ,EACRC,SAAS,EACTC,SAAS,EACTC,UAAU,EACVC,IAAI,EACJC,IAAI,QAEC,cAAc;AACrB,SAASC,gBAAgB,EAAEC,kBAAkB,QAAQ,aAAU;AAC/D,SAASC,YAAY,EAAEC,QAAQ,QAAyB,aAAU;AAClE,OAAOC,WAAW,MAGX,kBAAe;AACtB,SAASC,UAAU,QAAQ,eAAM;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AA0BlC;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAGA,CAAC;EAC1BC,OAAO,GAAG,IAAI;EACdC,KAAK,GAAG,MAAM;EACd,GAAGC;AACoB,CAAC,KAAK;EAC7B,IAAI,CAACF,OAAO,EAAE,OAAO,IAAI;EACzB,oBACEN,IAAA,CAACL,YAAY,CAACc,QAAQ;IAACC,KAAK,EAAEH,KAAM;IAAAI,QAAA,eAClCX,IAAA,CAACY,OAAO;MAAA,GAAKJ,KAAK;MAAED,KAAK,EAAEA;IAAM,CAAE;EAAC,CACf,CAAC;AAE5B,CAAC;AAED,MAAMK,OAAO,GAAGA,CAAC;EACfL,KAAK;EACLM,QAAQ,GAAG,cAAc;EACzBC,MAAM;EACNC,OAAO;EACPC,eAAe;EACfC,UAAU;EACVC,KAAK,GAAG,SAAS;EACjB,GAAGC;AAC6D,CAAC,KAAK;EACtE,MAAMC,CAAC,GAAGxB,QAAQ,CAAC,CAAC;EACpB,MAAMyB,OAAO,GAAGrC,MAAM,CAAoB,IAAI,CAAC;EAC/C,MAAM,CAACsC,eAAe,EAAEC,kBAAkB,CAAC,GAAGtC,QAAQ,CAAC,KAAK,CAAC;EAC7D,MAAMuC,IAAI,GAAGT,OAAO,IAAIO,eAAe;EACvC,MAAMG,OAAO,GAAIC,IAAa,IAAK;IACjC,IAAIX,OAAO,KAAKY,SAAS,EAAEJ,kBAAkB,CAACG,IAAI,CAAC;IACnDV,eAAe,GAAGU,IAAI,CAAC;EACzB,CAAC;EAED,MAAME,QAAQ,GAAGlC,kBAAkB,CAAC,CAAC;EACrC,MAAMmC,cAAc,GAAGpC,gBAAgB,CAAC,CAAC;EACzC,MAAMqC,SAAS,GAAGF,QAAQ,CAACG,IAAI,CAC5BC,CAAC,IAAKA,CAAC,CAACC,KAAK,KAAK,QAAQ,IAAID,CAAC,CAACE,MAAM,IAAI,GAC7C,CAAC;EAED,MAAMC,SAAoB,GAAG;IAC3B,CAACtB,QAAQ,CAACuB,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,KAAK,GAAGtB,MAAM,EAAEuB,CAAC,IAAI,EAAE;IACnE,CAACxB,QAAQ,CAACyB,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,MAAM,GAAGxB,MAAM,EAAEyB,CAAC,IAAI;EAChE,CAAC;EAED,MAAMC,MAAM,gBACVtC,KAAA,CAACV,IAAI;IAACiD,KAAK,EAAEC,MAAM,CAACF,MAAO;IAAA7B,QAAA,gBACzBX,IAAA,CAACT,IAAI;MAACkD,KAAK,EAAE,CAACC,MAAM,CAACxB,KAAK,EAAE;QAAEyB,KAAK,EAAEvB,CAAC,CAACwB,MAAM,CAACC;MAAK,CAAC,CAAE;MAAAlC,QAAA,EAAEO;IAAK,CAAO,CAAC,eACrElB,IAAA,CAACF,UAAU;MACTgD,KAAK,EAAC,QAAG;MACTC,kBAAkB,EAAC,yBAAyB;MAC5CC,OAAO,EAAEA,CAAA,KAAMvB,OAAO,CAAC,KAAK;IAAE,CAC/B,CAAC;EAAA,CACE,CACP;EAED,oBACEvB,KAAA,CAAAE,SAAA;IAAAO,QAAA,GACG,CAACM,UAAU,iBACVf,KAAA,CAACd,SAAS;MACR6D,iBAAiB,EAAC,QAAQ;MAC1BF,kBAAkB,EAAE,2BAA2BnB,QAAQ,CAACsB,MAAM,WAAY;MAC1EF,OAAO,EAAEA,CAAA,KAAMvB,OAAO,CAAC,IAAI,CAAE;MAC7BgB,KAAK,EAAEA,CAAC;QAAEU;MAAQ,CAAC,KAAK,CACtBT,MAAM,CAACU,GAAG,EACVjB,SAAS,EACT;QACEkB,eAAe,EAAEvB,SAAS,GACtBV,CAAC,CAACwB,MAAM,CAACU,SAAS,GAClBlC,CAAC,CAACwB,MAAM,CAACW;MACf,CAAC,EACDJ,OAAO,IAAIT,MAAM,CAACc,UAAU,CAC5B;MAAA7C,QAAA,gBAEFX,IAAA,CAACT,IAAI;QAACkD,KAAK,EAAE,CAACC,MAAM,CAACe,QAAQ,EAAE;UAAEd,KAAK,EAAEvB,CAAC,CAACwB,MAAM,CAACc;QAAU,CAAC,CAAE;QAAA/C,QAAA,EAC3DkB,cAAc,GAAGD,QAAQ,CAACsB,MAAM,GAAG;MAAG,CACnC,CAAC,eACPlD,IAAA,CAACT,IAAI;QAACkD,KAAK,EAAE,CAACC,MAAM,CAACiB,UAAU,EAAE;UAAEhB,KAAK,EAAEvB,CAAC,CAACwB,MAAM,CAACc;QAAU,CAAC,CAAE;QAAA/C,QAAA,EAAC;MAEjE,CAAM,CAAC;IAAA,CACE,CACZ,eACDX,IAAA,CAACd,KAAK;MACJ6B,OAAO,EAAES,IAAK;MACdoC,aAAa,EAAC,OAAO;MACrBC,iBAAiB,EAAE1E,QAAQ,CAAC2E,EAAE,KAAK,KAAK,GAAG,WAAW,GAAG,YAAa;MACtEC,cAAc,EAAEA,CAAA,KAAM;QACpB;QACA,IAAI,CAAC1C,OAAO,CAAC2C,OAAO,EAAEC,MAAM,CAAC,CAAC,EAAExC,OAAO,CAAC,KAAK,CAAC;MAChD,CAAE;MAAAd,QAAA,eAEFX,IAAA,CAACR,IAAI;QAACiD,KAAK,EAAE,CAACC,MAAM,CAACwB,KAAK,EAAE;UAAEb,eAAe,EAAEjC,CAAC,CAACwB,MAAM,CAACuB;QAAQ,CAAC,CAAE;QAAAxD,QAAA,eACjEX,IAAA,CAACH,WAAW;UACVuE,GAAG,EAAE/C,OAAQ;UAAA,GACTF,SAAS;UACbZ,KAAK,EAAEA,KAAM;UACbiC,MAAM,EAAEA;QAAO,CAChB;MAAC,CACE;IAAC,CACF,CAAC;EAAA,CACR,CAAC;AAEP,CAAC;AAED,MAAME,MAAM,GAAGpD,UAAU,CAAC+E,MAAM,CAAC;EAC/BjB,GAAG,EAAE;IACHvC,QAAQ,EAAE,UAAU;IACpByD,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,EAAE;IAChBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,SAAS,EAAE,CAAC;IACZC,WAAW,EAAE,MAAM;IACnBC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,YAAY,EAAE;MAAET,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCS,MAAM,EAAE;EACV,CAAC;EACDxB,UAAU,EAAE;IAAEyB,OAAO,EAAE;EAAI,CAAC;EAC5BxB,QAAQ,EAAE;IAAEyB,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE,KAAK;IAAEC,WAAW,EAAE,CAAC,cAAc;EAAE,CAAC;EAC5EzB,UAAU,EAAE;IACVuB,QAAQ,EAAE,CAAC;IACXC,UAAU,EAAE,KAAK;IACjBE,aAAa,EAAE,CAAC;IAChBC,SAAS,EAAE,CAAC;EACd,CAAC;EACDpB,KAAK,EAAE;IACLqB,IAAI,EAAE,CAAC;IACPC,UAAU,EAAErG,QAAQ,CAAC2E,EAAE,KAAK,SAAS,GAAIzE,SAAS,CAACoG,aAAa,IAAI,CAAC,GAAI;EAC3E,CAAC;EACDjD,MAAM,EAAE;IACNkD,aAAa,EAAE,KAAK;IACpBjB,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,eAAe;IAC/BiB,WAAW,EAAE,CAAC;IACdC,aAAa,EAAE;EACjB,CAAC;EACD1E,KAAK,EAAE;IAAEgE,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAM;AAC3C,CAAC,CAAC;AAEF,eAAe9E,kBAAkB","ignoreList":[]}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useCallback, useEffect, useMemo } from 'react';
|
|
4
|
+
import { StyleSheet, Text, View } from 'react-native';
|
|
5
|
+
import { useTheme } from "../theme.js";
|
|
6
|
+
import { findLineMatches, splitHighlights, toLines } from "../utils/search.js";
|
|
7
|
+
import { CodeList } from "./CodeList.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
/**
|
|
10
|
+
* Renders text one line per row with line numbers, no wrapping and horizontal
|
|
11
|
+
* scrolling, so pretty-printed JSON keeps its indentation structure intact.
|
|
12
|
+
*/
|
|
13
|
+
const RawTextView = ({
|
|
14
|
+
text,
|
|
15
|
+
query = '',
|
|
16
|
+
activeMatch = 0,
|
|
17
|
+
onMatchCountChange
|
|
18
|
+
}) => {
|
|
19
|
+
const theme = useTheme();
|
|
20
|
+
const lines = useMemo(() => toLines(text), [text]);
|
|
21
|
+
const matches = useMemo(() => findLineMatches(lines, query), [lines, query]);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
onMatchCountChange?.(matches.length);
|
|
24
|
+
}, [matches.length, onMatchCountChange]);
|
|
25
|
+
const matchedLines = useMemo(() => new Set(matches.map(m => m.line)), [matches]);
|
|
26
|
+
const activeLine = matches[Math.min(activeMatch, Math.max(matches.length - 1, 0))]?.line;
|
|
27
|
+
const gutterChars = String(lines.length).length;
|
|
28
|
+
const charWidth = theme.sizes.codeFontSize * 0.62;
|
|
29
|
+
const contentWidth = useMemo(() => {
|
|
30
|
+
let max = 0;
|
|
31
|
+
for (const line of lines) if (line.length > max) max = line.length;
|
|
32
|
+
return (max + gutterChars + 3) * charWidth + 32;
|
|
33
|
+
}, [lines, gutterChars, charWidth]);
|
|
34
|
+
const rowHeight = theme.sizes.codeLineHeight;
|
|
35
|
+
const renderItem = useCallback(({
|
|
36
|
+
item,
|
|
37
|
+
index
|
|
38
|
+
}) => /*#__PURE__*/_jsx(Line, {
|
|
39
|
+
text: item,
|
|
40
|
+
index: index,
|
|
41
|
+
gutterChars: gutterChars,
|
|
42
|
+
theme: theme,
|
|
43
|
+
query: query,
|
|
44
|
+
matched: matchedLines.has(index),
|
|
45
|
+
active: index === activeLine,
|
|
46
|
+
height: rowHeight
|
|
47
|
+
}), [gutterChars, theme, query, matchedLines, activeLine, rowHeight]);
|
|
48
|
+
return /*#__PURE__*/_jsx(CodeList, {
|
|
49
|
+
data: lines,
|
|
50
|
+
renderItem: renderItem,
|
|
51
|
+
keyExtractor: keyExtractor,
|
|
52
|
+
contentWidth: contentWidth,
|
|
53
|
+
rowHeight: rowHeight,
|
|
54
|
+
activeIndex: activeLine,
|
|
55
|
+
extraData: `${query}:${activeLine ?? ''}`
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
const keyExtractor = (_, index) => String(index);
|
|
59
|
+
const Line = /*#__PURE__*/React.memo(function LineInner({
|
|
60
|
+
text,
|
|
61
|
+
index,
|
|
62
|
+
gutterChars,
|
|
63
|
+
theme,
|
|
64
|
+
query,
|
|
65
|
+
matched,
|
|
66
|
+
active,
|
|
67
|
+
height
|
|
68
|
+
}) {
|
|
69
|
+
const codeStyle = {
|
|
70
|
+
fontFamily: theme.fonts.mono,
|
|
71
|
+
fontSize: theme.sizes.codeFontSize,
|
|
72
|
+
lineHeight: theme.sizes.codeLineHeight
|
|
73
|
+
};
|
|
74
|
+
const segments = matched ? splitHighlights(text, query) : null;
|
|
75
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
76
|
+
style: [styles.line, {
|
|
77
|
+
height
|
|
78
|
+
}, active ? {
|
|
79
|
+
backgroundColor: `${theme.colors.highlightActive}33`
|
|
80
|
+
} : matched ? {
|
|
81
|
+
backgroundColor: `${theme.colors.highlight}55`
|
|
82
|
+
} : null],
|
|
83
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
84
|
+
style: [codeStyle, styles.gutter, {
|
|
85
|
+
color: theme.colors.textMuted,
|
|
86
|
+
width: (gutterChars + 1) * theme.sizes.codeFontSize * 0.62 + 8
|
|
87
|
+
}],
|
|
88
|
+
children: index + 1
|
|
89
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
90
|
+
numberOfLines: 1,
|
|
91
|
+
selectable: true,
|
|
92
|
+
style: [codeStyle, {
|
|
93
|
+
color: theme.colors.text
|
|
94
|
+
}],
|
|
95
|
+
children: segments ? segments.map((segment, i) => /*#__PURE__*/_jsx(Text, {
|
|
96
|
+
style: segment.highlighted ? {
|
|
97
|
+
backgroundColor: active ? theme.colors.highlightActive : theme.colors.highlight,
|
|
98
|
+
color: theme.colors.onHighlight
|
|
99
|
+
} : undefined,
|
|
100
|
+
children: segment.text
|
|
101
|
+
}, i)) : text
|
|
102
|
+
})]
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
const styles = StyleSheet.create({
|
|
106
|
+
line: {
|
|
107
|
+
flexDirection: 'row',
|
|
108
|
+
alignItems: 'center',
|
|
109
|
+
paddingRight: 16
|
|
110
|
+
},
|
|
111
|
+
gutter: {
|
|
112
|
+
textAlign: 'right',
|
|
113
|
+
paddingRight: 8,
|
|
114
|
+
marginRight: 8,
|
|
115
|
+
opacity: 0.8
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
export default RawTextView;
|
|
119
|
+
//# sourceMappingURL=RawTextView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","StyleSheet","Text","View","useTheme","findLineMatches","splitHighlights","toLines","CodeList","jsx","_jsx","jsxs","_jsxs","RawTextView","text","query","activeMatch","onMatchCountChange","theme","lines","matches","length","matchedLines","Set","map","m","line","activeLine","Math","min","max","gutterChars","String","charWidth","sizes","codeFontSize","contentWidth","rowHeight","codeLineHeight","renderItem","item","index","Line","matched","has","active","height","data","keyExtractor","activeIndex","extraData","_","memo","LineInner","codeStyle","fontFamily","fonts","mono","fontSize","lineHeight","segments","style","styles","backgroundColor","colors","highlightActive","highlight","children","gutter","color","textMuted","width","numberOfLines","selectable","segment","i","highlighted","onHighlight","undefined","create","flexDirection","alignItems","paddingRight","textAlign","marginRight","opacity"],"sourceRoot":"../../../src","sources":["components/RawTextView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import { Pressable, ScrollView, Share, StyleSheet, Text, View } from 'react-native';
|
|
5
|
+
import { useAsyncValue } from "../../hooks.js";
|
|
6
|
+
import { methodColor, statusColor, useTheme } from "../../theme.js";
|
|
7
|
+
import { formatBytes, formatDateTime, formatDuration, formatTime } from "../../utils/format.js";
|
|
8
|
+
import BodyViewer from "../BodyViewer.js";
|
|
9
|
+
import { IconButton, KeyValueList, Pill, Section, SegmentedControl, TextButton } from "../ui/index.js";
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
const share = text => Share.share({
|
|
12
|
+
message: text
|
|
13
|
+
}).catch(() => undefined);
|
|
14
|
+
const statusLabel = request => {
|
|
15
|
+
if (request.state === 'failed') return (request.failureReason ?? 'failed').toUpperCase();
|
|
16
|
+
return request.status > 0 ? String(request.status) : 'PENDING';
|
|
17
|
+
};
|
|
18
|
+
const RequestDetails = ({
|
|
19
|
+
request,
|
|
20
|
+
onClose,
|
|
21
|
+
copyToClipboard
|
|
22
|
+
}) => {
|
|
23
|
+
const theme = useTheme();
|
|
24
|
+
const [tab, setTab] = useState('overview');
|
|
25
|
+
const [urlExpanded, setUrlExpanded] = useState(false);
|
|
26
|
+
const failed = request.state === 'failed';
|
|
27
|
+
const requestBody = request.getRequestBody();
|
|
28
|
+
const {
|
|
29
|
+
value: responseBody,
|
|
30
|
+
loading
|
|
31
|
+
} = useAsyncValue(() => request.getResponseBody(), [request, request.updatedAt]);
|
|
32
|
+
const summary = [request.duration >= 0 && formatDuration(request.duration), request.responseSize > 0 && formatBytes(request.responseSize), formatTime(request.startTime, true)].filter(Boolean).join(' · ');
|
|
33
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
34
|
+
style: [styles.container, {
|
|
35
|
+
backgroundColor: theme.colors.background
|
|
36
|
+
}],
|
|
37
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
38
|
+
style: [styles.header, {
|
|
39
|
+
backgroundColor: theme.colors.surface,
|
|
40
|
+
borderBottomColor: theme.colors.border
|
|
41
|
+
}],
|
|
42
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
43
|
+
style: styles.headerRow,
|
|
44
|
+
children: [/*#__PURE__*/_jsx(Pill, {
|
|
45
|
+
label: request.method,
|
|
46
|
+
color: methodColor(theme, request.method),
|
|
47
|
+
filled: true,
|
|
48
|
+
style: styles.headerPill
|
|
49
|
+
}), /*#__PURE__*/_jsx(Pill, {
|
|
50
|
+
label: statusLabel(request),
|
|
51
|
+
color: statusColor(theme, request.status, failed),
|
|
52
|
+
style: styles.headerPill
|
|
53
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
54
|
+
style: [styles.summary, {
|
|
55
|
+
color: theme.colors.textMuted
|
|
56
|
+
}],
|
|
57
|
+
numberOfLines: 1,
|
|
58
|
+
children: summary
|
|
59
|
+
}), /*#__PURE__*/_jsx(IconButton, {
|
|
60
|
+
glyph: "\u2715",
|
|
61
|
+
accessibilityLabel: "Back to list",
|
|
62
|
+
onPress: onClose
|
|
63
|
+
})]
|
|
64
|
+
}), /*#__PURE__*/_jsx(Pressable, {
|
|
65
|
+
onPress: () => setUrlExpanded(v => !v),
|
|
66
|
+
accessibilityRole: "button",
|
|
67
|
+
accessibilityLabel: "Toggle full URL",
|
|
68
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
69
|
+
selectable: true,
|
|
70
|
+
numberOfLines: urlExpanded ? undefined : 2,
|
|
71
|
+
style: [styles.url, {
|
|
72
|
+
color: theme.colors.text
|
|
73
|
+
}],
|
|
74
|
+
children: request.url
|
|
75
|
+
})
|
|
76
|
+
}), request.gqlOperation ? /*#__PURE__*/_jsxs(Text, {
|
|
77
|
+
style: [styles.gql, {
|
|
78
|
+
color: theme.colors.primary
|
|
79
|
+
}],
|
|
80
|
+
children: ["gql: ", request.gqlOperation]
|
|
81
|
+
}) : null, /*#__PURE__*/_jsx(SegmentedControl, {
|
|
82
|
+
value: tab,
|
|
83
|
+
onChange: setTab,
|
|
84
|
+
style: styles.tabs,
|
|
85
|
+
options: [{
|
|
86
|
+
value: 'overview',
|
|
87
|
+
label: 'Overview'
|
|
88
|
+
}, {
|
|
89
|
+
value: 'request',
|
|
90
|
+
label: 'Request',
|
|
91
|
+
badge: requestBody.kind !== 'empty'
|
|
92
|
+
}, {
|
|
93
|
+
value: 'response',
|
|
94
|
+
label: 'Response',
|
|
95
|
+
badge: !!responseBody && responseBody.kind !== 'empty'
|
|
96
|
+
}]
|
|
97
|
+
})]
|
|
98
|
+
}), tab === 'overview' && /*#__PURE__*/_jsx(OverviewTab, {
|
|
99
|
+
request: request,
|
|
100
|
+
copyToClipboard: copyToClipboard
|
|
101
|
+
}), tab === 'request' && /*#__PURE__*/_jsx(BodyViewer, {
|
|
102
|
+
body: requestBody,
|
|
103
|
+
emptyTitle: "No request body",
|
|
104
|
+
emptySubtitle: `${request.method} requests usually carry no payload.`,
|
|
105
|
+
copyToClipboard: copyToClipboard
|
|
106
|
+
}), tab === 'response' && /*#__PURE__*/_jsx(BodyViewer, {
|
|
107
|
+
body: responseBody,
|
|
108
|
+
loading: loading || request.state === 'pending',
|
|
109
|
+
emptyTitle: failed ? `Request ${request.failureReason ?? 'failed'}` : 'No response body',
|
|
110
|
+
emptySubtitle: failed ? 'The server never answered, so there is nothing to show.' : undefined,
|
|
111
|
+
copyToClipboard: copyToClipboard
|
|
112
|
+
})]
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
const OverviewTab = ({
|
|
116
|
+
request,
|
|
117
|
+
copyToClipboard
|
|
118
|
+
}) => {
|
|
119
|
+
const theme = useTheme();
|
|
120
|
+
const query = Object.entries(request.parsedUrl.query);
|
|
121
|
+
const general = [['URL', request.url], ['Method', request.method], ['Status', request.state === 'failed' ? `Failed (${request.failureReason ?? 'error'})` : statusLabel(request)], ['Duration', request.duration >= 0 ? formatDuration(request.duration) : '—'], ['Started', request.startTime ? formatDateTime(request.startTime) : '—'], ['Response size', request.responseSize > 0 ? formatBytes(request.responseSize) : '—'], ['Content type', request.responseContentType || '—']];
|
|
122
|
+
if (request.responseURL && request.responseURL !== request.url) {
|
|
123
|
+
general.push(['Final URL', request.responseURL]);
|
|
124
|
+
}
|
|
125
|
+
const actions = text => /*#__PURE__*/_jsxs(View, {
|
|
126
|
+
style: styles.sectionActions,
|
|
127
|
+
children: [copyToClipboard && /*#__PURE__*/_jsx(TextButton, {
|
|
128
|
+
label: "Copy",
|
|
129
|
+
onPress: () => copyToClipboard(text),
|
|
130
|
+
style: styles.smallButton
|
|
131
|
+
}), /*#__PURE__*/_jsx(TextButton, {
|
|
132
|
+
label: "Share",
|
|
133
|
+
onPress: () => share(text),
|
|
134
|
+
style: styles.smallButton
|
|
135
|
+
})]
|
|
136
|
+
});
|
|
137
|
+
return /*#__PURE__*/_jsxs(ScrollView, {
|
|
138
|
+
contentContainerStyle: styles.overview,
|
|
139
|
+
keyboardShouldPersistTaps: "handled",
|
|
140
|
+
children: [/*#__PURE__*/_jsx(Section, {
|
|
141
|
+
title: "General",
|
|
142
|
+
children: /*#__PURE__*/_jsx(KeyValueList, {
|
|
143
|
+
entries: general
|
|
144
|
+
})
|
|
145
|
+
}), query.length > 0 && /*#__PURE__*/_jsx(Section, {
|
|
146
|
+
title: "Query parameters",
|
|
147
|
+
right: actions(JSON.stringify(request.parsedUrl.query, null, 2)),
|
|
148
|
+
children: /*#__PURE__*/_jsx(KeyValueList, {
|
|
149
|
+
entries: query,
|
|
150
|
+
mono: true
|
|
151
|
+
})
|
|
152
|
+
}), /*#__PURE__*/_jsx(Section, {
|
|
153
|
+
title: `Request headers (${Object.keys(request.requestHeaders).length})`,
|
|
154
|
+
right: actions(JSON.stringify(request.requestHeaders, null, 2)),
|
|
155
|
+
children: /*#__PURE__*/_jsx(KeyValueList, {
|
|
156
|
+
entries: Object.entries(request.requestHeaders),
|
|
157
|
+
mono: true,
|
|
158
|
+
emptyLabel: "No request headers"
|
|
159
|
+
})
|
|
160
|
+
}), /*#__PURE__*/_jsx(Section, {
|
|
161
|
+
title: `Response headers (${Object.keys(request.responseHeaders).length})`,
|
|
162
|
+
right: actions(JSON.stringify(request.responseHeaders, null, 2)),
|
|
163
|
+
children: /*#__PURE__*/_jsx(KeyValueList, {
|
|
164
|
+
entries: Object.entries(request.responseHeaders),
|
|
165
|
+
mono: true,
|
|
166
|
+
emptyLabel: "No response headers yet"
|
|
167
|
+
})
|
|
168
|
+
}), /*#__PURE__*/_jsx(Section, {
|
|
169
|
+
title: "Export",
|
|
170
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
171
|
+
style: styles.exportRow,
|
|
172
|
+
children: [/*#__PURE__*/_jsx(TextButton, {
|
|
173
|
+
label: "Share as cURL",
|
|
174
|
+
onPress: () => share(request.curl),
|
|
175
|
+
style: styles.exportButton
|
|
176
|
+
}), /*#__PURE__*/_jsx(TextButton, {
|
|
177
|
+
label: "Share full request",
|
|
178
|
+
onPress: async () => share(JSON.stringify(await request.toJSON(), null, 2)),
|
|
179
|
+
style: styles.exportButton
|
|
180
|
+
}), copyToClipboard && /*#__PURE__*/_jsx(TextButton, {
|
|
181
|
+
label: "Copy cURL",
|
|
182
|
+
onPress: () => copyToClipboard(request.curl),
|
|
183
|
+
style: styles.exportButton
|
|
184
|
+
})]
|
|
185
|
+
})
|
|
186
|
+
}), /*#__PURE__*/_jsxs(Text, {
|
|
187
|
+
style: [styles.footer, {
|
|
188
|
+
color: theme.colors.textMuted
|
|
189
|
+
}],
|
|
190
|
+
children: ["Request #", request.id]
|
|
191
|
+
})]
|
|
192
|
+
});
|
|
193
|
+
};
|
|
194
|
+
const styles = StyleSheet.create({
|
|
195
|
+
container: {
|
|
196
|
+
flex: 1
|
|
197
|
+
},
|
|
198
|
+
header: {
|
|
199
|
+
paddingHorizontal: 12,
|
|
200
|
+
paddingVertical: 10,
|
|
201
|
+
borderBottomWidth: StyleSheet.hairlineWidth
|
|
202
|
+
},
|
|
203
|
+
headerRow: {
|
|
204
|
+
flexDirection: 'row',
|
|
205
|
+
alignItems: 'center'
|
|
206
|
+
},
|
|
207
|
+
headerPill: {
|
|
208
|
+
marginRight: 8
|
|
209
|
+
},
|
|
210
|
+
summary: {
|
|
211
|
+
flex: 1,
|
|
212
|
+
fontSize: 12,
|
|
213
|
+
fontVariant: ['tabular-nums']
|
|
214
|
+
},
|
|
215
|
+
url: {
|
|
216
|
+
fontSize: 14,
|
|
217
|
+
marginTop: 8,
|
|
218
|
+
lineHeight: 19
|
|
219
|
+
},
|
|
220
|
+
gql: {
|
|
221
|
+
fontSize: 12,
|
|
222
|
+
marginTop: 4,
|
|
223
|
+
fontWeight: '600'
|
|
224
|
+
},
|
|
225
|
+
tabs: {
|
|
226
|
+
marginTop: 10
|
|
227
|
+
},
|
|
228
|
+
overview: {
|
|
229
|
+
paddingBottom: 24
|
|
230
|
+
},
|
|
231
|
+
sectionActions: {
|
|
232
|
+
flexDirection: 'row'
|
|
233
|
+
},
|
|
234
|
+
smallButton: {
|
|
235
|
+
paddingVertical: 3,
|
|
236
|
+
paddingHorizontal: 8,
|
|
237
|
+
marginLeft: 6
|
|
238
|
+
},
|
|
239
|
+
exportRow: {
|
|
240
|
+
flexDirection: 'row',
|
|
241
|
+
flexWrap: 'wrap',
|
|
242
|
+
paddingVertical: 8
|
|
243
|
+
},
|
|
244
|
+
exportButton: {
|
|
245
|
+
paddingVertical: 8,
|
|
246
|
+
marginRight: 8,
|
|
247
|
+
marginBottom: 8
|
|
248
|
+
},
|
|
249
|
+
footer: {
|
|
250
|
+
textAlign: 'center',
|
|
251
|
+
fontSize: 11,
|
|
252
|
+
marginTop: 20
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
export default RequestDetails;
|
|
256
|
+
//# sourceMappingURL=RequestDetails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useState","Pressable","ScrollView","Share","StyleSheet","Text","View","useAsyncValue","methodColor","statusColor","useTheme","formatBytes","formatDateTime","formatDuration","formatTime","BodyViewer","IconButton","KeyValueList","Pill","Section","SegmentedControl","TextButton","jsx","_jsx","jsxs","_jsxs","share","text","message","catch","undefined","statusLabel","request","state","failureReason","toUpperCase","status","String","RequestDetails","onClose","copyToClipboard","theme","tab","setTab","urlExpanded","setUrlExpanded","failed","requestBody","getRequestBody","value","responseBody","loading","getResponseBody","updatedAt","summary","duration","responseSize","startTime","filter","Boolean","join","style","styles","container","backgroundColor","colors","background","children","header","surface","borderBottomColor","border","headerRow","label","method","color","filled","headerPill","textMuted","numberOfLines","glyph","accessibilityLabel","onPress","v","accessibilityRole","selectable","url","gqlOperation","gql","primary","onChange","tabs","options","badge","kind","OverviewTab","body","emptyTitle","emptySubtitle","query","Object","entries","parsedUrl","general","responseContentType","responseURL","push","actions","sectionActions","smallButton","contentContainerStyle","overview","keyboardShouldPersistTaps","title","length","right","JSON","stringify","mono","keys","requestHeaders","emptyLabel","responseHeaders","exportRow","curl","exportButton","toJSON","footer","id","create","flex","paddingHorizontal","paddingVertical","borderBottomWidth","hairlineWidth","flexDirection","alignItems","marginRight","fontSize","fontVariant","marginTop","lineHeight","fontWeight","paddingBottom","marginLeft","flexWrap","marginBottom","textAlign"],"sourceRoot":"../../../../src","sources":["components/RequestDetails/RequestDetails.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,OAAO;AAChC,SACEC,SAAS,EACTC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,IAAI,EACJC,IAAI,QACC,cAAc;AAErB,SAASC,aAAa,QAAQ,gBAAa;AAC3C,SAASC,WAAW,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,gBAAa;AAChE,SACEC,WAAW,EACXC,cAAc,EACdC,cAAc,EACdC,UAAU,QACL,uBAAoB;AAC3B,OAAOC,UAAU,MAAM,kBAAe;AACtC,SACEC,UAAU,EACVC,YAAY,EACZC,IAAI,EACJC,OAAO,EACPC,gBAAgB,EAChBC,UAAU,QACL,gBAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAUf,MAAMC,KAAK,GAAIC,IAAY,IACzBxB,KAAK,CAACuB,KAAK,CAAC;EAAEE,OAAO,EAAED;AAAK,CAAC,CAAC,CAACE,KAAK,CAAC,MAAMC,SAAS,CAAC;AAEvD,MAAMC,WAAW,GAAIC,OAAuB,IAAK;EAC/C,IAAIA,OAAO,CAACC,KAAK,KAAK,QAAQ,EAC5B,OAAO,CAACD,OAAO,CAACE,aAAa,IAAI,QAAQ,EAAEC,WAAW,CAAC,CAAC;EAC1D,OAAOH,OAAO,CAACI,MAAM,GAAG,CAAC,GAAGC,MAAM,CAACL,OAAO,CAACI,MAAM,CAAC,GAAG,SAAS;AAChE,CAAC;AAED,MAAME,cAAc,GAAGA,CAAC;EAAEN,OAAO;EAAEO,OAAO;EAAEC;AAAuB,CAAC,KAAK;EACvE,MAAMC,KAAK,GAAG/B,QAAQ,CAAC,CAAC;EACxB,MAAM,CAACgC,GAAG,EAAEC,MAAM,CAAC,GAAG3C,QAAQ,CAAM,UAAU,CAAC;EAC/C,MAAM,CAAC4C,WAAW,EAAEC,cAAc,CAAC,GAAG7C,QAAQ,CAAC,KAAK,CAAC;EAErD,MAAM8C,MAAM,GAAGd,OAAO,CAACC,KAAK,KAAK,QAAQ;EACzC,MAAMc,WAAW,GAAGf,OAAO,CAACgB,cAAc,CAAC,CAAC;EAC5C,MAAM;IAAEC,KAAK,EAAEC,YAAY;IAAEC;EAAQ,CAAC,GAAG5C,aAAa,CACpD,MAAMyB,OAAO,CAACoB,eAAe,CAAC,CAAC,EAC/B,CAACpB,OAAO,EAAEA,OAAO,CAACqB,SAAS,CAC7B,CAAC;EAED,MAAMC,OAAO,GAAG,CACdtB,OAAO,CAACuB,QAAQ,IAAI,CAAC,IAAI1C,cAAc,CAACmB,OAAO,CAACuB,QAAQ,CAAC,EACzDvB,OAAO,CAACwB,YAAY,GAAG,CAAC,IAAI7C,WAAW,CAACqB,OAAO,CAACwB,YAAY,CAAC,EAC7D1C,UAAU,CAACkB,OAAO,CAACyB,SAAS,EAAE,IAAI,CAAC,CACpC,CACEC,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,KAAK,CAAC;EAEd,oBACEnC,KAAA,CAACnB,IAAI;IACHuD,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE;MAAEC,eAAe,EAAEvB,KAAK,CAACwB,MAAM,CAACC;IAAW,CAAC,CAAE;IAAAC,QAAA,gBAExE1C,KAAA,CAACnB,IAAI;MACHuD,KAAK,EAAE,CACLC,MAAM,CAACM,MAAM,EACb;QACEJ,eAAe,EAAEvB,KAAK,CAACwB,MAAM,CAACI,OAAO;QACrCC,iBAAiB,EAAE7B,KAAK,CAACwB,MAAM,CAACM;MAClC,CAAC,CACD;MAAAJ,QAAA,gBAEF1C,KAAA,CAACnB,IAAI;QAACuD,KAAK,EAAEC,MAAM,CAACU,SAAU;QAAAL,QAAA,gBAC5B5C,IAAA,CAACL,IAAI;UACHuD,KAAK,EAAEzC,OAAO,CAAC0C,MAAO;UACtBC,KAAK,EAAEnE,WAAW,CAACiC,KAAK,EAAET,OAAO,CAAC0C,MAAM,CAAE;UAC1CE,MAAM;UACNf,KAAK,EAAEC,MAAM,CAACe;QAAW,CAC1B,CAAC,eACFtD,IAAA,CAACL,IAAI;UACHuD,KAAK,EAAE1C,WAAW,CAACC,OAAO,CAAE;UAC5B2C,KAAK,EAAElE,WAAW,CAACgC,KAAK,EAAET,OAAO,CAACI,MAAM,EAAEU,MAAM,CAAE;UAClDe,KAAK,EAAEC,MAAM,CAACe;QAAW,CAC1B,CAAC,eACFtD,IAAA,CAAClB,IAAI;UACHwD,KAAK,EAAE,CAACC,MAAM,CAACR,OAAO,EAAE;YAAEqB,KAAK,EAAElC,KAAK,CAACwB,MAAM,CAACa;UAAU,CAAC,CAAE;UAC3DC,aAAa,EAAE,CAAE;UAAAZ,QAAA,EAEhBb;QAAO,CACJ,CAAC,eACP/B,IAAA,CAACP,UAAU;UACTgE,KAAK,EAAC,QAAG;UACTC,kBAAkB,EAAC,cAAc;UACjCC,OAAO,EAAE3C;QAAQ,CAClB,CAAC;MAAA,CACE,CAAC,eACPhB,IAAA,CAACtB,SAAS;QACRiF,OAAO,EAAEA,CAAA,KAAMrC,cAAc,CAAEsC,CAAC,IAAK,CAACA,CAAC,CAAE;QACzCC,iBAAiB,EAAC,QAAQ;QAC1BH,kBAAkB,EAAC,iBAAiB;QAAAd,QAAA,eAEpC5C,IAAA,CAAClB,IAAI;UACHgF,UAAU;UACVN,aAAa,EAAEnC,WAAW,GAAGd,SAAS,GAAG,CAAE;UAC3C+B,KAAK,EAAE,CAACC,MAAM,CAACwB,GAAG,EAAE;YAAEX,KAAK,EAAElC,KAAK,CAACwB,MAAM,CAACtC;UAAK,CAAC,CAAE;UAAAwC,QAAA,EAEjDnC,OAAO,CAACsD;QAAG,CACR;MAAC,CACE,CAAC,EACXtD,OAAO,CAACuD,YAAY,gBACnB9D,KAAA,CAACpB,IAAI;QAACwD,KAAK,EAAE,CAACC,MAAM,CAAC0B,GAAG,EAAE;UAAEb,KAAK,EAAElC,KAAK,CAACwB,MAAM,CAACwB;QAAQ,CAAC,CAAE;QAAAtB,QAAA,GAAC,OACrD,EAACnC,OAAO,CAACuD,YAAY;MAAA,CACtB,CAAC,GACL,IAAI,eACRhE,IAAA,CAACH,gBAAgB;QACf6B,KAAK,EAAEP,GAAI;QACXgD,QAAQ,EAAE/C,MAAO;QACjBkB,KAAK,EAAEC,MAAM,CAAC6B,IAAK;QACnBC,OAAO,EAAE,CACP;UAAE3C,KAAK,EAAE,UAAU;UAAEwB,KAAK,EAAE;QAAW,CAAC,EACxC;UACExB,KAAK,EAAE,SAAS;UAChBwB,KAAK,EAAE,SAAS;UAChBoB,KAAK,EAAE9C,WAAW,CAAC+C,IAAI,KAAK;QAC9B,CAAC,EACD;UACE7C,KAAK,EAAE,UAAU;UACjBwB,KAAK,EAAE,UAAU;UACjBoB,KAAK,EAAE,CAAC,CAAC3C,YAAY,IAAIA,YAAY,CAAC4C,IAAI,KAAK;QACjD,CAAC;MACD,CACH,CAAC;IAAA,CACE,CAAC,EAENpD,GAAG,KAAK,UAAU,iBACjBnB,IAAA,CAACwE,WAAW;MAAC/D,OAAO,EAAEA,OAAQ;MAACQ,eAAe,EAAEA;IAAgB,CAAE,CACnE,EACAE,GAAG,KAAK,SAAS,iBAChBnB,IAAA,CAACR,UAAU;MACTiF,IAAI,EAAEjD,WAAY;MAClBkD,UAAU,EAAC,iBAAiB;MAC5BC,aAAa,EAAE,GAAGlE,OAAO,CAAC0C,MAAM,qCAAsC;MACtElC,eAAe,EAAEA;IAAgB,CAClC,CACF,EACAE,GAAG,KAAK,UAAU,iBACjBnB,IAAA,CAACR,UAAU;MACTiF,IAAI,EAAE9C,YAAa;MACnBC,OAAO,EAAEA,OAAO,IAAInB,OAAO,CAACC,KAAK,KAAK,SAAU;MAChDgE,UAAU,EACRnD,MAAM,GACF,WAAWd,OAAO,CAACE,aAAa,IAAI,QAAQ,EAAE,GAC9C,kBACL;MACDgE,aAAa,EACXpD,MAAM,GACF,yDAAyD,GACzDhB,SACL;MACDU,eAAe,EAAEA;IAAgB,CAClC,CACF;EAAA,CACG,CAAC;AAEX,CAAC;AAED,MAAMuD,WAAW,GAAGA,CAAC;EACnB/D,OAAO;EACPQ;AAIF,CAAC,KAAK;EACJ,MAAMC,KAAK,GAAG/B,QAAQ,CAAC,CAAC;EACxB,MAAMyF,KAAK,GAAGC,MAAM,CAACC,OAAO,CAACrE,OAAO,CAACsE,SAAS,CAACH,KAAK,CAAC;EAErD,MAAMI,OAA2B,GAAG,CAClC,CAAC,KAAK,EAAEvE,OAAO,CAACsD,GAAG,CAAC,EACpB,CAAC,QAAQ,EAAEtD,OAAO,CAAC0C,MAAM,CAAC,EAC1B,CACE,QAAQ,EACR1C,OAAO,CAACC,KAAK,KAAK,QAAQ,GACtB,WAAWD,OAAO,CAACE,aAAa,IAAI,OAAO,GAAG,GAC9CH,WAAW,CAACC,OAAO,CAAC,CACzB,EACD,CACE,UAAU,EACVA,OAAO,CAACuB,QAAQ,IAAI,CAAC,GAAG1C,cAAc,CAACmB,OAAO,CAACuB,QAAQ,CAAC,GAAG,GAAG,CAC/D,EACD,CAAC,SAAS,EAAEvB,OAAO,CAACyB,SAAS,GAAG7C,cAAc,CAACoB,OAAO,CAACyB,SAAS,CAAC,GAAG,GAAG,CAAC,EACxE,CACE,eAAe,EACfzB,OAAO,CAACwB,YAAY,GAAG,CAAC,GAAG7C,WAAW,CAACqB,OAAO,CAACwB,YAAY,CAAC,GAAG,GAAG,CACnE,EACD,CAAC,cAAc,EAAExB,OAAO,CAACwE,mBAAmB,IAAI,GAAG,CAAC,CACrD;EACD,IAAIxE,OAAO,CAACyE,WAAW,IAAIzE,OAAO,CAACyE,WAAW,KAAKzE,OAAO,CAACsD,GAAG,EAAE;IAC9DiB,OAAO,CAACG,IAAI,CAAC,CAAC,WAAW,EAAE1E,OAAO,CAACyE,WAAW,CAAC,CAAC;EAClD;EAEA,MAAME,OAAO,GAAIhF,IAAY,iBAC3BF,KAAA,CAACnB,IAAI;IAACuD,KAAK,EAAEC,MAAM,CAAC8C,cAAe;IAAAzC,QAAA,GAChC3B,eAAe,iBACdjB,IAAA,CAACF,UAAU;MACToD,KAAK,EAAC,MAAM;MACZS,OAAO,EAAEA,CAAA,KAAM1C,eAAe,CAACb,IAAI,CAAE;MACrCkC,KAAK,EAAEC,MAAM,CAAC+C;IAAY,CAC3B,CACF,eACDtF,IAAA,CAACF,UAAU;MACToD,KAAK,EAAC,OAAO;MACbS,OAAO,EAAEA,CAAA,KAAMxD,KAAK,CAACC,IAAI,CAAE;MAC3BkC,KAAK,EAAEC,MAAM,CAAC+C;IAAY,CAC3B,CAAC;EAAA,CACE,CACP;EAED,oBACEpF,KAAA,CAACvB,UAAU;IACT4G,qBAAqB,EAAEhD,MAAM,CAACiD,QAAS;IACvCC,yBAAyB,EAAC,SAAS;IAAA7C,QAAA,gBAEnC5C,IAAA,CAACJ,OAAO;MAAC8F,KAAK,EAAC,SAAS;MAAA9C,QAAA,eACtB5C,IAAA,CAACN,YAAY;QAACoF,OAAO,EAAEE;MAAQ,CAAE;IAAC,CAC3B,CAAC,EACTJ,KAAK,CAACe,MAAM,GAAG,CAAC,iBACf3F,IAAA,CAACJ,OAAO;MACN8F,KAAK,EAAC,kBAAkB;MACxBE,KAAK,EAAER,OAAO,CAACS,IAAI,CAACC,SAAS,CAACrF,OAAO,CAACsE,SAAS,CAACH,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAE;MAAAhC,QAAA,eAEjE5C,IAAA,CAACN,YAAY;QAACoF,OAAO,EAAEF,KAAM;QAACmB,IAAI;MAAA,CAAE;IAAC,CAC9B,CACV,eACD/F,IAAA,CAACJ,OAAO;MACN8F,KAAK,EAAE,oBAAoBb,MAAM,CAACmB,IAAI,CAACvF,OAAO,CAACwF,cAAc,CAAC,CAACN,MAAM,GAAI;MACzEC,KAAK,EAAER,OAAO,CAACS,IAAI,CAACC,SAAS,CAACrF,OAAO,CAACwF,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAE;MAAArD,QAAA,eAEhE5C,IAAA,CAACN,YAAY;QACXoF,OAAO,EAAED,MAAM,CAACC,OAAO,CAACrE,OAAO,CAACwF,cAAc,CAAE;QAChDF,IAAI;QACJG,UAAU,EAAC;MAAoB,CAChC;IAAC,CACK,CAAC,eACVlG,IAAA,CAACJ,OAAO;MACN8F,KAAK,EAAE,qBAAqBb,MAAM,CAACmB,IAAI,CAACvF,OAAO,CAAC0F,eAAe,CAAC,CAACR,MAAM,GAAI;MAC3EC,KAAK,EAAER,OAAO,CAACS,IAAI,CAACC,SAAS,CAACrF,OAAO,CAAC0F,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAE;MAAAvD,QAAA,eAEjE5C,IAAA,CAACN,YAAY;QACXoF,OAAO,EAAED,MAAM,CAACC,OAAO,CAACrE,OAAO,CAAC0F,eAAe,CAAE;QACjDJ,IAAI;QACJG,UAAU,EAAC;MAAyB,CACrC;IAAC,CACK,CAAC,eACVlG,IAAA,CAACJ,OAAO;MAAC8F,KAAK,EAAC,QAAQ;MAAA9C,QAAA,eACrB1C,KAAA,CAACnB,IAAI;QAACuD,KAAK,EAAEC,MAAM,CAAC6D,SAAU;QAAAxD,QAAA,gBAC5B5C,IAAA,CAACF,UAAU;UACToD,KAAK,EAAC,eAAe;UACrBS,OAAO,EAAEA,CAAA,KAAMxD,KAAK,CAACM,OAAO,CAAC4F,IAAI,CAAE;UACnC/D,KAAK,EAAEC,MAAM,CAAC+D;QAAa,CAC5B,CAAC,eACFtG,IAAA,CAACF,UAAU;UACToD,KAAK,EAAC,oBAAoB;UAC1BS,OAAO,EAAE,MAAAA,CAAA,KACPxD,KAAK,CAAC0F,IAAI,CAACC,SAAS,CAAC,MAAMrF,OAAO,CAAC8F,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CACtD;UACDjE,KAAK,EAAEC,MAAM,CAAC+D;QAAa,CAC5B,CAAC,EACDrF,eAAe,iBACdjB,IAAA,CAACF,UAAU;UACToD,KAAK,EAAC,WAAW;UACjBS,OAAO,EAAEA,CAAA,KAAM1C,eAAe,CAACR,OAAO,CAAC4F,IAAI,CAAE;UAC7C/D,KAAK,EAAEC,MAAM,CAAC+D;QAAa,CAC5B,CACF;MAAA,CACG;IAAC,CACA,CAAC,eACVpG,KAAA,CAACpB,IAAI;MAACwD,KAAK,EAAE,CAACC,MAAM,CAACiE,MAAM,EAAE;QAAEpD,KAAK,EAAElC,KAAK,CAACwB,MAAM,CAACa;MAAU,CAAC,CAAE;MAAAX,QAAA,GAAC,WACtD,EAACnC,OAAO,CAACgG,EAAE;IAAA,CAChB,CAAC;EAAA,CACG,CAAC;AAEjB,CAAC;AAED,MAAMlE,MAAM,GAAG1D,UAAU,CAAC6H,MAAM,CAAC;EAC/BlE,SAAS,EAAE;IAAEmE,IAAI,EAAE;EAAE,CAAC;EACtB9D,MAAM,EAAE;IACN+D,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAEjI,UAAU,CAACkI;EAChC,CAAC;EACD9D,SAAS,EAAE;IAAE+D,aAAa,EAAE,KAAK;IAAEC,UAAU,EAAE;EAAS,CAAC;EACzD3D,UAAU,EAAE;IAAE4D,WAAW,EAAE;EAAE,CAAC;EAC9BnF,OAAO,EAAE;IAAE4E,IAAI,EAAE,CAAC;IAAEQ,QAAQ,EAAE,EAAE;IAAEC,WAAW,EAAE,CAAC,cAAc;EAAE,CAAC;EACjErD,GAAG,EAAE;IAAEoD,QAAQ,EAAE,EAAE;IAAEE,SAAS,EAAE,CAAC;IAAEC,UAAU,EAAE;EAAG,CAAC;EACnDrD,GAAG,EAAE;IAAEkD,QAAQ,EAAE,EAAE;IAAEE,SAAS,EAAE,CAAC;IAAEE,UAAU,EAAE;EAAM,CAAC;EACtDnD,IAAI,EAAE;IAAEiD,SAAS,EAAE;EAAG,CAAC;EACvB7B,QAAQ,EAAE;IAAEgC,aAAa,EAAE;EAAG,CAAC;EAC/BnC,cAAc,EAAE;IAAE2B,aAAa,EAAE;EAAM,CAAC;EACxC1B,WAAW,EAAE;IAAEuB,eAAe,EAAE,CAAC;IAAED,iBAAiB,EAAE,CAAC;IAAEa,UAAU,EAAE;EAAE,CAAC;EACxErB,SAAS,EAAE;IACTY,aAAa,EAAE,KAAK;IACpBU,QAAQ,EAAE,MAAM;IAChBb,eAAe,EAAE;EACnB,CAAC;EACDP,YAAY,EAAE;IAAEO,eAAe,EAAE,CAAC;IAAEK,WAAW,EAAE,CAAC;IAAES,YAAY,EAAE;EAAE,CAAC;EACrEnB,MAAM,EAAE;IAAEoB,SAAS,EAAE,QAAQ;IAAET,QAAQ,EAAE,EAAE;IAAEE,SAAS,EAAE;EAAG;AAC7D,CAAC,CAAC;AAEF,eAAetG,cAAc","ignoreList":[]}
|