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 +1 @@
1
- {"version":3,"names":["_DaemonClient","require","_debugPreferences","_devConnectUtils","_platformDetect","loadDevConnectPreferences","storedHost","getPreference","KEYS","computerHost","normalizeComputerHost","saveComputerHost","value","normalized","setPreference","restoreDevConnectSettingsToDaemon","preferences","mode","isSimulator","daemonClient","configure","endpoint","deviceHost","token"],"sourceRoot":"../../../../src","sources":["features/devConnect/devConnectPreferences.ts"],"mappings":";;;;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAMO,eAAeI,yBAAyBA,CAAA,EAAmC;EAChF,MAAMC,UAAU,GAAG,MAAM,IAAAC,+BAAa,EAACC,sBAAI,CAACC,YAAY,CAAC;EACzD,OAAO;IACLA,YAAY,EAAEH,UAAU,GAAG,IAAAI,sCAAqB,EAACJ,UAAU,CAAC,IAAI,EAAE,GAAG;EACvE,CAAC;AACH;AAEO,eAAeK,gBAAgBA,CAACC,KAAa,EAA0B;EAC5E,MAAMC,UAAU,GAAG,IAAAH,sCAAqB,EAACE,KAAK,CAAC;EAC/C,IAAI,CAACC,UAAU,EAAE,OAAO,IAAI;EAC5B,MAAM,IAAAC,+BAAa,EAACN,sBAAI,CAACC,YAAY,EAAEI,UAAU,CAAC;EAClD,OAAOA,UAAU;AACnB;AAEO,eAAeE,iCAAiCA,CAAA,EAAkB;EACvE,MAAMC,WAAW,GAAG,MAAMX,yBAAyB,CAAC,CAAC;EACrD,MAAMY,IAAI,GAAG,IAAAC,2BAAW,EAAC,CAAC,GAAG,WAAW,GAAY,QAAiB;EACrEC,0BAAY,CAACC,SAAS,CAAC;IACrBH,IAAI;IACJI,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAEL,IAAI,KAAK,WAAW,GAAG,EAAE,GAAGD,WAAW,CAACP,YAAY;IAChEc,KAAK,EAAE;EACT,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["_DaemonClient","require","_debugPreferences","_devConnectUtils","_platformDetect","loadDevConnectPreferences","storedHost","getPreference","KEYS","computerHost","storedMetroPort","metroPort","storedDaemonPort","daemonPort","normalizeComputerHost","normalizePort","DEFAULT_METRO_PORT","DEFAULT_DAEMON_PORT","saveComputerTarget","value","target","parseComputerTarget","setPreference","saveComputerHost","saveMetroPort","normalized","saveDaemonPort","restoreDevConnectSettingsToDaemon","preferences","mode","isSimulator","daemonClient","configure","endpoint","deviceHost","buildDaemonDeviceHost","token"],"sourceRoot":"../../../../src","sources":["features/devConnect/devConnectPreferences.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AASA,IAAAG,eAAA,GAAAH,OAAA;AAQO,eAAeI,yBAAyBA,CAAA,EAAmC;EAChF,MAAMC,UAAU,GAAG,MAAM,IAAAC,+BAAa,EAACC,sBAAI,CAACC,YAAY,CAAC;EACzD,MAAMC,eAAe,GAAG,MAAM,IAAAH,+BAAa,EAACC,sBAAI,CAACG,SAAS,CAAC;EAC3D,MAAMC,gBAAgB,GAAG,MAAM,IAAAL,+BAAa,EAACC,sBAAI,CAACK,UAAU,CAAC;EAC7D,OAAO;IACLJ,YAAY,EAAEH,UAAU,GAAG,IAAAQ,sCAAqB,EAACR,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;IACvEK,SAAS,EAAED,eAAe,GAAG,IAAAK,8BAAa,EAACL,eAAe,CAAC,IAAIM,mCAAkB,GAAGA,mCAAkB;IACtGH,UAAU,EAAED,gBAAgB,GAAG,IAAAG,8BAAa,EAACH,gBAAgB,CAAC,IAAIK,oCAAmB,GAAGA;EAC1F,CAAC;AACH;AAEO,eAAeC,kBAAkBA,CAACC,KAAa,EAAwC;EAC5F,MAAMC,MAAM,GAAG,IAAAC,oCAAmB,EAACF,KAAK,CAAC;EACzC,IAAI,CAACC,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EAEA,MAAM,IAAAE,+BAAa,EAACd,sBAAI,CAACC,YAAY,EAAEW,MAAM,CAACX,YAAY,CAAC;EAC3D,MAAM,IAAAa,+BAAa,EAACd,sBAAI,CAACG,SAAS,EAAES,MAAM,CAACT,SAAS,CAAC;EACrD,OAAOS,MAAM;AACf;AAEO,eAAeG,gBAAgBA,CAACJ,KAAa,EAA0B;EAC5E,MAAMC,MAAM,GAAG,MAAMF,kBAAkB,CAACC,KAAK,CAAC;EAC9C,OAAOC,MAAM,EAAEX,YAAY,IAAI,IAAI;AACrC;AAEO,eAAee,aAAaA,CAACL,KAAa,EAA0B;EACzE,MAAMM,UAAU,GAAG,IAAAV,8BAAa,EAACI,KAAK,CAAC;EACvC,IAAI,CAACM,UAAU,EAAE;IACf,OAAO,IAAI;EACb;EAEA,MAAM,IAAAH,+BAAa,EAACd,sBAAI,CAACG,SAAS,EAAEc,UAAU,CAAC;EAC/C,OAAOA,UAAU;AACnB;AAEO,eAAeC,cAAcA,CAACP,KAAa,EAA0B;EAC1E,MAAMM,UAAU,GAAG,IAAAV,8BAAa,EAACI,KAAK,CAAC;EACvC,IAAI,CAACM,UAAU,EAAE;IACf,OAAO,IAAI;EACb;EAEA,MAAM,IAAAH,+BAAa,EAACd,sBAAI,CAACK,UAAU,EAAEY,UAAU,CAAC;EAChD,OAAOA,UAAU;AACnB;AAEO,eAAeE,iCAAiCA,CAAA,EAAkB;EACvE,MAAMC,WAAW,GAAG,MAAMvB,yBAAyB,CAAC,CAAC;EACrD,MAAMwB,IAAI,GAAG,IAAAC,2BAAW,EAAC,CAAC,GAAG,WAAW,GAAY,QAAiB;EACrEC,0BAAY,CAACC,SAAS,CAAC;IACrBH,IAAI;IACJI,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAEL,IAAI,KAAK,WAAW,GAC5B,EAAE,GACF,IAAAM,sCAAqB,EAACP,WAAW,CAACnB,YAAY,EAAEmB,WAAW,CAACf,UAAU,CAAC;IAC3EuB,KAAK,EAAE;EACT,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -3,15 +3,25 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.DEFAULT_METRO_PORT = exports.DEFAULT_DAEMON_PORT = void 0;
7
+ exports.buildDaemonDeviceHost = buildDaemonDeviceHost;
8
+ exports.buildMetroTarget = buildMetroTarget;
6
9
  exports.buildMetroUrls = buildMetroUrls;
7
10
  exports.normalizeComputerHost = normalizeComputerHost;
11
+ exports.normalizePort = normalizePort;
12
+ exports.parseComputerTarget = parseComputerTarget;
8
13
  exports.parseMetroQrPayload = parseMetroQrPayload;
9
- const METRO_PORT = '8081';
14
+ const DEFAULT_METRO_PORT = exports.DEFAULT_METRO_PORT = '8081';
15
+ const DEFAULT_DAEMON_PORT = exports.DEFAULT_DAEMON_PORT = '3799';
10
16
  function isValidIpv4(host) {
11
17
  const parts = host.split('.');
12
- if (parts.length !== 4) return false;
18
+ if (parts.length !== 4) {
19
+ return false;
20
+ }
13
21
  return parts.every(part => {
14
- if (!/^\d{1,3}$/.test(part)) return false;
22
+ if (!/^\d{1,3}$/.test(part)) {
23
+ return false;
24
+ }
15
25
  const value = Number(part);
16
26
  return value >= 0 && value <= 255 && String(value) === part;
17
27
  });
@@ -23,31 +33,105 @@ function toUrlInput(raw) {
23
33
  }
24
34
  return `http://${trimmed}`;
25
35
  }
26
- function normalizeComputerHost(raw) {
36
+ function parseHostAndPort(raw) {
27
37
  const trimmed = raw.trim();
28
- if (!trimmed) return null;
38
+ if (!trimmed) {
39
+ return null;
40
+ }
29
41
  try {
30
42
  const parsed = new URL(toUrlInput(trimmed));
31
- const host = parsed.hostname.trim();
32
- return isValidIpv4(host) ? host : null;
43
+ return {
44
+ host: parsed.hostname.trim(),
45
+ port: parsed.port.trim()
46
+ };
33
47
  } catch {
34
48
  return null;
35
49
  }
36
50
  }
37
- function buildMetroUrls(rawHost) {
38
- const host = normalizeComputerHost(rawHost);
39
- if (!host) return null;
51
+ function normalizeComputerHost(raw) {
52
+ const parsed = parseHostAndPort(raw);
53
+ if (!parsed) {
54
+ return null;
55
+ }
56
+ return isValidIpv4(parsed.host) ? parsed.host : null;
57
+ }
58
+ function normalizePort(raw) {
59
+ const trimmed = raw.trim();
60
+ if (!/^\d+$/.test(trimmed)) {
61
+ return null;
62
+ }
63
+ const value = Number(trimmed);
64
+ if (!Number.isInteger(value) || value < 1 || value > 65535) {
65
+ return null;
66
+ }
67
+ return String(value);
68
+ }
69
+ function parseComputerTarget(raw) {
70
+ const parsed = parseHostAndPort(raw);
71
+ if (!parsed || !isValidIpv4(parsed.host)) {
72
+ return null;
73
+ }
74
+ const metroPort = parsed.port ? normalizePort(parsed.port) : DEFAULT_METRO_PORT;
75
+ if (!metroPort) {
76
+ return null;
77
+ }
78
+ return {
79
+ computerHost: parsed.host,
80
+ metroPort
81
+ };
82
+ }
83
+ function normalizeMetroHost(rawHost) {
84
+ const parsed = parseHostAndPort(rawHost);
85
+ if (!parsed) {
86
+ return null;
87
+ }
88
+ if (parsed.host === 'localhost') {
89
+ return parsed.host;
90
+ }
91
+ return isValidIpv4(parsed.host) ? parsed.host : null;
92
+ }
93
+ function buildMetroTarget(rawHost, rawPort = DEFAULT_METRO_PORT) {
94
+ const host = normalizeMetroHost(rawHost);
95
+ if (!host) {
96
+ return null;
97
+ }
98
+ const port = normalizePort(rawPort);
99
+ if (!port) {
100
+ return null;
101
+ }
40
102
  return {
41
- expUrl: `exp://${host}:${METRO_PORT}`,
42
- httpUrl: `http://${host}:${METRO_PORT}`
103
+ host,
104
+ port,
105
+ hostPort: `${host}:${port}`,
106
+ statusUrl: `http://${host}:${port}/status`
107
+ };
108
+ }
109
+ function buildMetroUrls(rawHost, rawPort = DEFAULT_METRO_PORT) {
110
+ const target = buildMetroTarget(rawHost, rawPort);
111
+ if (!target) {
112
+ return null;
113
+ }
114
+ return {
115
+ expUrl: `exp://${target.hostPort}`,
116
+ httpUrl: `http://${target.hostPort}`
43
117
  };
44
118
  }
45
119
  function parseMetroQrPayload(payload) {
46
- const computerHost = normalizeComputerHost(payload);
47
- if (!computerHost) return null;
120
+ const target = parseComputerTarget(payload);
121
+ if (!target) {
122
+ return null;
123
+ }
48
124
  return {
49
- computerHost,
125
+ ...target,
50
126
  source: payload
51
127
  };
52
128
  }
129
+ function buildDaemonDeviceHost(computerHost, daemonPort) {
130
+ const host = normalizeComputerHost(computerHost);
131
+ if (!host) {
132
+ return '';
133
+ }
134
+ const port = normalizePort(daemonPort) ?? DEFAULT_DAEMON_PORT;
135
+ return port === DEFAULT_DAEMON_PORT ? host : `${host}:${port}`;
136
+ }
53
137
  //# 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;AAEO,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;AAEO,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;AAEO,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","exports","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":[]}
@@ -22,6 +22,18 @@ Object.defineProperty(exports, "normalizeComputerHost", {
22
22
  return _devConnectUtils.normalizeComputerHost;
23
23
  }
24
24
  });
25
+ Object.defineProperty(exports, "normalizePort", {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _devConnectUtils.normalizePort;
29
+ }
30
+ });
31
+ Object.defineProperty(exports, "parseComputerTarget", {
32
+ enumerable: true,
33
+ get: function () {
34
+ return _devConnectUtils.parseComputerTarget;
35
+ }
36
+ });
25
37
  Object.defineProperty(exports, "parseMetroQrPayload", {
26
38
  enumerable: true,
27
39
  get: function () {
@@ -40,18 +52,40 @@ Object.defineProperty(exports, "saveComputerHost", {
40
52
  return _devConnectPreferences.saveComputerHost;
41
53
  }
42
54
  });
55
+ Object.defineProperty(exports, "saveComputerTarget", {
56
+ enumerable: true,
57
+ get: function () {
58
+ return _devConnectPreferences.saveComputerTarget;
59
+ }
60
+ });
61
+ Object.defineProperty(exports, "saveDaemonPort", {
62
+ enumerable: true,
63
+ get: function () {
64
+ return _devConnectPreferences.saveDaemonPort;
65
+ }
66
+ });
67
+ Object.defineProperty(exports, "saveMetroPort", {
68
+ enumerable: true,
69
+ get: function () {
70
+ return _devConnectPreferences.saveMetroPort;
71
+ }
72
+ });
43
73
  var _DevConnectTab = require("./DevConnectTab");
44
74
  var _cameraKit = require("./cameraKit");
45
75
  var _devConnectPreferences = require("./devConnectPreferences");
76
+ var _devConnectUtils = require("./devConnectUtils");
77
+ var _nativeDevConnect = require("./nativeDevConnect");
46
78
  var _platformDetect = require("./platformDetect");
47
79
  var _DaemonClient = require("../../utils/DaemonClient");
48
- var _devConnectUtils = require("./devConnectUtils");
49
80
  const createDevConnectFeature = () => {
50
81
  const listeners = new Set();
51
82
  let state = {
52
83
  isSimulator: (0, _platformDetect.isSimulator)(),
53
84
  computerHost: '',
85
+ metroPort: _devConnectUtils.DEFAULT_METRO_PORT,
86
+ daemonPort: _devConnectUtils.DEFAULT_DAEMON_PORT,
54
87
  qrAvailable: (0, _cameraKit.isCameraKitAvailable)(),
88
+ nativeMetroAvailable: (0, _nativeDevConnect.isNativeDevConnectAvailable)(),
55
89
  streaming: _DaemonClient.daemonClient.isConnected()
56
90
  };
57
91
  const notify = () => {
@@ -69,7 +103,10 @@ const createDevConnectFeature = () => {
69
103
  (0, _devConnectPreferences.loadDevConnectPreferences)().then(preferences => {
70
104
  state = {
71
105
  ...state,
72
- computerHost: preferences.computerHost
106
+ computerHost: preferences.computerHost,
107
+ metroPort: preferences.metroPort,
108
+ daemonPort: preferences.daemonPort,
109
+ nativeMetroAvailable: (0, _nativeDevConnect.isNativeDevConnectAvailable)()
73
110
  };
74
111
  notify();
75
112
  }).catch(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["_DevConnectTab","require","_cameraKit","_devConnectPreferences","_platformDetect","_DaemonClient","_devConnectUtils","createDevConnectFeature","listeners","Set","state","isSimulator","computerHost","qrAvailable","isCameraKitAvailable","streaming","daemonClient","isConnected","notify","forEach","listener","name","label","renderContent","DevConnectTab","setup","loadDevConnectPreferences","then","preferences","catch","getSnapshot","cleanup","clear","subscribe","add","delete","exports"],"sourceRoot":"../../../../src","sources":["features/devConnect/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AAKA,IAAAK,gBAAA,GAAAL,OAAA;AAWO,MAAMM,uBAAuB,GAAGA,CAAA,KAAqC;EAC1E,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAuB,CAAC;EACjD,IAAIC,KAAsB,GAAG;IAC3BC,WAAW,EAAE,IAAAA,2BAAW,EAAC,CAAC;IAC1BC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,IAAAC,+BAAoB,EAAC,CAAC;IACnCC,SAAS,EAAEC,0BAAY,CAACC,WAAW,CAAC;EACtC,CAAC;EAED,MAAMC,MAAM,GAAGA,CAAA,KAAM;IACnBR,KAAK,GAAG;MACN,GAAGA,KAAK;MACRK,SAAS,EAAEC,0BAAY,CAACC,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,EAAEC,4BAAa;IAC5BC,KAAKA,CAAA,EAAG;MACN,IAAAC,gDAAyB,EAAC,CAAC,CAACC,IAAI,CAAEC,WAAW,IAAK;QAChDlB,KAAK,GAAG;UACN,GAAGA,KAAK;UACRE,YAAY,EAAEgB,WAAW,CAAChB;QAC5B,CAAC;QACDM,MAAM,CAAC,CAAC;MACV,CAAC,CAAC,CAACW,KAAK,CAAC,MAAM;QACbX,MAAM,CAAC,CAAC;MACV,CAAC,CAAC;IACJ,CAAC;IACDY,WAAW,EAAEA,CAAA,KAAMpB,KAAK;IACxBqB,OAAOA,CAAA,EAAG;MACRvB,SAAS,CAACwB,KAAK,CAAC,CAAC;IACnB,CAAC;IACDC,SAASA,CAACb,QAAQ,EAAE;MAClBZ,SAAS,CAAC0B,GAAG,CAACd,QAAQ,CAAC;MACvB,OAAO,MAAM;QACXZ,SAAS,CAAC2B,MAAM,CAACf,QAAQ,CAAC;MAC5B,CAAC;IACH;EACF,CAAC;AACH,CAAC;AAACgB,OAAA,CAAA7B,uBAAA,GAAAA,uBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_DevConnectTab","require","_cameraKit","_devConnectPreferences","_devConnectUtils","_nativeDevConnect","_platformDetect","_DaemonClient","createDevConnectFeature","listeners","Set","state","isSimulator","computerHost","metroPort","DEFAULT_METRO_PORT","daemonPort","DEFAULT_DAEMON_PORT","qrAvailable","isCameraKitAvailable","nativeMetroAvailable","isNativeDevConnectAvailable","streaming","daemonClient","isConnected","notify","forEach","listener","name","label","renderContent","DevConnectTab","setup","loadDevConnectPreferences","then","preferences","catch","getSnapshot","cleanup","clear","subscribe","add","delete","exports"],"sourceRoot":"../../../../src","sources":["features/devConnect/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AAqBO,MAAMO,uBAAuB,GAAGA,CAAA,KAAqC;EAC1E,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAuB,CAAC;EACjD,IAAIC,KAAsB,GAAG;IAC3BC,WAAW,EAAE,IAAAA,2BAAW,EAAC,CAAC;IAC1BC,YAAY,EAAE,EAAE;IAChBC,SAAS,EAAEC,mCAAkB;IAC7BC,UAAU,EAAEC,oCAAmB;IAC/BC,WAAW,EAAE,IAAAC,+BAAoB,EAAC,CAAC;IACnCC,oBAAoB,EAAE,IAAAC,6CAA2B,EAAC,CAAC;IACnDC,SAAS,EAAEC,0BAAY,CAACC,WAAW,CAAC;EACtC,CAAC;EAED,MAAMC,MAAM,GAAGA,CAAA,KAAM;IACnBd,KAAK,GAAG;MACN,GAAGA,KAAK;MACRW,SAAS,EAAEC,0BAAY,CAACC,WAAW,CAAC;IACtC,CAAC;IACDf,SAAS,CAACiB,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EAC7C,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,YAAY;IAClBC,KAAK,EAAE,YAAY;IACnBC,aAAa,EAAEC,4BAAa;IAC5BC,KAAKA,CAAA,EAAG;MACN,IAAAC,gDAAyB,EAAC,CAAC,CAACC,IAAI,CAAEC,WAAW,IAAK;QAChDxB,KAAK,GAAG;UACN,GAAGA,KAAK;UACRE,YAAY,EAAEsB,WAAW,CAACtB,YAAY;UACtCC,SAAS,EAAEqB,WAAW,CAACrB,SAAS;UAChCE,UAAU,EAAEmB,WAAW,CAACnB,UAAU;UAClCI,oBAAoB,EAAE,IAAAC,6CAA2B,EAAC;QACpD,CAAC;QACDI,MAAM,CAAC,CAAC;MACV,CAAC,CAAC,CAACW,KAAK,CAAC,MAAM;QACbX,MAAM,CAAC,CAAC;MACV,CAAC,CAAC;IACJ,CAAC;IACDY,WAAW,EAAEA,CAAA,KAAM1B,KAAK;IACxB2B,OAAOA,CAAA,EAAG;MACR7B,SAAS,CAAC8B,KAAK,CAAC,CAAC;IACnB,CAAC;IACDC,SAASA,CAACb,QAAQ,EAAE;MAClBlB,SAAS,CAACgC,GAAG,CAACd,QAAQ,CAAC;MACvB,OAAO,MAAM;QACXlB,SAAS,CAACiC,MAAM,CAACf,QAAQ,CAAC;MAC5B,CAAC;IACH;EACF,CAAC;AACH,CAAC;AAACgB,OAAA,CAAAnC,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.applyMetroBundle = applyMetroBundle;
7
+ exports.isNativeDevConnectAvailable = isNativeDevConnectAvailable;
8
+ exports.resetMetroBundle = resetMetroBundle;
9
+ var _reactNative = require("react-native");
10
+ var _devConnectUtils = require("./devConnectUtils");
11
+ function getNativeModule() {
12
+ const nativeModule = _reactNative.NativeModules.DebugToolkitDevConnect;
13
+ if (nativeModule && typeof nativeModule.applyMetroHost === 'function' && typeof nativeModule.resetMetroHost === 'function') {
14
+ return nativeModule;
15
+ }
16
+ return null;
17
+ }
18
+ function isNativeDevConnectAvailable() {
19
+ return getNativeModule() !== null;
20
+ }
21
+ async function checkMetroStatus(statusUrl) {
22
+ const fetchImpl = globalThis.fetch;
23
+ if (!fetchImpl) {
24
+ return {
25
+ ok: false,
26
+ reason: 'fetch_unavailable',
27
+ statusUrl,
28
+ error: 'global fetch is not available'
29
+ };
30
+ }
31
+ try {
32
+ const response = await fetchImpl(statusUrl, {
33
+ method: 'GET'
34
+ });
35
+ const body = typeof response.text === 'function' ? await response.text() : '';
36
+ if (response.ok === false || !body.includes('packager-status:running')) {
37
+ return {
38
+ ok: false,
39
+ reason: 'metro_unreachable',
40
+ statusUrl,
41
+ error: body || 'Metro status endpoint did not report running'
42
+ };
43
+ }
44
+ return null;
45
+ } catch (error) {
46
+ return {
47
+ ok: false,
48
+ reason: 'metro_unreachable',
49
+ statusUrl,
50
+ error: error instanceof Error ? error.message : String(error)
51
+ };
52
+ }
53
+ }
54
+ async function applyMetroBundle(host, port) {
55
+ const target = (0, _devConnectUtils.buildMetroTarget)(host, port);
56
+ if (!target) {
57
+ return {
58
+ ok: false,
59
+ reason: 'invalid_target'
60
+ };
61
+ }
62
+ const nativeModule = getNativeModule();
63
+ if (!nativeModule) {
64
+ return {
65
+ ok: false,
66
+ reason: 'native_unavailable'
67
+ };
68
+ }
69
+ const statusError = await checkMetroStatus(target.statusUrl);
70
+ if (statusError) {
71
+ return statusError;
72
+ }
73
+ try {
74
+ const result = await nativeModule.applyMetroHost(target.hostPort);
75
+ _reactNative.DevSettings.reload?.('DebugToolkit DevConnect Metro host changed');
76
+ return {
77
+ ok: true,
78
+ hostPort: result && typeof result.hostPort === 'string' ? result.hostPort : target.hostPort
79
+ };
80
+ } catch (error) {
81
+ return {
82
+ ok: false,
83
+ reason: 'native_error',
84
+ error: error instanceof Error ? error.message : String(error)
85
+ };
86
+ }
87
+ }
88
+ async function resetMetroBundle() {
89
+ const nativeModule = getNativeModule();
90
+ if (!nativeModule) {
91
+ return {
92
+ ok: false,
93
+ reason: 'native_unavailable'
94
+ };
95
+ }
96
+ try {
97
+ await nativeModule.resetMetroHost();
98
+ _reactNative.DevSettings.reload?.('DebugToolkit DevConnect Metro host reset');
99
+ return {
100
+ ok: true
101
+ };
102
+ } catch (error) {
103
+ return {
104
+ ok: false,
105
+ reason: 'native_error',
106
+ error: error instanceof Error ? error.message : String(error)
107
+ };
108
+ }
109
+ }
110
+ //# sourceMappingURL=nativeDevConnect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_devConnectUtils","getNativeModule","nativeModule","NativeModules","DebugToolkitDevConnect","applyMetroHost","resetMetroHost","isNativeDevConnectAvailable","checkMetroStatus","statusUrl","fetchImpl","globalThis","fetch","ok","reason","error","response","method","body","text","includes","Error","message","String","applyMetroBundle","host","port","target","buildMetroTarget","statusError","result","hostPort","DevSettings","reload","resetMetroBundle"],"sourceRoot":"../../../../src","sources":["features/devConnect/nativeDevConnect.ts"],"mappings":"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","ignoreList":[]}
@@ -9,21 +9,17 @@ function isSimulator() {
9
9
  const {
10
10
  OS
11
11
  } = _reactNative.Platform;
12
+ const constants = _reactNative.Platform.constants ?? {};
12
13
  if (OS === 'android') {
13
- const constants = _reactNative.Platform.constants;
14
- if (constants.isEmulator === true) return true;
15
- const model = String(constants.Model ?? '').toLowerCase();
14
+ if (constants.isEmulator === true) {
15
+ return true;
16
+ }
17
+ const model = String(constants.Model ?? constants.model ?? '').toLowerCase();
16
18
  return model.includes('sdk') || model.includes('emulator') || model.includes('google_sdk');
17
19
  }
18
20
  if (OS === 'ios') {
19
- // NativeModules.KCKFCSupportManager is absent on simulator,
20
- // but the most reliable check is the DeviceInfo model name.
21
- const deviceInfo = _reactNative.NativeModules.DeviceInfo ?? _reactNative.NativeModules.PlatformConstants;
22
- if (deviceInfo) {
23
- const model = String(deviceInfo.model ?? '').toLowerCase();
24
- if (model.includes('simulator')) return true;
25
- }
26
- return false;
21
+ const model = String(constants.model ?? '').toLowerCase();
22
+ return model.includes('simulator');
27
23
  }
28
24
  return false;
29
25
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","isSimulator","OS","Platform","constants","isEmulator","model","String","Model","toLowerCase","includes","deviceInfo","NativeModules","DeviceInfo","PlatformConstants"],"sourceRoot":"../../../../src","sources":["features/devConnect/platformDetect.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,SAASC,WAAWA,CAAA,EAAY;EACrC,MAAM;IAAEC;EAAG,CAAC,GAAGC,qBAAQ;EAEvB,IAAID,EAAE,KAAK,SAAS,EAAE;IACpB,MAAME,SAAS,GAAGD,qBAAQ,CAACC,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,IAAIR,EAAE,KAAK,KAAK,EAAE;IAChB;IACA;IACA,MAAMS,UAAU,GAAGC,0BAAa,CAACC,UAAU,IACtCD,0BAAa,CAACE,iBAAiB;IACpC,IAAIH,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":["_reactNative","require","isSimulator","OS","Platform","constants","isEmulator","model","String","Model","toLowerCase","includes"],"sourceRoot":"../../../../src","sources":["features/devConnect/platformDetect.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,SAASC,WAAWA,CAAA,EAAY;EACrC,MAAM;IAAEC;EAAG,CAAC,GAAGC,qBAAQ;EACvB,MAAMC,SAAS,GAAID,qBAAQ,CAACC,SAAS,IAAI,CAAC,CAA6B;EAEvE,IAAIF,EAAE,KAAK,SAAS,EAAE;IACpB,IAAIE,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,IAAIR,EAAE,KAAK,KAAK,EAAE;IAChB,MAAMI,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":[]}
@@ -6,14 +6,27 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.KEYS = void 0;
7
7
  exports.getPreference = getPreference;
8
8
  exports.setPreference = setPreference;
9
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
-
11
9
  const memoryStore = new Map();
12
10
  function loadAsyncStorage() {
13
11
  try {
14
- // eslint-disable-next-line @typescript-eslint/no-require-imports
15
12
  const mod = require('@react-native-async-storage/async-storage');
16
- if (mod && typeof mod.getItem === 'function') return mod;
13
+ if (mod && typeof mod.getItem === 'function') {
14
+ return mod;
15
+ }
16
+ return null;
17
+ } catch {
18
+ return null;
19
+ }
20
+ }
21
+ function loadNativePreferences() {
22
+ try {
23
+ const {
24
+ NativeModules
25
+ } = require('react-native');
26
+ const mod = NativeModules?.DebugToolkitDevConnect;
27
+ if (mod && typeof mod.getPreference === 'function' && typeof mod.setPreference === 'function') {
28
+ return mod;
29
+ }
17
30
  return null;
18
31
  } catch {
19
32
  return null;
@@ -25,6 +38,15 @@ async function setPreference(key, value) {
25
38
  if (AsyncStorage) {
26
39
  try {
27
40
  await AsyncStorage.setItem(key, value);
41
+ return;
42
+ } catch {
43
+ // degrade to memory only
44
+ }
45
+ }
46
+ const nativePreferences = loadNativePreferences();
47
+ if (nativePreferences) {
48
+ try {
49
+ await nativePreferences.setPreference(key, value);
28
50
  } catch {
29
51
  // degrade to memory only
30
52
  }
@@ -35,7 +57,20 @@ async function getPreference(key) {
35
57
  if (AsyncStorage) {
36
58
  try {
37
59
  const val = await AsyncStorage.getItem(key);
38
- if (val !== null) return val;
60
+ if (val !== null) {
61
+ return val;
62
+ }
63
+ } catch {
64
+ // fall through to memory
65
+ }
66
+ }
67
+ const nativePreferences = loadNativePreferences();
68
+ if (nativePreferences) {
69
+ try {
70
+ const val = await nativePreferences.getPreference(key);
71
+ if (val !== null) {
72
+ return val;
73
+ }
39
74
  } catch {
40
75
  // fall through to memory
41
76
  }
@@ -48,6 +83,8 @@ const KEYS = exports.KEYS = {
48
83
  consoleLogs: '@react_native_debug_toolkit/console_logs',
49
84
  networkLogs: '@react_native_debug_toolkit/network_logs',
50
85
  trackLogs: '@react_native_debug_toolkit/track_logs',
51
- computerHost: '@react_native_debug_toolkit/computer_host'
86
+ computerHost: '@react_native_debug_toolkit/computer_host',
87
+ metroPort: '@react_native_debug_toolkit/metro_port',
88
+ daemonPort: '@react_native_debug_toolkit/daemon_port'
52
89
  };
53
90
  //# 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","exports","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;AAEO,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;AAEO,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;AAEO,MAAMQ,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,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","exports","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;AAEO,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;AAEO,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;AAEO,MAAMQ,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,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":[]}