react-native-mcp-kit 3.0.1 → 4.1.0

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 (195) hide show
  1. package/README.md +25 -13
  2. package/dist/babel/testIdPlugin.d.ts.map +1 -1
  3. package/dist/babel/testIdPlugin.js +22 -13
  4. package/dist/babel/testIdPlugin.js.map +1 -1
  5. package/dist/bin/ios-hid +0 -0
  6. package/dist/client/contexts/McpContext/McpProvider.d.ts.map +1 -1
  7. package/dist/client/contexts/McpContext/McpProvider.js +5 -5
  8. package/dist/client/contexts/McpContext/McpProvider.js.map +1 -1
  9. package/dist/client/core/McpClient.d.ts.map +1 -1
  10. package/dist/client/core/McpClient.js +42 -34
  11. package/dist/client/core/McpClient.js.map +1 -1
  12. package/dist/modules/alert/alert.d.ts.map +1 -1
  13. package/dist/modules/alert/alert.js +2 -5
  14. package/dist/modules/alert/alert.js.map +1 -1
  15. package/dist/modules/console/console.d.ts.map +1 -1
  16. package/dist/modules/console/console.js +32 -107
  17. package/dist/modules/console/console.js.map +1 -1
  18. package/dist/modules/console/types.d.ts +1 -0
  19. package/dist/modules/console/types.d.ts.map +1 -1
  20. package/dist/modules/device/device.d.ts.map +1 -1
  21. package/dist/modules/device/device.js +224 -133
  22. package/dist/modules/device/device.js.map +1 -1
  23. package/dist/modules/errors/errors.d.ts.map +1 -1
  24. package/dist/modules/errors/errors.js +19 -36
  25. package/dist/modules/errors/errors.js.map +1 -1
  26. package/dist/modules/fiberTree/children.d.ts +49 -0
  27. package/dist/modules/fiberTree/children.d.ts.map +1 -0
  28. package/dist/modules/fiberTree/children.js +182 -0
  29. package/dist/modules/fiberTree/children.js.map +1 -0
  30. package/dist/modules/fiberTree/constants.d.ts +13 -0
  31. package/dist/modules/fiberTree/constants.d.ts.map +1 -0
  32. package/dist/modules/fiberTree/constants.js +24 -0
  33. package/dist/modules/fiberTree/constants.js.map +1 -0
  34. package/dist/modules/fiberTree/fiberTree.d.ts +3 -6
  35. package/dist/modules/fiberTree/fiberTree.d.ts.map +1 -1
  36. package/dist/modules/fiberTree/fiberTree.js +219 -1080
  37. package/dist/modules/fiberTree/fiberTree.js.map +1 -1
  38. package/dist/modules/fiberTree/finder.d.ts +60 -0
  39. package/dist/modules/fiberTree/finder.d.ts.map +1 -0
  40. package/dist/modules/fiberTree/finder.js +107 -0
  41. package/dist/modules/fiberTree/finder.js.map +1 -0
  42. package/dist/modules/fiberTree/hooks.d.ts +103 -0
  43. package/dist/modules/fiberTree/hooks.d.ts.map +1 -0
  44. package/dist/modules/fiberTree/hooks.js +532 -0
  45. package/dist/modules/fiberTree/hooks.js.map +1 -0
  46. package/dist/modules/fiberTree/projection.d.ts +49 -0
  47. package/dist/modules/fiberTree/projection.d.ts.map +1 -0
  48. package/dist/modules/fiberTree/projection.js +82 -0
  49. package/dist/modules/fiberTree/projection.js.map +1 -0
  50. package/dist/modules/fiberTree/query.d.ts +56 -0
  51. package/dist/modules/fiberTree/query.d.ts.map +1 -0
  52. package/dist/modules/fiberTree/query.js +151 -0
  53. package/dist/modules/fiberTree/query.js.map +1 -0
  54. package/dist/modules/fiberTree/redact.d.ts +24 -0
  55. package/dist/modules/fiberTree/redact.d.ts.map +1 -0
  56. package/dist/modules/fiberTree/redact.js +51 -0
  57. package/dist/modules/fiberTree/redact.js.map +1 -0
  58. package/dist/modules/fiberTree/types.d.ts +7 -0
  59. package/dist/modules/fiberTree/types.d.ts.map +1 -1
  60. package/dist/modules/fiberTree/utils.d.ts +8 -2
  61. package/dist/modules/fiberTree/utils.d.ts.map +1 -1
  62. package/dist/modules/fiberTree/utils.js +79 -78
  63. package/dist/modules/fiberTree/utils.js.map +1 -1
  64. package/dist/modules/fiberTree/viewport.d.ts +28 -0
  65. package/dist/modules/fiberTree/viewport.d.ts.map +1 -0
  66. package/dist/modules/fiberTree/viewport.js +50 -0
  67. package/dist/modules/fiberTree/viewport.js.map +1 -0
  68. package/dist/modules/fiberTree/waitFor.d.ts +52 -0
  69. package/dist/modules/fiberTree/waitFor.d.ts.map +1 -0
  70. package/dist/modules/fiberTree/waitFor.js +98 -0
  71. package/dist/modules/fiberTree/waitFor.js.map +1 -0
  72. package/dist/modules/logBox/logBox.d.ts.map +1 -1
  73. package/dist/modules/logBox/logBox.js +59 -66
  74. package/dist/modules/logBox/logBox.js.map +1 -1
  75. package/dist/modules/navigation/navigation.d.ts.map +1 -1
  76. package/dist/modules/navigation/navigation.js +115 -114
  77. package/dist/modules/navigation/navigation.js.map +1 -1
  78. package/dist/modules/network/network.d.ts.map +1 -1
  79. package/dist/modules/network/network.js +78 -197
  80. package/dist/modules/network/network.js.map +1 -1
  81. package/dist/modules/network/types.d.ts +23 -27
  82. package/dist/modules/network/types.d.ts.map +1 -1
  83. package/dist/modules/reactQuery/reactQuery.d.ts.map +1 -1
  84. package/dist/modules/reactQuery/reactQuery.js +46 -52
  85. package/dist/modules/reactQuery/reactQuery.js.map +1 -1
  86. package/dist/modules/storage/storage.d.ts.map +1 -1
  87. package/dist/modules/storage/storage.js +20 -3
  88. package/dist/modules/storage/storage.js.map +1 -1
  89. package/dist/server/bridge.d.ts +1 -0
  90. package/dist/server/bridge.d.ts.map +1 -1
  91. package/dist/server/bridge.js +1 -0
  92. package/dist/server/bridge.js.map +1 -1
  93. package/dist/server/host/coredevice/dtx.d.ts +79 -0
  94. package/dist/server/host/coredevice/dtx.d.ts.map +1 -0
  95. package/dist/server/host/coredevice/dtx.js +453 -0
  96. package/dist/server/host/coredevice/dtx.js.map +1 -0
  97. package/dist/server/host/coredevice/nska.d.ts +6 -0
  98. package/dist/server/host/coredevice/nska.d.ts.map +1 -0
  99. package/dist/server/host/coredevice/nska.js +277 -0
  100. package/dist/server/host/coredevice/nska.js.map +1 -0
  101. package/dist/server/host/coredevice/rsd.d.ts +20 -0
  102. package/dist/server/host/coredevice/rsd.d.ts.map +1 -0
  103. package/dist/server/host/coredevice/rsd.js +244 -0
  104. package/dist/server/host/coredevice/rsd.js.map +1 -0
  105. package/dist/server/host/coredevice/screenshot.d.ts +11 -0
  106. package/dist/server/host/coredevice/screenshot.d.ts.map +1 -0
  107. package/dist/server/host/coredevice/screenshot.js +84 -0
  108. package/dist/server/host/coredevice/screenshot.js.map +1 -0
  109. package/dist/server/host/coredevice/tunnel.d.ts +29 -0
  110. package/dist/server/host/coredevice/tunnel.d.ts.map +1 -0
  111. package/dist/server/host/coredevice/tunnel.js +222 -0
  112. package/dist/server/host/coredevice/tunnel.js.map +1 -0
  113. package/dist/server/host/coredevice/xpc.d.ts +21 -0
  114. package/dist/server/host/coredevice/xpc.d.ts.map +1 -0
  115. package/dist/server/host/coredevice/xpc.js +318 -0
  116. package/dist/server/host/coredevice/xpc.js.map +1 -0
  117. package/dist/server/host/deviceResolver.d.ts +8 -0
  118. package/dist/server/host/deviceResolver.d.ts.map +1 -1
  119. package/dist/server/host/deviceResolver.js +128 -62
  120. package/dist/server/host/deviceResolver.js.map +1 -1
  121. package/dist/server/host/tools/capture.d.ts.map +1 -1
  122. package/dist/server/host/tools/capture.js +26 -0
  123. package/dist/server/host/tools/capture.js.map +1 -1
  124. package/dist/server/host/tools/input.js +2 -2
  125. package/dist/server/host/tools/input.js.map +1 -1
  126. package/dist/server/mcpServer.d.ts.map +1 -1
  127. package/dist/server/mcpServer.js +44 -3
  128. package/dist/server/mcpServer.js.map +1 -1
  129. package/dist/server/metro/eventCapture.d.ts +0 -2
  130. package/dist/server/metro/eventCapture.d.ts.map +1 -1
  131. package/dist/server/metro/eventCapture.js +1 -2
  132. package/dist/server/metro/eventCapture.js.map +1 -1
  133. package/dist/server/metro/tools/events.d.ts.map +1 -1
  134. package/dist/server/metro/tools/events.js +11 -11
  135. package/dist/server/metro/tools/events.js.map +1 -1
  136. package/dist/shared/projection/projectValue.d.ts +90 -0
  137. package/dist/shared/projection/projectValue.d.ts.map +1 -0
  138. package/dist/shared/projection/projectValue.js +322 -0
  139. package/dist/shared/projection/projectValue.js.map +1 -0
  140. package/dist/shared/projection/redact.d.ts +31 -0
  141. package/dist/shared/projection/redact.d.ts.map +1 -0
  142. package/dist/shared/projection/redact.js +78 -0
  143. package/dist/shared/projection/redact.js.map +1 -0
  144. package/dist/shared/projection/resolvePath.d.ts +45 -0
  145. package/dist/shared/projection/resolvePath.d.ts.map +1 -0
  146. package/dist/shared/projection/resolvePath.js +211 -0
  147. package/dist/shared/projection/resolvePath.js.map +1 -0
  148. package/dist/shared/protocol.d.ts +2 -1
  149. package/dist/shared/protocol.d.ts.map +1 -1
  150. package/dist/shared/protocol.js +1 -1
  151. package/dist/shared/rn/core.d.ts +48 -0
  152. package/dist/shared/rn/core.d.ts.map +1 -0
  153. package/dist/shared/rn/core.js +100 -0
  154. package/dist/shared/rn/core.js.map +1 -0
  155. package/dist/shared/rn/deviceInfo.d.ts +40 -0
  156. package/dist/shared/rn/deviceInfo.d.ts.map +1 -0
  157. package/dist/shared/rn/deviceInfo.js +78 -0
  158. package/dist/shared/rn/deviceInfo.js.map +1 -0
  159. package/package.json +4 -2
  160. package/dist/client/hooks/useMcpState.d.ts +0 -3
  161. package/dist/client/hooks/useMcpState.d.ts.map +0 -1
  162. package/dist/client/hooks/useMcpState.js +0 -20
  163. package/dist/client/hooks/useMcpState.js.map +0 -1
  164. package/dist/server/canonicalize.d.ts +0 -8
  165. package/dist/server/canonicalize.d.ts.map +0 -1
  166. package/dist/server/canonicalize.js +0 -23
  167. package/dist/server/canonicalize.js.map +0 -1
  168. package/dist/server/host/modules/screenshot.d.ts +0 -4
  169. package/dist/server/host/modules/screenshot.d.ts.map +0 -1
  170. package/dist/server/host/modules/screenshot.js +0 -615
  171. package/dist/server/host/modules/screenshot.js.map +0 -1
  172. package/dist/server/host/tools/connectionStatus.d.ts +0 -9
  173. package/dist/server/host/tools/connectionStatus.d.ts.map +0 -1
  174. package/dist/server/host/tools/connectionStatus.js +0 -39
  175. package/dist/server/host/tools/connectionStatus.js.map +0 -1
  176. package/dist/server/host/tools/symbolicate.d.ts +0 -3
  177. package/dist/server/host/tools/symbolicate.d.ts.map +0 -1
  178. package/dist/server/host/tools/symbolicate.js +0 -209
  179. package/dist/server/host/tools/symbolicate.js.map +0 -1
  180. package/dist/server/host/wda.d.ts +0 -15
  181. package/dist/server/host/wda.d.ts.map +0 -1
  182. package/dist/server/host/wda.js +0 -100
  183. package/dist/server/host/wda.js.map +0 -1
  184. package/dist/server/inputSchemaToZod.d.ts +0 -19
  185. package/dist/server/inputSchemaToZod.d.ts.map +0 -1
  186. package/dist/server/inputSchemaToZod.js +0 -89
  187. package/dist/server/inputSchemaToZod.js.map +0 -1
  188. package/dist/server/metro/tools/openUrl.d.ts +0 -3
  189. package/dist/server/metro/tools/openUrl.d.ts.map +0 -1
  190. package/dist/server/metro/tools/openUrl.js +0 -71
  191. package/dist/server/metro/tools/openUrl.js.map +0 -1
  192. package/dist/shared/slice.d.ts +0 -16
  193. package/dist/shared/slice.d.ts.map +0 -1
  194. package/dist/shared/slice.js +0 -29
  195. package/dist/shared/slice.js.map +0 -1
