react-native-mcp-kit 2.3.0 → 3.0.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 (60) hide show
  1. package/README.md +46 -18
  2. package/dist/babel/stripPlugin.d.ts.map +1 -1
  3. package/dist/babel/stripPlugin.js +18 -3
  4. package/dist/babel/stripPlugin.js.map +1 -1
  5. package/dist/babel/testIdPlugin.d.ts.map +1 -1
  6. package/dist/babel/testIdPlugin.js +466 -7
  7. package/dist/babel/testIdPlugin.js.map +1 -1
  8. package/dist/bin/ios-hid +0 -0
  9. package/dist/client/contexts/McpContext/McpProvider.d.ts.map +1 -1
  10. package/dist/client/contexts/McpContext/McpProvider.js +0 -6
  11. package/dist/client/contexts/McpContext/McpProvider.js.map +1 -1
  12. package/dist/client/contexts/McpContext/types.d.ts +0 -2
  13. package/dist/client/contexts/McpContext/types.d.ts.map +1 -1
  14. package/dist/client/core/McpClient.d.ts +0 -2
  15. package/dist/client/core/McpClient.d.ts.map +1 -1
  16. package/dist/client/core/McpClient.js +1 -17
  17. package/dist/client/core/McpClient.js.map +1 -1
  18. package/dist/client/index.d.ts +0 -1
  19. package/dist/client/index.d.ts.map +1 -1
  20. package/dist/client/index.js +1 -3
  21. package/dist/client/index.js.map +1 -1
  22. package/dist/index.d.ts +2 -2
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -2
  25. package/dist/index.js.map +1 -1
  26. package/dist/modules/fiberTree/fiberTree.d.ts +17 -0
  27. package/dist/modules/fiberTree/fiberTree.d.ts.map +1 -1
  28. package/dist/modules/fiberTree/fiberTree.js +554 -2
  29. package/dist/modules/fiberTree/fiberTree.js.map +1 -1
  30. package/dist/modules/fiberTree/utils.d.ts +1 -0
  31. package/dist/modules/fiberTree/utils.d.ts.map +1 -1
  32. package/dist/modules/fiberTree/utils.js +7 -6
  33. package/dist/modules/fiberTree/utils.js.map +1 -1
  34. package/dist/server/bridge.d.ts +0 -1
  35. package/dist/server/bridge.d.ts.map +1 -1
  36. package/dist/server/bridge.js +0 -15
  37. package/dist/server/bridge.js.map +1 -1
  38. package/dist/server/canonicalize.d.ts +8 -0
  39. package/dist/server/canonicalize.d.ts.map +1 -0
  40. package/dist/server/canonicalize.js +23 -0
  41. package/dist/server/canonicalize.js.map +1 -0
  42. package/dist/server/host/tools/connectionStatus.d.ts +9 -0
  43. package/dist/server/host/tools/connectionStatus.d.ts.map +1 -0
  44. package/dist/server/host/tools/connectionStatus.js +39 -0
  45. package/dist/server/host/tools/connectionStatus.js.map +1 -0
  46. package/dist/server/index.d.ts.map +1 -1
  47. package/dist/server/index.js +2 -2
  48. package/dist/server/index.js.map +1 -1
  49. package/dist/server/inputSchemaToZod.d.ts +19 -0
  50. package/dist/server/inputSchemaToZod.d.ts.map +1 -0
  51. package/dist/server/inputSchemaToZod.js +89 -0
  52. package/dist/server/inputSchemaToZod.js.map +1 -0
  53. package/dist/server/mcpServer.d.ts.map +1 -1
  54. package/dist/server/mcpServer.js +3 -86
  55. package/dist/server/mcpServer.js.map +1 -1
  56. package/dist/shared/protocol.d.ts +9 -10
  57. package/dist/shared/protocol.d.ts.map +1 -1
  58. package/dist/shared/protocol.js +9 -1
  59. package/dist/shared/protocol.js.map +1 -1
  60. package/package.json +1 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **See, drive, and debug a running React Native app from an AI agent.**
4
4
 
