react-native-debug-toolkit 3.2.0 → 3.2.2

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 (66) hide show
  1. package/README.md +13 -2
  2. package/README.zh-CN.md +13 -2
  3. package/android/build.gradle +34 -0
  4. package/android/src/main/AndroidManifest.xml +1 -0
  5. package/android/src/main/java/com/reactnativedebugtoolkit/DebugToolkitDevConnectModule.java +70 -0
  6. package/android/src/main/java/com/reactnativedebugtoolkit/ReactNativeDebugToolkitPackage.java +25 -0
  7. package/ios/DebugToolkitDevConnect.mm +67 -0
  8. package/lib/commonjs/features/devConnect/DevConnectQrScanner.js +94 -26
  9. package/lib/commonjs/features/devConnect/DevConnectQrScanner.js.map +1 -1
  10. package/lib/commonjs/features/devConnect/DevConnectTab.js +261 -75
  11. package/lib/commonjs/features/devConnect/DevConnectTab.js.map +1 -1
  12. package/lib/commonjs/features/devConnect/devConnectPreferences.js +35 -5
  13. package/lib/commonjs/features/devConnect/devConnectPreferences.js.map +1 -1
  14. package/lib/commonjs/features/devConnect/devConnectUtils.js +99 -15
  15. package/lib/commonjs/features/devConnect/devConnectUtils.js.map +1 -1
  16. package/lib/commonjs/features/devConnect/index.js +39 -2
  17. package/lib/commonjs/features/devConnect/index.js.map +1 -1
  18. package/lib/commonjs/features/devConnect/nativeDevConnect.js +110 -0
  19. package/lib/commonjs/features/devConnect/nativeDevConnect.js.map +1 -0
  20. package/lib/commonjs/features/devConnect/platformDetect.js +7 -11
  21. package/lib/commonjs/features/devConnect/platformDetect.js.map +1 -1
  22. package/lib/commonjs/utils/debugPreferences.js +43 -6
  23. package/lib/commonjs/utils/debugPreferences.js.map +1 -1
  24. package/lib/module/features/devConnect/DevConnectQrScanner.js +95 -27
  25. package/lib/module/features/devConnect/DevConnectQrScanner.js.map +1 -1
  26. package/lib/module/features/devConnect/DevConnectTab.js +265 -79
  27. package/lib/module/features/devConnect/DevConnectTab.js.map +1 -1
  28. package/lib/module/features/devConnect/devConnectPreferences.js +33 -6
  29. package/lib/module/features/devConnect/devConnectPreferences.js.map +1 -1
  30. package/lib/module/features/devConnect/devConnectUtils.js +94 -15
  31. package/lib/module/features/devConnect/devConnectUtils.js.map +1 -1
  32. package/lib/module/features/devConnect/index.js +11 -3
  33. package/lib/module/features/devConnect/index.js.map +1 -1
  34. package/lib/module/features/devConnect/nativeDevConnect.js +104 -0
  35. package/lib/module/features/devConnect/nativeDevConnect.js.map +1 -0
  36. package/lib/module/features/devConnect/platformDetect.js +8 -12
  37. package/lib/module/features/devConnect/platformDetect.js.map +1 -1
  38. package/lib/module/utils/debugPreferences.js +43 -6
  39. package/lib/module/utils/debugPreferences.js.map +1 -1
  40. package/lib/typescript/src/features/devConnect/DevConnectQrScanner.d.ts +3 -2
  41. package/lib/typescript/src/features/devConnect/DevConnectQrScanner.d.ts.map +1 -1
  42. package/lib/typescript/src/features/devConnect/DevConnectTab.d.ts.map +1 -1
  43. package/lib/typescript/src/features/devConnect/devConnectPreferences.d.ts +6 -0
  44. package/lib/typescript/src/features/devConnect/devConnectPreferences.d.ts.map +1 -1
  45. package/lib/typescript/src/features/devConnect/devConnectUtils.d.ts +18 -1
  46. package/lib/typescript/src/features/devConnect/devConnectUtils.d.ts.map +1 -1
  47. package/lib/typescript/src/features/devConnect/index.d.ts +2 -2
  48. package/lib/typescript/src/features/devConnect/index.d.ts.map +1 -1
  49. package/lib/typescript/src/features/devConnect/nativeDevConnect.d.ts +17 -0
  50. package/lib/typescript/src/features/devConnect/nativeDevConnect.d.ts.map +1 -0
  51. package/lib/typescript/src/features/devConnect/platformDetect.d.ts.map +1 -1
  52. package/lib/typescript/src/features/devConnect/types.d.ts +3 -0
  53. package/lib/typescript/src/features/devConnect/types.d.ts.map +1 -1
  54. package/lib/typescript/src/utils/debugPreferences.d.ts +2 -0
  55. package/lib/typescript/src/utils/debugPreferences.d.ts.map +1 -1
  56. package/package.json +4 -1
  57. package/react-native-debug-toolkit.podspec +18 -0
  58. package/src/features/devConnect/DevConnectQrScanner.tsx +90 -28
  59. package/src/features/devConnect/DevConnectTab.tsx +257 -55
  60. package/src/features/devConnect/devConnectPreferences.ts +50 -5
  61. package/src/features/devConnect/devConnectUtils.ts +122 -15
  62. package/src/features/devConnect/index.ts +13 -0
  63. package/src/features/devConnect/nativeDevConnect.ts +128 -0
  64. package/src/features/devConnect/platformDetect.ts +8 -13
  65. package/src/features/devConnect/types.ts +3 -0
  66. package/src/utils/debugPreferences.ts +49 -4
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
2
 
3
- const METRO_PORT = '8081';
3
+ export const DEFAULT_METRO_PORT = '8081';
4
+ export const DEFAULT_DAEMON_PORT = '3799';
4
5
  function isValidIpv4(host) {
5
6
  const parts = host.split('.');
6
- if (parts.length !== 4) return false;
7
+ if (parts.length !== 4) {
8
+ return false;
9
+ }
7
10
  return parts.every(part => {
8
- if (!/^\d{1,3}$/.test(part)) return false;
11
+ if (!/^\d{1,3}$/.test(part)) {
12
+ return false;
13
+ }
9
14
  const value = Number(part);
10
15
  return value >= 0 && value <= 255 && String(value) === part;
11
16
  });
@@ -17,31 +22,105 @@ function toUrlInput(raw) {
17
22
  }
18
23
  return `http://${trimmed}`;
19
24
  }