@@ -0,0 +1,45 @@
1
+ /**
2
+ * JS-style path parser/resolver. Path examples:
3
+ * foo.bar — object key access
4
+ * foo[3] — array index
5
+ * foo[1:5] — array/object slice (Python-style)
6
+ * foo[3:] — slice from 3 to end
7
+ * foo[:5] — slice from start to 5
8
+ * foo["key.with.dots"] — bracket-quoted object key
9
+ * foo['k'] — single-quoted also accepted
10
+ *
11
+ * Used by `projectValue` to navigate inside a response before applying
12
+ * shape rendering. After a slice, chained access has special semantics:
13
+ * - array slice + `.key` → map (apply to every element)
14
+ * - array slice + `[N]` → pick Nth element of the window
15
+ * - object slice + `.key` → take key from sub-object (no map)
16
+ * - object slice + `[N]` → Nth key in window (insertion order)
17
+ */
18
+ export type PathSegment = {
19
+ kind: 'key';
20
+ name: string;
21
+ } | {
22
+ index: number;
23
+ kind: 'index';
24
+ } | {
25
+ kind: 'slice';
26
+ end?: number;
27
+ start?: number;
28
+ };
29
+ export type PathResult = {
30
+ ok: true;
31
+ value: unknown;
32
+ } | {
33
+ actual: unknown;
34
+ error: string;
35
+ ok: false;
36
+ validUpTo: string;
37
+ };
38
+ export declare const parsePath: (path: string) => PathSegment[];
39
+ /**
40
+ * Walk a path through a value tree. Slice + chained access has the semantics
41
+ * documented in this file's header. Returns either the resolved value or a
42
+ * detailed failure pointing at where the path broke.
43
+ */
44
+ export declare const resolvePath: (root: unknown, path: string) => PathResult;
45
+ //# sourceMappingURL=resolvePath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvePath.d.ts","sourceRoot":"","sources":["../../../src/shared/projection/resolvePath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,MAAM,MAAM,UAAU,GAClB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC5B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,WAAW,EA4BnD,CAAC;AAqDF;;;;GAIG;AACH,eAAO,MAAM,WAAW,SAAU,OAAO,QAAQ,MAAM,KAAG,UAgCzD,CAAC"}
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ /**
3
+ * JS-style path parser/resolver. Path examples:
4
+ * foo.bar — object key access
5
+ * foo[3] — array index
6
+ * foo[1:5] — array/object slice (Python-style)
7
+ * foo[3:] — slice from 3 to end
8
+ * foo[:5] — slice from start to 5
9
+ * foo["key.with.dots"] — bracket-quoted object key
10
+ * foo['k'] — single-quoted also accepted
11
+ *
12
+ * Used by `projectValue` to navigate inside a response before applying
13
+ * shape rendering. After a slice, chained access has special semantics:
14
+ * - array slice + `.key` → map (apply to every element)
15
+ * - array slice + `[N]` → pick Nth element of the window
16
+ * - object slice + `.key` → take key from sub-object (no map)
17
+ * - object slice + `[N]` → Nth key in window (insertion order)
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.resolvePath = exports.parsePath = void 0;
21
+ const parsePath = (path) => {
22
+ const out = [];
23
+ let i = 0;
24
+ const n = path.length;
25
+ while (i < n) {
26
+ const ch = path[i];
27
+ if (ch === '.') {
28
+ i += 1;
29
+ continue;
30
+ }
31
+ if (ch === '[') {
32
+ // bracket form — could be index, slice, or quoted key
33
+ const closeIdx = findMatchingBracket(path, i);
34
+ if (closeIdx === -1)
35
+ throw new Error(`Unbalanced bracket at position ${i}`);
36
+ const inner = path.slice(i + 1, closeIdx);
37
+ out.push(parseBracketContents(inner));
38
+ i = closeIdx + 1;
39
+ continue;
40
+ }
41
+ // bare identifier — read until next `.` or `[`
42
+ let j = i;
43
+ while (j < n && path[j] !== '.' && path[j] !== '[')
44
+ j += 1;
45
+ const name = path.slice(i, j);
46
+ if (name === '')
47
+ throw new Error(`Empty key at position ${i}`);
48
+ out.push({ kind: 'key', name });
49
+ i = j;
50
+ }
51
+ return out;
52
+ };
53
+ exports.parsePath = parsePath;
54
+ const findMatchingBracket = (path, openIdx) => {
55
+ let inSingle = false;
56
+ let inDouble = false;
57
+ for (let i = openIdx + 1; i < path.length; i++) {
58
+ const c = path[i];
59
+ if (c === '\\' && i + 1 < path.length) {
60
+ i += 1;
61
+ continue;
62
+ }
63
+ if (!inDouble && c === "'")
64
+ inSingle = !inSingle;
65
+ else if (!inSingle && c === '"')
66
+ inDouble = !inDouble;
67
+ else if (!inSingle && !inDouble && c === ']')
68
+ return i;
69
+ }
70
+ return -1;
71
+ };
72
+ const parseBracketContents = (inner) => {
73
+ const trimmed = inner.trim();
74
+ // quoted key
75
+ if ((trimmed.startsWith('"') && trimmed.endsWith('"')) ||
76
+ (trimmed.startsWith("'") && trimmed.endsWith("'"))) {
77
+ const raw = trimmed.slice(1, -1);
78
+ return { kind: 'key', name: unescape(raw) };
79
+ }
80
+ // slice — contains ':'
81
+ if (trimmed.includes(':')) {
82
+ const parts = trimmed.split(':');
83
+ const startStr = parts[0] ?? '';
84
+ const endStr = parts[1] ?? '';
85
+ const start = startStr.trim() === '' ? undefined : Number(startStr);
86
+ const end = endStr.trim() === '' ? undefined : Number(endStr);
87
+ if ((start !== undefined && Number.isNaN(start)) || (end !== undefined && Number.isNaN(end))) {
88
+ throw new Error(`Invalid slice "${inner}"`);
89
+ }
90
+ return { end, kind: 'slice', start };
91
+ }
92
+ // numeric index
93
+ const idx = Number(trimmed);
94
+ if (Number.isInteger(idx)) {
95
+ return { index: idx, kind: 'index' };
96
+ }
97
+ // bare identifier inside brackets — treat as key
98
+ return { kind: 'key', name: trimmed };
99
+ };
100
+ const unescape = (s) => {
101
+ return s.replace(/\\(.)/g, '$1');
102
+ };
103
+ /**
104
+ * Walk a path through a value tree. Slice + chained access has the semantics
105
+ * documented in this file's header. Returns either the resolved value or a
106
+ * detailed failure pointing at where the path broke.
107
+ */
108
+ const resolvePath = (root, path) => {
109
+ let segments;
110
+ try {
111
+ segments = (0, exports.parsePath)(path);
112
+ }
113
+ catch (e) {
114
+ return {
115
+ actual: root,
116
+ error: `Invalid path: ${e.message}`,
117
+ ok: false,
118
+ validUpTo: '',
119
+ };
120
+ }
121
+ let current = root;
122
+ let validPath = '';
123
+ for (let i = 0; i < segments.length; i++) {
124
+ const seg = segments[i];
125
+ const stepResult = step(current, seg);
126
+ if (!stepResult.ok) {
127
+ return {
128
+ actual: current,
129
+ error: stepResult.error,
130
+ ok: false,
131
+ validUpTo: validPath,
132
+ };
133
+ }
134
+ current = stepResult.value;
135
+ validPath =
136
+ validPath === ''
137
+ ? segmentToString(seg)
138
+ : `${validPath}${segmentSeparator(seg)}${segmentToString(seg)}`;
139
+ }
140
+ return { ok: true, value: current };
141
+ };
142
+ exports.resolvePath = resolvePath;
143
+ const segmentSeparator = (seg) => {
144
+ return seg.kind === 'key' ? '.' : '';
145
+ };
146
+ const segmentToString = (seg) => {
147
+ switch (seg.kind) {
148
+ case 'key':
149
+ return /^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test(seg.name) ? seg.name : `["${seg.name}"]`;
150
+ case 'index':
151
+ return `[${seg.index}]`;
152
+ case 'slice':
153
+ return `[${seg.start ?? ''}:${seg.end ?? ''}]`;
154
+ }
155
+ };
156
+ const step = (current, seg) => {
157
+ if (seg.kind === 'key')
158
+ return stepKey(current, seg.name);
159
+ if (seg.kind === 'index')
160
+ return stepIndex(current, seg.index);
161
+ return stepSlice(current, seg);
162
+ };
163
+ const stepKey = (current, name) => {
164
+ if (Array.isArray(current)) {
165
+ // map: apply .key to each element. Each element must be an object.
166
+ const mapped = current.map((el) => {
167
+ return el && typeof el === 'object' ? el[name] : undefined;
168
+ });
169
+ return { ok: true, value: mapped };
170
+ }
171
+ if (current && typeof current === 'object') {
172
+ const rec = current;
173
+ if (!(name in rec)) {
174
+ return { error: `Key "${name}" not found`, ok: false };
175
+ }
176
+ return { ok: true, value: rec[name] };
177
+ }
178
+ return { error: `Cannot access key "${name}" on non-container`, ok: false };
179
+ };
180
+ const stepIndex = (current, index) => {
181
+ if (Array.isArray(current)) {
182
+ const real = index < 0 ? current.length + index : index;
183
+ if (real < 0 || real >= current.length) {
184
+ return { error: `Array index ${index} out of bounds (length ${current.length})`, ok: false };
185
+ }
186
+ return { ok: true, value: current[real] };
187
+ }
188
+ if (current && typeof current === 'object') {
189
+ // object indexing — Nth key in insertion order
190
+ const keys = Object.keys(current);
191
+ const real = index < 0 ? keys.length + index : index;
192
+ if (real < 0 || real >= keys.length) {
193
+ return { error: `Object index ${index} out of bounds (${keys.length} keys)`, ok: false };
194
+ }
195
+ return { ok: true, value: current[keys[real]] };
196
+ }
197
+ return { error: `Cannot index non-container with [${index}]`, ok: false };
198
+ };
199
+ const stepSlice = (current, seg) => {
200
+ const { end, start } = seg;
201
+ if (Array.isArray(current)) {
202
+ return { ok: true, value: current.slice(start, end) };
203
+ }
204
+ if (current && typeof current === 'object') {
205
+ const entries = Object.entries(current);
206
+ const sliced = entries.slice(start, end);
207
+ return { ok: true, value: Object.fromEntries(sliced) };
208
+ }
209
+ return { error: 'Cannot slice non-container', ok: false };
210
+ };
211
+ //# sourceMappingURL=resolvePath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvePath.js","sourceRoot":"","sources":["../../../src/shared/projection/resolvePath.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export declare const DYNAMIC_PREFIX = "__dynamic__";
18
18
  * Introduced in package v2.0.0. Older clients/servers don't send or expect a