5
- `react-native-mcp-kit` connects a running RN app (on simulator, emulator, or physical device) to any process that speaks the [Model Context Protocol](https://modelcontextprotocol.io). You wrap your app in one provider, add a babel plugin, point your AI tool at a small Node server that ships with the package, and every interesting thing inside the app becomes addressable: component trees, navigation state, network traffic, React Query cache, logs, errors, translations, storage plus the OS gesture pipeline (taps, swipes, text input, screenshots) via a bundled binary that runs with zero external daemons.
5
+ `react-native-mcp-kit` connects a running RN app on simulator, emulator, or physical device to any process that speaks the [Model Context Protocol](https://modelcontextprotocol.io). You wire it in once and the agent gets a concise, structured view of what's happening inside the running app: deep runtime-state analysis it can cross-reference in a single pass, full access to the React tree so it can find and reason about UI without screenshots and OCR, every kind of log the app produces, and simulation of real taps, swipes, and text input through the OS gesture pipeline. The whole surface is designed around what's cheap and fast for the agent to think about — lean responses by default, low vision-token cost on screenshots, a focused set of tools instead of overwhelming dumps.
6
6
 
7
7
  ```
8
8
  AI Agent / Cursor / Claude Code --stdio/MCP--> Node server --WebSocket--> RN app (device)
@@ -15,16 +15,16 @@ AI Agent / Cursor / Claude Code --stdio/MCP--> Node server --WebSocket--> RN app
15
15
  A few concrete scenarios this unlocks:
16
16
 
17
17
  - **Drive multiple devices in parallel from one agent session.** iOS simulator, Android emulator, physical device — any mix attaches to the same server. The agent can walk the same flow across platforms side-by-side, catching visual or behavioural regressions that show up on one OS but not the other, without ever leaving the editor.
18
- - **End-to-end automation without a separate test harness.** Describe a multi-step flow in natural language — "sign in, open settings, flip the notifications toggle, verify the confirmation toast" — and an agent walks it: locates components by name/testID, fires real taps through the OS gesture pipeline, asserts on the resulting state, and reports back.
19
- - **Interactive inspection of a live app from your editor.** Ask "what screen am I on?", "what React Query keys are stale?", "what did the last POST return?", "which translation keys are missing in the current locale?" — no rebuild, no DevTools panel, no "add more logs and reload" loop.
20
- - **Debug gesture-arbitration bugs that unit tests can't catch.** Taps go through the real iOS/Android touch pipeline, so issues like "the close button inside a horizontally-scrolling list swallows taps" surface naturally — and when you need to sidestep the pipeline (call a prop directly on a virtualised item, fire a callback on an offscreen component) the bridge offers that too.
21
- - **Expose your own inspection points from inside components.** A component can register a named state key or an ad-hoc tool from its own lifecycle. Agents then read feature-flag state, force a particular loading scenario, or trigger an internal-only action without you shipping a debug menu.
18
+ - **End-to-end automation without a separate test harness.** Describe a multi-step flow in natural language — "sign in, open settings, flip the notifications toggle, verify the confirmation toast" — and the agent walks it: locates the right components, fires real taps through the OS gesture pipeline, asserts on the resulting state, and reports back.
19
+ - **Interactive inspection of a live app from your editor.** Ask "what screen am I on?", "what's in the request cache?", "what did the last POST return?", "what values are in app state right now?" — no rebuild, no DevTools panel, no "add more logs and reload" loop.
20
+ - **Debug gesture-arbitration bugs that unit tests can't catch.** Taps go through the real iOS/Android touch pipeline, so issues like "the close button inside a horizontally-scrolling list swallows taps" surface naturally — and when you need to sidestep the pipeline (call a prop directly, in a spot a real finger can't reach) the bridge offers that too.
21
+ - **Expose your own inspection points from inside components.** A component can register a named state key or an ad-hoc action from its own lifecycle. Agents then read feature-flag state, force a particular loading scenario, or trigger an internal-only action without you shipping a debug menu.
22
22
 
23
- Everything the library adds to your bundle is stripped in production builds via the companion babel plugin so you can wire it up once and leave it in, without shipping it to users.
23
+ Everything the library adds to your bundle is stripped from production builds by default — wire it up once and leave it in, without shipping it to users.
24
24
 
25
25
  ## Example scenarios
26
26
 
27
- - **Deep runtime-state analysis on demand.** Ask "why is this screen blank?" or "why did the last submission fail?" — the agent cross-references the live React component tree (which components are mounted, their props and layout bounds, wrapper cascades, visible vs virtualised), the current navigation state, active data-fetching mutations, in-flight and recent network requests (with bodies + durations), captured errors with source-mapped stack traces, and any app-specific state the app has opted into exposing all from the running runtime, no extra logging or rebuild. The same analysis can be scoped to specific moments ("state right after I tap submit") through built-in polling primitives, rather than a stale snapshot.
27
+ - **Deep runtime-state analysis on demand.** Ask "why is this screen blank?" or "why did the last submission fail?" — the agent cross-references what's mounted in the UI, where the user is in the app, what the network has been doing, what errors fired, and any state the app has opted into exposing. All from the running runtime, no extra logging or rebuild. The same pass can be scoped to a specific moment ("state right after I tap submit") instead of a stale snapshot.
28
28
  - **Reproduce a bug from a ticket, fix it, verify the fix.** The agent reads the reproduction steps, drives the app into the failing state through real taps and swipes, confirms the bug, edits the relevant source, then replays the same sequence to verify the fix — all in one editor session, no rebuilds between steps.
29
29
  - **End-to-end flow narrated in plain language.** "Sign in, add an item to the cart, go through checkout, verify the total matches the expected value, screenshot the final screen, and give me a network traffic summary." The agent drives real taps, checks state at each step, snapshots the key screens, and hands back captured request counts / durations / errors as evidence.
30
30
  - **Cross-platform parity check.** One agent holds two connected clients, runs the same tap sequence on iOS and Android in parallel, captures screenshots, and points out the differences — catches platform-specific regressions after an RN upgrade, shared-component refactor, or native change.
@@ -72,7 +72,7 @@ export const App = () => {
72
72
 
73
73
  These modules register automatically on mount — no prop required:
74
74
 
75
- `alert`, `console`, `device`, `errors`, `network`, `fiber_tree`
75
+ `alert`, `console`, `device`, `errors`, `log_box`, `network`, `fiber_tree`
76
76
 
77
77
  If the dependency lives deeper in the tree (e.g. the `QueryClient` is created inside a feature-specific provider), skip the prop and use `useMcpModule` there instead — see [Hooks](#hooks).
78
78
 
@@ -80,9 +80,14 @@ If the dependency lives deeper in the tree (e.g. the `QueryClient` is created in
80
80
 
81
81
  Two plugins ship under `react-native-mcp-kit/babel`. You want both.
82
82
 
83
- **`test-id-plugin`** — compiles every capitalized JSX element with a stable `data-mcp-id="ComponentName:path/to/file:line"` attribute. `fiber_tree` uses this attribute as an identifier that survives renders, minification, and refactors. Without the plugin you can still find components by `name` or `testID`, but mcpId is what makes "find the nth occurrence of `ComponentName` on a specific line" reliable across a large codebase. Run this in **development**.
83
+ **`test-id-plugin`** — two transforms, one pass:
84
84
 
85
- **`strip-plugin`** strips every trace of mcp-kit from a bundle: imports from `react-native-mcp-kit`, calls to `McpClient.*` / `useMcpState` / `useMcpTool` / `useMcpModule`, the `<McpProvider>` JSX wrapper (its children are preserved), and every `data-mcp-id` attribute. Run this in **production** and none of the library code reaches your users.
85
+ - Stamps every capitalized JSX element with a stable `data-mcp-id="ComponentName:path/to/file:line"` attribute. `fiber_tree` uses this to identify a component across renders, minification, and refactors. Without it you can still find components by `name` or `testID`, but mcpId is what makes "find the nth `ProductCard` on a specific line" reliable across a large codebase.
86
+ - Attaches `__mcp_hooks` metadata to each component function and each custom-hook function (`/^use[A-Z]/` with hook calls in body). This is how `fiber_tree__query` with `select: ["hooks"]` recovers hook names (`count`, `scrollRef`, …) instead of `State[0]` / `Ref[2]`. The plugin runs on `node_modules` too, so library hooks from react-redux / react-query get annotated automatically.
87
+
88
+ Run in **development**.
89
+
90
+ **`strip-plugin`** — strips every trace of mcp-kit from a bundle: imports from `react-native-mcp-kit`, calls to `McpClient.*` / `useMcpTool` / `useMcpModule`, the `<McpProvider>` JSX wrapper (its children are preserved), `data-mcp-id` attributes, and `__mcp_hooks = [...]` metadata assignments. Run this in **production** and none of the library code reaches your users.
86
91
 
87
92
  ```js
88
93
  // babel.config.js
@@ -100,7 +105,7 @@ module.exports = (api) => {
100
105
 
101
106
  Both plugins accept options (attribute name, include/exclude lists, extra import sources, extra function names to strip) when you need to customize — pass them as the 2nd array element in the usual babel style. Defaults cover the common case.
102
107
 
103
- After editing `babel.config.js`, clear Metro's cache once: `yarn start --reset-cache`.
108
+ After editing `babel.config.js` — or after installing / upgrading `react-native-mcp-kit` — clear Metro's cache once: `yarn start --reset-cache`. Metro aggressively caches transformed files, and until it re-runs the plugin on `node_modules`, `__mcp_hooks` annotations for library hooks will be missing and `fiber_tree__query` with `select: ["hooks"]` will return `null`.
104
109
 
105
110
  ### 3. Configure the MCP server
106
111
 
@@ -134,7 +139,19 @@ iOS simulators share localhost with the host machine, no forwarding needed.
134
139
 
135
140
  ### 4. Run
136
141
 
137
- Start Metro + your app. The `McpProvider` connects to `ws://localhost:8347` on mount. The agent calls `connection_status` to confirm; after that every tool is callable.
142
+ Start Metro + your app. The `McpProvider` connects to `ws://localhost:8347` on mount.
143
+
144
+ From your agent, a typical first session looks like:
145
+
146
+ ```
147
+ connection_status
148
+ → { clientCount: 1, clients: [{ id: "ios-1", label: "iPhone 17 Pro", ... }] }
149
+
150
+ list_tools { compact: true }
151
+ → catalog of every module registered by the app, grouped by client
152
+ ```
153
+
154
+ After that, every tool is callable by name via `call`. If the server isn't running yet, the provider just retries silently — no crash, no error toast.
138
155
 
139
156
  ## `McpProvider` reference
140
157
 
@@ -154,7 +171,11 @@ Wrap your whole app in it — every optional prop opts a module in when supplied
154
171
 
155
172
  ## MCP server tools
156
173
 
157
- The Node server exposes a small set of entry-point tools agents use directly — you don't register or configure them. `call` / `list_tools` / `describe_tool` / `connection_status` / `state_get` / `state_list` cover discovery and dispatch, plus two test-automation helpers: `wait_until` (poll any tool until a predicate holds, replacing screenshot-in-a-loop + sleep) and `assert` (single-shot checkpoint with a standardized diff on failure). For UI-level waits (wait for a screen, a spinner to disappear, etc.), `fiber_tree__query` has a built-in `waitFor` option — see the [fiber_tree section](#fiber_tree).
174
+ The Node server exposes a small set of entry-point tools agents use directly — you don't register or configure them:
175
+
176
+ - **Discovery & dispatch** — `connection_status`, `list_tools`, `describe_tool`, `call`.
177
+ - **Test automation** — `wait_until` (poll any tool until a predicate holds, replacing screenshot-in-a-loop + sleep) and `assert` (single-shot checkpoint with a standardized diff on failure).
178
+ - **UI-level waits** — `fiber_tree__query` has a built-in `waitFor: { until: "appear" | "disappear", stable? }` option; see the [fiber_tree section](#fiber_tree).
158
179
 
159
180
  ## Host tools (device-level control)
160
181
 
@@ -172,8 +193,9 @@ iOS input goes through a bundled `ios-hid` Swift binary that injects HID events
172
193
 
173
194
  ## Metro tools (dev-server control plane)
174
195
 
175
- Separate module talking HTTP / WebSocket to the Metro instance the app was bundled from. The URL is auto-detected from each client's handshake (via RN's `getDevServer()`), so non-default ports and LAN-connected physical devices work without extra config.
196
+ Separate module talking HTTP / WebSocket to the Metro instance the app was bundled from.
176
197
 
198
+ - **Auto-detected URL per client.** Each attached app reports its actual Metro origin at handshake (via RN's `getDevServer()`). Non-default ports (`yarn start --port 8082`) and LAN-connected physical devices work without an explicit `metroUrl` arg.
177
199
  - **`metro__symbolicate`** — maps a raw Hermes / V8 stack trace back to source paths via Metro's `/symbolicate`. Pairs naturally with `errors__get_errors` and `log_box__get_logs` (each entry has parsed `stackFrames` ready to feed in).
178
200
  - **`metro__reload`** — triggers a full JS reload on every attached app (`POST /reload`).
179
201
  - **`metro__status`** — cheap ping before a chain of Metro calls.
@@ -185,7 +207,6 @@ Separate module talking HTTP / WebSocket to the Metro instance the app was bundl
185
207
  For when the thing you want to expose lives deeper than `McpProvider`:
186
208
 
187
209
  ```ts
188
- useMcpState(key, factory, deps); // expose reactive state to the agent
189
210
  useMcpTool(name, factory, deps); // register an ad-hoc tool tied to the component lifecycle
190
211
  useMcpModule(factory, deps); // register a whole module from inside a component
191
212
  ```
@@ -196,8 +217,6 @@ Each follows `useMemo` / `useEffect` semantics — the factory re-runs on dep ch
196
217
  const UserProvider = ({ children }) => {
197
218
  const [user, setUser] = useState(null);
198
219
 
199
- useMcpState('user', () => ({ id: user?.id, loggedIn: user !== null }), [user]);
200
-
201
220
  useMcpTool(
202
221
  'logout',
203
222
  () => ({
@@ -214,6 +233,8 @@ const UserProvider = ({ children }) => {
214
233
  };
215
234
  ```
216
235
 
236
+ Reading state is unified through `fiber_tree__query` with `select: ["hooks"]` — no manual exposure step needed. See the [fiber_tree section](#fiber_tree) below.
237
+
217
238
  ## Modules
218
239
 
219
240
  | Module | Factory | Requires |
@@ -258,10 +279,17 @@ Captures unhandled JS errors (via `ErrorUtils.setGlobalHandler`) and unhandled p
258
279
 
259
280
  ### fiber_tree
260
281
 
261
- The heart of UI inspection. Search the component tree via a chained `query`: each step narrows the result with criteria (name / testID / mcpId / text / props matcher / not / any) and a scope (descendants / ancestors / siblings / screen / nearest_host / …). Wrapper cascades (`PressableView → Pressable → View → RCTView`) collapse to the topmost by default. `bounds` come back in physical pixels and pair directly with `host__tap` or use `host__tap_fiber` for the locate-and-tap shortcut.
282
+ The heart of UI inspection. Search the component tree via a chained `query`: each step narrows the result by **criteria** within a given **scope**, with multiple matches fanning out into the next step.
283
+
284
+ - **Criteria**: `name`, `testID`, `mcpId`, `text`, `hasProps`, `props` (equality + `contains`), `not`, `any`.
285
+ - **Scopes**: `descendants`, `children`, `parent`, `ancestors`, `siblings`, `self`, `screen` (focused screen fiber from React Navigation), `nearest_host` (closest host component).
286
+
287
+ Wrapper cascades (`PressableView → Pressable → View → RCTView`) collapse to the topmost by default, so overlapping matches don't drown the result. `bounds` come back in physical pixels and pair directly with `host__tap` — or use `host__tap_fiber` for the locate-and-tap shortcut.
262
288
 
263
289
  Pass `waitFor: { until: 'appear' | 'disappear', timeout?, interval?, stable? }` to poll the same query until the target state is reached — e.g. `waitFor: { until: 'appear', stable: 300 }` waits for a screen to mount and hold stable for 300ms. Response carries `{ waited, attempts, elapsedMs, timedOut, stableFor? }` alongside the usual matches.
264
290
 
291
+ Pass `select: ["hooks"]` to read a component's hooks with variable names recovered from source — `useState` / `useMemo` / `useCallback` / `useRef` / `useEffect` / custom hooks all visible. Filter with `hooksInclude: { kinds, names }`, opt into current values with `withValues: true`, cap recursion with `expansionDepth`, switch shape with `format: "flat" | "tree"`. Sensitive names (password, token, jwt, secret, credential, apiKey, authorization, *Pin) are auto-redacted — override via `fiberTreeModule({ redactHookNames, additionalRedactHookNames })`. Works against any HOC chain (`memo`, `forwardRef`, custom HOCs, `as` casts) and library hooks from react-query, react-redux, reanimated, react-navigation.
292
+
265
293
  ### i18n
266
294
 
267
295
  Inspect and manipulate an `i18next` instance: list keys, dump a whole translation resource, run a substring search, translate with interpolation, switch language at runtime.
@@ -1 +1 @@
1
- {"version":3,"file":"stripPlugin.d.ts","sourceRoot":"","sources":["../../src/babel/stripPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAavE,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,UAAU,CAAA;CAAE,GAAG,SAAS,CAyJzF"}
1
+ {"version":3,"file":"stripPlugin.d.ts","sourceRoot":"","sources":["../../src/babel/stripPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAevE,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,UAAU,CAAA;CAAE,GAAG,SAAS,CAsKzF"}
@@ -1,12 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = stripPlugin;
4
- const DEFAULT_SOURCES = ['react-native-mcp-kit'];
5
- const DEFAULT_FUNCTIONS = ['useMcpState', 'useMcpTool', 'useMcpModule', 'initMcp'];
4
+ const protocol_1 = require("../shared/protocol");
5
+ const DEFAULT_SOURCES = [protocol_1.PACKAGE_NAME];
6
+ const DEFAULT_FUNCTIONS = ['useMcpTool', 'useMcpModule', 'initMcp'];
6
7
  function stripPlugin({ types: t }) {
7
8
  return {
8
9
  name: 'react-native-mcp-kit-strip',
9
10
  visitor: {
11
+ // Remove `X.__mcp_hooks = [...]` metadata assignments emitted by the
12
+ // companion test-id-plugin (X is either a component or a custom-hook
13
+ // function name).
14
+ AssignmentExpression(path) {
15
+ const { left } = path.node;
16
+ if (!t.isMemberExpression(left))
17
+ return;
18
+ if (!t.isIdentifier(left.property, { name: '__mcp_hooks' }))
19
+ return;
20
+ const parent = path.parentPath;
21
+ if (parent.isExpressionStatement()) {
22
+ parent.remove();
23
+ }
24
+ },
10
25
  // Remove require('react-native-mcp-kit')
11
26
  CallExpression(path, state) {
12
27
  const opts = (state.opts ?? {});
@@ -35,7 +50,7 @@ function stripPlugin({ types: t }) {
35
50
  }
36
51
  }
37
52
  }
38
- // Strip function calls: useMcpState(...), useMcpTool(...), etc.
53
+ // Strip function calls: useMcpTool(...), useMcpModule(...), etc.
39
54
  if (t.isIdentifier(path.node.callee) && functions.includes(path.node.callee.name)) {
40
55
  const parent = path.parentPath;
41
56
  if (parent.isExpressionStatement()) {
@@ -1 +1 @@
1
- {"version":3,"file":"stripPlugin.js","sourceRoot":"","sources":["../../src/babel/stripPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripPlugin.js","sourceRoot":"","sources":["../../src/babel/stripPlugin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"testIdPlugin.d.ts","sourceRoot":"","sources":["../../src/babel/testIdPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAwBvE,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,UAAU,CAAA;CAAE,GAAG,SAAS,CA+D1F"}
1
+ {"version":3,"file":"testIdPlugin.d.ts","sourceRoot":"","sources":["../../src/babel/testIdPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,KAAK,IAAI,UAAU,EACzB,MAAM,aAAa,CAAC;AAycrB,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,UAAU,CAAA;CAAE,GAAG,SAAS,CA2M1F"}