react-native-mcp-kit 4.2.0 → 4.3.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.
- 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/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} +1 -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/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 +129 -0
- package/dist/server/helpers.d.ts.map +1 -0
- package/dist/server/helpers.js +250 -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/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/instructions.d.ts +2 -0
- package/dist/server/instructions.d.ts.map +1 -0
- package/dist/server/instructions.js +89 -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/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 +103 -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 +48 -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 +149 -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 +116 -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 +169 -0
- package/dist/server/tools/waitUntil.js.map +1 -0
- package/package.json +2 -2
- package/dist/babel/testIdPlugin.d.ts.map +0 -1
- package/dist/babel/testIdPlugin.js +0 -585
- 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 -550
- 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 -641
- 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 -503
- package/dist/server/host/tools/input.js.map +0 -1
|
@@ -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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Fiber } from '../../../modules/fiberTree/types';
|
|
2
|
+
import { type FlatHookEntry, type HooksOptions, type HookTreeNode } from './types';
|
|
3
|
+
export declare const extractHooks: (fiber: Fiber, filter: HooksOptions & {
|
|
4
|
+
redactPatterns: RegExp[];
|
|
5
|
+
}) => FlatHookEntry[] | HookTreeNode[] | null;
|
|
6
|
+
//# sourceMappingURL=extract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/extract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAMvD,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,YAAY,UAChB,KAAK,UACJ,YAAY,GAAG;IAAE,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,KAClD,aAAa,EAAE,GAAG,YAAY,EAAE,GAAG,IA2LrC,CAAC"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractHooks = void 0;
|
|
4
|
+
const redact_1 = require("../../../modules/fiberTree/redact");
|
|
5
|
+
const utils_1 = require("../../../modules/fiberTree/utils");
|
|
6
|
+
const flatten_1 = require("./flatten");
|
|
7
|
+
const shape_1 = require("./shape");
|
|
8
|
+
const slotCount_1 = require("./slotCount");
|
|
9
|
+
const value_1 = require("./value");
|
|
10
|
+
const extractHooks = (fiber, filter) => {
|
|
11
|
+
// React's wrapper machinery makes "where does metadata live" depend on
|
|
12
|
+
// the exact HOC chain. We try the most likely homes in order:
|
|
13
|
+
//
|
|
14
|
+
// 1. `fiber.type.__mcp_hooks` — bare components, FunctionDeclarations,
|
|
15
|
+
// and the outer memo fiber when the chain is just memo(fn).
|
|
16
|
+
// 2. `fiber.elementType.__mcp_hooks` — memo(fn) without compare.
|
|
17
|
+
// React converts the fiber to SimpleMemoComponent and rewrites
|
|
18
|
+
// `fiber.type` to the inner function (see `updateMemoComponent` in
|
|
19
|
+
// ReactFabric); our metadata sits on the outer memo wrapper, which
|
|
20
|
+
// survives only on `elementType`.
|
|
21
|
+
// 3. `fiber.type.render.__mcp_hooks` — forwardRef wrapper. React lays
|
|
22
|
+
// out memo(forwardRef(fn)) as three fibers (memo → forwardRef →
|
|
23
|
+
// function). When the user queries by displayName they tend to
|
|
24
|
+
// match the middle ForwardRef fiber (whose displayName resolves
|
|
25
|
+
// via `render.displayName`); fiber.type there is the forwardRef
|
|
26
|
+
// wrapper, which holds the inner fn at `.render`. The babel plugin
|
|
27
|
+
// put plain metadata on that fn via the FunctionDecl visitor.
|
|
28
|
+
// 4. `fiber.type.type.__mcp_hooks` — memo wrapper around forwardRef
|
|
29
|
+
// (or any non-function inner). Not the SimpleMemoComponent path,
|
|
30
|
+
// so `fiber.type` stays as the memo wrapper and `.type` is the
|
|
31
|
+
// inner forwardRef / class / etc. This catches getter installations
|
|
32
|
+
// on the wrapper layer too.
|
|
33
|
+
const candidates = [
|
|
34
|
+
fiber.type,
|
|
35
|
+
fiber.elementType,
|
|
36
|
+
fiber.type?.render,
|
|
37
|
+
fiber.type?.type,
|
|
38
|
+
];
|
|
39
|
+
let rawMeta;
|
|
40
|
+
for (const c of candidates) {
|
|
41
|
+
const m = c?.__mcp_hooks;
|
|
42
|
+
if (Array.isArray(m)) {
|
|
43
|
+
rawMeta = m;
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (!Array.isArray(rawMeta))
|
|
48
|
+
return null;
|
|
49
|
+
const meta = (0, flatten_1.flattenHookMeta)(rawMeta, [], new WeakSet(), filter.expansionDepth);
|
|
50
|
+
const out = [];
|
|
51
|
+
let state = fiber.memoizedState;
|
|
52
|
+
let metaIdx = 0;
|
|
53
|
+
// Walk the fiber's hook chain and pair each slot with the next metadata
|
|
54
|
+
// entry whose `kind` is shape-compatible with the slot. Strongly-shaped
|
|
55
|
+
// kinds (Ref / Memo / Callback / Effect) match only the corresponding
|
|
56
|
+
// React hook shape. Permissive kinds (State / Reducer / Context / Custom)
|
|
57
|
+
// reject obvious mismatches (effect-record, ref-shape) so they don't
|
|
58
|
+
// swallow slots belonging to preceding custom hooks.
|
|
59
|
+
//
|
|
60
|
+
// For Custom-leaf entries — typically black-box library hooks
|
|
61
|
+
// (`useSelector`, `useQuery`, etc.) where flattenHookMeta couldn't expand
|
|
62
|
+
// because `fn.__mcp_hooks` was missing — we estimate slot count via
|
|
63
|
+
// `countHookSlots` and advance the fiber chain by that many slots in one
|
|
64
|
+
// step. Without this, a hook that consumes 3 internal slots only
|
|
65
|
+
// advances by 1 in the walker, drifting all trailing entries off the end
|
|
66
|
+
// of the chain.
|
|
67
|
+
const emitEntry = (entry, rawValueSlot) => {
|
|
68
|
+
const { hook, kind, mcpId, name, via } = entry;
|
|
69
|
+
const passesKind = !filter.kindsSet || filter.kindsSet.has(kind);
|
|
70
|
+
const passesName = !filter.nameMatchers ||
|
|
71
|
+
filter.nameMatchers.some((m) => {
|
|
72
|
+
return m(name);
|
|
73
|
+
});
|
|
74
|
+
const passesMcpId = !filter.mcpIdMatchers ||
|
|
75
|
+
(mcpId !== undefined &&
|
|
76
|
+
filter.mcpIdMatchers.some((m) => {
|
|
77
|
+
return m(mcpId);
|
|
78
|
+
}));
|
|
79
|
+
if (!(passesKind && passesName && passesMcpId))
|
|
80
|
+
return;
|
|
81
|
+
const record = { kind, name };
|
|
82
|
+
// Prefer the babel-emitted hook name; fall back to fn.name for entries
|
|
83
|
+
// produced by older bundles that predate the `hook` field.
|
|
84
|
+
const resolvedHook = hook ?? (typeof entry.fn === 'function' ? entry.fn.name : undefined);
|
|
85
|
+
if (resolvedHook)
|
|
86
|
+
record.hook = resolvedHook;
|
|
87
|
+
if (mcpId)
|
|
88
|
+
record.mcpId = mcpId;
|
|
89
|
+
if (filter.withValues && rawValueSlot !== undefined) {
|
|
90
|
+
// Redaction guard: mask the value (but keep kind/name/hook visible)
|
|
91
|
+
// when the entry's name OR any ancestor in `via` matches a redact
|
|
92
|
+
// pattern. Catches both direct sensitive hooks (`password` State)
|
|
93
|
+
// and leaves nested under sensitive customs (a `value` field of
|
|
94
|
+
// `useCredentials()` won't slip through).
|
|
95
|
+
const isRedacted = (0, redact_1.matchesAnyRedactPattern)(name, filter.redactPatterns) ||
|
|
96
|
+
(via?.some((v) => {
|
|
97
|
+
return (0, redact_1.matchesAnyRedactPattern)(v, filter.redactPatterns);
|
|
98
|
+
}) ??
|
|
99
|
+
false);
|
|
100
|
+
if (isRedacted) {
|
|
101
|
+
record.value = redact_1.REDACTED_VALUE;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
let value;
|
|
105
|
+
try {
|
|
106
|
+
// Kind-aware extraction (Ref's .current, Memo's first slot, ...)
|
|
107
|
+
// returns RAW. Then project with the user-given hook-value options
|
|
108
|
+
// (path / depth / maxBytes from select.hooks). Default depth=1 so
|
|
109
|
+
// each hook value stays compact even when withValues:true.
|
|
110
|
+
const extracted = (0, value_1.serializeHookValue)(rawValueSlot, kind);
|
|
111
|
+
value = (0, utils_1.projectFiberValue)(extracted, {
|
|
112
|
+
depth: filter.valueDepth ?? 1,
|
|
113
|
+
maxBytes: filter.valueMaxBytes,
|
|
114
|
+
path: filter.valuePath,
|
|
115
|
+
});
|
|
116
|
+
// Final cycle / non-serialisable check — the MCP bridge will
|
|
117
|
+
// stringify this for transport, so bail now rather than killing
|
|
118
|
+
// the whole response if one stray value carries a cycle past our
|
|
119
|
+
// WeakSet (e.g. Proxy, lazy getter, native-bridged object).
|
|
120
|
+
JSON.stringify(value);
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
value = '[Unserialisable value]';
|
|
124
|
+
}
|
|
125
|
+
record.value = value;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (via && via.length > 0)
|
|
129
|
+
record.via = via;
|
|
130
|
+
if (entry.expanded)
|
|
131
|
+
record.expanded = true;
|
|
132
|
+
out.push(record);
|
|
133
|
+
};
|
|
134
|
+
const advanceState = (steps) => {
|
|
135
|
+
for (let i = 0; i < steps && state; i++)
|
|
136
|
+
state = state.next;
|
|
137
|
+
};
|
|
138
|
+
while (state && metaIdx < meta.length) {
|
|
139
|
+
const entry = meta[metaIdx];
|
|
140
|
+
if (!entry) {
|
|
141
|
+
metaIdx++;
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
// Expanded parent (synthetic, marks the call-site of a recursively
|
|
145
|
+
// expanded custom hook). Emit without consuming any fiber slot — the
|
|
146
|
+
// children that follow are the real slot-bearing entries.
|
|
147
|
+
if (entry.expanded) {
|
|
148
|
+
emitEntry(entry, undefined);
|
|
149
|
+
metaIdx++;
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
// Custom-leaf with a known fn → recurse into source to estimate slot
|
|
153
|
+
// count, then consume that many slots at once. The first slot's value
|
|
154
|
+
// is exposed (best approximation of "this hook's value"); the rest are
|
|
155
|
+
// skipped silently as internals of the library hook.
|
|
156
|
+
if (entry.kind === 'Custom' && typeof entry.fn === 'function') {
|
|
157
|
+
const slots = (0, slotCount_1.countHookSlots)(entry.fn);
|
|
158
|
+
if (slots > 1) {
|
|
159
|
+
emitEntry(entry, state.memoizedState);
|
|
160
|
+
advanceState(slots);
|
|
161
|
+
metaIdx++;
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (!(0, shape_1.shapeMatchesKind)(state.memoizedState, entry.kind)) {
|
|
166
|
+
state = state.next;
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
emitEntry(entry, state.memoizedState);
|
|
170
|
+
metaIdx++;
|
|
171
|
+
state = state.next;
|
|
172
|
+
}
|
|
173
|
+
// Any metadata entries left after the fiber chain ran dry didn't get a
|
|
174
|
+
// slot match. Emit them anyway (without value) so the agent at least
|
|
175
|
+
// sees the hook exists — this is strictly better than silently dropping,
|
|
176
|
+
// and helps debug alignment issues. Common cause: a preceding Custom
|
|
177
|
+
// hook consumed more slots than countHookSlots estimated.
|
|
178
|
+
while (metaIdx < meta.length) {
|
|
179
|
+
const entry = meta[metaIdx];
|
|
180
|
+
if (entry)
|
|
181
|
+
emitEntry(entry, undefined);
|
|
182
|
+
metaIdx++;
|
|
183
|
+
}
|
|
184
|
+
return filter.format === 'tree' ? (0, flatten_1.flatHooksToTree)(out) : out;
|
|
185
|
+
};
|
|
186
|
+
exports.extractHooks = extractHooks;
|
|
187
|
+
//# sourceMappingURL=extract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/extract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type FlatHookEntry, type FlattenedHook, type HookMeta, type HookTreeNode } from './types';
|
|
2
|
+
export declare const flattenHookMeta: (meta: HookMeta[], via?: string[], seen?: WeakSet<object>, maxDepth?: number) => FlattenedHook[];
|
|
3
|
+
export declare const flatHooksToTree: (flat: FlatHookEntry[]) => HookTreeNode[];
|
|
4
|
+
//# sourceMappingURL=flatten.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/flatten.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAcnG,eAAO,MAAM,eAAe,SACpB,QAAQ,EAAE,QACX,MAAM,EAAE,SACP,OAAO,CAAC,MAAM,CAAC,wBAEpB,aAAa,EAoBf,CAAC;AAOF,eAAO,MAAM,eAAe,SAAU,aAAa,EAAE,KAAG,YAAY,EA8BnE,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.flatHooksToTree = exports.flattenHookMeta = void 0;
|
|
4
|
+
// Flatten a metadata array by recursively inlining custom-hook sub-metadata.
|
|
5
|
+
// Stops on cycles (hook references itself) and on Custom entries whose `fn`
|
|
6
|
+
// isn't annotated (library hooks that bypassed the babel plugin — usually
|
|
7
|
+
// pre-compiled node_modules). Such unannotated entries stay as single
|
|
8
|
+
// records and rely on shape-check for alignment.
|
|
9
|
+
//
|
|
10
|
+
// Custom entries with annotated `fn` produce TWO records: a parent (marked
|
|
11
|
+
// `expanded: true`, no slot consumption) followed by all flattened
|
|
12
|
+
// children. This keeps the call-site visible in the output — without it
|
|
13
|
+
// the agent would see e.g. `wrapperAnimStyle.areAnimationsActive` deep
|
|
14
|
+
// in `via:` but never the `wrapperAnimStyle = useAnimatedStyle(...)`
|
|
15
|
+
// invocation that owns those slots.
|
|
16
|
+
const flattenHookMeta = (meta, via = [], seen = new WeakSet(), maxDepth = Infinity) => {
|
|
17
|
+
const out = [];
|
|
18
|
+
for (const entry of meta) {
|
|
19
|
+
const fn = entry.fn;
|
|
20
|
+
const sub = fn && typeof fn === 'function' && Array.isArray(fn.__mcp_hooks) ? fn.__mcp_hooks : undefined;
|
|
21
|
+
// Stop expanding once `via.length` would reach the cap — at that point
|
|
22
|
+
// the current entry is treated as a leaf (Custom record without
|
|
23
|
+
// children). The slot-walker still pairs it with one slot, so output
|
|
24
|
+
// stays internally consistent.
|
|
25
|
+
if (sub && !seen.has(fn) && via.length < maxDepth) {
|
|
26
|
+
seen.add(fn);
|
|
27
|
+
out.push({ ...entry, expanded: true, via });
|
|
28
|
+
out.push(...(0, exports.flattenHookMeta)(sub, [...via, entry.name], seen, maxDepth));
|
|
29
|
+
seen.delete(fn);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
out.push({ ...entry, via });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return out;
|
|
36
|
+
};
|
|
37
|
+
exports.flattenHookMeta = flattenHookMeta;
|
|
38
|
+
// Convert the flat output of the slot walker into a nested tree using the
|
|
39
|
+
// `via` prefix as the parent chain. Each `expanded: true` entry becomes a
|
|
40
|
+
// node that owns subsequent entries whose `via` extends the parent's path.
|
|
41
|
+
// Stack-based single pass — no recursion. Strips `expanded` from the
|
|
42
|
+
// returned shape since structure makes the parent obvious.
|
|
43
|
+
const flatHooksToTree = (flat) => {
|
|
44
|
+
const root = [];
|
|
45
|
+
// Stack of currently-open parents, indexed by their depth (= via.length
|
|
46
|
+
// of THEIR own entry, since their children sit at via.length + 1).
|
|
47
|
+
const parents = [];
|
|
48
|
+
for (const entry of flat) {
|
|
49
|
+
const depth = entry.via?.length ?? 0;
|
|
50
|
+
while (parents.length > depth)
|
|
51
|
+
parents.pop();
|
|
52
|
+
const node = { kind: entry.kind, name: entry.name };
|
|
53
|
+
if (entry.hook !== undefined)
|
|
54
|
+
node.hook = entry.hook;
|
|
55
|
+
if (entry.mcpId !== undefined)
|
|
56
|
+
node.mcpId = entry.mcpId;
|
|
57
|
+
if (entry.value !== undefined)
|
|
58
|
+
node.value = entry.value;
|
|
59
|
+
if (parents.length === 0) {
|
|
60
|
+
root.push(node);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
const parent = parents[parents.length - 1];
|
|
64
|
+
if (parent) {
|
|
65
|
+
parent.children = parent.children ?? [];
|
|
66
|
+
parent.children.push(node);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
root.push(node);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (entry.expanded) {
|
|
73
|
+
// Push as the new active parent at this depth. Subsequent entries
|
|
74
|
+
// with via.length > depth become this node's descendants.
|
|
75
|
+
parents.push(node);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return root;
|
|
79
|
+
};
|
|
80
|
+
exports.flatHooksToTree = flatHooksToTree;
|
|
81
|
+
//# sourceMappingURL=flatten.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatten.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/flatten.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { extractHooks } from './extract';
|
|
2
|
+
export { buildHooksOptions } from './options';
|
|
3
|
+
export { parseNamePattern } from './patterns';
|
|
4
|
+
export { type FlatHookEntry, type HookMeta, type HooksOptions, type HooksRawOptions, type HookTreeNode, } from './types';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseNamePattern = exports.buildHooksOptions = exports.extractHooks = void 0;
|
|
4
|
+
var extract_1 = require("./extract");
|
|
5
|
+
Object.defineProperty(exports, "extractHooks", { enumerable: true, get: function () { return extract_1.extractHooks; } });
|
|
6
|
+
var options_1 = require("./options");
|
|
7
|
+
Object.defineProperty(exports, "buildHooksOptions", { enumerable: true, get: function () { return options_1.buildHooksOptions; } });
|
|
8
|
+
var patterns_1 = require("./patterns");
|
|
9
|
+
Object.defineProperty(exports, "parseNamePattern", { enumerable: true, get: function () { return patterns_1.parseNamePattern; } });
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/index.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AACrB,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAC1B,uCAA8C;AAArC,4GAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type HooksOptions, type HooksRawOptions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Normalise a raw `select.hooks` object into the strict `HooksOptions`
|
|
4
|
+
* shape the extractor walks against. Splits ambiguous fields (`depth` →
|
|
5
|
+
* `valueDepth`, etc.) and compiles name-pattern strings via
|
|
6
|
+
* `parseNamePattern`. Used by `parseProjection`.
|
|
7
|
+
*/
|
|
8
|
+
export declare const buildHooksOptions: (raw: HooksRawOptions | undefined) => HooksOptions;
|
|
9
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../src/modules/fiberTree/hooks/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAElE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAS,eAAe,GAAG,SAAS,KAAG,YAgBpE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildHooksOptions = void 0;
|
|
4
|
+
const patterns_1 = require("./patterns");
|
|
5
|
+
/**
|
|
6
|
+
* Normalise a raw `select.hooks` object into the strict `HooksOptions`
|
|
7
|
+
* shape the extractor walks against. Splits ambiguous fields (`depth` →
|
|
8
|
+
* `valueDepth`, etc.) and compiles name-pattern strings via
|
|
9
|
+
* `parseNamePattern`. Used by `parseProjection`.
|
|
10
|
+
*/
|
|
11
|
+
const buildHooksOptions = (raw) => {
|
|
12
|
+
return {
|
|
13
|
+
expansionDepth: typeof raw?.expansionDepth === 'number' && raw.expansionDepth >= 0
|
|
14
|
+
? Math.floor(raw.expansionDepth)
|
|
15
|
+
: Infinity,
|
|
16
|
+
format: raw?.format === 'tree' ? 'tree' : 'flat',
|
|
17
|
+
kindsSet: Array.isArray(raw?.kinds) ? new Set(raw.kinds) : null,
|
|
18
|
+
mcpIdMatchers: Array.isArray(raw?.mcpIds) ? raw.mcpIds.map(patterns_1.parseNamePattern) : null,
|
|
19
|
+
nameMatchers: Array.isArray(raw?.names) ? raw.names.map(patterns_1.parseNamePattern) : null,
|
|
20
|
+
valueDepth: typeof raw?.depth === 'number' && raw.depth >= 0 ? raw.depth : undefined,
|
|
21
|
+
valueMaxBytes: typeof raw?.maxBytes === 'number' && raw.maxBytes >= 0 ? raw.maxBytes : undefined,
|
|
22
|
+
valuePath: typeof raw?.path === 'string' ? raw.path : undefined,
|
|
23
|
+
withValues: raw?.withValues === true,
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
exports.buildHooksOptions = buildHooksOptions;
|
|
27
|
+
//# sourceMappingURL=options.js.map
|