20
- export function normalizeComputerHost(raw) {
25
+ function parseHostAndPort(raw) {
21
26
  const trimmed = raw.trim();
22
- if (!trimmed) return null;
27
+ if (!trimmed) {
28
+ return null;
29
+ }
23
30
  try {
24
31
  const parsed = new URL(toUrlInput(trimmed));
25
- const host = parsed.hostname.trim();
26
- return isValidIpv4(host) ? host : null;
32
+ return {
33
+ host: parsed.hostname.trim(),
34
+ port: parsed.port.trim()
35
+ };
27
36
  } catch {
28
37
  return null;
29
38
  }
30
39
  }
31
- export function buildMetroUrls(rawHost) {
32
- const host = normalizeComputerHost(rawHost);
33
- if (!host) return null;
40
+ export function normalizeComputerHost(raw) {
41
+ const parsed = parseHostAndPort(raw);
42
+ if (!parsed) {
43
+ return null;
44
+ }
45
+ return isValidIpv4(parsed.host) ? parsed.host : null;
46
+ }
47
+ export function normalizePort(raw) {
48
+ const trimmed = raw.trim();
49
+ if (!/^\d+$/.test(trimmed)) {
50
+ return null;
51
+ }
52
+ const value = Number(trimmed);
53
+ if (!Number.isInteger(value) || value < 1 || value > 65535) {
54
+ return null;
55
+ }
56
+ return String(value);
57
+ }
58
+ export function parseComputerTarget(raw) {
59
+ const parsed = parseHostAndPort(raw);
60
+ if (!parsed || !isValidIpv4(parsed.host)) {
61
+ return null;
62
+ }
63
+ const metroPort = parsed.port ? normalizePort(parsed.port) : DEFAULT_METRO_PORT;
64
+ if (!metroPort) {
65
+ return null;
66
+ }
67
+ return {
68
+ computerHost: parsed.host,
69
+ metroPort
70
+ };
71
+ }
72
+ function normalizeMetroHost(rawHost) {
73
+ const parsed = parseHostAndPort(rawHost);
74
+ if (!parsed) {
75
+ return null;
76
+ }
77
+ if (parsed.host === 'localhost') {
78
+ return parsed.host;
79
+ }
80
+ return isValidIpv4(parsed.host) ? parsed.host : null;
81
+ }
82
+ export function buildMetroTarget(rawHost, rawPort = DEFAULT_METRO_PORT) {
83
+ const host = normalizeMetroHost(rawHost);
84
+ if (!host) {
85
+ return null;
86
+ }
87
+ const port = normalizePort(rawPort);
88
+ if (!port) {
89
+ return null;
90
+ }
34
91
  return {
35
- expUrl: `exp://${host}:${METRO_PORT}`,
36
- httpUrl: `http://${host}:${METRO_PORT}`
92
+ host,
93
+ port,
94
+ hostPort: `${host}:${port}`,
95
+ statusUrl: `http://${host}:${port}/status`
96
+ };
97
+ }
98
+ export function buildMetroUrls(rawHost, rawPort = DEFAULT_METRO_PORT) {
99
+ const target = buildMetroTarget(rawHost, rawPort);
100
+ if (!target) {
101
+ return null;
102
+ }
103
+ return {
104
+ expUrl: `exp://${target.hostPort}`,
105
+ httpUrl: `http://${target.hostPort}`
37
106
  };
38
107
  }
39
108
  export function parseMetroQrPayload(payload) {
40
- const computerHost = normalizeComputerHost(payload);
41
- if (!computerHost) return null;
109
+ const target = parseComputerTarget(payload);
110
+ if (!target) {
111
+ return null;
112
+ }
42
113
  return {
43
- computerHost,
114
+ ...target,
44
115
  source: payload
45
116
  };
46
117
  }
118
+ export function buildDaemonDeviceHost(computerHost, daemonPort) {
119
+ const host = normalizeComputerHost(computerHost);
120
+ if (!host) {
121
+ return '';
122
+ }
123
+ const port = normalizePort(daemonPort) ?? DEFAULT_DAEMON_PORT;
124
+ return port === DEFAULT_DAEMON_PORT ? host : `${host}:${port}`;
125
+ }
47
126
  //# sourceMappingURL=devConnectUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["METRO_PORT","isValidIpv4","host","parts","split","length","every","part","test","value","Number","String","toUrlInput","raw","trimmed","trim","normalizeComputerHost","parsed","URL","hostname","buildMetroUrls","rawHost","expUrl","httpUrl","parseMetroQrPayload","payload","computerHost","source"],"sourceRoot":"../../../../src","sources":["features/devConnect/devConnectUtils.ts"],"mappings":";;AAAA,MAAMA,UAAU,GAAG,MAAM;AAYzB,SAASC,WAAWA,CAACC,IAAY,EAAW;EAC1C,MAAMC,KAAK,GAAGD,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC;EAC7B,IAAID,KAAK,CAACE,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;EAEpC,OAAOF,KAAK,CAACG,KAAK,CAAEC,IAAI,IAAK;IAC3B,IAAI,CAAC,WAAW,CAACC,IAAI,CAACD,IAAI,CAAC,EAAE,OAAO,KAAK;IACzC,MAAME,KAAK,GAAGC,MAAM,CAACH,IAAI,CAAC;IAC1B,OAAOE,KAAK,IAAI,CAAC,IAAIA,KAAK,IAAI,GAAG,IAAIE,MAAM,CAACF,KAAK,CAAC,KAAKF,IAAI;EAC7D,CAAC,CAAC;AACJ;AAEA,SAASK,UAAUA,CAACC,GAAW,EAAU;EACvC,MAAMC,OAAO,GAAGD,GAAG,CAACE,IAAI,CAAC,CAAC;EAC1B,IAAI,8BAA8B,CAACP,IAAI,CAACM,OAAO,CAAC,EAAE;IAChD,OAAOA,OAAO;EAChB;EACA,OAAO,UAAUA,OAAO,EAAE;AAC5B;AAEA,OAAO,SAASE,qBAAqBA,CAACH,GAAW,EAAiB;EAChE,MAAMC,OAAO,GAAGD,GAAG,CAACE,IAAI,CAAC,CAAC;EAC1B,IAAI,CAACD,OAAO,EAAE,OAAO,IAAI;EAEzB,IAAI;IACF,MAAMG,MAAM,GAAG,IAAIC,GAAG,CAACN,UAAU,CAACE,OAAO,CAAC,CAAC;IAC3C,MAAMZ,IAAI,GAAGe,MAAM,CAACE,QAAQ,CAACJ,IAAI,CAAC,CAAC;IACnC,OAAOd,WAAW,CAACC,IAAI,CAAC,GAAGA,IAAI,GAAG,IAAI;EACxC,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAEA,OAAO,SAASkB,cAAcA,CAACC,OAAe,EAAoB;EAChE,MAAMnB,IAAI,GAAGc,qBAAqB,CAACK,OAAO,CAAC;EAC3C,IAAI,CAACnB,IAAI,EAAE,OAAO,IAAI;EAEtB,OAAO;IACLoB,MAAM,EAAE,SAASpB,IAAI,IAAIF,UAAU,EAAE;IACrCuB,OAAO,EAAE,UAAUrB,IAAI,IAAIF,UAAU;EACvC,CAAC;AACH;AAEA,OAAO,SAASwB,mBAAmBA,CAACC,OAAe,EAA+B;EAChF,MAAMC,YAAY,GAAGV,qBAAqB,CAACS,OAAO,CAAC;EACnD,IAAI,CAACC,YAAY,EAAE,OAAO,IAAI;EAC9B,OAAO;IAAEA,YAAY;IAAEC,MAAM,EAAEF;EAAQ,CAAC;AAC1C","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_METRO_PORT","DEFAULT_DAEMON_PORT","isValidIpv4","host","parts","split","length","every","part","test","value","Number","String","toUrlInput","raw","trimmed","trim","parseHostAndPort","parsed","URL","hostname","port","normalizeComputerHost","normalizePort","isInteger","parseComputerTarget","metroPort","computerHost","normalizeMetroHost","rawHost","buildMetroTarget","rawPort","hostPort","statusUrl","buildMetroUrls","target","expUrl","httpUrl","parseMetroQrPayload","payload","source","buildDaemonDeviceHost","daemonPort"],"sourceRoot":"../../../../src","sources":["features/devConnect/devConnectUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -3,16 +3,21 @@
3
3
  import { DevConnectTab } from './DevConnectTab';
4
4
  import { isCameraKitAvailable } from './cameraKit';
5
5
  import { loadDevConnectPreferences } from './devConnectPreferences';
6
+ import { DEFAULT_DAEMON_PORT, DEFAULT_METRO_PORT } from './devConnectUtils';
7
+ import { isNativeDevConnectAvailable } from './nativeDevConnect';
6
8
  import { isSimulator } from './platformDetect';
7
9
  import { daemonClient } from '../../utils/DaemonClient';
8
- export { buildMetroUrls, normalizeComputerHost, parseMetroQrPayload } from './devConnectUtils';
9
- export { loadDevConnectPreferences, restoreDevConnectSettingsToDaemon, saveComputerHost } from './devConnectPreferences';
10
+ export { buildMetroUrls, normalizeComputerHost, normalizePort, parseComputerTarget, parseMetroQrPayload } from './devConnectUtils';
11
+ export { loadDevConnectPreferences, restoreDevConnectSettingsToDaemon, saveComputerHost, saveComputerTarget, saveDaemonPort, saveMetroPort } from './devConnectPreferences';
10
12
  export const createDevConnectFeature = () => {
11
13
  const listeners = new Set();
12
14
  let state = {
13
15
  isSimulator: isSimulator(),
14
16
  computerHost: '',
17
+ metroPort: DEFAULT_METRO_PORT,
18
+ daemonPort: DEFAULT_DAEMON_PORT,
15
19
  qrAvailable: isCameraKitAvailable(),
20
+ nativeMetroAvailable: isNativeDevConnectAvailable(),
16
21
  streaming: daemonClient.isConnected()
17
22
  };
18
23
  const notify = () => {
@@ -30,7 +35,10 @@ export const createDevConnectFeature = () => {
30
35
  loadDevConnectPreferences().then(preferences => {
31
36
  state = {
32
37
  ...state,
33
- computerHost: preferences.computerHost
38
+ computerHost: preferences.computerHost,
39
+ metroPort: preferences.metroPort,
40
+ daemonPort: preferences.daemonPort,
41
+ nativeMetroAvailable: isNativeDevConnectAvailable()
34
42
  };
35
43
  notify();
36
44
  }).catch(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["DevConnectTab","isCameraKitAvailable","loadDevConnectPreferences","isSimulator","daemonClient","buildMetroUrls","normalizeComputerHost","parseMetroQrPayload","restoreDevConnectSettingsToDaemon","saveComputerHost","createDevConnectFeature","listeners","Set","state","computerHost","qrAvailable","streaming","isConnected","notify","forEach","listener","name","label","renderContent","setup","then","preferences","catch","getSnapshot","cleanup","clear","subscribe","add","delete"],"sourceRoot":"../../../../src","sources":["features/devConnect/index.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,oBAAoB,QAAQ,aAAa;AAClD,SAASC,yBAAyB,QAAQ,yBAAyB;AACnE,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,SAASC,YAAY,QAAQ,0BAA0B;AAKvD,SACEC,cAAc,EACdC,qBAAqB,EACrBC,mBAAmB,QACd,mBAAmB;AAC1B,SACEL,yBAAyB,EACzBM,iCAAiC,EACjCC,gBAAgB,QACX,yBAAyB;AAEhC,OAAO,MAAMC,uBAAuB,GAAGA,CAAA,KAAqC;EAC1E,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAuB,CAAC;EACjD,IAAIC,KAAsB,GAAG;IAC3BV,WAAW,EAAEA,WAAW,CAAC,CAAC;IAC1BW,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAEd,oBAAoB,CAAC,CAAC;IACnCe,SAAS,EAAEZ,YAAY,CAACa,WAAW,CAAC;EACtC,CAAC;EAED,MAAMC,MAAM,GAAGA,CAAA,KAAM;IACnBL,KAAK,GAAG;MACN,GAAGA,KAAK;MACRG,SAAS,EAAEZ,YAAY,CAACa,WAAW,CAAC;IACtC,CAAC;IACDN,SAAS,CAACQ,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EAC7C,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,YAAY;IAClBC,KAAK,EAAE,YAAY;IACnBC,aAAa,EAAEvB,aAAa;IAC5BwB,KAAKA,CAAA,EAAG;MACNtB,yBAAyB,CAAC,CAAC,CAACuB,IAAI,CAAEC,WAAW,IAAK;QAChDb,KAAK,GAAG;UACN,GAAGA,KAAK;UACRC,YAAY,EAAEY,WAAW,CAACZ;QAC5B,CAAC;QACDI,MAAM,CAAC,CAAC;MACV,CAAC,CAAC,CAACS,KAAK,CAAC,MAAM;QACbT,MAAM,CAAC,CAAC;MACV,CAAC,CAAC;IACJ,CAAC;IACDU,WAAW,EAAEA,CAAA,KAAMf,KAAK;IACxBgB,OAAOA,CAAA,EAAG;MACRlB,SAAS,CAACmB,KAAK,CAAC,CAAC;IACnB,CAAC;IACDC,SAASA,CAACX,QAAQ,EAAE;MAClBT,SAAS,CAACqB,GAAG,CAACZ,QAAQ,CAAC;MACvB,OAAO,MAAM;QACXT,SAAS,CAACsB,MAAM,CAACb,QAAQ,CAAC;MAC5B,CAAC;IACH;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["DevConnectTab","isCameraKitAvailable","loadDevConnectPreferences","DEFAULT_DAEMON_PORT","DEFAULT_METRO_PORT","isNativeDevConnectAvailable","isSimulator","daemonClient","buildMetroUrls","normalizeComputerHost","normalizePort","parseComputerTarget","parseMetroQrPayload","restoreDevConnectSettingsToDaemon","saveComputerHost","saveComputerTarget","saveDaemonPort","saveMetroPort","createDevConnectFeature","listeners","Set","state","computerHost","metroPort","daemonPort","qrAvailable","nativeMetroAvailable","streaming","isConnected","notify","forEach","listener","name","label","renderContent","setup","then","preferences","catch","getSnapshot","cleanup","clear","subscribe","add","delete"],"sourceRoot":"../../../../src","sources":["features/devConnect/index.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,oBAAoB,QAAQ,aAAa;AAClD,SAASC,yBAAyB,QAAQ,yBAAyB;AACnE,SAASC,mBAAmB,EAAEC,kBAAkB,QAAQ,mBAAmB;AAC3E,SAASC,2BAA2B,QAAQ,oBAAoB;AAChE,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,SAASC,YAAY,QAAQ,0BAA0B;AAKvD,SACEC,cAAc,EACdC,qBAAqB,EACrBC,aAAa,EACbC,mBAAmB,EACnBC,mBAAmB,QACd,mBAAmB;AAC1B,SACEV,yBAAyB,EACzBW,iCAAiC,EACjCC,gBAAgB,EAChBC,kBAAkB,EAClBC,cAAc,EACdC,aAAa,QACR,yBAAyB;AAEhC,OAAO,MAAMC,uBAAuB,GAAGA,CAAA,KAAqC;EAC1E,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAuB,CAAC;EACjD,IAAIC,KAAsB,GAAG;IAC3Bf,WAAW,EAAEA,WAAW,CAAC,CAAC;IAC1BgB,YAAY,EAAE,EAAE;IAChBC,SAAS,EAAEnB,kBAAkB;IAC7BoB,UAAU,EAAErB,mBAAmB;IAC/BsB,WAAW,EAAExB,oBAAoB,CAAC,CAAC;IACnCyB,oBAAoB,EAAErB,2BAA2B,CAAC,CAAC;IACnDsB,SAAS,EAAEpB,YAAY,CAACqB,WAAW,CAAC;EACtC,CAAC;EAED,MAAMC,MAAM,GAAGA,CAAA,KAAM;IACnBR,KAAK,GAAG;MACN,GAAGA,KAAK;MACRM,SAAS,EAAEpB,YAAY,CAACqB,WAAW,CAAC;IACtC,CAAC;IACDT,SAAS,CAACW,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EAC7C,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,YAAY;IAClBC,KAAK,EAAE,YAAY;IACnBC,aAAa,EAAElC,aAAa;IAC5BmC,KAAKA,CAAA,EAAG;MACNjC,yBAAyB,CAAC,CAAC,CAACkC,IAAI,CAAEC,WAAW,IAAK;QAChDhB,KAAK,GAAG;UACN,GAAGA,KAAK;UACRC,YAAY,EAAEe,WAAW,CAACf,YAAY;UACtCC,SAAS,EAAEc,WAAW,CAACd,SAAS;UAChCC,UAAU,EAAEa,WAAW,CAACb,UAAU;UAClCE,oBAAoB,EAAErB,2BAA2B,CAAC;QACpD,CAAC;QACDwB,MAAM,CAAC,CAAC;MACV,CAAC,CAAC,CAACS,KAAK,CAAC,MAAM;QACbT,MAAM,CAAC,CAAC;MACV,CAAC,CAAC;IACJ,CAAC;IACDU,WAAW,EAAEA,CAAA,KAAMlB,KAAK;IACxBmB,OAAOA,CAAA,EAAG;MACRrB,SAAS,CAACsB,KAAK,CAAC,CAAC;IACnB,CAAC;IACDC,SAASA,CAACX,QAAQ,EAAE;MAClBZ,SAAS,CAACwB,GAAG,CAACZ,QAAQ,CAAC;MACvB,OAAO,MAAM;QACXZ,SAAS,CAACyB,MAAM,CAACb,QAAQ,CAAC;MAC5B,CAAC;IACH;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ import { DevSettings, NativeModules } from 'react-native';
4
+ import { buildMetroTarget } from './devConnectUtils';
5
+ function getNativeModule() {
6
+ const nativeModule = NativeModules.DebugToolkitDevConnect;
7
+ if (nativeModule && typeof nativeModule.applyMetroHost === 'function' && typeof nativeModule.resetMetroHost === 'function') {
8
+ return nativeModule;
9
+ }
10
+ return null;
11
+ }
12
+ export function isNativeDevConnectAvailable() {
13
+ return getNativeModule() !== null;
14
+ }
15
+ async function checkMetroStatus(statusUrl) {
16
+ const fetchImpl = globalThis.fetch;
17
+ if (!fetchImpl) {
18
+ return {
19
+ ok: false,
20
+ reason: 'fetch_unavailable',
21
+ statusUrl,
22
+ error: 'global fetch is not available'
23
+ };
24
+ }
25
+ try {
26
+ const response = await fetchImpl(statusUrl, {
27
+ method: 'GET'
28
+ });
29
+ const body = typeof response.text === 'function' ? await response.text() : '';
30
+ if (response.ok === false || !body.includes('packager-status:running')) {
31
+ return {
32
+ ok: false,
33
+ reason: 'metro_unreachable',
34
+ statusUrl,
35
+ error: body || 'Metro status endpoint did not report running'
36
+ };
37
+ }
38
+ return null;
39
+ } catch (error) {
40
+ return {
41
+ ok: false,
42
+ reason: 'metro_unreachable',
43
+ statusUrl,
44
+ error: error instanceof Error ? error.message : String(error)
45
+ };
46
+ }
47
+ }
48
+ export async function applyMetroBundle(host, port) {
49
+ const target = buildMetroTarget(host, port);
50
+ if (!target) {
51
+ return {
52
+ ok: false,
53
+ reason: 'invalid_target'
54
+ };
55
+ }
56
+ const nativeModule = getNativeModule();
57
+ if (!nativeModule) {
58
+ return {
59
+ ok: false,
60
+ reason: 'native_unavailable'
61
+ };
62
+ }
63
+ const statusError = await checkMetroStatus(target.statusUrl);
64
+ if (statusError) {
65
+ return statusError;
66
+ }
67
+ try {
68
+ const result = await nativeModule.applyMetroHost(target.hostPort);
69
+ DevSettings.reload?.('DebugToolkit DevConnect Metro host changed');
70
+ return {
71
+ ok: true,
72
+ hostPort: result && typeof result.hostPort === 'string' ? result.hostPort : target.hostPort
73
+ };
74
+ } catch (error) {
75
+ return {
76
+ ok: false,
77
+ reason: 'native_error',
78
+ error: error instanceof Error ? error.message : String(error)
79
+ };
80
+ }
81
+ }
82
+ export async function resetMetroBundle() {
83
+ const nativeModule = getNativeModule();
84
+ if (!nativeModule) {
85
+ return {
86
+ ok: false,
87
+ reason: 'native_unavailable'
88
+ };
89
+ }
90
+ try {
91
+ await nativeModule.resetMetroHost();
92
+ DevSettings.reload?.('DebugToolkit DevConnect Metro host reset');
93
+ return {
94
+ ok: true
95
+ };
96
+ } catch (error) {
97
+ return {
98
+ ok: false,
99
+ reason: 'native_error',
100
+ error: error instanceof Error ? error.message : String(error)
101
+ };
102
+ }
103
+ }
104
+ //# sourceMappingURL=nativeDevConnect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DevSettings","NativeModules","buildMetroTarget","getNativeModule","nativeModule","DebugToolkitDevConnect","applyMetroHost","resetMetroHost","isNativeDevConnectAvailable","checkMetroStatus","statusUrl","fetchImpl","globalThis","fetch","ok","reason","error","response","method","body","text","includes","Error","message","String","applyMetroBundle","host","port","target","statusError","result","hostPort","reload","resetMetroBundle"],"sourceRoot":"../../../../src","sources":["features/devConnect/nativeDevConnect.ts"],"mappings":"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","ignoreList":[]}
@@ -1,25 +1,21 @@
1
1
  "use strict";
2
2
 
3
- import { NativeModules, Platform } from 'react-native';
3
+ import { Platform } from 'react-native';
4
4
  export function isSimulator() {
5
5
  const {
6
6
  OS
7
7
  } = Platform;
8
+ const constants = Platform.constants ?? {};
8
9
  if (OS === 'android') {
9
- const constants = Platform.constants;
10
- if (constants.isEmulator === true) return true;
11
- const model = String(constants.Model ?? '').toLowerCase();
10
+ if (constants.isEmulator === true) {
11
+ return true;
12
+ }
13
+ const model = String(constants.Model ?? constants.model ?? '').toLowerCase();
12
14
  return model.includes('sdk') || model.includes('emulator') || model.includes('google_sdk');
13
15
  }
14
16
  if (OS === 'ios') {
15
- // NativeModules.KCKFCSupportManager is absent on simulator,
16
- // but the most reliable check is the DeviceInfo model name.
17
- const deviceInfo = NativeModules.DeviceInfo ?? NativeModules.PlatformConstants;
18
- if (deviceInfo) {
19
- const model = String(deviceInfo.model ?? '').toLowerCase();
20
- if (model.includes('simulator')) return true;
21
- }
22
- return false;
17
+ const model = String(constants.model ?? '').toLowerCase();
18
+ return model.includes('simulator');
23
19
  }
24
20
  return false;
25
21
  }
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","isSimulator","OS","constants","isEmulator","model","String","Model","toLowerCase","includes","deviceInfo","DeviceInfo","PlatformConstants"],"sourceRoot":"../../../../src","sources":["features/devConnect/platformDetect.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,OAAO,SAASC,WAAWA,CAAA,EAAY;EACrC,MAAM;IAAEC;EAAG,CAAC,GAAGF,QAAQ;EAEvB,IAAIE,EAAE,KAAK,SAAS,EAAE;IACpB,MAAMC,SAAS,GAAGH,QAAQ,CAACG,SAAoC;IAC/D,IAAIA,SAAS,CAACC,UAAU,KAAK,IAAI,EAAE,OAAO,IAAI;IAC9C,MAAMC,KAAK,GAAGC,MAAM,CAACH,SAAS,CAACI,KAAK,IAAI,EAAE,CAAC,CAACC,WAAW,CAAC,CAAC;IACzD,OAAOH,KAAK,CAACI,QAAQ,CAAC,KAAK,CAAC,IAAIJ,KAAK,CAACI,QAAQ,CAAC,UAAU,CAAC,IAAIJ,KAAK,CAACI,QAAQ,CAAC,YAAY,CAAC;EAC5F;EAEA,IAAIP,EAAE,KAAK,KAAK,EAAE;IAChB;IACA;IACA,MAAMQ,UAAU,GAAGX,aAAa,CAACY,UAAU,IACtCZ,aAAa,CAACa,iBAAiB;IACpC,IAAIF,UAAU,EAAE;MACd,MAAML,KAAK,GAAGC,MAAM,CAACI,UAAU,CAACL,KAAK,IAAI,EAAE,CAAC,CAACG,WAAW,CAAC,CAAC;MAC1D,IAAIH,KAAK,CAACI,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,IAAI;IAC9C;IACA,OAAO,KAAK;EACd;EAEA,OAAO,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["Platform","isSimulator","OS","constants","isEmulator","model","String","Model","toLowerCase","includes"],"sourceRoot":"../../../../src","sources":["features/devConnect/platformDetect.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,OAAO,SAASC,WAAWA,CAAA,EAAY;EACrC,MAAM;IAAEC;EAAG,CAAC,GAAGF,QAAQ;EACvB,MAAMG,SAAS,GAAIH,QAAQ,CAACG,SAAS,IAAI,CAAC,CAA6B;EAEvE,IAAID,EAAE,KAAK,SAAS,EAAE;IACpB,IAAIC,SAAS,CAACC,UAAU,KAAK,IAAI,EAAE;MACjC,OAAO,IAAI;IACb;IACA,MAAMC,KAAK,GAAGC,MAAM,CAACH,SAAS,CAACI,KAAK,IAAIJ,SAAS,CAACE,KAAK,IAAI,EAAE,CAAC,CAACG,WAAW,CAAC,CAAC;IAC5E,OAAOH,KAAK,CAACI,QAAQ,CAAC,KAAK,CAAC,IAAIJ,KAAK,CAACI,QAAQ,CAAC,UAAU,CAAC,IAAIJ,KAAK,CAACI,QAAQ,CAAC,YAAY,CAAC;EAC5F;EAEA,IAAIP,EAAE,KAAK,KAAK,EAAE;IAChB,MAAMG,KAAK,GAAGC,MAAM,CAACH,SAAS,CAACE,KAAK,IAAI,EAAE,CAAC,CAACG,WAAW,CAAC,CAAC;IACzD,OAAOH,KAAK,CAACI,QAAQ,CAAC,WAAW,CAAC;EACpC;EAEA,OAAO,KAAK;AACd","ignoreList":[]}
@@ -1,13 +1,26 @@
1
1
  "use strict";
2
2
 
3
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
-
5
3
  const memoryStore = new Map();
6
4
  function loadAsyncStorage() {
7
5
  try {
8
- // eslint-disable-next-line @typescript-eslint/no-require-imports
9
6
  const mod = require('@react-native-async-storage/async-storage');
10
- if (mod && typeof mod.getItem === 'function') return mod;
7
+ if (mod && typeof mod.getItem === 'function') {
8
+ return mod;
9
+ }
10
+ return null;
11
+ } catch {
12
+ return null;
13
+ }
14
+ }
15
+ function loadNativePreferences() {
16
+ try {
17
+ const {
18
+ NativeModules
19
+ } = require('react-native');
20
+ const mod = NativeModules?.DebugToolkitDevConnect;
21
+ if (mod && typeof mod.getPreference === 'function' && typeof mod.setPreference === 'function') {
22
+ return mod;
23
+ }
11
24
  return null;
12
25
  } catch {
13
26
  return null;
@@ -19,6 +32,15 @@ export async function setPreference(key, value) {
19
32
  if (AsyncStorage) {
20
33
  try {
21
34
  await AsyncStorage.setItem(key, value);
35
+ return;
36
+ } catch {
37
+ // degrade to memory only
38
+ }
39
+ }
40
+ const nativePreferences = loadNativePreferences();
41
+ if (nativePreferences) {
42
+ try {
43
+ await nativePreferences.setPreference(key, value);
22
44
  } catch {
23
45
  // degrade to memory only
24
46
  }
@@ -29,7 +51,20 @@ export async function getPreference(key) {
29
51
  if (AsyncStorage) {
30
52
  try {
31
53
  const val = await AsyncStorage.getItem(key);
32
- if (val !== null) return val;
54
+ if (val !== null) {
55
+ return val;
56
+ }
57
+ } catch {
58
+ // fall through to memory
59
+ }
60
+ }
61
+ const nativePreferences = loadNativePreferences();
62
+ if (nativePreferences) {
63
+ try {
64
+ const val = await nativePreferences.getPreference(key);
65
+ if (val !== null) {
66
+ return val;
67
+ }
33
68
  } catch {
34
69
  // fall through to memory
35
70
  }
@@ -42,6 +77,8 @@ export const KEYS = {
42
77
  consoleLogs: '@react_native_debug_toolkit/console_logs',
43
78
  networkLogs: '@react_native_debug_toolkit/network_logs',
44
79
  trackLogs: '@react_native_debug_toolkit/track_logs',
45
- computerHost: '@react_native_debug_toolkit/computer_host'
80
+ computerHost: '@react_native_debug_toolkit/computer_host',
81
+ metroPort: '@react_native_debug_toolkit/metro_port',
82
+ daemonPort: '@react_native_debug_toolkit/daemon_port'
46
83
  };
47
84
  //# sourceMappingURL=debugPreferences.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["memoryStore","Map","loadAsyncStorage","mod","require","getItem","setPreference","key","value","set","AsyncStorage","setItem","getPreference","val","get","KEYS","fabPosition","lastTab","consoleLogs","networkLogs","trackLogs","computerHost"],"sourceRoot":"../../../src","sources":["utils/debugPreferences.ts"],"mappings":";;AAAA;;AAGA,MAAMA,WAAW,GAAG,IAAIC,GAAG,CAAiB,CAAC;AAE7C,SAASC,gBAAgBA,CAAA,EAA4B;EACnD,IAAI;IACF;IACA,MAAMC,GAAG,GAAGC,OAAO,CAAC,2CAA2C,CAAC;IAChE,IAAID,GAAG,IAAI,OAAOA,GAAG,CAACE,OAAO,KAAK,UAAU,EAAE,OAAOF,GAAG;IACxD,OAAO,IAAI;EACb,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAEA,OAAO,eAAeG,aAAaA,CAACC,GAAW,EAAEC,KAAa,EAAiB;EAC7ER,WAAW,CAACS,GAAG,CAACF,GAAG,EAAEC,KAAK,CAAC;EAC3B,MAAME,YAAY,GAAGR,gBAAgB,CAAC,CAAC;EACvC,IAAIQ,YAAY,EAAE;IAChB,IAAI;MACF,MAAMA,YAAY,CAACC,OAAO,CAACJ,GAAG,EAAEC,KAAK,CAAC;IACxC,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;AACF;AAEA,OAAO,eAAeI,aAAaA,CAACL,GAAW,EAA0B;EACvE,MAAMG,YAAY,GAAGR,gBAAgB,CAAC,CAAC;EACvC,IAAIQ,YAAY,EAAE;IAChB,IAAI;MACF,MAAMG,GAAG,GAAG,MAAMH,YAAY,CAACL,OAAO,CAACE,GAAG,CAAC;MAC3C,IAAIM,GAAG,KAAK,IAAI,EAAE,OAAOA,GAAG;IAC9B,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EACA,OAAOb,WAAW,CAACc,GAAG,CAACP,GAAG,CAAC,IAAI,IAAI;AACrC;AAEA,OAAO,MAAMQ,IAAI,GAAG;EAClBC,WAAW,EAAE,0CAA0C;EACvDC,OAAO,EAAE,sCAAsC;EAC/CC,WAAW,EAAE,0CAA0C;EACvDC,WAAW,EAAE,0CAA0C;EACvDC,SAAS,EAAE,wCAAwC;EACnDC,YAAY,EAAE;AAChB,CAAU","ignoreList":[]}
1
+ {"version":3,"names":["memoryStore","Map","loadAsyncStorage","mod","require","getItem","loadNativePreferences","NativeModules","DebugToolkitDevConnect","getPreference","setPreference","key","value","set","AsyncStorage","setItem","nativePreferences","val","get","KEYS","fabPosition","lastTab","consoleLogs","networkLogs","trackLogs","computerHost","metroPort","daemonPort"],"sourceRoot":"../../../src","sources":["utils/debugPreferences.ts"],"mappings":";;AAGA,MAAMA,WAAW,GAAG,IAAIC,GAAG,CAAiB,CAAC;AAE7C,SAASC,gBAAgBA,CAAA,EAA4B;EACnD,IAAI;IACF,MAAMC,GAAG,GAAGC,OAAO,CAAC,2CAA2C,CAAC;IAChE,IAAID,GAAG,IAAI,OAAOA,GAAG,CAACE,OAAO,KAAK,UAAU,EAAE;MAC5C,OAAOF,GAAG;IACZ;IACA,OAAO,IAAI;EACb,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAEA,SAASG,qBAAqBA,CAAA,EAAiC;EAC7D,IAAI;IACF,MAAM;MAAEC;IAAc,CAAC,GAAGH,OAAO,CAAC,cAAc,CAAoF;IACpI,MAAMD,GAAG,GAAGI,aAAa,EAAEC,sBAAsB;IACjD,IACEL,GAAG,IACH,OAAOA,GAAG,CAACM,aAAa,KAAK,UAAU,IACvC,OAAON,GAAG,CAACO,aAAa,KAAK,UAAU,EACvC;MACA,OAAOP,GAAG;IACZ;IACA,OAAO,IAAI;EACb,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;AAEA,OAAO,eAAeO,aAAaA,CAACC,GAAW,EAAEC,KAAa,EAAiB;EAC7EZ,WAAW,CAACa,GAAG,CAACF,GAAG,EAAEC,KAAK,CAAC;EAC3B,MAAME,YAAY,GAAGZ,gBAAgB,CAAC,CAAC;EACvC,IAAIY,YAAY,EAAE;IAChB,IAAI;MACF,MAAMA,YAAY,CAACC,OAAO,CAACJ,GAAG,EAAEC,KAAK,CAAC;MACtC;IACF,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EAEA,MAAMI,iBAAiB,GAAGV,qBAAqB,CAAC,CAAC;EACjD,IAAIU,iBAAiB,EAAE;IACrB,IAAI;MACF,MAAMA,iBAAiB,CAACN,aAAa,CAACC,GAAG,EAAEC,KAAK,CAAC;IACnD,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;AACF;AAEA,OAAO,eAAeH,aAAaA,CAACE,GAAW,EAA0B;EACvE,MAAMG,YAAY,GAAGZ,gBAAgB,CAAC,CAAC;EACvC,IAAIY,YAAY,EAAE;IAChB,IAAI;MACF,MAAMG,GAAG,GAAG,MAAMH,YAAY,CAACT,OAAO,CAACM,GAAG,CAAC;MAC3C,IAAIM,GAAG,KAAK,IAAI,EAAE;QAChB,OAAOA,GAAG;MACZ;IACF,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EAEA,MAAMD,iBAAiB,GAAGV,qBAAqB,CAAC,CAAC;EACjD,IAAIU,iBAAiB,EAAE;IACrB,IAAI;MACF,MAAMC,GAAG,GAAG,MAAMD,iBAAiB,CAACP,aAAa,CAACE,GAAG,CAAC;MACtD,IAAIM,GAAG,KAAK,IAAI,EAAE;QAChB,OAAOA,GAAG;MACZ;IACF,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EAEA,OAAOjB,WAAW,CAACkB,GAAG,CAACP,GAAG,CAAC,IAAI,IAAI;AACrC;AAEA,OAAO,MAAMQ,IAAI,GAAG;EAClBC,WAAW,EAAE,0CAA0C;EACvDC,OAAO,EAAE,sCAAsC;EAC/CC,WAAW,EAAE,0CAA0C;EACvDC,WAAW,EAAE,0CAA0C;EACvDC,SAAS,EAAE,wCAAwC;EACnDC,YAAY,EAAE,2CAA2C;EACzDC,SAAS,EAAE,wCAAwC;EACnDC,UAAU,EAAE;AACd,CAAU","ignoreList":[]}
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
+ import { type ParsedComputerTarget } from './devConnectUtils';
2
3
  interface DevConnectQrScannerProps {
3
4
  visible: boolean;
4
5
  onClose: () => void;
5
- onScanHost: (host: string) => void;
6
+ onScanTarget: (target: ParsedComputerTarget) => void;
6
7
  }
7
- export declare function DevConnectQrScanner({ visible, onClose, onScanHost }: DevConnectQrScannerProps): React.JSX.Element | null;
8
+ export declare function DevConnectQrScanner({ visible, onClose, onScanTarget }: DevConnectQrScannerProps): React.JSX.Element | null;
8
9
  export {};
9
10
  //# sourceMappingURL=DevConnectQrScanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DevConnectQrScanner.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/DevConnectQrScanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAkBxE,UAAU,wBAAwB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,wBAAwB,4BAuE7F"}
1
+ {"version":3,"file":"DevConnectQrScanner.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/DevConnectQrScanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8D,MAAM,OAAO,CAAC;AAgBnF,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAmCnF,UAAU,wBAAwB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACtD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,wBAAwB,4BAiG/F"}
@@ -1 +1 @@
1
- {"version":3,"file":"DevConnectTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/DevConnectTab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAYxE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAY3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQ/C,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,eAAe,CAAC,qBAkPnF"}
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,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA2B/C,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,eAAe,CAAC,qBA8XnF"}
@@ -1,7 +1,13 @@
1
+ import { type ParsedComputerTarget } from './devConnectUtils';
1
2
  export interface DevConnectPreferences {
2
3
  computerHost: string;
4
+ metroPort: string;
5
+ daemonPort: string;
3
6
  }
4
7
  export declare function loadDevConnectPreferences(): Promise<DevConnectPreferences>;
8
+ export declare function saveComputerTarget(value: string): Promise<ParsedComputerTarget | null>;
5
9
  export declare function saveComputerHost(value: string): Promise<string | null>;
10
+ export declare function saveMetroPort(value: string): Promise<string | null>;
11
+ export declare function saveDaemonPort(value: string): Promise<string | null>;
6
12
  export declare function restoreDevConnectSettingsToDaemon(): Promise<void>;
7
13
  //# sourceMappingURL=devConnectPreferences.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"devConnectPreferences.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/devConnectPreferences.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAKhF;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAK5E;AAED,wBAAsB,iCAAiC,IAAI,OAAO,CAAC,IAAI,CAAC,CASvE"}
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,12 +1,29 @@
1
+ export declare const DEFAULT_METRO_PORT = "8081";
2
+ export declare const DEFAULT_DAEMON_PORT = "3799";
1
3
  export interface MetroUrls {
2
4
  expUrl: string;
3
5
  httpUrl: string;
4
6
  }
7
+ export interface MetroTarget {
8
+ host: string;
9
+ port: string;
10
+ hostPort: string;
11
+ statusUrl: string;
12
+ }
13
+ export interface ParsedComputerTarget {
14
+ computerHost: string;
15
+ metroPort: string;
16
+ }
5
17
  export interface ParsedMetroQrPayload {
6
18
  computerHost: string;
19
+ metroPort: string;
7
20
  source: string;
8
21
  }
9
22
  export declare function normalizeComputerHost(raw: string): string | null;
10
- export declare function buildMetroUrls(rawHost: string): MetroUrls | null;
23
+ export declare function normalizePort(raw: string): string | null;
24
+ export declare function parseComputerTarget(raw: string): ParsedComputerTarget | null;
25
+ export declare function buildMetroTarget(rawHost: string, rawPort?: string): MetroTarget | null;
26
+ export declare function buildMetroUrls(rawHost: string, rawPort?: string): MetroUrls | null;
11
27
  export declare function parseMetroQrPayload(payload: string): ParsedMetroQrPayload | null;
28
+ export declare function buildDaemonDeviceHost(computerHost: string, daemonPort: string): string;
12
29
  //# sourceMappingURL=devConnectUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"devConnectUtils.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/devConnectUtils.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWhE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAQhE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAIhF"}
1
+ {"version":3,"file":"devConnectUtils.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/devConnectUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AA0CD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOhE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWxD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAiB5E;AAaD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,SAAqB,GAAG,WAAW,GAAG,IAAI,CAiBlG;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,SAAqB,GAAG,SAAS,GAAG,IAAI,CAU9F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAMhF;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAQtF"}
@@ -1,7 +1,7 @@
1
1
  import type { DebugFeature } from '../../types';
2
2
  import type { DevConnectState } from './types';
3
3
  export type { DevConnectState } from './types';
4
- export { buildMetroUrls, normalizeComputerHost, parseMetroQrPayload, } from './devConnectUtils';
5
- export { loadDevConnectPreferences, restoreDevConnectSettingsToDaemon, saveComputerHost, } from './devConnectPreferences';
4
+ export { buildMetroUrls, normalizeComputerHost, normalizePort, parseComputerTarget, parseMetroQrPayload, } from './devConnectUtils';
5
+ export { loadDevConnectPreferences, restoreDevConnectSettingsToDaemon, saveComputerHost, saveComputerTarget, saveDaemonPort, saveMetroPort, } from './devConnectPreferences';
6
6
  export declare const createDevConnectFeature: () => DebugFeature<DevConnectState>;
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/index.ts"],"names":[],"mappings":"AAKA,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,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,uBAAuB,QAAO,YAAY,CAAC,eAAe,CA2CtE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/index.ts"],"names":[],"mappings":"AAOA,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;AAEjC,eAAO,MAAM,uBAAuB,QAAO,YAAY,CAAC,eAAe,CAiDtE,CAAC"}
@@ -0,0 +1,17 @@
1
+ type MetroBundleFailureReason = 'invalid_target' | 'native_unavailable' | 'fetch_unavailable' | 'metro_unreachable' | 'native_error';
2
+ export type MetroBundleResult = {
3
+ ok: true;
4
+ hostPort: string;
5
+ } | {
6
+ ok: false;
7
+ reason: MetroBundleFailureReason;
8
+ error?: string;
9
+ statusUrl?: string;
10
+ };
11
+ export declare function isNativeDevConnectAvailable(): boolean;
12
+ export declare function applyMetroBundle(host: string, port: string): Promise<MetroBundleResult>;
13
+ export declare function resetMetroBundle(): Promise<MetroBundleResult | {
14
+ ok: true;
15
+ }>;
16
+ export {};
17
+ //# sourceMappingURL=nativeDevConnect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeDevConnect.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/nativeDevConnect.ts"],"names":[],"mappings":"AAUA,KAAK,wBAAwB,GACzB,gBAAgB,GAChB,oBAAoB,GACpB,mBAAmB,GACnB,mBAAmB,GACnB,cAAc,CAAC;AAEnB,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,wBAAwB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAsBxF,wBAAgB,2BAA2B,IAAI,OAAO,CAErD;AAmCD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8B7F;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAAC,CAiBlF"}
@@ -1 +1 @@
1
- {"version":3,"file":"platformDetect.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/platformDetect.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,IAAI,OAAO,CAuBrC"}
1
+ {"version":3,"file":"platformDetect.d.ts","sourceRoot":"","sources":["../../../../../src/features/devConnect/platformDetect.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,IAAI,OAAO,CAkBrC"}
@@ -1,7 +1,10 @@
1
1
  export interface DevConnectState {
2
2
  isSimulator: boolean;
3
3
  computerHost: string;
4
+ metroPort: string;
5
+ daemonPort: string;
4
6
  qrAvailable: boolean;
7
+ nativeMetroAvailable: boolean;
5
8
  streaming: boolean;
6
9
  }
7
10
  //# 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,WAAW,EAAE,OAAO,CAAC;IACrB,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,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;CACpB"}
@@ -7,5 +7,7 @@ export declare const KEYS: {
7
7
  readonly networkLogs: "@react_native_debug_toolkit/network_logs";
8
8
  readonly trackLogs: "@react_native_debug_toolkit/track_logs";
9
9
  readonly computerHost: "@react_native_debug_toolkit/computer_host";
10
+ readonly metroPort: "@react_native_debug_toolkit/metro_port";
11
+ readonly daemonPort: "@react_native_debug_toolkit/daemon_port";
10
12
  };
11
13
  //# sourceMappingURL=debugPreferences.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"debugPreferences.d.ts","sourceRoot":"","sources":["../../../../src/utils/debugPreferences.ts"],"names":[],"mappings":"AAgBA,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU7E;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWvE;AAED,eAAO,MAAM,IAAI;;;;;;;CAOP,CAAC"}
1
+ {"version":3,"file":"debugPreferences.d.ts","sourceRoot":"","sources":["../../../../src/utils/debugPreferences.ts"],"names":[],"mappings":"AAkCA,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB7E;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BvE;AAED,eAAO,MAAM,IAAI;;;;;;;;;CASP,CAAC"}