react-native-debug-toolkit 3.2.4 → 3.2.5

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.
Files changed (25) hide show
  1. package/android/src/main/java/com/reactnativedebugtoolkit/DebugToolkitDevConnectModule.java +47 -12
  2. package/ios/DebugToolkitDevConnect.mm +31 -19
  3. package/lib/commonjs/features/devConnect/DevConnectTab.js +91 -11
  4. package/lib/commonjs/features/devConnect/DevConnectTab.js.map +1 -1
  5. package/lib/commonjs/features/devConnect/devConnectPreferences.js +6 -2
  6. package/lib/commonjs/features/devConnect/devConnectPreferences.js.map +1 -1
  7. package/lib/commonjs/features/devConnect/index.js +11 -2
  8. package/lib/commonjs/features/devConnect/index.js.map +1 -1
  9. package/lib/module/features/devConnect/DevConnectTab.js +92 -12
  10. package/lib/module/features/devConnect/DevConnectTab.js.map +1 -1
  11. package/lib/module/features/devConnect/devConnectPreferences.js +6 -2
  12. package/lib/module/features/devConnect/devConnectPreferences.js.map +1 -1
  13. package/lib/module/features/devConnect/index.js +11 -2
  14. package/lib/module/features/devConnect/index.js.map +1 -1
  15. package/lib/typescript/src/features/devConnect/DevConnectTab.d.ts +1 -1
  16. package/lib/typescript/src/features/devConnect/DevConnectTab.d.ts.map +1 -1
  17. package/lib/typescript/src/features/devConnect/devConnectPreferences.d.ts.map +1 -1
  18. package/lib/typescript/src/features/devConnect/index.d.ts.map +1 -1
  19. package/lib/typescript/src/features/devConnect/types.d.ts +4 -0
  20. package/lib/typescript/src/features/devConnect/types.d.ts.map +1 -1
  21. package/package.json +1 -1
  22. package/src/features/devConnect/DevConnectTab.tsx +103 -12
  23. package/src/features/devConnect/devConnectPreferences.ts +7 -2
  24. package/src/features/devConnect/index.ts +13 -2
  25. package/src/features/devConnect/types.ts +8 -0