19
19
  * version field; the handshake treats their absence as an incompatibility.
20
20
  */
21
- export declare const PROTOCOL_VERSION = 1;
21
+ export declare const PROTOCOL_VERSION = 2;
22
22
  /** WebSocket close code used when the server refuses the client over protocol mismatch. */
23
23
  export declare const WS_CLOSE_PROTOCOL_MISMATCH = 4010;
24
24
  export interface ModuleToolDescriptor {
@@ -54,6 +54,7 @@ export interface RegistrationMessage {
54
54
  bundleId?: string;
55
55
  devServer?: DevServerInfo;
56
56
  deviceId?: string;
57
+ isSimulator?: boolean;
57
58
  label?: string;
58
59
  platform?: string;
59
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/shared/protocol.ts"],"names":[],"mappings":"AAAA;;2DAE2D;AAC3D,eAAO,MAAM,YAAY,yBAAyB,CAAC;AAEnD;;sCAEsC;AACtC,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,yDAAyD;AACzD,eAAO,MAAM,cAAc,gBAAkD,CAAC;AAE9E;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAI/C,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,sBAAsB,EAAE,OAAO,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,kBAAkB,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;CACtB;AAID,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAID,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAID,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,YAAY,GACZ,qBAAqB,CAAC;AAE1B,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,WAAW,GAAG,sBAAsB,CAAC"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/shared/protocol.ts"],"names":[],"mappings":"AAAA;;2DAE2D;AAC3D,eAAO,MAAM,YAAY,yBAAyB,CAAC;AAEnD;;sCAEsC;AACtC,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,yDAAyD;AACzD,eAAO,MAAM,cAAc,gBAAkD,CAAC;AAE9E;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAI/C,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,sBAAsB,EAAE,OAAO,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,kBAAkB,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;CACtB;AAID,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAID,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAID,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,YAAY,GACZ,qBAAqB,CAAC;AAE1B,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,WAAW,GAAG,sBAAsB,CAAC"}
@@ -21,7 +21,7 @@ exports.DYNAMIC_PREFIX = `${exports.MODULE_SEPARATOR}dynamic${exports.MODULE_SEP
21
21
  * Introduced in package v2.0.0. Older clients/servers don't send or expect a
22
22
  * version field; the handshake treats their absence as an incompatibility.
23
23
  */
24
- exports.PROTOCOL_VERSION = 1;
24
+ exports.PROTOCOL_VERSION = 2;
25
25
  /** WebSocket close code used when the server refuses the client over protocol mismatch. */
26
26
  exports.WS_CLOSE_PROTOCOL_MISMATCH = 4010;
27
27
  //# sourceMappingURL=protocol.js.map
@@ -0,0 +1,48 @@
1
+ /**
2
+ * `react-native` is a peer dependency of this library — when running inside
3
+ * an RN app it's always present, but tests / docs / SDK-level code may load
4
+ * modules without RN around. Centralise the `require('react-native')` here
5
+ * so consumers don't each grow their own try / catch.
6
+ *
7
+ * Two entry points:
8
+ * - `getRN()` — bare require. Use from modules that are only ever invoked
9
+ * in-app (alert, device, logBox, fiberTree). Throws if the package is
10
+ * missing.
11
+ * - `loadRN()` — try-wrapped + memoised. Returns `null` when RN can't be
12
+ * resolved (e.g. handshake code running before bundle / in server
13
+ * tooling). Use from code paths that need to tolerate the absence.
14
+ *
15
+ * Plus `loadRNInternal(path)` for private RN modules that may move between
16
+ * RN versions (LogBox internals, getDevServer, ...). Same try-wrap + cache
17
+ * shape so the call-site doesn't need its own boilerplate.
18
+ */
19
+ type AnyRN = any;
20
+ /**
21
+ * Bare `require('react-native')`. Throws if the package isn't installed —
22
+ * suitable for module factories that already assume an RN environment.
23
+ */
24
+ export declare const getRN: () => AnyRN;
25
+ /**
26
+ * Try-wrapped `require('react-native')` with cached negative result. Returns
27
+ * `null` when RN can't be resolved. Use this in handshake / SDK-level code
28
+ * that wants to keep working in non-RN contexts.
29
+ */
30
+ export declare const loadRN: () => AnyRN | null;
31
+ /**
32
+ * Known RN private sub-module paths. Add a new entry to RN_INTERNAL_LOADERS
33
+ * alongside any new path — keeps Metro's static analyser happy.
34
+ */
35
+ export type RNInternalPath = 'Libraries/Core/Devtools/getDevServer' | 'Libraries/LogBox/Data/LogBoxData';
36
+ /**
37
+ * Try-load a private RN sub-module by path. RN doesn't promise these paths
38
+ * are stable across versions, so consumers must tolerate `null`. Result is
39
+ * memoised per-path so repeated calls don't re-require.
40
+ *
41
+ * Add new paths to `RN_INTERNAL_LOADERS` above — Metro requires literal
42
+ * `require('react-native/...')` strings to bundle the dependency.
43
+ */
44
+ export declare const loadRNInternal: (subPath: RNInternalPath) => unknown;
45
+ /** Test-only: drop memoised modules so the next call re-requires. */
46
+ export declare const __resetRNCache: () => void;
47
+ export {};
48
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/shared/rn/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,KAAK,KAAK,GAAG,GAAG,CAAC;AAKjB;;;GAGG;AACH,eAAO,MAAM,KAAK,QAAO,KAGxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM,QAAO,KAAK,GAAG,IAUjC,CAAC;AAkBF;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,sCAAsC,GACtC,kCAAkC,CAAC;AAEvC;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,YAAa,cAAc,KAAG,OAgBxD,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,cAAc,QAAO,IAGjC,CAAC"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ /**
3
+ * `react-native` is a peer dependency of this library — when running inside
4
+ * an RN app it's always present, but tests / docs / SDK-level code may load
5
+ * modules without RN around. Centralise the `require('react-native')` here
6
+ * so consumers don't each grow their own try / catch.
7
+ *
8
+ * Two entry points:
9
+ * - `getRN()` — bare require. Use from modules that are only ever invoked
10
+ * in-app (alert, device, logBox, fiberTree). Throws if the package is
11
+ * missing.
12
+ * - `loadRN()` — try-wrapped + memoised. Returns `null` when RN can't be
13
+ * resolved (e.g. handshake code running before bundle / in server
14
+ * tooling). Use from code paths that need to tolerate the absence.
15
+ *
16
+ * Plus `loadRNInternal(path)` for private RN modules that may move between
17
+ * RN versions (LogBox internals, getDevServer, ...). Same try-wrap + cache
18
+ * shape so the call-site doesn't need its own boilerplate.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.__resetRNCache = exports.loadRNInternal = exports.loadRN = exports.getRN = void 0;
22
+ let cachedRN;
23
+ const cachedInternals = new Map();
24
+ /**
25
+ * Bare `require('react-native')`. Throws if the package isn't installed —
26
+ * suitable for module factories that already assume an RN environment.
27
+ */
28
+ const getRN = () => {
29
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
30
+ return require('react-native');
31
+ };
32
+ exports.getRN = getRN;
33
+ /**
34
+ * Try-wrapped `require('react-native')` with cached negative result. Returns
35
+ * `null` when RN can't be resolved. Use this in handshake / SDK-level code
36
+ * that wants to keep working in non-RN contexts.
37
+ */
38
+ const loadRN = () => {
39
+ if (cachedRN !== undefined)
40
+ return cachedRN;
41
+ try {
42
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
43
+ const rn = require('react-native');
44
+ cachedRN = rn.default ?? rn;
45
+ }
46
+ catch {
47
+ cachedRN = null;
48
+ }
49
+ return cachedRN;
50
+ };
51
+ exports.loadRN = loadRN;
52
+ // Metro can't statically resolve `require(`react-native/${subPath}`)` —
53
+ // dynamic template-literal requires are silently dropped at bundle time and
54
+ // throw `Invalid call at ...`. RN private API paths must therefore be wired
55
+ // up as literal `require(...)` calls. Each entry is a thunk so the actual
56
+ // require fires on demand (and lazy-fails when the path moved in a newer RN).
57
+ /* eslint-disable @typescript-eslint/no-require-imports */
58
+ const RN_INTERNAL_LOADERS = {
59
+ 'Libraries/Core/Devtools/getDevServer': () => {
60
+ return require('react-native/Libraries/Core/Devtools/getDevServer');
61
+ },
62
+ 'Libraries/LogBox/Data/LogBoxData': () => {
63
+ return require('react-native/Libraries/LogBox/Data/LogBoxData');
64
+ },
65
+ };
66
+ /**
67
+ * Try-load a private RN sub-module by path. RN doesn't promise these paths
68
+ * are stable across versions, so consumers must tolerate `null`. Result is
69
+ * memoised per-path so repeated calls don't re-require.
70
+ *
71
+ * Add new paths to `RN_INTERNAL_LOADERS` above — Metro requires literal
72
+ * `require('react-native/...')` strings to bundle the dependency.
73
+ */
74
+ const loadRNInternal = (subPath) => {
75
+ if (cachedInternals.has(subPath))
76
+ return cachedInternals.get(subPath) ?? null;
77
+ const loader = RN_INTERNAL_LOADERS[subPath];
78
+ if (!loader) {
79
+ cachedInternals.set(subPath, null);
80
+ return null;
81
+ }
82
+ try {
83
+ const mod = loader();
84
+ const unwrapped = mod?.default ?? mod ?? null;
85
+ cachedInternals.set(subPath, unwrapped);
86
+ return unwrapped;
87
+ }
88
+ catch {
89
+ cachedInternals.set(subPath, null);
90
+ return null;
91
+ }
92
+ };
93
+ exports.loadRNInternal = loadRNInternal;
94
+ /** Test-only: drop memoised modules so the next call re-requires. */
95
+ const __resetRNCache = () => {
96
+ cachedRN = undefined;
97
+ cachedInternals.clear();
98
+ };
99
+ exports.__resetRNCache = __resetRNCache;
100
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/shared/rn/core.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAKH,IAAI,QAAkC,CAAC;AACvC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;AAEnD;;;GAGG;AACI,MAAM,KAAK,GAAG,GAAU,EAAE;IAC/B,qGAAqG;IACrG,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC;AACjC,CAAC,CAAC;AAHW,QAAA,KAAK,SAGhB;AAEF;;;;GAIG;AACI,MAAM,MAAM,GAAG,GAAiB,EAAE;IACvC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAI,CAAC;QACH,qGAAqG;QACrG,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QACnC,QAAQ,GAAG,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAVW,QAAA,MAAM,UAUjB;AAEF,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,0EAA0E;AAC1E,8EAA8E;AAC9E,0DAA0D;AAC1D,MAAM,mBAAmB,GAA0C;IACjE,sCAAsC,EAAE,GAAG,EAAE;QAC3C,OAAO,OAAO,CAAC,mDAAmD,CAAC,CAAC;IACtE,CAAC;IACD,kCAAkC,EAAE,GAAG,EAAE;QACvC,OAAO,OAAO,CAAC,+CAA+C,CAAC,CAAC;IAClE,CAAC;CACF,CAAC;AAWF;;;;;;;GAOG;AACI,MAAM,cAAc,GAAG,CAAC,OAAuB,EAAW,EAAE;IACjE,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IAC9E,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAuC,CAAC;QAC1D,MAAM,SAAS,GAAG,GAAG,EAAE,OAAO,IAAI,GAAG,IAAI,IAAI,CAAC;QAC9C,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB;AAEF,qEAAqE;AAC9D,MAAM,cAAc,GAAG,GAAS,EAAE;IACvC,QAAQ,GAAG,SAAS,CAAC;IACrB,eAAe,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC,CAAC;AAHW,QAAA,cAAc,kBAGzB"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * `react-native-device-info` is treated as an OPTIONAL peer dependency
3
+ * everywhere in this library — the handshake (`McpClient.autoDetectIdentity`),
4
+ * the `device.info` aggregate read, and any future consumers all reach for
5
+ * the package the same way: lazy `require`, swallow ENOENT-style failures,
6
+ * fall back to `null` when it's not installed.
7
+ *
8
+ * This module centralises that pattern so the require lives in exactly one
9
+ * place. Consumers either call `loadDeviceInfo()` and check for null, or use
10
+ * the safe-call helpers below to invoke single fields without each site
11
+ * re-implementing the try/catch.
12
+ */
13
+ type AnyDI = any;
14
+ /**
15
+ * Load `react-native-device-info` once and cache the result (including the
16
+ * negative case — repeated calls don't re-require when the package is
17
+ * absent). Returns the unwrapped module (`.default` or namespace) or `null`
18
+ * when the package isn't installed / fails to resolve.
19
+ */
20
+ export declare const loadDeviceInfo: () => AnyDI | null;
21
+ /** Test-only: drop the memoised module so the next call re-requires. */
22
+ export declare const __resetDeviceInfoCache: () => void;
23
+ /**
24
+ * Call a sync method on the DI module if it exists. Returns `fallback`
25
+ * (default `null`) when the function is missing or throws. Useful for
26
+ * older device-info versions where individual getters may be absent.
27
+ */
28
+ export declare const callDI: <T>(fn: unknown, fallback?: T | null) => T | null;
29
+ /** Async variant of `callDI` for DI methods that return Promises. */
30
+ export declare const callDIAsync: <T>(fn: unknown, fallback?: T | null) => Promise<T | null>;
31
+ /**
32
+ * Standard "package not available" payload used by both the device module
33
+ * and any other consumer that wants to surface the absence consistently.
34
+ */
35
+ export declare const DEVICE_INFO_UNAVAILABLE: {
36
+ readonly reason: "react-native-device-info is not installed. Add it as a dependency to expose battery / memory / disk / extended identity fields.";
37
+ readonly unavailable: true;
38
+ };
39
+ export {};
40
+ //# sourceMappingURL=deviceInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceInfo.d.ts","sourceRoot":"","sources":["../../../src/shared/rn/deviceInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,KAAK,KAAK,GAAG,GAAG,CAAC;AAIjB;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAO,KAAK,GAAG,IAUzC,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,QAAO,IAEzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,MAAM,OAAO,aAAY,CAAC,GAAG,IAAI,KAAU,CAAC,GAAG,IAOtE,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,WAAW,GAAU,CAAC,MAAM,OAAO,aAAY,CAAC,GAAG,IAAI,KAAU,OAAO,CAAC,CAAC,GAAG,IAAI,CAO7F,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;CAI1B,CAAC"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ /**
3
+ * `react-native-device-info` is treated as an OPTIONAL peer dependency
4
+ * everywhere in this library — the handshake (`McpClient.autoDetectIdentity`),
5
+ * the `device.info` aggregate read, and any future consumers all reach for
6
+ * the package the same way: lazy `require`, swallow ENOENT-style failures,
7
+ * fall back to `null` when it's not installed.
8
+ *
9
+ * This module centralises that pattern so the require lives in exactly one
10
+ * place. Consumers either call `loadDeviceInfo()` and check for null, or use
11
+ * the safe-call helpers below to invoke single fields without each site
12
+ * re-implementing the try/catch.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.DEVICE_INFO_UNAVAILABLE = exports.callDIAsync = exports.callDI = exports.__resetDeviceInfoCache = exports.loadDeviceInfo = void 0;
16
+ let cachedDI;
17
+ /**
18
+ * Load `react-native-device-info` once and cache the result (including the
19
+ * negative case — repeated calls don't re-require when the package is
20
+ * absent). Returns the unwrapped module (`.default` or namespace) or `null`
21
+ * when the package isn't installed / fails to resolve.
22
+ */
23
+ const loadDeviceInfo = () => {
24
+ if (cachedDI !== undefined)
25
+ return cachedDI;
26
+ try {
27
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
28
+ const di = require('react-native-device-info');
29
+ cachedDI = di.default ?? di;
30
+ }
31
+ catch {
32
+ cachedDI = null;
33
+ }
34
+ return cachedDI;
35
+ };
36
+ exports.loadDeviceInfo = loadDeviceInfo;
37
+ /** Test-only: drop the memoised module so the next call re-requires. */
38
+ const __resetDeviceInfoCache = () => {
39
+ cachedDI = undefined;
40
+ };
41
+ exports.__resetDeviceInfoCache = __resetDeviceInfoCache;
42
+ /**
43
+ * Call a sync method on the DI module if it exists. Returns `fallback`
44
+ * (default `null`) when the function is missing or throws. Useful for
45
+ * older device-info versions where individual getters may be absent.
46
+ */
47
+ const callDI = (fn, fallback = null) => {
48
+ if (typeof fn !== 'function')
49
+ return fallback;
50
+ try {
51
+ return fn();
52
+ }
53
+ catch {
54
+ return fallback;
55
+ }
56
+ };
57
+ exports.callDI = callDI;
58
+ /** Async variant of `callDI` for DI methods that return Promises. */
59
+ const callDIAsync = async (fn, fallback = null) => {
60
+ if (typeof fn !== 'function')
61
+ return fallback;
62
+ try {
63
+ return (await fn());
64
+ }
65
+ catch {
66
+ return fallback;
67
+ }
68
+ };
69
+ exports.callDIAsync = callDIAsync;
70
+ /**
71
+ * Standard "package not available" payload used by both the device module
72
+ * and any other consumer that wants to surface the absence consistently.
73
+ */
74
+ exports.DEVICE_INFO_UNAVAILABLE = {
75
+ reason: 'react-native-device-info is not installed. Add it as a dependency to expose battery / memory / disk / extended identity fields.',
76
+ unavailable: true,
77
+ };
78
+ //# sourceMappingURL=deviceInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deviceInfo.js","sourceRoot":"","sources":["../../../src/shared/rn/deviceInfo.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAKH,IAAI,QAAkC,CAAC;AAEvC;;;;;GAKG;AACI,MAAM,cAAc,GAAG,GAAiB,EAAE;IAC/C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,IAAI,CAAC;QACH,qGAAqG;QACrG,MAAM,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC/C,QAAQ,GAAG,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAVW,QAAA,cAAc,kBAUzB;AAEF,wEAAwE;AACjE,MAAM,sBAAsB,GAAG,GAAS,EAAE;IAC/C,QAAQ,GAAG,SAAS,CAAC;AACvB,CAAC,CAAC;AAFW,QAAA,sBAAsB,0BAEjC;AAEF;;;;GAIG;AACI,MAAM,MAAM,GAAG,CAAI,EAAW,EAAE,WAAqB,IAAI,EAAY,EAAE;IAC5E,IAAI,OAAO,EAAE,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,EAAE,EAAO,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,MAAM,UAOjB;AAEF,qEAAqE;AAC9D,MAAM,WAAW,GAAG,KAAK,EAAK,EAAW,EAAE,WAAqB,IAAI,EAAqB,EAAE;IAChG,IAAI,OAAO,EAAE,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,EAAE,EAAE,CAAM,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,WAAW,eAOtB;AAEF;;;GAGG;AACU,QAAA,uBAAuB,GAAG;IACrC,MAAM,EACJ,iIAAiI;IACnI,WAAW,EAAE,IAAI;CACT,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-mcp-kit",
3
- "version": "3.0.1",
3
+ "version": "4.1.0",
4
4
  "description": "MCP server for React Native — drive, inspect, and debug running RN apps from AI agents via the real OS gesture pipeline",
5
5
  "license": "MIT",
6
6
  "author": "Aliaksei Pranko",
@@ -62,7 +62,7 @@
62
62
  "./server": "./dist/server/index.js"
63
63
  },
64
64
  "scripts": {
65
- "build": "tsc && tsc-alias && ./scripts/build-ios-hid.sh",
65
+ "build": "rm -rf dist && tsc && tsc-alias && ./scripts/build-ios-hid.sh",
66
66
  "dev": "tsc --watch",
67
67
  "lint": "eslint --ext .ts --ext .tsx ./src",
68
68
  "lint:fix": "eslint --ext .ts --ext .tsx ./src --fix",
@@ -98,6 +98,8 @@
98
98
  },
99
99
  "dependencies": {
100
100
  "@modelcontextprotocol/sdk": "^1.29.0",
101
+ "bplist-creator": "^0.1.1",
102
+ "bplist-parser": "^0.3.2",
101
103
  "sharp": "^0.34.5",
102
104
  "ws": "^8.20.0",
103
105
  "zod": "^4.3.6"
@@ -1,3 +0,0 @@
1
- import { type DependencyList } from 'react';
2
- export declare const useMcpState: (key: string, factory: () => unknown, deps: DependencyList) => void;
3
- //# sourceMappingURL=useMcpState.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMcpState.d.ts","sourceRoot":"","sources":["../../../src/client/hooks/useMcpState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5E,eAAO,MAAM,WAAW,QAAS,MAAM,WAAW,MAAM,OAAO,QAAQ,cAAc,KAAG,IAYvF,CAAC"}