react-native-mcp-kit 4.1.0 → 4.2.1
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.
- package/README.md +6 -6
- package/dist/babel/testIdPlugin/collectHooks.d.ts +13 -0
- package/dist/babel/testIdPlugin/collectHooks.d.ts.map +1 -0
- package/dist/babel/testIdPlugin/collectHooks.js +112 -0
- package/dist/babel/testIdPlugin/collectHooks.js.map +1 -0
- package/dist/babel/testIdPlugin/constants.d.ts +6 -0
- package/dist/babel/testIdPlugin/constants.d.ts.map +1 -0
- package/dist/babel/testIdPlugin/constants.js +49 -0
- package/dist/babel/testIdPlugin/constants.js.map +1 -0
- package/dist/babel/testIdPlugin/helpers.d.ts +7 -0
- package/dist/babel/testIdPlugin/helpers.d.ts.map +1 -0
- package/dist/babel/testIdPlugin/helpers.js +77 -0
- package/dist/babel/testIdPlugin/helpers.js.map +1 -0
- package/dist/babel/testIdPlugin/hocUnwrap.d.ts +4 -0
- package/dist/babel/testIdPlugin/hocUnwrap.d.ts.map +1 -0
- package/dist/babel/testIdPlugin/hocUnwrap.js +94 -0
- package/dist/babel/testIdPlugin/hocUnwrap.js.map +1 -0
- package/dist/babel/{testIdPlugin.d.ts → testIdPlugin/index.d.ts} +1 -1
- package/dist/babel/testIdPlugin/index.d.ts.map +1 -0
- package/dist/babel/testIdPlugin/index.js +205 -0
- package/dist/babel/testIdPlugin/index.js.map +1 -0
- package/dist/babel/testIdPlugin/inject.d.ts +7 -0
- package/dist/babel/testIdPlugin/inject.d.ts.map +1 -0
- package/dist/babel/testIdPlugin/inject.js +86 -0
- package/dist/babel/testIdPlugin/inject.js.map +1 -0
- package/dist/babel/testIdPlugin/types.d.ts +59 -0
- package/dist/babel/testIdPlugin/types.d.ts.map +1 -0
- package/dist/babel/testIdPlugin/types.js +3 -0
- package/dist/babel/testIdPlugin/types.js.map +1 -0
- package/dist/bin/ios-hid +0 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/alert/alert.d.ts.map +1 -1
- package/dist/modules/alert/alert.js +18 -3
- package/dist/modules/alert/alert.js.map +1 -1
- package/dist/modules/console/console.d.ts.map +1 -1
- package/dist/modules/console/console.js +38 -12
- package/dist/modules/console/console.js.map +1 -1
- package/dist/modules/console/types.d.ts +1 -1
- package/dist/modules/console/types.d.ts.map +1 -1
- package/dist/modules/device/device.d.ts.map +1 -1
- package/dist/modules/device/device.js +17 -4
- package/dist/modules/device/device.js.map +1 -1
- package/dist/modules/errors/errors.d.ts.map +1 -1
- package/dist/modules/errors/errors.js +3 -1
- package/dist/modules/errors/errors.js.map +1 -1
- package/dist/modules/fiberTree/fiberTree.d.ts.map +1 -1
- package/dist/modules/fiberTree/fiberTree.js +44 -7
- package/dist/modules/fiberTree/fiberTree.js.map +1 -1
- package/dist/modules/fiberTree/finder.d.ts +2 -0
- package/dist/modules/fiberTree/finder.d.ts.map +1 -1
- package/dist/modules/fiberTree/finder.js +3 -1
- package/dist/modules/fiberTree/finder.js.map +1 -1
- package/dist/modules/fiberTree/hooks/extract.d.ts +6 -0
- package/dist/modules/fiberTree/hooks/extract.d.ts.map +1 -0
- package/dist/modules/fiberTree/hooks/extract.js +187 -0
- package/dist/modules/fiberTree/hooks/extract.js.map +1 -0
- package/dist/modules/fiberTree/hooks/flatten.d.ts +4 -0
- package/dist/modules/fiberTree/hooks/flatten.d.ts.map +1 -0
- package/dist/modules/fiberTree/hooks/flatten.js +81 -0
- package/dist/modules/fiberTree/hooks/flatten.js.map +1 -0
- package/dist/modules/fiberTree/hooks/index.d.ts +5 -0
- package/dist/modules/fiberTree/hooks/index.d.ts.map +1 -0
- package/dist/modules/fiberTree/hooks/index.js +10 -0
- package/dist/modules/fiberTree/hooks/index.js.map +1 -0
- package/dist/modules/fiberTree/hooks/options.d.ts +9 -0
- package/dist/modules/fiberTree/hooks/options.d.ts.map +1 -0
- package/dist/modules/fiberTree/hooks/options.js +27 -0
- package/dist/modules/fiberTree/hooks/options.js.map +1 -0
- package/dist/modules/fiberTree/hooks/patterns.d.ts +2 -0
- package/dist/modules/fiberTree/hooks/patterns.d.ts.map +1 -0
- package/dist/modules/fiberTree/hooks/patterns.js +26 -0
- package/dist/modules/fiberTree/hooks/patterns.js.map +1 -0
- package/dist/modules/fiberTree/hooks/shape.d.ts +3 -0
- package/dist/modules/fiberTree/hooks/shape.d.ts.map +1 -0
- package/dist/modules/fiberTree/hooks/shape.js +66 -0
- package/dist/modules/fiberTree/hooks/shape.js.map +1 -0
- package/dist/modules/fiberTree/hooks/slotCount.d.ts +2 -0
- package/dist/modules/fiberTree/hooks/slotCount.d.ts.map +1 -0
- package/dist/modules/fiberTree/hooks/slotCount.js +93 -0
- package/dist/modules/fiberTree/hooks/slotCount.js.map +1 -0
- package/dist/modules/fiberTree/{hooks.d.ts → hooks/types.d.ts} +18 -34
- package/dist/modules/fiberTree/hooks/types.d.ts.map +1 -0
- package/dist/modules/fiberTree/hooks/types.js +3 -0
- package/dist/modules/fiberTree/hooks/types.js.map +1 -0
- package/dist/modules/fiberTree/hooks/value.d.ts +2 -0
- package/dist/modules/fiberTree/hooks/value.d.ts.map +1 -0
- package/dist/modules/fiberTree/hooks/value.js +89 -0
- package/dist/modules/fiberTree/hooks/value.js.map +1 -0
- package/dist/modules/fiberTree/utils/constants.d.ts +8 -0
- package/dist/modules/fiberTree/utils/constants.d.ts.map +1 -0
- package/dist/modules/fiberTree/utils/constants.js +15 -0
- package/dist/modules/fiberTree/utils/constants.js.map +1 -0
- package/dist/modules/fiberTree/utils/index.d.ts +9 -0
- package/dist/modules/fiberTree/utils/index.d.ts.map +1 -0
- package/dist/modules/fiberTree/utils/index.js +34 -0
- package/dist/modules/fiberTree/utils/index.js.map +1 -0
- package/dist/modules/fiberTree/utils/match.d.ts +4 -0
- package/dist/modules/fiberTree/utils/match.d.ts.map +1 -0
- package/dist/modules/fiberTree/utils/match.js +169 -0
- package/dist/modules/fiberTree/utils/match.js.map +1 -0
- package/dist/modules/fiberTree/utils/naming.d.ts +4 -0
- package/dist/modules/fiberTree/utils/naming.d.ts.map +1 -0
- package/dist/modules/fiberTree/utils/naming.js +52 -0
- package/dist/modules/fiberTree/utils/naming.js.map +1 -0
- package/dist/modules/fiberTree/utils/native.d.ts +5 -0
- package/dist/modules/fiberTree/utils/native.d.ts.map +1 -0
- package/dist/modules/fiberTree/utils/native.js +101 -0
- package/dist/modules/fiberTree/utils/native.js.map +1 -0
- package/dist/modules/fiberTree/utils/projection.d.ts +9 -0
- package/dist/modules/fiberTree/utils/projection.d.ts.map +1 -0
- package/dist/modules/fiberTree/utils/projection.js +75 -0
- package/dist/modules/fiberTree/utils/projection.js.map +1 -0
- package/dist/modules/fiberTree/utils/root.d.ts +4 -0
- package/dist/modules/fiberTree/utils/root.d.ts.map +1 -0
- package/dist/modules/fiberTree/utils/root.js +30 -0
- package/dist/modules/fiberTree/utils/root.js.map +1 -0
- package/dist/modules/fiberTree/utils/screen.d.ts +10 -0
- package/dist/modules/fiberTree/utils/screen.d.ts.map +1 -0
- package/dist/modules/fiberTree/utils/screen.js +39 -0
- package/dist/modules/fiberTree/utils/screen.js.map +1 -0
- package/dist/modules/fiberTree/utils/serialize.d.ts +4 -0
- package/dist/modules/fiberTree/utils/serialize.d.ts.map +1 -0
- package/dist/modules/fiberTree/utils/serialize.js +102 -0
- package/dist/modules/fiberTree/utils/serialize.js.map +1 -0
- package/dist/modules/fiberTree/utils/traverse.d.ts +12 -0
- package/dist/modules/fiberTree/utils/traverse.d.ts.map +1 -0
- package/dist/modules/fiberTree/utils/traverse.js +107 -0
- package/dist/modules/fiberTree/utils/traverse.js.map +1 -0
- package/dist/modules/i18next/i18next.d.ts.map +1 -1
- package/dist/modules/i18next/i18next.js +27 -6
- package/dist/modules/i18next/i18next.js.map +1 -1
- package/dist/modules/logBox/logBox.d.ts.map +1 -1
- package/dist/modules/logBox/logBox.js +8 -4
- package/dist/modules/logBox/logBox.js.map +1 -1
- package/dist/modules/navigation/navigation.d.ts.map +1 -1
- package/dist/modules/navigation/navigation.js +19 -4
- package/dist/modules/navigation/navigation.js.map +1 -1
- package/dist/modules/network/network.js +1 -1
- package/dist/modules/network/network.js.map +1 -1
- package/dist/modules/reactQuery/reactQuery.d.ts.map +1 -1
- package/dist/modules/reactQuery/reactQuery.js +2 -1
- package/dist/modules/reactQuery/reactQuery.js.map +1 -1
- package/dist/modules/storage/storage.d.ts.map +1 -1
- package/dist/modules/storage/storage.js +23 -8
- package/dist/modules/storage/storage.js.map +1 -1
- package/dist/server/bridge.d.ts +2 -0
- package/dist/server/bridge.d.ts.map +1 -1
- package/dist/server/bridge.js +61 -5
- package/dist/server/bridge.js.map +1 -1
- package/dist/server/dispatch.d.ts +15 -0
- package/dist/server/dispatch.d.ts.map +1 -0
- package/dist/server/dispatch.js +121 -0
- package/dist/server/dispatch.js.map +1 -0
- package/dist/server/helpers.d.ts +97 -0
- package/dist/server/helpers.d.ts.map +1 -0
- package/dist/server/helpers.js +162 -0
- package/dist/server/helpers.js.map +1 -0
- package/dist/server/host/deviceResolver/byClient.d.ts +5 -0
- package/dist/server/host/deviceResolver/byClient.d.ts.map +1 -0
- package/dist/server/host/deviceResolver/byClient.js +171 -0
- package/dist/server/host/deviceResolver/byClient.js.map +1 -0
- package/dist/server/host/deviceResolver/byId.d.ts +5 -0
- package/dist/server/host/deviceResolver/byId.d.ts.map +1 -0
- package/dist/server/host/deviceResolver/byId.js +81 -0
- package/dist/server/host/deviceResolver/byId.js.map +1 -0
- package/dist/server/host/deviceResolver/enrich.d.ts +5 -0
- package/dist/server/host/deviceResolver/enrich.d.ts.map +1 -0
- package/dist/server/host/deviceResolver/enrich.js +123 -0
- package/dist/server/host/deviceResolver/enrich.js.map +1 -0
- package/dist/server/host/deviceResolver/index.d.ts +13 -0
- package/dist/server/host/deviceResolver/index.d.ts.map +1 -0
- package/dist/server/host/deviceResolver/index.js +65 -0
- package/dist/server/host/deviceResolver/index.js.map +1 -0
- package/dist/server/host/deviceResolver/list.d.ts +10 -0
- package/dist/server/host/deviceResolver/list.d.ts.map +1 -0
- package/dist/server/host/deviceResolver/list.js +119 -0
- package/dist/server/host/deviceResolver/list.js.map +1 -0
- package/dist/server/host/deviceResolver/scan.d.ts +4 -0
- package/dist/server/host/deviceResolver/scan.d.ts.map +1 -0
- package/dist/server/host/deviceResolver/scan.js +102 -0
- package/dist/server/host/deviceResolver/scan.js.map +1 -0
- package/dist/server/host/{deviceResolver.d.ts → deviceResolver/types.d.ts} +1 -16
- package/dist/server/host/deviceResolver/types.d.ts.map +1 -0
- package/dist/server/host/deviceResolver/types.js +3 -0
- package/dist/server/host/deviceResolver/types.js.map +1 -0
- package/dist/server/host/tools/capture.d.ts.map +1 -1
- package/dist/server/host/tools/capture.js +52 -22
- package/dist/server/host/tools/capture.js.map +1 -1
- package/dist/server/host/tools/devices.d.ts.map +1 -1
- package/dist/server/host/tools/devices.js +25 -4
- package/dist/server/host/tools/devices.js.map +1 -1
- package/dist/server/host/tools/input/android.d.ts +15 -0
- package/dist/server/host/tools/input/android.d.ts.map +1 -0
- package/dist/server/host/tools/input/android.js +88 -0
- package/dist/server/host/tools/input/android.js.map +1 -0
- package/dist/server/host/tools/input/constants.d.ts +14 -0
- package/dist/server/host/tools/input/constants.d.ts.map +1 -0
- package/dist/server/host/tools/input/constants.js +41 -0
- package/dist/server/host/tools/input/constants.js.map +1 -0
- package/dist/server/host/tools/input/drag.d.ts +4 -0
- package/dist/server/host/tools/input/drag.d.ts.map +1 -0
- package/dist/server/host/tools/input/drag.js +76 -0
- package/dist/server/host/tools/input/drag.js.map +1 -0
- package/dist/server/host/tools/input/index.d.ts +8 -0
- package/dist/server/host/tools/input/index.d.ts.map +1 -0
- package/dist/server/host/tools/input/index.js +18 -0
- package/dist/server/host/tools/input/index.js.map +1 -0
- package/dist/server/host/tools/input/longPress.d.ts +4 -0
- package/dist/server/host/tools/input/longPress.d.ts.map +1 -0
- package/dist/server/host/tools/input/longPress.js +49 -0
- package/dist/server/host/tools/input/longPress.js.map +1 -0
- package/dist/server/host/tools/input/pressKey.d.ts +4 -0
- package/dist/server/host/tools/input/pressKey.d.ts.map +1 -0
- package/dist/server/host/tools/input/pressKey.js +42 -0
- package/dist/server/host/tools/input/pressKey.js.map +1 -0
- package/dist/server/host/tools/input/swipe.d.ts +4 -0
- package/dist/server/host/tools/input/swipe.d.ts.map +1 -0
- package/dist/server/host/tools/input/swipe.js +71 -0
- package/dist/server/host/tools/input/swipe.js.map +1 -0
- package/dist/server/host/tools/input/tap.d.ts +4 -0
- package/dist/server/host/tools/input/tap.d.ts.map +1 -0
- package/dist/server/host/tools/input/tap.js +49 -0
- package/dist/server/host/tools/input/tap.js.map +1 -0
- package/dist/server/host/tools/input/typeText.d.ts +4 -0
- package/dist/server/host/tools/input/typeText.d.ts.map +1 -0
- package/dist/server/host/tools/input/typeText.js +52 -0
- package/dist/server/host/tools/input/typeText.js.map +1 -0
- package/dist/server/host/tools/input/typeTextBatch.d.ts +4 -0
- package/dist/server/host/tools/input/typeTextBatch.d.ts.map +1 -0
- package/dist/server/host/tools/input/typeTextBatch.js +106 -0
- package/dist/server/host/tools/input/typeTextBatch.js.map +1 -0
- package/dist/server/host/tools/tapFiber.d.ts.map +1 -1
- package/dist/server/host/tools/tapFiber.js +2 -0
- package/dist/server/host/tools/tapFiber.js.map +1 -1
- package/dist/server/instructions.d.ts +2 -0
- package/dist/server/instructions.d.ts.map +1 -0
- package/dist/server/instructions.js +74 -0
- package/dist/server/instructions.js.map +1 -0
- package/dist/server/mcpServer.d.ts +0 -12
- package/dist/server/mcpServer.d.ts.map +1 -1
- package/dist/server/mcpServer.js +26 -877
- package/dist/server/mcpServer.js.map +1 -1
- package/dist/server/metro/tools/events.d.ts.map +1 -1
- package/dist/server/metro/tools/events.js +1 -0
- package/dist/server/metro/tools/events.js.map +1 -1
- package/dist/server/metro/tools/openInEditor.d.ts.map +1 -1
- package/dist/server/metro/tools/openInEditor.js +4 -1
- package/dist/server/metro/tools/openInEditor.js.map +1 -1
- package/dist/server/metro/tools/symbolicate.d.ts.map +1 -1
- package/dist/server/metro/tools/symbolicate.js +41 -11
- package/dist/server/metro/tools/symbolicate.js.map +1 -1
- package/dist/server/predicate.d.ts +31 -0
- package/dist/server/predicate.d.ts.map +1 -0
- package/dist/server/predicate.js +104 -0
- package/dist/server/predicate.js.map +1 -0
- package/dist/server/tools/assert.d.ts +4 -0
- package/dist/server/tools/assert.d.ts.map +1 -0
- package/dist/server/tools/assert.js +79 -0
- package/dist/server/tools/assert.js.map +1 -0
- package/dist/server/tools/call.d.ts +4 -0
- package/dist/server/tools/call.d.ts.map +1 -0
- package/dist/server/tools/call.js +38 -0
- package/dist/server/tools/call.js.map +1 -0
- package/dist/server/tools/connectionStatus.d.ts +4 -0
- package/dist/server/tools/connectionStatus.d.ts.map +1 -0
- package/dist/server/tools/connectionStatus.js +41 -0
- package/dist/server/tools/connectionStatus.js.map +1 -0
- package/dist/server/tools/describeTool.d.ts +4 -0
- package/dist/server/tools/describeTool.d.ts.map +1 -0
- package/dist/server/tools/describeTool.js +130 -0
- package/dist/server/tools/describeTool.js.map +1 -0
- package/dist/server/tools/listTools.d.ts +4 -0
- package/dist/server/tools/listTools.d.ts.map +1 -0
- package/dist/server/tools/listTools.js +109 -0
- package/dist/server/tools/listTools.js.map +1 -0
- package/dist/server/tools/waitUntil.d.ts +4 -0
- package/dist/server/tools/waitUntil.d.ts.map +1 -0
- package/dist/server/tools/waitUntil.js +119 -0
- package/dist/server/tools/waitUntil.js.map +1 -0
- package/dist/shared/projection/projectValue.d.ts +12 -1
- package/dist/shared/projection/projectValue.d.ts.map +1 -1
- package/dist/shared/projection/projectValue.js +42 -12
- package/dist/shared/projection/projectValue.js.map +1 -1
- package/dist/shared/projection/resolvePath.d.ts +14 -2
- package/dist/shared/projection/resolvePath.d.ts.map +1 -1
- package/dist/shared/projection/resolvePath.js +25 -3
- package/dist/shared/projection/resolvePath.js.map +1 -1
- package/package.json +2 -2
- package/dist/babel/testIdPlugin.d.ts.map +0 -1
- package/dist/babel/testIdPlugin.js +0 -537
- package/dist/babel/testIdPlugin.js.map +0 -1
- package/dist/modules/fiberTree/hooks.d.ts.map +0 -1
- package/dist/modules/fiberTree/hooks.js +0 -532
- package/dist/modules/fiberTree/hooks.js.map +0 -1
- package/dist/modules/fiberTree/utils.d.ts +0 -39
- package/dist/modules/fiberTree/utils.d.ts.map +0 -1
- package/dist/modules/fiberTree/utils.js +0 -616
- package/dist/modules/fiberTree/utils.js.map +0 -1
- package/dist/server/host/deviceResolver.d.ts.map +0 -1
- package/dist/server/host/deviceResolver.js +0 -621
- package/dist/server/host/deviceResolver.js.map +0 -1
- package/dist/server/host/tools/input.d.ts +0 -10
- package/dist/server/host/tools/input.d.ts.map +0 -1
- package/dist/server/host/tools/input.js +0 -478
- package/dist/server/host/tools/input.js.map +0 -1
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = testIdPlugin;
|
|
4
|
+
const collectHooks_1 = require("./collectHooks");
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
const helpers_1 = require("./helpers");
|
|
7
|
+
const hocUnwrap_1 = require("./hocUnwrap");
|
|
8
|
+
const inject_1 = require("./inject");
|
|
9
|
+
function testIdPlugin({ types: t }) {
|
|
10
|
+
return {
|
|
11
|
+
name: 'react-native-mcp-test-id',
|
|
12
|
+
visitor: {
|
|
13
|
+
// === Part 2: attach __mcp_hooks metadata. ===
|
|
14
|
+
// Two candidate shapes per function declaration:
|
|
15
|
+
// 1. Component — capitalized name + JSX in body (React component).
|
|
16
|
+
// 2. Custom hook — name matches /^use[A-Z]/ + body contains hook calls.
|
|
17
|
+
// The VariableDeclarator visitor below covers the
|
|
18
|
+
// `const Foo = (...) => {...}` / `const useX = (...) => {...}` forms,
|
|
19
|
+
// plus HOC-wrapped components: `const Foo = anyHoc((props) => <JSX />)`
|
|
20
|
+
// and nested chains thereof.
|
|
21
|
+
FunctionDeclaration(path, state) {
|
|
22
|
+
const id = path.node.id;
|
|
23
|
+
if (!id)
|
|
24
|
+
return;
|
|
25
|
+
const bodyPath = path.get('body');
|
|
26
|
+
const pluginState = state;
|
|
27
|
+
const opts = (state.opts ?? {});
|
|
28
|
+
const separator = opts.separator ?? ':';
|
|
29
|
+
const shortFile = (0, helpers_1.getShortFile)(state.filename);
|
|
30
|
+
// Component: capitalized name + (JSX in body OR hook calls in body).
|
|
31
|
+
// The hook-call branch covers components that legitimately return
|
|
32
|
+
// null / non-JSX values — portal-like, context-only, or
|
|
33
|
+
// imperative-handle wrappers. Under the Rules of Hooks, only
|
|
34
|
+
// components and custom hooks may call hooks, so a capitalized
|
|
35
|
+
// function that calls them is unambiguously a component.
|
|
36
|
+
if ((0, helpers_1.isCapitalized)(id.name) && ((0, helpers_1.bodyUsesJSX)(bodyPath) || (0, helpers_1.bodyCallsHook)(bodyPath, t))) {
|
|
37
|
+
const hooks = (0, collectHooks_1.collectHooksInBody)(bodyPath, t, shortFile, separator);
|
|
38
|
+
(0, inject_1.queueHooksAssignment)(pluginState, path, id.name, hooks);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// Custom hook: name matches use[A-Z] + body calls at least one hook.
|
|
42
|
+
if ((0, helpers_1.isCustomHookName)(id.name) && (0, helpers_1.bodyCallsHook)(bodyPath, t)) {
|
|
43
|
+
const hooks = (0, collectHooks_1.collectHooksInBody)(bodyPath, t, shortFile, separator);
|
|
44
|
+
(0, inject_1.queueHooksAssignment)(pluginState, path, id.name, hooks);
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
// === Part 1: stamp data-mcp-id on capitalized JSX elements. ===
|
|
48
|
+
JSXOpeningElement(path, state) {
|
|
49
|
+
const opts = (state.opts ?? {});
|
|
50
|
+
const attrName = opts.attr ?? constants_1.DEFAULT_ATTR;
|
|
51
|
+
const separator = opts.separator ?? ':';
|
|
52
|
+
const exclude = opts.exclude ?? constants_1.DEFAULT_EXCLUDE;
|
|
53
|
+
const include = opts.include;
|
|
54
|
+
const nameNode = path.node.name;
|
|
55
|
+
let componentName;
|
|
56
|
+
if (t.isJSXIdentifier(nameNode)) {
|
|
57
|
+
componentName = nameNode.name;
|
|
58
|
+
}
|
|
59
|
+
else if (t.isJSXMemberExpression(nameNode)) {
|
|
60
|
+
componentName = `${nameNode.object.name}.${nameNode.property.name}`;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (componentName[0] === componentName[0]?.toLowerCase())
|
|
66
|
+
return;
|
|
67
|
+
if (include && !include.includes(componentName))
|
|
68
|
+
return;
|
|
69
|
+
if (exclude.includes(componentName))
|
|
70
|
+
return;
|
|
71
|
+
const shortFile = (0, helpers_1.getShortFile)(state.filename);
|
|
72
|
+
const line = path.node.loc?.start.line ?? 0;
|
|
73
|
+
const generatedId = `${componentName}${separator}${shortFile}${separator}${line}`;
|
|
74
|
+
const existingAttr = path.node.attributes.find((attr) => {
|
|
75
|
+
return t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name, { name: attrName });
|
|
76
|
+
});
|
|
77
|
+
if (existingAttr && t.isJSXAttribute(existingAttr)) {
|
|
78
|
+
if (t.isStringLiteral(existingAttr.value)) {
|
|
79
|
+
const existing = existingAttr.value.value;
|
|
80
|
+
existingAttr.value = t.stringLiteral(`${existing}${separator}${shortFile}${separator}${line}`);
|
|
81
|
+
}
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
path.node.attributes.push(t.jsxAttribute(t.jsxIdentifier(attrName), t.stringLiteral(generatedId)));
|
|
85
|
+
},
|
|
86
|
+
// === Part 3: drain deferred-injection queue at module end. ===
|
|
87
|
+
// Runs after all other plugins' visitors (in particular react-refresh's
|
|
88
|
+
// replaceWith on HOC-wrapped components) have finished mutating the
|
|
89
|
+
// tree. We dedupe by `outer` name to defend against multiple visitor
|
|
90
|
+
// passes queuing the same component twice, then push every queued
|
|
91
|
+
// statement onto the END of the Program body. End-of-body is the only
|
|
92
|
+
// placement that's safe across react-compiler + worklets + unistyles:
|
|
93
|
+
// earlier plugins can rewrite a `const Foo = ...` declaration into a
|
|
94
|
+
// hoisted `var Foo = ...` and slip extracted helpers (`_worklet_..._init_data`,
|
|
95
|
+
// memoization scaffolding) BEFORE Foo's source line, leaving an
|
|
96
|
+
// insertAfter-target-position holding a stale `undefined` binding.
|
|
97
|
+
Program: {
|
|
98
|
+
exit(programPath, state) {
|
|
99
|
+
const pluginState = state;
|
|
100
|
+
const queue = pluginState.pendingInjects;
|
|
101
|
+
if (!queue || queue.length === 0)
|
|
102
|
+
return;
|
|
103
|
+
const seen = new Set();
|
|
104
|
+
for (const entry of queue) {
|
|
105
|
+
if (seen.has(entry.outer))
|
|
106
|
+
continue;
|
|
107
|
+
seen.add(entry.outer);
|
|
108
|
+
if (entry.kind === 'assignment') {
|
|
109
|
+
programPath.pushContainer('body', (0, inject_1.buildAssignmentStmt)(entry.outer, entry.hooks, t));
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
programPath.pushContainer('body', (0, inject_1.buildHooksGetterStmt)(entry.outer, entry.inner, t));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
pluginState.pendingInjects = [];
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
VariableDeclarator(path, state) {
|
|
119
|
+
const id = path.node.id;
|
|
120
|
+
if (!t.isIdentifier(id))
|
|
121
|
+
return;
|
|
122
|
+
let initNode = path.node.init;
|
|
123
|
+
if (!initNode)
|
|
124
|
+
return;
|
|
125
|
+
const pluginState = state;
|
|
126
|
+
// Unwrap TypeScript casts: `as Foo`, `as const`, `<Foo>x` (legacy
|
|
127
|
+
// angle-bracket assertion), and `x satisfies Foo`. Without this,
|
|
128
|
+
// `const Wrapped = memo(arrow) as { ... }` fails our HOC unwrap
|
|
129
|
+
// because we'd see TSAsExpression instead of the inner CallExpression.
|
|
130
|
+
// Pattern in the wild: 21vek's PageFlashListWithBanner /
|
|
131
|
+
// ListProductRow / RangeFilter use `as` to attach generic call
|
|
132
|
+
// signatures + displayName onto memo'd components.
|
|
133
|
+
let initPathForUnwrap = path.get('init');
|
|
134
|
+
for (let i = 0; i < 4; i++) {
|
|
135
|
+
if (t.isTSAsExpression(initNode) ||
|
|
136
|
+
t.isTSTypeAssertion(initNode) ||
|
|
137
|
+
t.isTSSatisfiesExpression(initNode) ||
|
|
138
|
+
t.isTSNonNullExpression(initNode)) {
|
|
139
|
+
initPathForUnwrap = initPathForUnwrap.get('expression');
|
|
140
|
+
initNode = initPathForUnwrap.node;
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
const init = initNode;
|
|
146
|
+
// Resolve the function body to inspect. Three shapes:
|
|
147
|
+
// const Foo = (props) => <JSX /> — direct arrow / fn
|
|
148
|
+
// const Foo = memo((props) => <JSX />) — single-HOC wrap
|
|
149
|
+
// const Foo = memo(forwardRef((p, r) => ...)) — nested HOC chain
|
|
150
|
+
// For HOC wrappers, attaching `Foo.__mcp_hooks = [...]` on the outer
|
|
151
|
+
// binding works because `memo()` / `forwardRef()` return plain JS
|
|
152
|
+
// objects that React stores in `fiber.type` — the runtime read path
|
|
153
|
+
// is identical to the bare-component case. The unwrap is name-
|
|
154
|
+
// agnostic (any Identifier or import-namespaced MemberExpression
|
|
155
|
+
// callee qualifies), so custom HOCs like `withAuth(...)` work too.
|
|
156
|
+
let bodyPath = null;
|
|
157
|
+
if (t.isArrowFunctionExpression(init) || t.isFunctionExpression(init)) {
|
|
158
|
+
bodyPath = initPathForUnwrap.get('body');
|
|
159
|
+
}
|
|
160
|
+
else if (t.isCallExpression(init)) {
|
|
161
|
+
bodyPath = (0, hocUnwrap_1.findInnerFunctionBodyPath)(initPathForUnwrap, t);
|
|
162
|
+
// Identifier-ref HOC case: `const Foo = memo(InnerFn)`. The inner
|
|
163
|
+
// arg is a name, not an inline function — so we can't statically
|
|
164
|
+
// collect hooks here. Instead, install a getter on `Foo` that
|
|
165
|
+
// forwards to `Inner.__mcp_hooks` at read time.
|
|
166
|
+
if (!bodyPath && (0, helpers_1.isCapitalized)(id.name)) {
|
|
167
|
+
const inner = (0, hocUnwrap_1.findInnerIdentifier)(initPathForUnwrap, t);
|
|
168
|
+
if (inner && inner.scope.getBinding(inner.node.name)) {
|
|
169
|
+
const stmt = path.getStatementParent();
|
|
170
|
+
if (stmt) {
|
|
171
|
+
(0, inject_1.queueHooksGetter)(pluginState, stmt, id.name, inner.node.name);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (!bodyPath || !bodyPath.node)
|
|
177
|
+
return;
|
|
178
|
+
const opts = (state.opts ?? {});
|
|
179
|
+
const separator = opts.separator ?? ':';
|
|
180
|
+
const shortFile = (0, helpers_1.getShortFile)(state.filename);
|
|
181
|
+
// Component: capitalized + (JSX in body OR hook calls). Same
|
|
182
|
+
// rationale as FunctionDeclaration above — Rules of Hooks pin a
|
|
183
|
+
// capitalized hook-calling function to "component", so JSX is
|
|
184
|
+
// sufficient but not necessary (covers `return null` portals).
|
|
185
|
+
if ((0, helpers_1.isCapitalized)(id.name) && ((0, helpers_1.bodyUsesJSX)(bodyPath) || (0, helpers_1.bodyCallsHook)(bodyPath, t))) {
|
|
186
|
+
const hooks = (0, collectHooks_1.collectHooksInBody)(bodyPath, t, shortFile, separator);
|
|
187
|
+
const statement = path.getStatementParent();
|
|
188
|
+
if (!statement)
|
|
189
|
+
return;
|
|
190
|
+
(0, inject_1.queueHooksAssignment)(pluginState, statement, id.name, hooks);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
// Custom hook: use[A-Z] + body calls hooks.
|
|
194
|
+
if ((0, helpers_1.isCustomHookName)(id.name) && (0, helpers_1.bodyCallsHook)(bodyPath, t)) {
|
|
195
|
+
const hooks = (0, collectHooks_1.collectHooksInBody)(bodyPath, t, shortFile, separator);
|
|
196
|
+
const statement = path.getStatementParent();
|
|
197
|
+
if (!statement)
|
|
198
|
+
return;
|
|
199
|
+
(0, inject_1.queueHooksAssignment)(pluginState, statement, id.name, hooks);
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type NodePath, type types as BabelTypes } from '@babel/core';
|
|
2
|
+
import { type CollectedHook, type PluginPassWithQueue } from './types';
|
|
3
|
+
export declare const buildHooksGetterStmt: (outer: string, inner: string, t: typeof BabelTypes) => BabelTypes.TryStatement;
|
|
4
|
+
export declare const buildAssignmentStmt: (componentName: string, hooks: CollectedHook[], t: typeof BabelTypes) => BabelTypes.TryStatement;
|
|
5
|
+
export declare const queueHooksAssignment: (state: PluginPassWithQueue, statementPath: NodePath<BabelTypes.Node>, componentName: string, hooks: CollectedHook[]) => void;
|
|
6
|
+
export declare const queueHooksGetter: (state: PluginPassWithQueue, statementPath: NodePath<BabelTypes.Node>, outer: string, inner: string) => void;
|
|
7
|
+
//# sourceMappingURL=inject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA4CvE,eAAO,MAAM,oBAAoB,UACxB,MAAM,SACN,MAAM,KACV,OAAO,UAAU,KACnB,UAAU,CAAC,YAmBb,CAAC;AAWF,eAAO,MAAM,mBAAmB,kBACf,MAAM,SACd,aAAa,EAAE,KACnB,OAAO,UAAU,KACnB,UAAU,CAAC,YAUb,CAAC;AASF,eAAO,MAAM,oBAAoB,UACxB,mBAAmB,iBACX,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,iBACzB,MAAM,SACd,aAAa,EAAE,KACrB,IAIF,CAAC;AAEF,eAAO,MAAM,gBAAgB,UACpB,mBAAmB,iBACX,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SACjC,MAAM,SACN,MAAM,KACZ,IAGF,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.queueHooksGetter = exports.queueHooksAssignment = exports.buildAssignmentStmt = exports.buildHooksGetterStmt = void 0;
|
|
4
|
+
const buildHooksArrayExpr = (hooks, t) => {
|
|
5
|
+
return t.arrayExpression(hooks.map((h) => {
|
|
6
|
+
const props = [
|
|
7
|
+
t.objectProperty(t.identifier('name'), t.stringLiteral(h.name)),
|
|
8
|
+
t.objectProperty(t.identifier('kind'), t.stringLiteral(h.kind)),
|
|
9
|
+
t.objectProperty(t.identifier('hook'), t.stringLiteral(h.hook)),
|
|
10
|
+
];
|
|
11
|
+
if (h.mcpId) {
|
|
12
|
+
props.push(t.objectProperty(t.identifier('mcpId'), t.stringLiteral(h.mcpId)));
|
|
13
|
+
}
|
|
14
|
+
if (h.fnIdent) {
|
|
15
|
+
// fn: useAuth (runtime reads .__mcp_hooks off this identifier)
|
|
16
|
+
props.push(t.objectProperty(t.identifier('fn'), t.identifier(h.fnIdent)));
|
|
17
|
+
}
|
|
18
|
+
return t.objectExpression(props);
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
21
|
+
// Build:
|
|
22
|
+
// try {
|
|
23
|
+
// Object.defineProperty(Outer, '__mcp_hooks', {
|
|
24
|
+
// configurable: true,
|
|
25
|
+
// get: () => Inner.__mcp_hooks,
|
|
26
|
+
// });
|
|
27
|
+
// } catch {}
|
|
28
|
+
// Used for the identifier-ref HOC case (`const Outer = memo(Inner)`) where
|
|
29
|
+
// we can't statically collect hooks from the wrapped function. The getter
|
|
30
|
+
// forwards to the inner binding's metadata at read time, sidestepping
|
|
31
|
+
// declaration order, hoisting, scope, and custom-HOC return shape.
|
|
32
|
+
//
|
|
33
|
+
// The try/catch is mandatory: the HOC's return value is statically unknown
|
|
34
|
+
// — it could be a primitive (number / string), `null`/`undefined`, or a
|
|
35
|
+
// frozen / sealed object. Any of those make `Object.defineProperty` throw
|
|
36
|
+
// `TypeError` in strict mode (which ES modules always are). A throw at
|
|
37
|
+
// module-init kills the bundle. Swallowing here is harmless: the worst
|
|
38
|
+
// outcome is metadata not being attached to that one binding, exactly as
|
|
39
|
+
// if the plugin had skipped it.
|
|
40
|
+
const buildHooksGetterStmt = (outer, inner, t) => {
|
|
41
|
+
const defineCall = t.expressionStatement(t.callExpression(t.memberExpression(t.identifier('Object'), t.identifier('defineProperty')), [
|
|
42
|
+
t.identifier(outer),
|
|
43
|
+
t.stringLiteral('__mcp_hooks'),
|
|
44
|
+
t.objectExpression([
|
|
45
|
+
t.objectProperty(t.identifier('configurable'), t.booleanLiteral(true)),
|
|
46
|
+
t.objectProperty(t.identifier('get'), t.arrowFunctionExpression([], t.memberExpression(t.identifier(inner), t.identifier('__mcp_hooks')))),
|
|
47
|
+
]),
|
|
48
|
+
]));
|
|
49
|
+
// Optional-catch-binding (ES2019): `catch {}` — supported by Hermes.
|
|
50
|
+
return t.tryStatement(t.blockStatement([defineCall]), t.catchClause(null, t.blockStatement([])));
|
|
51
|
+
};
|
|
52
|
+
exports.buildHooksGetterStmt = buildHooksGetterStmt;
|
|
53
|
+
// Build the `ComponentName.__mcp_hooks = [...]` statement, wrapped in a
|
|
54
|
+
// `try { ... } catch {}` so a stale binding can't crash module-init. We
|
|
55
|
+
// place these at the END of the program body — by the time they run, every
|
|
56
|
+
// `var X = ...` in the file has been initialized. Without that placement,
|
|
57
|
+
// react-compiler + react-native preset rewrite `const Foo = ...` to a
|
|
58
|
+
// hoisted `var Foo = ...` whose binding is `undefined` until its source-line
|
|
59
|
+
// is reached, and a worklets-extracted `var _worklet_..._init_data` slips
|
|
60
|
+
// between our queued insertAfter target and the rebuilt declaration —
|
|
61
|
+
// `Foo.__mcp_hooks = [...]` then runs against `undefined` and throws.
|
|
62
|
+
const buildAssignmentStmt = (componentName, hooks, t) => {
|
|
63
|
+
const assignment = t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.identifier(componentName), t.identifier('__mcp_hooks')), buildHooksArrayExpr(hooks, t)));
|
|
64
|
+
return t.tryStatement(t.blockStatement([assignment]), t.catchClause(null, t.blockStatement([])));
|
|
65
|
+
};
|
|
66
|
+
exports.buildAssignmentStmt = buildAssignmentStmt;
|
|
67
|
+
// Queue a `ComponentName.__mcp_hooks = [...]` insertion for `Program:exit`.
|
|
68
|
+
// Inserting during the main traversal is unsafe: react-refresh's babel
|
|
69
|
+
// plugin replaces HOC-wrapped function expressions via `replaceWith`, which
|
|
70
|
+
// re-traverses the rebuilt subtree and (in our experience) drops sibling
|
|
71
|
+
// statements we'd inserted via `insertAfter` on the original declarator.
|
|
72
|
+
// Deferring to `Program:exit` keeps our writes visible to the final output
|
|
73
|
+
// without interfering with replaceWith semantics.
|
|
74
|
+
const queueHooksAssignment = (state, statementPath, componentName, hooks) => {
|
|
75
|
+
if (hooks.length === 0)
|
|
76
|
+
return;
|
|
77
|
+
const queue = (state.pendingInjects ??= []);
|
|
78
|
+
queue.push({ hooks, kind: 'assignment', outer: componentName, statementPath });
|
|
79
|
+
};
|
|
80
|
+
exports.queueHooksAssignment = queueHooksAssignment;
|
|
81
|
+
const queueHooksGetter = (state, statementPath, outer, inner) => {
|
|
82
|
+
const queue = (state.pendingInjects ??= []);
|
|
83
|
+
queue.push({ inner, kind: 'getter', outer, statementPath });
|
|
84
|
+
};
|
|
85
|
+
exports.queueHooksGetter = queueHooksGetter;
|
|
86
|
+
//# sourceMappingURL=inject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/inject.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type NodePath, type PluginPass, type types as BabelTypes } from '@babel/core';
|
|
2
|
+
/**
|
|
3
|
+
* Per-file plugin state with deferred-injection queue. Babel instantiates
|
|
4
|
+
* `PluginPass` per file, so this naturally scopes the queue to a single
|
|
5
|
+
* transformation. We collect all the metadata assignments during the main
|
|
6
|
+
* traversal, then flush them at `Program:exit` — that runs AFTER other
|
|
7
|
+
* plugins' replaceWith calls (e.g. react-refresh wrapping HOC chains in
|
|
8
|
+
* `_s(...)` signature calls), so our injected statements aren't dropped by
|
|
9
|
+
* babel's re-traversal of the rebuilt subtrees.
|
|
10
|
+
*/
|
|
11
|
+
export type DeferredInsert = {
|
|
12
|
+
hooks: CollectedHook[];
|
|
13
|
+
kind: 'assignment';
|
|
14
|
+
outer: string;
|
|
15
|
+
statementPath: NodePath<BabelTypes.Node>;
|
|
16
|
+
} | {
|
|
17
|
+
inner: string;
|
|
18
|
+
kind: 'getter';
|
|
19
|
+
outer: string;
|
|
20
|
+
statementPath: NodePath<BabelTypes.Node>;
|
|
21
|
+
};
|
|
22
|
+
export interface PluginPassWithQueue extends PluginPass {
|
|
23
|
+
pendingInjects?: DeferredInsert[];
|
|
24
|
+
}
|
|
25
|
+
export interface PluginOptions {
|
|
26
|
+
/** Attribute name to use. Default: "data-mcp-id" */
|
|
27
|
+
attr?: string;
|
|
28
|
+
/** Components to skip. Default: common wrappers */
|
|
29
|
+
exclude?: string[];
|
|
30
|
+
/** Components to add id to. Default: all capitalized JSX elements */
|
|
31
|
+
include?: string[];
|
|
32
|
+
/** Separator between parts. Default: ":" */
|
|
33
|
+
separator?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface CollectedHook {
|
|
36
|
+
/** Source-level hook function name (`useState`, `useAnimatedStyle`, etc.).
|
|
37
|
+
* Surfaced to the agent alongside `name` (the consuming binding) so it
|
|
38
|
+
* can tell e.g. `count (useState)` from `count (useReducer)` without
|
|
39
|
+
* inferring from `kind`. For React.useXxx member-call form we still
|
|
40
|
+
* record just the property name (`useState`). */
|
|
41
|
+
hook: string;
|
|
42
|
+
kind: string;
|
|
43
|
+
name: string;
|
|
44
|
+
/**
|
|
45
|
+
* For Custom-kind entries: the source identifier of the hook function being
|
|
46
|
+
* called. Runtime reads `identifierRef.__mcp_hooks` to recursively expand
|
|
47
|
+
* sub-hooks, keeping slot alignment exact even when custom hooks span
|
|
48
|
+
* multiple built-in slots. Built-in hooks (State/Memo/...) don't need this.
|
|
49
|
+
*/
|
|
50
|
+
fnIdent?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Call-site identity in the same shape as JSX `data-mcp-id`:
|
|
53
|
+
* `<name>:<shortFile>:<line>`. Lets an agent `Read(<file>, <line>)`
|
|
54
|
+
* straight from a hook entry without grepping for the variable name.
|
|
55
|
+
* Empty when source location isn't available (synthetic AST nodes).
|
|
56
|
+
*/
|
|
57
|
+
mcpId?: string;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,KAAK,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvF;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GACtB;IACE,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;CAC1C,GACD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAE/F,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B;;;;qDAIiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/babel/testIdPlugin/types.ts"],"names":[],"mappings":""}
|
package/dist/bin/ios-hid
CHANGED
|
Binary file
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { McpClient, McpContext, McpProvider, useMcpModule, useMcpTool } from './client/index';
|
|
2
2
|
export { type McpContextValue, type McpModule, type McpProviderProps, type ToolHandler, } from './client/index';
|
|
3
|
-
export { alertModule, fiberTreeModule, consoleModule, deviceModule, errorsModule, i18nextModule, navigationModule, networkModule, reactQueryModule, storageModule, } from './modules/index';
|
|
3
|
+
export { alertModule, fiberTreeModule, consoleModule, deviceModule, errorsModule, i18nextModule, logBoxModule, navigationModule, networkModule, reactQueryModule, storageModule, } from './modules/index';
|
|
4
4
|
export { type ClientMessage, type ModuleDescriptor, type ModuleToolDescriptor, type RegistrationMessage, type ServerMessage, type ToolRegisterMessage, type ToolRequest, type ToolResponse, type ToolUnregisterMessage, } from './shared/protocol';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.storageModule = exports.reactQueryModule = exports.networkModule = exports.navigationModule = exports.i18nextModule = exports.errorsModule = exports.deviceModule = exports.consoleModule = exports.fiberTreeModule = exports.alertModule = exports.useMcpTool = exports.useMcpModule = exports.McpProvider = exports.McpContext = exports.McpClient = void 0;
|
|
3
|
+
exports.storageModule = exports.reactQueryModule = exports.networkModule = exports.navigationModule = exports.logBoxModule = exports.i18nextModule = exports.errorsModule = exports.deviceModule = exports.consoleModule = exports.fiberTreeModule = exports.alertModule = exports.useMcpTool = exports.useMcpModule = exports.McpProvider = exports.McpContext = exports.McpClient = void 0;
|
|
4
4
|
// Client (safe for React Native)
|
|
5
5
|
var index_1 = require("./client/index");
|
|
6
6
|
Object.defineProperty(exports, "McpClient", { enumerable: true, get: function () { return index_1.McpClient; } });
|
|
@@ -16,6 +16,7 @@ Object.defineProperty(exports, "consoleModule", { enumerable: true, get: functio
|
|
|
16
16
|
Object.defineProperty(exports, "deviceModule", { enumerable: true, get: function () { return index_2.deviceModule; } });
|
|
17
17
|
Object.defineProperty(exports, "errorsModule", { enumerable: true, get: function () { return index_2.errorsModule; } });
|
|
18
18
|
Object.defineProperty(exports, "i18nextModule", { enumerable: true, get: function () { return index_2.i18nextModule; } });
|
|
19
|
+
Object.defineProperty(exports, "logBoxModule", { enumerable: true, get: function () { return index_2.logBoxModule; } });
|
|
19
20
|
Object.defineProperty(exports, "navigationModule", { enumerable: true, get: function () { return index_2.navigationModule; } });
|
|
20
21
|
Object.defineProperty(exports, "networkModule", { enumerable: true, get: function () { return index_2.networkModule; } });
|
|
21
22
|
Object.defineProperty(exports, "reactQueryModule", { enumerable: true, get: function () { return index_2.reactQueryModule; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,wCAA8F;AAArF,kGAAA,SAAS,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,mGAAA,UAAU,OAAA;AAQrE,kCAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,wCAA8F;AAArF,kGAAA,SAAS,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAAE,mGAAA,UAAU,OAAA;AAQrE,kCAAkC;AAClC,yCAYyB;AAXvB,oGAAA,WAAW,OAAA;AACX,wGAAA,eAAe,OAAA;AACf,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,sGAAA,aAAa,OAAA;AACb,qGAAA,YAAY,OAAA;AACZ,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA;AACb,yGAAA,gBAAgB,OAAA;AAChB,sGAAA,aAAa,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/modules/alert/alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAYvD,eAAO,MAAM,WAAW,QAAO,
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/modules/alert/alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAYvD,eAAO,MAAM,WAAW,QAAO,SA4D9B,CAAC"}
|
|
@@ -32,12 +32,27 @@ const alertModule = () => {
|
|
|
32
32
|
},
|
|
33
33
|
inputSchema: {
|
|
34
34
|
buttons: {
|
|
35
|
-
|
|
35
|
+
default: [{ text: 'OK' }],
|
|
36
|
+
description: 'Buttons — string or { text, style? }.',
|
|
36
37
|
examples: [['OK'], ['Cancel', 'OK'], [{ style: 'destructive', text: 'Delete' }]],
|
|
38
|
+
items: {
|
|
39
|
+
oneOf: [
|
|
40
|
+
{ type: 'string' },
|
|
41
|
+
{
|
|
42
|
+
properties: {
|
|
43
|
+
style: { enum: ['default', 'cancel', 'destructive'], type: 'string' },
|
|
44
|
+
text: { type: 'string' },
|
|
45
|
+
},
|
|
46
|
+
required: ['text'],
|
|
47
|
+
type: 'object',
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
minItems: 1,
|
|
37
52
|
type: 'array',
|
|
38
53
|
},
|
|
39
|
-
message: { description: 'Alert body.', type: 'string' },
|
|
40
|
-
title: { description: 'Alert title.', type: 'string' },
|
|
54
|
+
message: { default: '', description: 'Alert body.', type: 'string' },
|
|
55
|
+
title: { default: 'Alert', description: 'Alert title.', type: 'string' },
|
|
41
56
|
},
|
|
42
57
|
timeout: ALERT_TIMEOUT,
|
|
43
58
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../src/modules/alert/alert.ts"],"names":[],"mappings":";;;AACA,2CAAyC;AAEzC,MAAM,aAAa,GAAG,MAAM,CAAC;AAStB,MAAM,WAAW,GAAG,GAAc,EAAE;IACzC,OAAO;QACL,WAAW,EAAE,wEAAwE;QACrF,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,WAAW,EAAE,kDAAkD;gBAC/D,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,YAAK,GAAE,CAAC;oBAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAkD,CAAC;oBAC3E,MAAM,OAAO,GAAkB,UAAU;wBACvC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;4BACnB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjD,CAAC,CAAC;wBACJ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC7B,KAAK,CAAC,KAAK,CACR,IAAI,CAAC,KAAgB,IAAI,OAAO,EAChC,IAAI,CAAC,OAAkB,IAAI,EAAE,EAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;4BACzB,OAAO;gCACL,OAAO,EAAE,GAAG,EAAE;oCACZ,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gCACvC,CAAC;gCACD,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;gCAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;6BACf,CAAC;wBACJ,CAAC,CAAC,CACH,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,WAAW,EAAE;oBACX,OAAO,EAAE;wBACP,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../src/modules/alert/alert.ts"],"names":[],"mappings":";;;AACA,2CAAyC;AAEzC,MAAM,aAAa,GAAG,MAAM,CAAC;AAStB,MAAM,WAAW,GAAG,GAAc,EAAE;IACzC,OAAO;QACL,WAAW,EAAE,wEAAwE;QACrF,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,WAAW,EAAE,kDAAkD;gBAC/D,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,YAAK,GAAE,CAAC;oBAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAkD,CAAC;oBAC3E,MAAM,OAAO,GAAkB,UAAU;wBACvC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;4BACnB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjD,CAAC,CAAC;wBACJ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAErB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC7B,KAAK,CAAC,KAAK,CACR,IAAI,CAAC,KAAgB,IAAI,OAAO,EAChC,IAAI,CAAC,OAAkB,IAAI,EAAE,EAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;4BACzB,OAAO;gCACL,OAAO,EAAE,GAAG,EAAE;oCACZ,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gCACvC,CAAC;gCACD,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;gCAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;6BACf,CAAC;wBACJ,CAAC,CAAC,CACH,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,WAAW,EAAE;oBACX,OAAO,EAAE;wBACP,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;wBACzB,WAAW,EAAE,uCAAuC;wBACpD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;wBAChF,KAAK,EAAE;4BACL,KAAK,EAAE;gCACL,EAAE,IAAI,EAAE,QAAQ,EAAE;gCAClB;oCACE,UAAU,EAAE;wCACV,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;wCACrE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qCACzB;oCACD,QAAQ,EAAE,CAAC,MAAM,CAAC;oCAClB,IAAI,EAAE,QAAQ;iCACf;6BACF;yBACF;wBACD,QAAQ,EAAE,CAAC;wBACX,IAAI,EAAE,OAAO;qBACd;oBACD,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACpE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACzE;gBACD,OAAO,EAAE,aAAa;aACvB;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AA5DW,QAAA,WAAW,eA4DtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/modules/console/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQvD,OAAO,EAAE,KAAK,oBAAoB,EAAgC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/modules/console/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQvD,OAAO,EAAE,KAAK,oBAAoB,EAAgC,MAAM,SAAS,CAAC;AAwGlF,eAAO,MAAM,aAAa,aAAc,oBAAoB,KAAG,SA0D9D,CAAC"}
|
|
@@ -2,9 +2,21 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.consoleModule = void 0;
|
|
4
4
|
const projectValue_1 = require("../../shared/projection/projectValue");
|
|
5
|
-
const ALL_LEVELS = [
|
|
5
|
+
const ALL_LEVELS = [
|
|
6
|
+
'debug',
|
|
7
|
+
'error',
|
|
8
|
+
'group',
|
|
9
|
+
'groupCollapsed',
|
|
10
|
+
'groupEnd',
|
|
11
|
+
'info',
|
|
12
|
+
'log',
|
|
13
|
+
'trace',
|
|
14
|
+
'warn',
|
|
15
|
+
];
|
|
6
16
|
const DEFAULT_MAX_ENTRIES = 100;
|
|
7
|
-
|
|
17
|
+
// `trace` always carries a stack — that's the point of trace. Errors/warns
|
|
18
|
+
// get one too by default so noisy assertions are debuggable.
|
|
19
|
+
const DEFAULT_STACK_LEVELS = ['error', 'trace', 'warn'];
|
|
8
20
|
// Default depth 3 — top level is array of entries, level 2 expands each
|
|
9
21
|
// entry (id/level/timestamp inline, args/stack still markers), level 3
|
|
10
22
|
// opens the args array (primitive args inline, nested objects → ${obj}
|
|
@@ -59,10 +71,21 @@ const installPatches = () => {
|
|
|
59
71
|
patchesInstalled = true;
|
|
60
72
|
for (const level of ALL_LEVELS) {
|
|
61
73
|
const original = console[level];
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
74
|
+
// trace / group / groupCollapsed / groupEnd may be missing on the RN
|
|
75
|
+
// console (depends on RN version / debugger). Patch only when present;
|
|
76
|
+
// otherwise we install our own implementation that just records the
|
|
77
|
+
// call so the agent still sees the structure.
|
|
78
|
+
if (typeof original === 'function') {
|
|
79
|
+
console[level] = (...args) => {
|
|
80
|
+
addEntry(level, args);
|
|
81
|
+
original.apply(console, args);
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
console[level] = (...args) => {
|
|
86
|
+
addEntry(level, args);
|
|
87
|
+
};
|
|
88
|
+
}
|
|
66
89
|
}
|
|
67
90
|
};
|
|
68
91
|
installPatches();
|
|
@@ -95,14 +118,17 @@ const consoleModule = (options) => {
|
|
|
95
118
|
stackLevels = new Set(options.stackTrace);
|
|
96
119
|
}
|
|
97
120
|
return {
|
|
98
|
-
description: `Ring buffer of console.log
|
|
121
|
+
description: `Ring buffer of console.{log,warn,error,info,debug,trace,group,groupCollapsed,groupEnd}.
|
|
99
122
|
|
|
100
123
|
Each entry carries a monotonic numeric \`id\`. Args are stored raw; the
|
|
101
124
|
shared projection runs at query time. Stack traces captured per level
|
|
102
|
-
(default error+warn).
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
125
|
+
(default error+warn+trace). \`trace\` always carries a stack; \`group\` /
|
|
126
|
+
\`groupCollapsed\` / \`groupEnd\` are recorded structurally so the agent
|
|
127
|
+
sees nesting context (RN console may not surface these natively — they
|
|
128
|
+
still land in the buffer). Listing tools accept path / depth / maxBytes
|
|
129
|
+
(default depth ${CONSOLE_DEFAULT_DEPTH}). Capture starts at module-import time
|
|
130
|
+
so cold-start logs are not lost. Buffer size and captured levels are
|
|
131
|
+
configurable via consoleModule options.`,
|
|
106
132
|
name: 'console',
|
|
107
133
|
tools: {
|
|
108
134
|
clear_logs: {
|
|
@@ -123,7 +149,7 @@ consoleModule options.`,
|
|
|
123
149
|
...PROJECTION_SCHEMA,
|
|
124
150
|
level: {
|
|
125
151
|
description: 'Filter by level. Omit for all levels.',
|
|
126
|
-
|
|
152
|
+
enum: ALL_LEVELS,
|
|
127
153
|
type: 'string',
|
|
128
154
|
},
|
|
129
155
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/modules/console/console.ts"],"names":[],"mappings":";;;AACA,mEAK0C;AAI1C,MAAM,UAAU,GAAe,
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/modules/console/console.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/console/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/console/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,OAAO,GACP,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,MAAM,GACN,KAAK,GACL,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;CACnC"}
|