@@ -5,7 +5,7 @@ import { KeyboardAvoidingView, Platform, ScrollView, StyleSheet, Text, TextInput
5
5
  import { Colors } from '../../ui/theme/colors';
6
6
  import { buildDeviceDaemonEndpoint, daemonClient, getDefaultDaemonEndpoint, normalizeDaemonSettings } from '../../utils/DaemonClient';
7
7
  import { DEFAULT_DAEMON_PORT, DEFAULT_METRO_PORT, buildDaemonDeviceHost, buildMetroTarget, buildMetroUrls, normalizeComputerHost, normalizePort, parseComputerTarget } from './devConnectUtils';
8
- import { saveComputerTarget, saveDaemonPort, saveMetroPort } from './devConnectPreferences';
8
+ import { saveComputerHost, saveComputerTarget, saveDaemonPort, saveMetroPort } from './devConnectPreferences';
9
9
  import { applyMetroBundle, resetMetroBundle } from './nativeDevConnect';
10
10
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
11
11
  const CONNECTION_TIMEOUT_MS = 2000;
@@ -28,7 +28,8 @@ function describeMetroFailure(result) {
28
28
  return result.error ? `Metro switch failed: ${result.error}` : 'Metro switch failed.';
29
29
  }
30
30
  export function DevConnectTab({
31
- snapshot
31
+ snapshot,
32
+ feature
32
33
  }) {
33
34
  const inputRef = useRef(null);
34
35
  const [computerHost, setComputerHost] = useState(snapshot.computerHost);
@@ -40,13 +41,22 @@ export function DevConnectTab({
40
41
  const [sending, setSending] = useState(false);
41
42
  const [metroBusy, setMetroBusy] = useState(false);
42
43
  const isSim = snapshot.isSimulator;
44
+ const updateFeatureSettings = useCallback(patch => {
45
+ feature.updateSettings?.(patch);
46
+ }, [feature]);
43
47
  useEffect(() => {
44
48
  setComputerHost(snapshot.computerHost);
49
+ }, [snapshot.computerHost]);
50
+ useEffect(() => {
45
51
  setMetroPort(snapshot.metroPort);
52
+ }, [snapshot.metroPort]);
53
+ useEffect(() => {
46
54
  setDaemonPort(snapshot.daemonPort);
55
+ }, [snapshot.daemonPort]);
56
+ useEffect(() => {
47
57
  setStreaming(snapshot.streaming);
48
58
  setSyncState(snapshot.streaming ? 'running' : 'idle');
49
- }, [snapshot.computerHost, snapshot.daemonPort, snapshot.metroPort, snapshot.streaming]);
59
+ }, [snapshot.streaming]);
50
60
  const metroHost = isSim ? getSimulatorMetroHost() : computerHost;
51
61
  const metroTarget = useMemo(() => buildMetroTarget(metroHost, metroPort), [metroHost, metroPort]);
52
62
  const metroUrls = useMemo(() => buildMetroUrls(metroHost, metroPort), [metroHost, metroPort]);
@@ -55,27 +65,88 @@ export function DevConnectTab({
55
65
  const target = parseComputerTarget(value);
56
66
  if (target) {
57
67
  setMetroPort(target.metroPort);
58
- saveComputerTarget(value).catch(() => {});
68
+ saveComputerTarget(value).then(savedTarget => {
69
+ if (savedTarget) {
70
+ updateFeatureSettings({
71
+ computerHost: savedTarget.computerHost,
72
+ metroPort: savedTarget.metroPort
73
+ });
74
+ }
75
+ }).catch(() => {});
59
76
  }
60
77
  setSyncState(prev => prev === 'failed' ? 'idle' : prev);
61
78
  setMessage(null);
62
- }, []);
79
+ }, [updateFeatureSettings]);
63
80
  const handleMetroPortChange = useCallback(value => {
64
81
  setMetroPort(value);
65
82
  const normalized = normalizePort(value);
66
83
  if (normalized) {
67
- saveMetroPort(normalized).catch(() => {});
84
+ saveMetroPort(normalized).then(() => updateFeatureSettings({
85
+ metroPort: normalized
86
+ })).catch(() => {});
68
87
  }
69
88
  setMessage(null);
70
- }, []);
89
+ }, [updateFeatureSettings]);
71
90
  const handleDaemonPortChange = useCallback(value => {
72
91
  setDaemonPort(value);
73
92
  const normalized = normalizePort(value);
74
93
  if (normalized) {
75
- saveDaemonPort(normalized).catch(() => {});
94
+ saveDaemonPort(normalized).then(() => updateFeatureSettings({
95
+ daemonPort: normalized
96
+ })).catch(() => {});
76
97
  }
77
98
  setMessage(null);
78
- }, []);
99
+ }, [updateFeatureSettings]);
100
+ const persistConnectionSettings = useCallback(async () => {
101
+ const normalizedDaemonPort = normalizePort(daemonPort);
102
+ if (!normalizedDaemonPort) {
103
+ setMessage('Enter a valid desktop logs port.');
104
+ return false;
105
+ }
106
+ const patch = {
107
+ daemonPort: normalizedDaemonPort
108
+ };
109
+ const writes = [saveDaemonPort(normalizedDaemonPort)];
110
+ setDaemonPort(normalizedDaemonPort);
111
+ if (!isSim) {
112
+ const normalizedHost = normalizeComputerHost(computerHost);
113
+ if (!normalizedHost) {
114
+ setMessage('Enter your computer IP first.');
115
+ return false;
116
+ }
117
+ patch.computerHost = normalizedHost;
118
+ writes.push(saveComputerHost(normalizedHost));
119
+ setComputerHost(normalizedHost);
120
+ }
121
+ const normalizedMetroPort = normalizePort(metroPort);
122
+ if (normalizedMetroPort) {
123
+ patch.metroPort = normalizedMetroPort;
124
+ writes.push(saveMetroPort(normalizedMetroPort));
125
+ setMetroPort(normalizedMetroPort);
126
+ }
127
+ await Promise.all(writes);
128
+ updateFeatureSettings(patch);
129
+ return true;
130
+ }, [computerHost, daemonPort, isSim, metroPort, updateFeatureSettings]);
131
+ const persistMetroSettings = useCallback(async () => {
132
+ if (!metroTarget) {
133
+ setMessage('Enter a valid computer IP and Metro port.');
134
+ return false;
135
+ }
136
+ const patch = {
137
+ metroPort: metroTarget.port
138
+ };
139
+ const writes = [saveMetroPort(metroTarget.port)];
140
+ setMetroPort(metroTarget.port);
141
+ if (!isSim) {
142
+ patch.computerHost = metroTarget.host;
143
+ writes.push(saveComputerTarget(metroTarget.hostPort));
144
+ setComputerHost(metroTarget.host);
145
+ }
146
+ await Promise.all(writes);
147
+ updateFeatureSettings(patch);
148
+ return true;
149
+ }, [isSim, metroTarget, updateFeatureSettings]);
79
150
  const validateSettings = useCallback(() => {
80
151
  if (!isSim && !normalizeComputerHost(computerHost)) {
81
152
  setMessage('Enter your computer IP first.');
@@ -117,6 +188,9 @@ export function DevConnectTab({
117
188
  if (!validateSettings()) {
118
189
  return;
119
190
  }
191
+ if (!(await persistConnectionSettings())) {
192
+ return;
193
+ }
120
194
  const daemonOptions = configureDaemon();
121
195
  setMessage('Checking desktop connection...');
122
196
  setSyncState('checking');
@@ -152,11 +226,14 @@ export function DevConnectTab({
152
226
  }
153
227
  });
154
228
  setStreaming(true);
155
- }, [configureDaemon, streaming, validateSettings]);
229
+ }, [configureDaemon, persistConnectionSettings, streaming, validateSettings]);
156
230
  const sendOnce = useCallback(async () => {
157
231
  if (!validateSettings()) {
158
232
  return;
159
233
  }
234
+ if (!(await persistConnectionSettings())) {
235
+ return;
236
+ }
160
237
  const daemonOptions = configureDaemon();
161
238
  setSending(true);
162
239
  setMessage('Checking desktop connection...');
@@ -183,7 +260,7 @@ export function DevConnectTab({
183
260
  } finally {
184
261
  setSending(false);
185
262
  }
186
- }, [configureDaemon, validateSettings]);
263
+ }, [configureDaemon, persistConnectionSettings, validateSettings]);
187
264
  const applyRemoteBundle = useCallback(async () => {
188
265
  if (!metroTarget) {
189
266
  setMessage('Enter a valid computer IP and Metro port.');
@@ -198,6 +275,9 @@ export function DevConnectTab({
198
275
  setMetroBusy(true);
199
276
  setMessage('Checking Metro...');
200
277
  try {
278
+ if (!(await persistMetroSettings())) {
279
+ return;
280
+ }
201
281
  const result = await applyMetroBundle(metroTarget.host, metroTarget.port);
202
282
  if (result.ok) {
203
283
  setMessage(`Using Metro at ${result.hostPort}. Reloading...`);
@@ -207,7 +287,7 @@ export function DevConnectTab({
207
287
  } finally {
208
288
  setMetroBusy(false);
209
289
  }
210
- }, [metroTarget, snapshot.nativeMetroAvailable]);
290
+ }, [metroTarget, persistMetroSettings, snapshot.nativeMetroAvailable]);
211
291
  const resetRemoteBundle = useCallback(async () => {
212
292
  if (!snapshot.nativeMetroAvailable) {
213
293
  setMessage(describeMetroFailure({
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","KeyboardAvoidingView","Platform","ScrollView","StyleSheet","Text","TextInput","TouchableOpacity","View","Colors","buildDeviceDaemonEndpoint","daemonClient","getDefaultDaemonEndpoint","normalizeDaemonSettings","DEFAULT_DAEMON_PORT","DEFAULT_METRO_PORT","buildDaemonDeviceHost","buildMetroTarget","buildMetroUrls","normalizeComputerHost","normalizePort","parseComputerTarget","saveComputerTarget","saveDaemonPort","saveMetroPort","applyMetroBundle","resetMetroBundle","jsxs","_jsxs","jsx","_jsx","CONNECTION_TIMEOUT_MS","getSimulatorMetroHost","OS","describeMetroFailure","result","reason","error","DevConnectTab","snapshot","inputRef","computerHost","setComputerHost","metroPort","setMetroPort","daemonPort","setDaemonPort","streaming","setStreaming","syncState","setSyncState","message","setMessage","sending","setSending","metroBusy","setMetroBusy","isSim","isSimulator","metroHost","metroTarget","metroUrls","handleHostChange","value","target","catch","prev","handleMetroPortChange","normalized","handleDaemonPortChange","validateSettings","configureDaemon","normalizedHost","normalizedDaemonPort","deviceHost","settings","mode","endpoint","token","configure","toggleLiveSync","disconnect","setStreamingEnabled","daemonOptions","connection","checkConnection","timeoutMs","ok","connect","onStatus","status","state","sendOnce","reportOnce","totalLogs","Object","values","logCount","reduce","total","count","applyRemoteBundle","nativeMetroAvailable","host","port","hostPort","resetRemoteBundle","canConnect","Boolean","canUseMetro","busy","subnetPrefix","ipPlaceholder","style","styles","container","behavior","undefined","children","keyboardShouldPersistTaps","showsVerticalScrollIndicator","contentContainerStyle","scrollContent","badge","badgeText","section","label","inputRow","ref","input","onChangeText","placeholder","placeholderTextColor","textLight","autoCapitalize","autoCorrect","keyboardType","returnKeyType","onSubmitEditing","current","blur","editable","subnetHint","onPress","focus","activeOpacity","subnetHintText","portRow","portField","portLabel","portInput","actions","primaryButton","buttonDisabled","disabled","primaryButtonText","secondaryButton","secondaryButtonText","sectionTitle","sectionDesc","stepCard","stepHint","urlRow","urlLabel","urlText","numberOfLines","httpUrl","expUrl","hint","create","flex","paddingHorizontal","paddingTop","paddingBottom","paddingVertical","borderRadius","backgroundColor","primary","borderWidth","borderColor","marginBottom","fontSize","fontWeight","color","text","textSecondary","lineHeight","flexDirection","alignItems","marginTop","surface","border","fontFamily","gap","justifyContent","opacity","padding","minWidth","marginRight","textAlign","borderBottomWidth","hairlineWidth","borderBottomColor"],"sourceRoot":"../../../../src","sources":["features/devConnect/DevConnectTab.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAChF,SACEC,oBAAoB,EACpBC,QAAQ,EACRC,UAAU,EACVC,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,gBAAgB,EAChBC,IAAI,QACC,cAAc;AAGrB,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SACEC,yBAAyB,EACzBC,YAAY,EACZC,wBAAwB,EACxBC,uBAAuB,QAElB,0BAA0B;AACjC,SACEC,mBAAmB,EACnBC,kBAAkB,EAClBC,qBAAqB,EACrBC,gBAAgB,EAChBC,cAAc,EACdC,qBAAqB,EACrBC,aAAa,EACbC,mBAAmB,QACd,mBAAmB;AAC1B,SACEC,kBAAkB,EAClBC,cAAc,EACdC,aAAa,QACR,yBAAyB;AAChC,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,oBAAoB;AAAC,SAAAC,IAAA,IAAAC,KAAA,EAAAC,GAAA,IAAAC,IAAA;AAGxE,MAAMC,qBAAqB,GAAG,IAAI;AAIlC,SAASC,qBAAqBA,CAAA,EAAW;EACvC,OAAO9B,QAAQ,CAAC+B,EAAE,KAAK,SAAS,GAAG,UAAU,GAAG,WAAW;AAC7D;AAEA,SAASC,oBAAoBA,CAACC,MAA0C,EAAU;EAChF,IAAIA,MAAM,CAACC,MAAM,KAAK,oBAAoB,EAAE;IAC1C,OAAO,8EAA8E;EACvF;EACA,IAAID,MAAM,CAACC,MAAM,KAAK,mBAAmB,EAAE;IACzC,OAAOD,MAAM,CAACE,KAAK,GAAG,wBAAwBF,MAAM,CAACE,KAAK,EAAE,GAAG,gDAAgD;EACjH;EACA,IAAIF,MAAM,CAACC,MAAM,KAAK,mBAAmB,EAAE;IACzC,OAAO,kDAAkD;EAC3D;EACA,IAAID,MAAM,CAACC,MAAM,KAAK,gBAAgB,EAAE;IACtC,OAAO,2CAA2C;EACpD;EACA,OAAOD,MAAM,CAACE,KAAK,GAAG,wBAAwBF,MAAM,CAACE,KAAK,EAAE,GAAG,sBAAsB;AACvF;AAEA,OAAO,SAASC,aAAaA,CAAC;EAAEC;AAAmD,CAAC,EAAE;EACpF,MAAMC,QAAQ,GAAGzC,MAAM,CAAY,IAAI,CAAC;EACxC,MAAM,CAAC0C,YAAY,EAAEC,eAAe,CAAC,GAAG1C,QAAQ,CAACuC,QAAQ,CAACE,YAAY,CAAC;EACvE,MAAM,CAACE,SAAS,EAAEC,YAAY,CAAC,GAAG5C,QAAQ,CAACuC,QAAQ,CAACI,SAAS,CAAC;EAC9D,MAAM,CAACE,UAAU,EAAEC,aAAa,CAAC,GAAG9C,QAAQ,CAACuC,QAAQ,CAACM,UAAU,CAAC;EACjE,MAAM,CAACE,SAAS,EAAEC,YAAY,CAAC,GAAGhD,QAAQ,CAACuC,QAAQ,CAACQ,SAAS,CAAC;EAC9D,MAAM,CAACE,SAAS,EAAEC,YAAY,CAAC,GAAGlD,QAAQ,CAAcuC,QAAQ,CAACQ,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;EAChG,MAAM,CAACI,OAAO,EAAEC,UAAU,CAAC,GAAGpD,QAAQ,CAAgB,IAAI,CAAC;EAC3D,MAAM,CAACqD,OAAO,EAAEC,UAAU,CAAC,GAAGtD,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACuD,SAAS,EAAEC,YAAY,CAAC,GAAGxD,QAAQ,CAAC,KAAK,CAAC;EAEjD,MAAMyD,KAAK,GAAGlB,QAAQ,CAACmB,WAAW;EAElC7D,SAAS,CAAC,MAAM;IACd6C,eAAe,CAACH,QAAQ,CAACE,YAAY,CAAC;IACtCG,YAAY,CAACL,QAAQ,CAACI,SAAS,CAAC;IAChCG,aAAa,CAACP,QAAQ,CAACM,UAAU,CAAC;IAClCG,YAAY,CAACT,QAAQ,CAACQ,SAAS,CAAC;IAChCG,YAAY,CAACX,QAAQ,CAACQ,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;EACvD,CAAC,EAAE,CAACR,QAAQ,CAACE,YAAY,EAAEF,QAAQ,CAACM,UAAU,EAAEN,QAAQ,CAACI,SAAS,EAAEJ,QAAQ,CAACQ,SAAS,CAAC,CAAC;EAExF,MAAMY,SAAS,GAAGF,KAAK,GAAGzB,qBAAqB,CAAC,CAAC,GAAGS,YAAY;EAChE,MAAMmB,WAAW,GAAG9D,OAAO,CACzB,MAAMmB,gBAAgB,CAAC0C,SAAS,EAAEhB,SAAS,CAAC,EAC5C,CAACgB,SAAS,EAAEhB,SAAS,CACvB,CAAC;EACD,MAAMkB,SAAS,GAAG/D,OAAO,CACvB,MAAMoB,cAAc,CAACyC,SAAS,EAAEhB,SAAS,CAAC,EAC1C,CAACgB,SAAS,EAAEhB,SAAS,CACvB,CAAC;EAED,MAAMmB,gBAAgB,GAAGlE,WAAW,CAAEmE,KAAa,IAAK;IACtDrB,eAAe,CAACqB,KAAK,CAAC;IACtB,MAAMC,MAAM,GAAG3C,mBAAmB,CAAC0C,KAAK,CAAC;IACzC,IAAIC,MAAM,EAAE;MACVpB,YAAY,CAACoB,MAAM,CAACrB,SAAS,CAAC;MAC9BrB,kBAAkB,CAACyC,KAAK,CAAC,CAACE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C;IACAf,YAAY,CAAEgB,IAAI,IAAMA,IAAI,KAAK,QAAQ,GAAG,MAAM,GAAGA,IAAK,CAAC;IAC3Dd,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMe,qBAAqB,GAAGvE,WAAW,CAAEmE,KAAa,IAAK;IAC3DnB,YAAY,CAACmB,KAAK,CAAC;IACnB,MAAMK,UAAU,GAAGhD,aAAa,CAAC2C,KAAK,CAAC;IACvC,IAAIK,UAAU,EAAE;MACd5C,aAAa,CAAC4C,UAAU,CAAC,CAACH,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C;IACAb,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMiB,sBAAsB,GAAGzE,WAAW,CAAEmE,KAAa,IAAK;IAC5DjB,aAAa,CAACiB,KAAK,CAAC;IACpB,MAAMK,UAAU,GAAGhD,aAAa,CAAC2C,KAAK,CAAC;IACvC,IAAIK,UAAU,EAAE;MACd7C,cAAc,CAAC6C,UAAU,CAAC,CAACH,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C;IACAb,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMkB,gBAAgB,GAAG1E,WAAW,CAAC,MAAe;IAClD,IAAI,CAAC6D,KAAK,IAAI,CAACtC,qBAAqB,CAACsB,YAAY,CAAC,EAAE;MAClDW,UAAU,CAAC,+BAA+B,CAAC;MAC3C,OAAO,KAAK;IACd;IACA,IAAI,CAAChC,aAAa,CAACyB,UAAU,CAAC,EAAE;MAC9BO,UAAU,CAAC,kCAAkC,CAAC;MAC9C,OAAO,KAAK;IACd;IACA,OAAO,IAAI;EACb,CAAC,EAAE,CAACX,YAAY,EAAEI,UAAU,EAAEY,KAAK,CAAC,CAAC;EAErC,MAAMc,eAAe,GAAG3E,WAAW,CAAC,MAAM;IACxC,MAAM4E,cAAc,GAAGf,KAAK,GAAG,EAAE,GAAItC,qBAAqB,CAACsB,YAAY,CAAC,IAAI,EAAG;IAC/E,MAAMgC,oBAAoB,GAAGrD,aAAa,CAACyB,UAAU,CAAC,IAAI/B,mBAAmB;IAC7E,MAAM4D,UAAU,GAAGjB,KAAK,GAAG,EAAE,GAAGzC,qBAAqB,CAACwD,cAAc,EAAEC,oBAAoB,CAAC;IAC3F,MAAME,QAAwB,GAAG;MAC/BC,IAAI,EAAEnB,KAAK,GAAG,WAAW,GAAG,QAAQ;MACpCoB,QAAQ,EAAE,EAAE;MACZH,UAAU;MACVI,KAAK,EAAE;IACT,CAAC;IACDnE,YAAY,CAACoE,SAAS,CAACJ,QAAQ,CAAC;IAChC,MAAMP,UAAU,GAAGvD,uBAAuB,CAAC8D,QAAQ,CAAC;IACpD,MAAME,QAAQ,GAAGT,UAAU,CAACS,QAAQ,KAAKpB,KAAK,GAAG7C,wBAAwB,CAAC,CAAC,GAAGF,yBAAyB,CAACgE,UAAU,CAAC,CAAC;IACpH,OAAO;MAAE,GAAGN,UAAU;MAAES;IAAS,CAAC;EACpC,CAAC,EAAE,CAACpC,YAAY,EAAEI,UAAU,EAAEY,KAAK,CAAC,CAAC;EAErC,MAAMuB,cAAc,GAAGpF,WAAW,CAAC,YAAY;IAC7C,IAAImD,SAAS,EAAE;MACbpC,YAAY,CAACsE,UAAU,CAAC,CAAC;MACzBtE,YAAY,CAACuE,mBAAmB,CAAC,KAAK,CAAC;MACvClC,YAAY,CAAC,KAAK,CAAC;MACnBE,YAAY,CAAC,MAAM,CAAC;MACpBE,UAAU,CAAC,IAAI,CAAC;MAChB;IACF;IAEA,IAAI,CAACkB,gBAAgB,CAAC,CAAC,EAAE;MACvB;IACF;IAEA,MAAMa,aAAa,GAAGZ,eAAe,CAAC,CAAC;IACvCnB,UAAU,CAAC,gCAAgC,CAAC;IAC5CF,YAAY,CAAC,UAAU,CAAC;IAExB,MAAMkC,UAAU,GAAG,MAAMzE,YAAY,CAAC0E,eAAe,CAAC;MACpD,GAAGF,aAAa;MAChBG,SAAS,EAAEvD;IACb,CAAC,CAAC;IACF,IAAI,CAACqD,UAAU,CAACG,EAAE,EAAE;MAClBvC,YAAY,CAAC,KAAK,CAAC;MACnBE,YAAY,CAAC,QAAQ,CAAC;MACtBE,UAAU,CAAC,qDAAqD,CAAC;MACjE;IACF;IAEAzC,YAAY,CAACuE,mBAAmB,CAAC,IAAI,CAAC;IACtCvE,YAAY,CAAC6E,OAAO,CAAC;MACnB,GAAGL,aAAa;MAChBG,SAAS,EAAE,IAAI;MACfG,QAAQ,EAAGC,MAAM,IAAK;QACpB,IAAIA,MAAM,CAACC,KAAK,KAAK,WAAW,EAAE;UAChC3C,YAAY,CAAC,IAAI,CAAC;UAClBE,YAAY,CAAC,WAAW,CAAC;UACzBE,UAAU,CAAC,IAAI,CAAC;QAClB,CAAC,MAAM,IAAIsC,MAAM,CAACC,KAAK,KAAK,UAAU,EAAE;UACtCzC,YAAY,CAAC,UAAU,CAAC;UACxBE,UAAU,CAAC,oCAAoC,CAAC;QAClD,CAAC,MAAM,IAAIsC,MAAM,CAACC,KAAK,KAAK,QAAQ,EAAE;UACpC3C,YAAY,CAAC,KAAK,CAAC;UACnBE,YAAY,CAAC,QAAQ,CAAC;UACtBE,UAAU,CAACsC,MAAM,CAACtD,MAAM,KAAK,MAAM,GAAG,yBAAyB,GAAG,+CAA+C,CAAC;QACpH,CAAC,MAAM;UACLc,YAAY,CAAC,UAAU,CAAC;QAC1B;MACF;IACF,CAAC,CAAC;IACFF,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC,EAAE,CAACuB,eAAe,EAAExB,SAAS,EAAEuB,gBAAgB,CAAC,CAAC;EAElD,MAAMsB,QAAQ,GAAGhG,WAAW,CAAC,YAAY;IACvC,IAAI,CAAC0E,gBAAgB,CAAC,CAAC,EAAE;MACvB;IACF;IAEA,MAAMa,aAAa,GAAGZ,eAAe,CAAC,CAAC;IACvCjB,UAAU,CAAC,IAAI,CAAC;IAChBF,UAAU,CAAC,gCAAgC,CAAC;IAE5C,IAAI;MACF,MAAMgC,UAAU,GAAG,MAAMzE,YAAY,CAAC0E,eAAe,CAAC;QACpD,GAAGF,aAAa;QAChBG,SAAS,EAAEvD;MACb,CAAC,CAAC;MACF,IAAI,CAACqD,UAAU,CAACG,EAAE,EAAE;QAClBnC,UAAU,CAAC,qDAAqD,CAAC;QACjE;MACF;MAEAA,UAAU,CAAC,iBAAiB,CAAC;MAC7B,MAAMjB,MAAM,GAAG,MAAMxB,YAAY,CAACkF,UAAU,CAAC;QAC3C,GAAGV,aAAa;QAChBG,SAAS,EAAE;MACb,CAAC,CAAC;MAEF,IAAInD,MAAM,CAACoD,EAAE,EAAE;QACb,MAAMO,SAAS,GAAGC,MAAM,CAACC,MAAM,CAAC7D,MAAM,CAAC8D,QAAQ,IAAI,CAAC,CAAC,CAAC,CAACC,MAAM,CAAC,CAACC,KAAK,EAAEC,KAAK,KAAKD,KAAK,GAAGC,KAAK,EAAE,CAAC,CAAC;QACjGhD,UAAU,CAAC,QAAQ0C,SAAS,QAAQ,CAAC;MACvC,CAAC,MAAM;QACL1C,UAAU,CAACjB,MAAM,CAACE,KAAK,GAAG,gBAAgBF,MAAM,CAACE,KAAK,EAAE,GAAG,cAAc,CAAC;MAC5E;IACF,CAAC,SAAS;MACRiB,UAAU,CAAC,KAAK,CAAC;IACnB;EACF,CAAC,EAAE,CAACiB,eAAe,EAAED,gBAAgB,CAAC,CAAC;EAEvC,MAAM+B,iBAAiB,GAAGzG,WAAW,CAAC,YAAY;IAChD,IAAI,CAACgE,WAAW,EAAE;MAChBR,UAAU,CAAC,2CAA2C,CAAC;MACvD;IACF;IACA,IAAI,CAACb,QAAQ,CAAC+D,oBAAoB,EAAE;MAClClD,UAAU,CAAClB,oBAAoB,CAAC;QAAEE,MAAM,EAAE;MAAqB,CAAC,CAAC,CAAC;MAClE;IACF;IAEAoB,YAAY,CAAC,IAAI,CAAC;IAClBJ,UAAU,CAAC,mBAAmB,CAAC;IAC/B,IAAI;MACF,MAAMjB,MAAM,GAAG,MAAMV,gBAAgB,CAACmC,WAAW,CAAC2C,IAAI,EAAE3C,WAAW,CAAC4C,IAAI,CAAC;MACzE,IAAIrE,MAAM,CAACoD,EAAE,EAAE;QACbnC,UAAU,CAAC,kBAAkBjB,MAAM,CAACsE,QAAQ,gBAAgB,CAAC;MAC/D,CAAC,MAAM;QACLrD,UAAU,CAAClB,oBAAoB,CAACC,MAAM,CAAC,CAAC;MAC1C;IACF,CAAC,SAAS;MACRqB,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC,EAAE,CAACI,WAAW,EAAErB,QAAQ,CAAC+D,oBAAoB,CAAC,CAAC;EAEhD,MAAMI,iBAAiB,GAAG9G,WAAW,CAAC,YAAY;IAChD,IAAI,CAAC2C,QAAQ,CAAC+D,oBAAoB,EAAE;MAClClD,UAAU,CAAClB,oBAAoB,CAAC;QAAEE,MAAM,EAAE;MAAqB,CAAC,CAAC,CAAC;MAClE;IACF;IAEAoB,YAAY,CAAC,IAAI,CAAC;IAClB,IAAI;MACF,MAAMrB,MAAM,GAAG,MAAMT,gBAAgB,CAAC,CAAC;MACvC,IAAIS,MAAM,CAACoD,EAAE,EAAE;QACbnC,UAAU,CAAC,gCAAgC,CAAC;MAC9C,CAAC,MAAM;QACLA,UAAU,CAAClB,oBAAoB,CAACC,MAAM,CAAC,CAAC;MAC1C;IACF,CAAC,SAAS;MACRqB,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC,EAAE,CAACjB,QAAQ,CAAC+D,oBAAoB,CAAC,CAAC;EAEnC,MAAMK,UAAU,GAAGlD,KAAK,IAAKmD,OAAO,CAACzF,qBAAqB,CAACsB,YAAY,CAAC,CAAC,IAAImE,OAAO,CAACxF,aAAa,CAACyB,UAAU,CAAC,CAAE;EAChH,MAAMgE,WAAW,GAAGD,OAAO,CAAChD,WAAW,CAAC,IAAIrB,QAAQ,CAAC+D,oBAAoB,IAAI,CAAC/C,SAAS;EACvF,MAAMuD,IAAI,GAAGzD,OAAO,IAAIJ,SAAS,KAAK,UAAU;EAChD,MAAM8D,YAAY,GAAGxE,QAAQ,CAACwE,YAAY;EAC1C,MAAMC,aAAa,GAAGD,YAAY,GAAG,GAAGA,YAAY,KAAK,GAAG,cAAc;EAE1E,oBACEjF,IAAA,CAAC7B,oBAAoB;IAACgH,KAAK,EAAEC,MAAM,CAACC,SAAU;IAACC,QAAQ,EAAElH,QAAQ,CAAC+B,EAAE,KAAK,KAAK,GAAG,SAAS,GAAGoF,SAAU;IAAAC,QAAA,eACrG1F,KAAA,CAACzB,UAAU;MAACoH,yBAAyB,EAAC,SAAS;MAACC,4BAA4B,EAAE,KAAM;MAACC,qBAAqB,EAAEP,MAAM,CAACQ,aAAc;MAAAJ,QAAA,GAE9H7D,KAAK,gBACJ3B,IAAA,CAACtB,IAAI;QAACyG,KAAK,EAAEC,MAAM,CAACS,KAAM;QAAAL,QAAA,eACxB1F,KAAA,CAACvB,IAAI;UAAC4G,KAAK,EAAEC,MAAM,CAACU,SAAU;UAAAN,QAAA,GAAC,6BAA2B,EAACtF,qBAAqB,CAAC,CAAC;QAAA,CAAO;MAAC,CACtF,CAAC,gBAEPJ,KAAA,CAACpB,IAAI;QAACyG,KAAK,EAAEC,MAAM,CAACW,OAAQ;QAAAP,QAAA,gBAC1BxF,IAAA,CAACzB,IAAI;UAAC4G,KAAK,EAAEC,MAAM,CAACY,KAAM;UAAAR,QAAA,EAAC;QAAW,CAAM,CAAC,eAC7CxF,IAAA,CAACtB,IAAI;UAACyG,KAAK,EAAEC,MAAM,CAACa,QAAS;UAAAT,QAAA,eAC3BxF,IAAA,CAACxB,SAAS;YACR0H,GAAG,EAAExF,QAAS;YACdyE,KAAK,EAAEC,MAAM,CAACe,KAAM;YACpBlE,KAAK,EAAEtB,YAAa;YACpByF,YAAY,EAAEpE,gBAAiB;YAC/BqE,WAAW,EAAEnB,aAAc;YAC3BoB,oBAAoB,EAAE3H,MAAM,CAAC4H,SAAU;YACvCC,cAAc,EAAC,MAAM;YACrBC,WAAW,EAAE,KAAM;YACnBC,YAAY,EAAC,yBAAyB;YACtCC,aAAa,EAAC,MAAM;YACpBC,eAAe,EAAEA,CAAA,KAAMlG,QAAQ,CAACmG,OAAO,EAAEC,IAAI,CAAC,CAAE;YAChDC,QAAQ,EAAE,CAAC9F;UAAU,CACtB;QAAC,CACE,CAAC,EACNgE,YAAY,IAAI,CAACtE,YAAY,gBAC5BX,IAAA,CAACvB,gBAAgB;UACf0G,KAAK,EAAEC,MAAM,CAAC4B,UAAW;UACzBC,OAAO,EAAEA,CAAA,KAAM;YACbrG,eAAe,CAACqE,YAAY,CAAC;YAC7BvE,QAAQ,CAACmG,OAAO,EAAEK,KAAK,CAAC,CAAC;UAC3B,CAAE;UACFC,aAAa,EAAE,GAAI;UAAA3B,QAAA,eAEnB1F,KAAA,CAACvB,IAAI;YAAC4G,KAAK,EAAEC,MAAM,CAACgC,cAAe;YAAA5B,QAAA,GAAC,eAAa,EAACP,YAAY;UAAA,CAAO;QAAC,CACtD,CAAC,GACjB,IAAI;MAAA,CACJ,CACP,eAEDnF,KAAA,CAACpB,IAAI;QAACyG,KAAK,EAAEC,MAAM,CAACW,OAAQ;QAAAP,QAAA,gBAC1BxF,IAAA,CAACzB,IAAI;UAAC4G,KAAK,EAAEC,MAAM,CAACY,KAAM;UAAAR,QAAA,EAAC;QAAK,CAAM,CAAC,eACvC1F,KAAA,CAACpB,IAAI;UAACyG,KAAK,EAAEC,MAAM,CAACiC,OAAQ;UAAA7B,QAAA,gBAC1B1F,KAAA,CAACpB,IAAI;YAACyG,KAAK,EAAEC,MAAM,CAACkC,SAAU;YAAA9B,QAAA,gBAC5BxF,IAAA,CAACzB,IAAI;cAAC4G,KAAK,EAAEC,MAAM,CAACmC,SAAU;cAAA/B,QAAA,EAAC;YAAK,CAAM,CAAC,eAC3CxF,IAAA,CAACxB,SAAS;cACR2G,KAAK,EAAEC,MAAM,CAACoC,SAAU;cACxBvF,KAAK,EAAEpB,SAAU;cACjBuF,YAAY,EAAE/D,qBAAsB;cACpCgE,WAAW,EAAEpH,kBAAmB;cAChCqH,oBAAoB,EAAE3H,MAAM,CAAC4H,SAAU;cACvCC,cAAc,EAAC,MAAM;cACrBC,WAAW,EAAE,KAAM;cACnBC,YAAY,EAAC,YAAY;cACzBC,aAAa,EAAC;YAAM,CACrB,CAAC;UAAA,CACE,CAAC,eACP7G,KAAA,CAACpB,IAAI;YAACyG,KAAK,EAAEC,MAAM,CAACkC,SAAU;YAAA9B,QAAA,gBAC5BxF,IAAA,CAACzB,IAAI;cAAC4G,KAAK,EAAEC,MAAM,CAACmC,SAAU;cAAA/B,QAAA,EAAC;YAAI,CAAM,CAAC,eAC1CxF,IAAA,CAACxB,SAAS;cACR2G,KAAK,EAAEC,MAAM,CAACoC,SAAU;cACxBvF,KAAK,EAAElB,UAAW;cAClBqF,YAAY,EAAE7D,sBAAuB;cACrC8D,WAAW,EAAErH,mBAAoB;cACjCsH,oBAAoB,EAAE3H,MAAM,CAAC4H,SAAU;cACvCC,cAAc,EAAC,MAAM;cACrBC,WAAW,EAAE,KAAM;cACnBC,YAAY,EAAC,YAAY;cACzBC,aAAa,EAAC;YAAM,CACrB,CAAC;UAAA,CACE,CAAC;QAAA,CACH,CAAC;MAAA,CACH,CAAC,eAEP7G,KAAA,CAACpB,IAAI;QAACyG,KAAK,EAAEC,MAAM,CAACqC,OAAQ;QAAAjC,QAAA,gBAC1BxF,IAAA,CAACvB,gBAAgB;UACf0G,KAAK,EAAE,CAACC,MAAM,CAACsC,aAAa,EAAE,CAAC,CAAC7C,UAAU,IAAIG,IAAI,KAAKI,MAAM,CAACuC,cAAc,CAAE;UAC9EV,OAAO,EAAE/D,cAAe;UACxB0E,QAAQ,EAAE,CAAC/C,UAAU,IAAIG,IAAK;UAC9BmC,aAAa,EAAE,IAAK;UAAA3B,QAAA,eAEpBxF,IAAA,CAACzB,IAAI;YAAC4G,KAAK,EAAEC,MAAM,CAACyC,iBAAkB;YAAArC,QAAA,EACnCvE,SAAS,GAAG,MAAM,GAAG+D,IAAI,GAAG,aAAa,GAAG;UAAW,CACpD;QAAC,CACS,CAAC,eACnBhF,IAAA,CAACvB,gBAAgB;UACf0G,KAAK,EAAE,CAACC,MAAM,CAAC0C,eAAe,EAAE,CAAC,CAACjD,UAAU,IAAIG,IAAI,KAAKI,MAAM,CAACuC,cAAc,CAAE;UAChFV,OAAO,EAAEnD,QAAS;UAClB8D,QAAQ,EAAE,CAAC/C,UAAU,IAAIG,IAAK;UAC9BmC,aAAa,EAAE,IAAK;UAAA3B,QAAA,eAEpBxF,IAAA,CAACzB,IAAI;YAAC4G,KAAK,EAAEC,MAAM,CAAC2C,mBAAoB;YAAAvC,QAAA,EACrCjE,OAAO,GAAG,YAAY,GAAG;UAAW,CACjC;QAAC,CACS,CAAC;MAAA,CACf,CAAC,EAENF,OAAO,gBAAGrB,IAAA,CAACzB,IAAI;QAAC4G,KAAK,EAAEC,MAAM,CAAC/D,OAAQ;QAAAmE,QAAA,EAAEnE;MAAO,CAAO,CAAC,GAAG,IAAI,eAE/DvB,KAAA,CAACpB,IAAI;QAACyG,KAAK,EAAEC,MAAM,CAACW,OAAQ;QAAAP,QAAA,gBAC1BxF,IAAA,CAACzB,IAAI;UAAC4G,KAAK,EAAEC,MAAM,CAAC4C,YAAa;UAAAxC,QAAA,EAAC;QAAgB,CAAM,CAAC,eACzDxF,IAAA,CAACzB,IAAI;UAAC4G,KAAK,EAAEC,MAAM,CAAC6C,WAAY;UAAAzC,QAAA,EAAC;QAEjC,CAAM,CAAC,EAEN,CAACzD,SAAS,gBACT/B,IAAA,CAACtB,IAAI;UAACyG,KAAK,EAAEC,MAAM,CAAC8C,QAAS;UAAA1C,QAAA,eAC3BxF,IAAA,CAACzB,IAAI;YAAC4G,KAAK,EAAEC,MAAM,CAAC+C,QAAS;YAAA3C,QAAA,EAAC;UAAqD,CAAM;QAAC,CACtF,CAAC,gBAEP1F,KAAA,CAACpB,IAAI;UAACyG,KAAK,EAAEC,MAAM,CAAC8C,QAAS;UAAA1C,QAAA,gBAC3B1F,KAAA,CAACpB,IAAI;YAACyG,KAAK,EAAEC,MAAM,CAACgD,MAAO;YAAA5C,QAAA,gBACzBxF,IAAA,CAACzB,IAAI;cAAC4G,KAAK,EAAEC,MAAM,CAACiD,QAAS;cAAA7C,QAAA,EAAC;YAAI,CAAM,CAAC,eACzCxF,IAAA,CAACzB,IAAI;cAAC4G,KAAK,EAAEC,MAAM,CAACkD,OAAQ;cAACC,aAAa,EAAE,CAAE;cAAA/C,QAAA,EAAEzD,SAAS,CAACyG;YAAO,CAAO,CAAC;UAAA,CACrE,CAAC,eACP1I,KAAA,CAACpB,IAAI;YAACyG,KAAK,EAAEC,MAAM,CAACgD,MAAO;YAAA5C,QAAA,gBACzBxF,IAAA,CAACzB,IAAI;cAAC4G,KAAK,EAAEC,MAAM,CAACiD,QAAS;cAAA7C,QAAA,EAAC;YAAI,CAAM,CAAC,eACzCxF,IAAA,CAACzB,IAAI;cAAC4G,KAAK,EAAEC,MAAM,CAACkD,OAAQ;cAACC,aAAa,EAAE,CAAE;cAAA/C,QAAA,EAAEzD,SAAS,CAAC0G;YAAM,CAAO,CAAC;UAAA,CACpE,CAAC;QAAA,CACH,CACP,eAED3I,KAAA,CAACpB,IAAI;UAACyG,KAAK,EAAEC,MAAM,CAACqC,OAAQ;UAAAjC,QAAA,gBAC1BxF,IAAA,CAACvB,gBAAgB;YACf0G,KAAK,EAAE,CAACC,MAAM,CAACsC,aAAa,EAAE,CAAC3C,WAAW,IAAIK,MAAM,CAACuC,cAAc,CAAE;YACrEV,OAAO,EAAE1C,iBAAkB;YAC3BqD,QAAQ,EAAE,CAAC7C,WAAY;YACvBoC,aAAa,EAAE,IAAK;YAAA3B,QAAA,eAEpBxF,IAAA,CAACzB,IAAI;cAAC4G,KAAK,EAAEC,MAAM,CAACyC,iBAAkB;cAAArC,QAAA,EACnC/D,SAAS,GAAG,aAAa,GAAG;YAAkB,CAC3C;UAAC,CACS,CAAC,eACnBzB,IAAA,CAACvB,gBAAgB;YACf0G,KAAK,EAAE,CAACC,MAAM,CAAC0C,eAAe,EAAE,CAAC,CAACrH,QAAQ,CAAC+D,oBAAoB,IAAI/C,SAAS,KAAK2D,MAAM,CAACuC,cAAc,CAAE;YACxGV,OAAO,EAAErC,iBAAkB;YAC3BgD,QAAQ,EAAE,CAACnH,QAAQ,CAAC+D,oBAAoB,IAAI/C,SAAU;YACtD0F,aAAa,EAAE,IAAK;YAAA3B,QAAA,eAEpBxF,IAAA,CAACzB,IAAI;cAAC4G,KAAK,EAAEC,MAAM,CAAC2C,mBAAoB;cAAAvC,QAAA,EAAC;YAAK,CAAM;UAAC,CACrC,CAAC;QAAA,CACf,CAAC,EAEN,CAAC/E,QAAQ,CAAC+D,oBAAoB,gBAC7BxE,IAAA,CAACzB,IAAI;UAAC4G,KAAK,EAAEC,MAAM,CAACsD,IAAK;UAAAlD,QAAA,EAAC;QAAqE,CAAM,CAAC,GACpG,IAAI;MAAA,CACJ,CAAC;IAAA,CACG;EAAC,CACO,CAAC;AAE3B;AAEA,MAAMJ,MAAM,GAAG9G,UAAU,CAACqK,MAAM,CAAC;EAC/BtD,SAAS,EAAE;IAAEuD,IAAI,EAAE;EAAE,CAAC;EACtBhD,aAAa,EAAE;IAAEiD,iBAAiB,EAAE,EAAE;IAAEC,UAAU,EAAE,EAAE;IAAEC,aAAa,EAAE;EAAG,CAAC;EAC3ElD,KAAK,EAAE;IACLgD,iBAAiB,EAAE,EAAE;IACrBG,eAAe,EAAE,CAAC;IAClBC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE,GAAGvK,MAAM,CAACwK,OAAO,IAAI;IACtCC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,GAAG1K,MAAM,CAACwK,OAAO,IAAI;IAClCG,YAAY,EAAE;EAChB,CAAC;EACDxD,SAAS,EAAE;IAAEyD,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE,KAAK;IAAEC,KAAK,EAAE9K,MAAM,CAACwK;EAAQ,CAAC;EACrEpD,OAAO,EAAE;IAAEuD,YAAY,EAAE;EAAG,CAAC;EAC7BtB,YAAY,EAAE;IAAEuB,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE,KAAK;IAAEC,KAAK,EAAE9K,MAAM,CAAC+K,IAAI;IAAEJ,YAAY,EAAE;EAAE,CAAC;EACtFrB,WAAW,EAAE;IAAEsB,QAAQ,EAAE,EAAE;IAAEE,KAAK,EAAE9K,MAAM,CAACgL,aAAa;IAAEL,YAAY,EAAE,EAAE;IAAEM,UAAU,EAAE;EAAG,CAAC;EAC5F5D,KAAK,EAAE;IAAEuD,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE,KAAK;IAAEC,KAAK,EAAE9K,MAAM,CAACgL,aAAa;IAAEL,YAAY,EAAE;EAAE,CAAC;EACxFrD,QAAQ,EAAE;IAAE4D,aAAa,EAAE,KAAK;IAAEC,UAAU,EAAE;EAAS,CAAC;EACxD9C,UAAU,EAAE;IAAE+C,SAAS,EAAE;EAAE,CAAC;EAC5B3C,cAAc,EAAE;IAAEmC,QAAQ,EAAE,EAAE;IAAEE,KAAK,EAAE9K,MAAM,CAACwK,OAAO;IAAEK,UAAU,EAAE;EAAM,CAAC;EAC1ErD,KAAK,EAAE;IACLyC,IAAI,EAAE,CAAC;IACPM,eAAe,EAAEvK,MAAM,CAACqL,OAAO;IAC/BZ,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE1K,MAAM,CAACsL,MAAM;IAC1BhB,YAAY,EAAE,CAAC;IACfJ,iBAAiB,EAAE,EAAE;IACrBG,eAAe,EAAE,EAAE;IACnBO,QAAQ,EAAE,EAAE;IACZE,KAAK,EAAE9K,MAAM,CAAC+K,IAAI;IAClBQ,UAAU,EAAE;EACd,CAAC;EACD7C,OAAO,EAAE;IAAEwC,aAAa,EAAE,KAAK;IAAEM,GAAG,EAAE;EAAG,CAAC;EAC1C7C,SAAS,EAAE;IAAEsB,IAAI,EAAE;EAAE,CAAC;EACtBrB,SAAS,EAAE;IAAEgC,QAAQ,EAAE,EAAE;IAAEE,KAAK,EAAE9K,MAAM,CAACgL,aAAa;IAAEL,YAAY,EAAE;EAAE,CAAC;EACzE9B,SAAS,EAAE;IACT0B,eAAe,EAAEvK,MAAM,CAACqL,OAAO;IAC/BZ,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE1K,MAAM,CAACsL,MAAM;IAC1BhB,YAAY,EAAE,CAAC;IACfJ,iBAAiB,EAAE,EAAE;IACrBG,eAAe,EAAE,CAAC;IAClBO,QAAQ,EAAE,EAAE;IACZE,KAAK,EAAE9K,MAAM,CAAC+K,IAAI;IAClBQ,UAAU,EAAE;EACd,CAAC;EACDzC,OAAO,EAAE;IAAEoC,aAAa,EAAE,KAAK;IAAEM,GAAG,EAAE,EAAE;IAAEJ,SAAS,EAAE,CAAC;IAAET,YAAY,EAAE;EAAG,CAAC;EAC1E5B,aAAa,EAAE;IACbkB,IAAI,EAAE,CAAC;IACPkB,UAAU,EAAE,QAAQ;IACpBM,cAAc,EAAE,QAAQ;IACxBpB,eAAe,EAAE,EAAE;IACnBC,YAAY,EAAE,EAAE;IAChBC,eAAe,EAAEvK,MAAM,CAACwK;EAC1B,CAAC;EACDtB,iBAAiB,EAAE;IAAE4B,KAAK,EAAE,MAAM;IAAEF,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAM,CAAC;EACrE1B,eAAe,EAAE;IACfc,IAAI,EAAE,CAAC;IACPkB,UAAU,EAAE,QAAQ;IACpBM,cAAc,EAAE,QAAQ;IACxBpB,eAAe,EAAE,EAAE;IACnBC,YAAY,EAAE,EAAE;IAChBC,eAAe,EAAEvK,MAAM,CAACqL,OAAO;IAC/BZ,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE1K,MAAM,CAACsL;EACtB,CAAC;EACDlC,mBAAmB,EAAE;IAAE0B,KAAK,EAAE9K,MAAM,CAACwK,OAAO;IAAEI,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAM,CAAC;EAC/E7B,cAAc,EAAE;IAAE0C,OAAO,EAAE;EAAI,CAAC;EAChChJ,OAAO,EAAE;IAAEkI,QAAQ,EAAE,EAAE;IAAEK,UAAU,EAAE,EAAE;IAAEH,KAAK,EAAE9K,MAAM,CAACgL,aAAa;IAAEL,YAAY,EAAE;EAAG,CAAC;EACxFZ,IAAI,EAAE;IAAEa,QAAQ,EAAE,EAAE;IAAEE,KAAK,EAAE9K,MAAM,CAAC4H,SAAS;IAAEqD,UAAU,EAAE;EAAG,CAAC;EAC/D1B,QAAQ,EAAE;IACRgB,eAAe,EAAEvK,MAAM,CAACqL,OAAO;IAC/BZ,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE1K,MAAM,CAACsL,MAAM;IAC1BhB,YAAY,EAAE,EAAE;IAChBqB,OAAO,EAAE,EAAE;IACXhB,YAAY,EAAE;EAChB,CAAC;EACDnB,QAAQ,EAAE;IAAEoB,QAAQ,EAAE,EAAE;IAAEE,KAAK,EAAE9K,MAAM,CAACgL,aAAa;IAAEC,UAAU,EAAE;EAAG,CAAC;EACvEvB,QAAQ,EAAE;IACRkC,QAAQ,EAAE,EAAE;IACZhB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAE9K,MAAM,CAACwK,OAAO;IACrBD,eAAe,EAAE,GAAGvK,MAAM,CAACwK,OAAO,IAAI;IACtCN,iBAAiB,EAAE,CAAC;IACpBG,eAAe,EAAE,CAAC;IAClBC,YAAY,EAAE,CAAC;IACfuB,WAAW,EAAE,CAAC;IACdC,SAAS,EAAE;EACb,CAAC;EACDrC,MAAM,EAAE;IACNyB,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBY,iBAAiB,EAAEpM,UAAU,CAACqM,aAAa;IAC3CC,iBAAiB,EAAEjM,MAAM,CAACsL,MAAM;IAChCjB,eAAe,EAAE;EACnB,CAAC;EACDV,OAAO,EAAE;IAAEM,IAAI,EAAE,CAAC;IAAEW,QAAQ,EAAE,EAAE;IAAEW,UAAU,EAAE,SAAS;IAAET,KAAK,EAAE9K,MAAM,CAAC+K;EAAK;AAC9E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","KeyboardAvoidingView","Platform","ScrollView","StyleSheet","Text","TextInput","TouchableOpacity","View","Colors","buildDeviceDaemonEndpoint","daemonClient","getDefaultDaemonEndpoint","normalizeDaemonSettings","DEFAULT_DAEMON_PORT","DEFAULT_METRO_PORT","buildDaemonDeviceHost","buildMetroTarget","buildMetroUrls","normalizeComputerHost","normalizePort","parseComputerTarget","saveComputerHost","saveComputerTarget","saveDaemonPort","saveMetroPort","applyMetroBundle","resetMetroBundle","jsxs","_jsxs","jsx","_jsx","CONNECTION_TIMEOUT_MS","getSimulatorMetroHost","OS","describeMetroFailure","result","reason","error","DevConnectTab","snapshot","feature","inputRef","computerHost","setComputerHost","metroPort","setMetroPort","daemonPort","setDaemonPort","streaming","setStreaming","syncState","setSyncState","message","setMessage","sending","setSending","metroBusy","setMetroBusy","isSim","isSimulator","updateFeatureSettings","patch","updateSettings","metroHost","metroTarget","metroUrls","handleHostChange","value","target","then","savedTarget","catch","prev","handleMetroPortChange","normalized","handleDaemonPortChange","persistConnectionSettings","normalizedDaemonPort","writes","normalizedHost","push","normalizedMetroPort","Promise","all","persistMetroSettings","port","host","hostPort","validateSettings","configureDaemon","deviceHost","settings","mode","endpoint","token","configure","toggleLiveSync","disconnect","setStreamingEnabled","daemonOptions","connection","checkConnection","timeoutMs","ok","connect","onStatus","status","state","sendOnce","reportOnce","totalLogs","Object","values","logCount","reduce","total","count","applyRemoteBundle","nativeMetroAvailable","resetRemoteBundle","canConnect","Boolean","canUseMetro","busy","subnetPrefix","ipPlaceholder","style","styles","container","behavior","undefined","children","keyboardShouldPersistTaps","showsVerticalScrollIndicator","contentContainerStyle","scrollContent","badge","badgeText","section","label","inputRow","ref","input","onChangeText","placeholder","placeholderTextColor","textLight","autoCapitalize","autoCorrect","keyboardType","returnKeyType","onSubmitEditing","current","blur","editable","subnetHint","onPress","focus","activeOpacity","subnetHintText","portRow","portField","portLabel","portInput","actions","primaryButton","buttonDisabled","disabled","primaryButtonText","secondaryButton","secondaryButtonText","sectionTitle","sectionDesc","stepCard","stepHint","urlRow","urlLabel","urlText","numberOfLines","httpUrl","expUrl","hint","create","flex","paddingHorizontal","paddingTop","paddingBottom","paddingVertical","borderRadius","backgroundColor","primary","borderWidth","borderColor","marginBottom","fontSize","fontWeight","color","text","textSecondary","lineHeight","flexDirection","alignItems","marginTop","surface","border","fontFamily","gap","justifyContent","opacity","padding","minWidth","marginRight","textAlign","borderBottomWidth","hairlineWidth","borderBottomColor"],"sourceRoot":"../../../../src","sources":["features/devConnect/DevConnectTab.tsx"],"mappings":"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","ignoreList":[]}
@@ -24,8 +24,12 @@ export async function saveComputerTarget(value) {
24
24
  return target;
25
25
  }
26
26
  export async function saveComputerHost(value) {
27
- const target = await saveComputerTarget(value);
28
- return target?.computerHost ?? null;
27
+ const host = normalizeComputerHost(value);
28
+ if (!host) {
29
+ return null;
30
+ }
31
+ await setPreference(KEYS.computerHost, host);
32
+ return host;
29
33
  }
30
34
  export async function saveMetroPort(value) {
31
35
  const normalized = normalizePort(value);
@@ -1 +1 @@
1
- {"version":3,"names":["daemonClient","getPreference","KEYS","setPreference","DEFAULT_DAEMON_PORT","DEFAULT_METRO_PORT","buildDaemonDeviceHost","normalizeComputerHost","normalizePort","parseComputerTarget","isSimulator","loadDevConnectPreferences","storedHost","computerHost","storedMetroPort","metroPort","storedDaemonPort","daemonPort","saveComputerTarget","value","target","saveComputerHost","saveMetroPort","normalized","saveDaemonPort","restoreDevConnectSettingsToDaemon","preferences","mode","configure","endpoint","deviceHost","token"],"sourceRoot":"../../../../src","sources":["features/devConnect/devConnectPreferences.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,0BAA0B;AACvD,SAASC,aAAa,EAAEC,IAAI,EAAEC,aAAa,QAAQ,8BAA8B;AACjF,SACEC,mBAAmB,EACnBC,kBAAkB,EAClBC,qBAAqB,EACrBC,qBAAqB,EACrBC,aAAa,EACbC,mBAAmB,QAEd,mBAAmB;AAC1B,SAASC,WAAW,QAAQ,kBAAkB;AAQ9C,OAAO,eAAeC,yBAAyBA,CAAA,EAAmC;EAChF,MAAMC,UAAU,GAAG,MAAMX,aAAa,CAACC,IAAI,CAACW,YAAY,CAAC;EACzD,MAAMC,eAAe,GAAG,MAAMb,aAAa,CAACC,IAAI,CAACa,SAAS,CAAC;EAC3D,MAAMC,gBAAgB,GAAG,MAAMf,aAAa,CAACC,IAAI,CAACe,UAAU,CAAC;EAC7D,OAAO;IACLJ,YAAY,EAAED,UAAU,GAAGL,qBAAqB,CAACK,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;IACvEG,SAAS,EAAED,eAAe,GAAGN,aAAa,CAACM,eAAe,CAAC,IAAIT,kBAAkB,GAAGA,kBAAkB;IACtGY,UAAU,EAAED,gBAAgB,GAAGR,aAAa,CAACQ,gBAAgB,CAAC,IAAIZ,mBAAmB,GAAGA;EAC1F,CAAC;AACH;AAEA,OAAO,eAAec,kBAAkBA,CAACC,KAAa,EAAwC;EAC5F,MAAMC,MAAM,GAAGX,mBAAmB,CAACU,KAAK,CAAC;EACzC,IAAI,CAACC,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EAEA,MAAMjB,aAAa,CAACD,IAAI,CAACW,YAAY,EAAEO,MAAM,CAACP,YAAY,CAAC;EAC3D,MAAMV,aAAa,CAACD,IAAI,CAACa,SAAS,EAAEK,MAAM,CAACL,SAAS,CAAC;EACrD,OAAOK,MAAM;AACf;AAEA,OAAO,eAAeC,gBAAgBA,CAACF,KAAa,EAA0B;EAC5E,MAAMC,MAAM,GAAG,MAAMF,kBAAkB,CAACC,KAAK,CAAC;EAC9C,OAAOC,MAAM,EAAEP,YAAY,IAAI,IAAI;AACrC;AAEA,OAAO,eAAeS,aAAaA,CAACH,KAAa,EAA0B;EACzE,MAAMI,UAAU,GAAGf,aAAa,CAACW,KAAK,CAAC;EACvC,IAAI,CAACI,UAAU,EAAE;IACf,OAAO,IAAI;EACb;EAEA,MAAMpB,aAAa,CAACD,IAAI,CAACa,SAAS,EAAEQ,UAAU,CAAC;EAC/C,OAAOA,UAAU;AACnB;AAEA,OAAO,eAAeC,cAAcA,CAACL,KAAa,EAA0B;EAC1E,MAAMI,UAAU,GAAGf,aAAa,CAACW,KAAK,CAAC;EACvC,IAAI,CAACI,UAAU,EAAE;IACf,OAAO,IAAI;EACb;EAEA,MAAMpB,aAAa,CAACD,IAAI,CAACe,UAAU,EAAEM,UAAU,CAAC;EAChD,OAAOA,UAAU;AACnB;AAEA,OAAO,eAAeE,iCAAiCA,CAAA,EAAkB;EACvE,MAAMC,WAAW,GAAG,MAAMf,yBAAyB,CAAC,CAAC;EACrD,MAAMgB,IAAI,GAAGjB,WAAW,CAAC,CAAC,GAAG,WAAW,GAAY,QAAiB;EACrEV,YAAY,CAAC4B,SAAS,CAAC;IACrBD,IAAI;IACJE,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAEH,IAAI,KAAK,WAAW,GAC5B,EAAE,GACFrB,qBAAqB,CAACoB,WAAW,CAACb,YAAY,EAAEa,WAAW,CAACT,UAAU,CAAC;IAC3Ec,KAAK,EAAE;EACT,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["daemonClient","getPreference","KEYS","setPreference","DEFAULT_DAEMON_PORT","DEFAULT_METRO_PORT","buildDaemonDeviceHost","normalizeComputerHost","normalizePort","parseComputerTarget","isSimulator","loadDevConnectPreferences","storedHost","computerHost","storedMetroPort","metroPort","storedDaemonPort","daemonPort","saveComputerTarget","value","target","saveComputerHost","host","saveMetroPort","normalized","saveDaemonPort","restoreDevConnectSettingsToDaemon","preferences","mode","configure","endpoint","deviceHost","token"],"sourceRoot":"../../../../src","sources":["features/devConnect/devConnectPreferences.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,0BAA0B;AACvD,SAASC,aAAa,EAAEC,IAAI,EAAEC,aAAa,QAAQ,8BAA8B;AACjF,SACEC,mBAAmB,EACnBC,kBAAkB,EAClBC,qBAAqB,EACrBC,qBAAqB,EACrBC,aAAa,EACbC,mBAAmB,QAEd,mBAAmB;AAC1B,SAASC,WAAW,QAAQ,kBAAkB;AAQ9C,OAAO,eAAeC,yBAAyBA,CAAA,EAAmC;EAChF,MAAMC,UAAU,GAAG,MAAMX,aAAa,CAACC,IAAI,CAACW,YAAY,CAAC;EACzD,MAAMC,eAAe,GAAG,MAAMb,aAAa,CAACC,IAAI,CAACa,SAAS,CAAC;EAC3D,MAAMC,gBAAgB,GAAG,MAAMf,aAAa,CAACC,IAAI,CAACe,UAAU,CAAC;EAC7D,OAAO;IACLJ,YAAY,EAAED,UAAU,GAAGL,qBAAqB,CAACK,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;IACvEG,SAAS,EAAED,eAAe,GAAGN,aAAa,CAACM,eAAe,CAAC,IAAIT,kBAAkB,GAAGA,kBAAkB;IACtGY,UAAU,EAAED,gBAAgB,GAAGR,aAAa,CAACQ,gBAAgB,CAAC,IAAIZ,mBAAmB,GAAGA;EAC1F,CAAC;AACH;AAEA,OAAO,eAAec,kBAAkBA,CAACC,KAAa,EAAwC;EAC5F,MAAMC,MAAM,GAAGX,mBAAmB,CAACU,KAAK,CAAC;EACzC,IAAI,CAACC,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EAEA,MAAMjB,aAAa,CAACD,IAAI,CAACW,YAAY,EAAEO,MAAM,CAACP,YAAY,CAAC;EAC3D,MAAMV,aAAa,CAACD,IAAI,CAACa,SAAS,EAAEK,MAAM,CAACL,SAAS,CAAC;EACrD,OAAOK,MAAM;AACf;AAEA,OAAO,eAAeC,gBAAgBA,CAACF,KAAa,EAA0B;EAC5E,MAAMG,IAAI,GAAGf,qBAAqB,CAACY,KAAK,CAAC;EACzC,IAAI,CAACG,IAAI,EAAE;IACT,OAAO,IAAI;EACb;EAEA,MAAMnB,aAAa,CAACD,IAAI,CAACW,YAAY,EAAES,IAAI,CAAC;EAC5C,OAAOA,IAAI;AACb;AAEA,OAAO,eAAeC,aAAaA,CAACJ,KAAa,EAA0B;EACzE,MAAMK,UAAU,GAAGhB,aAAa,CAACW,KAAK,CAAC;EACvC,IAAI,CAACK,UAAU,EAAE;IACf,OAAO,IAAI;EACb;EAEA,MAAMrB,aAAa,CAACD,IAAI,CAACa,SAAS,EAAES,UAAU,CAAC;EAC/C,OAAOA,UAAU;AACnB;AAEA,OAAO,eAAeC,cAAcA,CAACN,KAAa,EAA0B;EAC1E,MAAMK,UAAU,GAAGhB,aAAa,CAACW,KAAK,CAAC;EACvC,IAAI,CAACK,UAAU,EAAE;IACf,OAAO,IAAI;EACb;EAEA,MAAMrB,aAAa,CAACD,IAAI,CAACe,UAAU,EAAEO,UAAU,CAAC;EAChD,OAAOA,UAAU;AACnB;AAEA,OAAO,eAAeE,iCAAiCA,CAAA,EAAkB;EACvE,MAAMC,WAAW,GAAG,MAAMhB,yBAAyB,CAAC,CAAC;EACrD,MAAMiB,IAAI,GAAGlB,WAAW,CAAC,CAAC,GAAG,WAAW,GAAY,QAAiB;EACrEV,YAAY,CAAC6B,SAAS,CAAC;IACrBD,IAAI;IACJE,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAEH,IAAI,KAAK,WAAW,GAC5B,EAAE,GACFtB,qBAAqB,CAACqB,WAAW,CAACd,YAAY,EAAEc,WAAW,CAACV,UAAU,CAAC;IAC3Ee,KAAK,EAAE;EACT,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -26,7 +26,14 @@ export const createDevConnectFeature = () => {
26
26
  };
27
27
  listeners.forEach(listener => listener());
28
28
  };
29
- return {
29
+ const updateSettings = patch => {
30
+ state = {
31
+ ...state,
32
+ ...patch
33
+ };
34
+ notify();
35
+ };
36
+ const feature = {
30
37
  name: 'devConnect',
31
38
  label: 'DevConnect',
32
39
  renderContent: DevConnectTab,
@@ -68,7 +75,9 @@ export const createDevConnectFeature = () => {
68
75
  return () => {
69
76
  listeners.delete(listener);
70
77
  };
71
- }
78
+ },
79
+ updateSettings
72
80
  };
81
+ return feature;
73
82
  };
74
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DevConnectTab","loadDevConnectPreferences","DEFAULT_DAEMON_PORT","DEFAULT_METRO_PORT","extractSubnetPrefix","getDeviceLocalIp","isNativeDevConnectAvailable","isSimulator","daemonClient","buildMetroUrls","normalizeComputerHost","normalizePort","parseComputerTarget","parseMetroQrPayload","restoreDevConnectSettingsToDaemon","saveComputerHost","saveComputerTarget","saveDaemonPort","saveMetroPort","nativeIsDebugBuild","createDevConnectFeature","listeners","Set","state","computerHost","metroPort","daemonPort","nativeMetroAvailable","streaming","isConnected","notify","forEach","listener","name","label","renderContent","setup","setOnConnectionChange","then","preferences","localIp","prefix","subnetPrefix","catch","getSnapshot","cleanup","clear","subscribe","add","delete"],"sourceRoot":"../../../../src","sources":["features/devConnect/index.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,yBAAyB,QAAQ,yBAAyB;AACnE,SAASC,mBAAmB,EAAEC,kBAAkB,EAAEC,mBAAmB,QAAQ,mBAAmB;AAChG,SAASC,gBAAgB,EAAEC,2BAA2B,QAAQ,oBAAoB;AAClF,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,SAASC,YAAY,QAAQ,0BAA0B;AAKvD,SACEC,cAAc,EACdC,qBAAqB,EACrBC,aAAa,EACbC,mBAAmB,EACnBC,mBAAmB,QACd,mBAAmB;AAC1B,SACEZ,yBAAyB,EACzBa,iCAAiC,EACjCC,gBAAgB,EAChBC,kBAAkB,EAClBC,cAAc,EACdC,aAAa,QACR,yBAAyB;AAChC,SAASC,kBAAkB,QAAQ,oBAAoB;AAEvD,OAAO,MAAMC,uBAAuB,GAAGA,CAAA,KAAqC;EAC1E,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAuB,CAAC;EACjD,IAAIC,KAAsB,GAAG;IAC3BhB,WAAW,EAAEA,WAAW,CAAC,CAAC;IAC1BiB,YAAY,EAAE,EAAE;IAChBC,SAAS,EAAEtB,kBAAkB;IAC7BuB,UAAU,EAAExB,mBAAmB;IAC/ByB,oBAAoB,EAAErB,2BAA2B,CAAC,CAAC;IACnDsB,SAAS,EAAEpB,YAAY,CAACqB,WAAW,CAAC;EACtC,CAAC;EAED,MAAMC,MAAM,GAAGA,CAAA,KAAM;IACnBP,KAAK,GAAG;MACN,GAAGA,KAAK;MACRK,SAAS,EAAEpB,YAAY,CAACqB,WAAW,CAAC;IACtC,CAAC;IACDR,SAAS,CAACU,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EAC7C,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,YAAY;IAClBC,KAAK,EAAE,YAAY;IACnBC,aAAa,EAAEnC,aAAa;IAC5BoC,KAAKA,CAAA,EAAG;MACN5B,YAAY,CAAC6B,qBAAqB,CAAC,MAAMP,MAAM,CAAC,CAAC,CAAC;MAClD7B,yBAAyB,CAAC,CAAC,CAACqC,IAAI,CAAC,MAAOC,WAAW,IAAK;QACtDhB,KAAK,GAAG;UACN,GAAGA,KAAK;UACRC,YAAY,EAAEe,WAAW,CAACf,YAAY;UACtCC,SAAS,EAAEc,WAAW,CAACd,SAAS;UAChCC,UAAU,EAAEa,WAAW,CAACb,UAAU;UAClCC,oBAAoB,EAAErB,2BAA2B,CAAC;QACpD,CAAC;QAED,IAAI,CAACiB,KAAK,CAAChB,WAAW,EAAE;UACtB,IAAI;YACF,MAAMiC,OAAO,GAAG,MAAMnC,gBAAgB,CAAC,CAAC;YACxC,IAAImC,OAAO,EAAE;cACX,MAAMC,MAAM,GAAGrC,mBAAmB,CAACoC,OAAO,CAAC;cAC3C,IAAIC,MAAM,EAAE;gBACVlB,KAAK,GAAG;kBAAE,GAAGA,KAAK;kBAAEmB,YAAY,EAAED;gBAAO,CAAC;cAC5C;YACF;UACF,CAAC,CAAC,MAAM,CAAE;QACZ;QAEAX,MAAM,CAAC,CAAC;MACV,CAAC,CAAC,CAACa,KAAK,CAAC,MAAM;QACbb,MAAM,CAAC,CAAC;MACV,CAAC,CAAC;IACJ,CAAC;IACDc,WAAW,EAAEA,CAAA,KAAMrB,KAAK;IACxBsB,OAAOA,CAAA,EAAG;MACRxB,SAAS,CAACyB,KAAK,CAAC,CAAC;IACnB,CAAC;IACDC,SAASA,CAACf,QAAQ,EAAE;MAClBX,SAAS,CAAC2B,GAAG,CAAChB,QAAQ,CAAC;MACvB,OAAO,MAAM;QACXX,SAAS,CAAC4B,MAAM,CAACjB,QAAQ,CAAC;MAC5B,CAAC;IACH;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["DevConnectTab","loadDevConnectPreferences","DEFAULT_DAEMON_PORT","DEFAULT_METRO_PORT","extractSubnetPrefix","getDeviceLocalIp","isNativeDevConnectAvailable","isSimulator","daemonClient","buildMetroUrls","normalizeComputerHost","normalizePort","parseComputerTarget","parseMetroQrPayload","restoreDevConnectSettingsToDaemon","saveComputerHost","saveComputerTarget","saveDaemonPort","saveMetroPort","nativeIsDebugBuild","createDevConnectFeature","listeners","Set","state","computerHost","metroPort","daemonPort","nativeMetroAvailable","streaming","isConnected","notify","forEach","listener","updateSettings","patch","feature","name","label","renderContent","setup","setOnConnectionChange","then","preferences","localIp","prefix","subnetPrefix","catch","getSnapshot","cleanup","clear","subscribe","add","delete"],"sourceRoot":"../../../../src","sources":["features/devConnect/index.ts"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import type { DebugFeatureRenderProps } from '../../types';
3
3
  import type { DevConnectState } from './types';
4
- export declare function DevConnectTab({ snapshot }: DebugFeatureRenderProps<DevConnectState>): React.JSX.Element;
4
+ export declare function DevConnectTab({ snapshot, feature }: DebugFeatureRenderProps<DevConnectState>): React.JSX.Element;
5
5
  //# sourceMappingURL=DevConnectTab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DevConnectTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/DevConnectTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAYjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAyB3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA0B/C,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,eAAe,CAAC,qBA0XnF"}
1
+ {"version":3,"file":"DevConnectTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/DevConnectTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAYjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AA0B3D,OAAO,KAAK,EAAsD,eAAe,EAAE,MAAM,SAAS,CAAC;AA0BnG,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,uBAAuB,CAAC,eAAe,CAAC,qBAod5F"}
@@ -1 +1 @@
1
- {"version":3,"file":"devConnectPreferences.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/devConnectPreferences.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAShF;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAS5F;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG5E;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQzE;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQ1E;AAED,wBAAsB,iCAAiC,IAAI,OAAO,CAAC,IAAI,CAAC,CAWvE"}
1
+ {"version":3,"file":"devConnectPreferences.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/devConnectPreferences.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAG3B,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAShF;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAS5F;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQ5E;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQzE;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQ1E;AAED,wBAAsB,iCAAiC,IAAI,OAAO,CAAC,IAAI,CAAC,CAWvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,eAAO,MAAM,uBAAuB,QAAO,YAAY,CAAC,eAAe,CA8DtE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAsD,eAAe,EAAE,MAAM,SAAS,CAAC;AAEnG,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,eAAO,MAAM,uBAAuB,QAAO,YAAY,CAAC,eAAe,CAyEtE,CAAC"}
@@ -7,4 +7,8 @@ export interface DevConnectState {
7
7
  nativeMetroAvailable: boolean;
8
8
  streaming: boolean;
9
9
  }
10
+ export type DevConnectSettingsPatch = Partial<Pick<DevConnectState, 'computerHost' | 'metroPort' | 'daemonPort'>>;
11
+ export interface DevConnectFeatureControls {
12
+ updateSettings?: (patch: DevConnectSettingsPatch) => void;
13
+ }
10
14
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAC3C,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,WAAW,GAAG,YAAY,CAAC,CACnE,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;CAC3D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-debug-toolkit",
3
- "version": "3.2.4",
3
+ "version": "3.2.5",
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",
@@ -30,12 +30,13 @@ import {
30
30
  parseComputerTarget,
31
31
  } from './devConnectUtils';
32
32
  import {
33
+ saveComputerHost,
33
34
  saveComputerTarget,
34
35
  saveDaemonPort,
35
36
  saveMetroPort,
36
37
  } from './devConnectPreferences';
37
38
  import { applyMetroBundle, resetMetroBundle } from './nativeDevConnect';
38
- import type { DevConnectState } from './types';
39
+ import type { DevConnectFeatureControls, DevConnectSettingsPatch, DevConnectState } from './types';
39
40
 
40
41
  const CONNECTION_TIMEOUT_MS = 2000;
41
42
 
@@ -61,7 +62,7 @@ function describeMetroFailure(result: { reason: string; error?: string }): strin
61
62
  return result.error ? `Metro switch failed: ${result.error}` : 'Metro switch failed.';
62
63
  }
63
64
 
64
- export function DevConnectTab({ snapshot }: DebugFeatureRenderProps<DevConnectState>) {
65
+ export function DevConnectTab({ snapshot, feature }: DebugFeatureRenderProps<DevConnectState>) {
65
66
  const inputRef = useRef<TextInput>(null);
66
67
  const [computerHost, setComputerHost] = useState(snapshot.computerHost);
67
68
  const [metroPort, setMetroPort] = useState(snapshot.metroPort);
@@ -74,13 +75,26 @@ export function DevConnectTab({ snapshot }: DebugFeatureRenderProps<DevConnectSt
74
75
 
75
76
  const isSim = snapshot.isSimulator;
76
77
 
78
+ const updateFeatureSettings = useCallback((patch: DevConnectSettingsPatch) => {
79
+ (feature as unknown as DevConnectFeatureControls).updateSettings?.(patch);
80
+ }, [feature]);
81
+
77
82
  useEffect(() => {
78
83
  setComputerHost(snapshot.computerHost);
84
+ }, [snapshot.computerHost]);
85
+
86
+ useEffect(() => {
79
87
  setMetroPort(snapshot.metroPort);
88
+ }, [snapshot.metroPort]);
89
+
90
+ useEffect(() => {
80
91
  setDaemonPort(snapshot.daemonPort);
92
+ }, [snapshot.daemonPort]);
93
+
94
+ useEffect(() => {
81
95
  setStreaming(snapshot.streaming);
82
96
  setSyncState(snapshot.streaming ? 'running' : 'idle');
83
- }, [snapshot.computerHost, snapshot.daemonPort, snapshot.metroPort, snapshot.streaming]);
97
+ }, [snapshot.streaming]);
84
98
 
85
99
  const metroHost = isSim ? getSimulatorMetroHost() : computerHost;
86
100
  const metroTarget = useMemo(
@@ -97,29 +111,97 @@ export function DevConnectTab({ snapshot }: DebugFeatureRenderProps<DevConnectSt
97
111
  const target = parseComputerTarget(value);
98
112
  if (target) {
99
113
  setMetroPort(target.metroPort);
100
- saveComputerTarget(value).catch(() => {});
114
+ saveComputerTarget(value)
115
+ .then((savedTarget) => {
116
+ if (savedTarget) {
117
+ updateFeatureSettings({
118
+ computerHost: savedTarget.computerHost,
119
+ metroPort: savedTarget.metroPort,
120
+ });
121
+ }
122
+ })
123
+ .catch(() => {});
101
124
  }
102
125
  setSyncState((prev) => (prev === 'failed' ? 'idle' : prev));
103
126
  setMessage(null);
104
- }, []);
127
+ }, [updateFeatureSettings]);
105
128
 
106
129
  const handleMetroPortChange = useCallback((value: string) => {
107
130
  setMetroPort(value);
108
131
  const normalized = normalizePort(value);
109
132
  if (normalized) {
110
- saveMetroPort(normalized).catch(() => {});
133
+ saveMetroPort(normalized)
134
+ .then(() => updateFeatureSettings({ metroPort: normalized }))
135
+ .catch(() => {});
111
136
  }
112
137
  setMessage(null);
113
- }, []);
138
+ }, [updateFeatureSettings]);
114
139
 
115
140
  const handleDaemonPortChange = useCallback((value: string) => {
116
141
  setDaemonPort(value);
117
142
  const normalized = normalizePort(value);
118
143
  if (normalized) {
119
- saveDaemonPort(normalized).catch(() => {});
144
+ saveDaemonPort(normalized)
145
+ .then(() => updateFeatureSettings({ daemonPort: normalized }))
146
+ .catch(() => {});
120
147
  }
121
148
  setMessage(null);
122
- }, []);
149
+ }, [updateFeatureSettings]);
150
+
151
+ const persistConnectionSettings = useCallback(async (): Promise<boolean> => {
152
+ const normalizedDaemonPort = normalizePort(daemonPort);
153
+ if (!normalizedDaemonPort) {
154
+ setMessage('Enter a valid desktop logs port.');
155
+ return false;
156
+ }
157
+
158
+ const patch: DevConnectSettingsPatch = { daemonPort: normalizedDaemonPort };
159
+ const writes: Array<Promise<unknown>> = [saveDaemonPort(normalizedDaemonPort)];
160
+ setDaemonPort(normalizedDaemonPort);
161
+
162
+ if (!isSim) {
163
+ const normalizedHost = normalizeComputerHost(computerHost);
164
+ if (!normalizedHost) {
165
+ setMessage('Enter your computer IP first.');
166
+ return false;
167
+ }
168
+ patch.computerHost = normalizedHost;
169
+ writes.push(saveComputerHost(normalizedHost));
170
+ setComputerHost(normalizedHost);
171
+ }
172
+
173
+ const normalizedMetroPort = normalizePort(metroPort);
174
+ if (normalizedMetroPort) {
175
+ patch.metroPort = normalizedMetroPort;
176
+ writes.push(saveMetroPort(normalizedMetroPort));
177
+ setMetroPort(normalizedMetroPort);
178
+ }
179
+
180
+ await Promise.all(writes);
181
+ updateFeatureSettings(patch);
182
+ return true;
183
+ }, [computerHost, daemonPort, isSim, metroPort, updateFeatureSettings]);
184
+
185
+ const persistMetroSettings = useCallback(async (): Promise<boolean> => {
186
+ if (!metroTarget) {
187
+ setMessage('Enter a valid computer IP and Metro port.');
188
+ return false;
189
+ }
190
+
191
+ const patch: DevConnectSettingsPatch = { metroPort: metroTarget.port };
192
+ const writes: Array<Promise<unknown>> = [saveMetroPort(metroTarget.port)];
193
+ setMetroPort(metroTarget.port);
194
+
195
+ if (!isSim) {
196
+ patch.computerHost = metroTarget.host;
197
+ writes.push(saveComputerTarget(metroTarget.hostPort));
198
+ setComputerHost(metroTarget.host);
199
+ }
200
+
201
+ await Promise.all(writes);
202
+ updateFeatureSettings(patch);
203
+ return true;
204
+ }, [isSim, metroTarget, updateFeatureSettings]);
123
205
 
124
206
  const validateSettings = useCallback((): boolean => {
125
207
  if (!isSim && !normalizeComputerHost(computerHost)) {
@@ -162,6 +244,9 @@ export function DevConnectTab({ snapshot }: DebugFeatureRenderProps<DevConnectSt
162
244
  if (!validateSettings()) {
163
245
  return;
164
246
  }
247
+ if (!(await persistConnectionSettings())) {
248
+ return;
249
+ }
165
250
 
166
251
  const daemonOptions = configureDaemon();
167
252
  setMessage('Checking desktop connection...');
@@ -200,12 +285,15 @@ export function DevConnectTab({ snapshot }: DebugFeatureRenderProps<DevConnectSt
200
285
  },
201
286
  });
202
287
  setStreaming(true);
203
- }, [configureDaemon, streaming, validateSettings]);
288
+ }, [configureDaemon, persistConnectionSettings, streaming, validateSettings]);
204
289
 
205
290
  const sendOnce = useCallback(async () => {
206
291
  if (!validateSettings()) {
207
292
  return;
208
293
  }
294
+ if (!(await persistConnectionSettings())) {
295
+ return;
296
+ }
209
297
 
210
298
  const daemonOptions = configureDaemon();
211
299
  setSending(true);
@@ -236,7 +324,7 @@ export function DevConnectTab({ snapshot }: DebugFeatureRenderProps<DevConnectSt
236
324
  } finally {
237
325
  setSending(false);
238
326
  }
239
- }, [configureDaemon, validateSettings]);
327
+ }, [configureDaemon, persistConnectionSettings, validateSettings]);
240
328
 
241
329
  const applyRemoteBundle = useCallback(async () => {
242
330
  if (!metroTarget) {
@@ -251,6 +339,9 @@ export function DevConnectTab({ snapshot }: DebugFeatureRenderProps<DevConnectSt
251
339
  setMetroBusy(true);
252
340
  setMessage('Checking Metro...');
253
341
  try {
342
+ if (!(await persistMetroSettings())) {
343
+ return;
344
+ }
254
345
  const result = await applyMetroBundle(metroTarget.host, metroTarget.port);
255
346
  if (result.ok) {
256
347
  setMessage(`Using Metro at ${result.hostPort}. Reloading...`);
@@ -260,7 +351,7 @@ export function DevConnectTab({ snapshot }: DebugFeatureRenderProps<DevConnectSt
260
351
  } finally {
261
352
  setMetroBusy(false);
262
353
  }
263
- }, [metroTarget, snapshot.nativeMetroAvailable]);
354
+ }, [metroTarget, persistMetroSettings, snapshot.nativeMetroAvailable]);
264
355
 
265
356
  const resetRemoteBundle = useCallback(async () => {
266
357
  if (!snapshot.nativeMetroAvailable) {