@creatoria/miniapp-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +469 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +144 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/defaults.d.ts +73 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +118 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/loader.d.ts +50 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +189 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/core/element-ref.d.ts +44 -0
- package/dist/core/element-ref.d.ts.map +1 -0
- package/dist/core/element-ref.js +213 -0
- package/dist/core/element-ref.js.map +1 -0
- package/dist/core/logger.d.ts +55 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +378 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/output.d.ts +21 -0
- package/dist/core/output.d.ts.map +1 -0
- package/dist/core/output.js +56 -0
- package/dist/core/output.js.map +1 -0
- package/dist/core/report-generator.d.ts +24 -0
- package/dist/core/report-generator.d.ts.map +1 -0
- package/dist/core/report-generator.js +212 -0
- package/dist/core/report-generator.js.map +1 -0
- package/dist/core/session.d.ts +83 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +306 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/timeout.d.ts +49 -0
- package/dist/core/timeout.d.ts.map +1 -0
- package/dist/core/timeout.js +67 -0
- package/dist/core/timeout.js.map +1 -0
- package/dist/core/tool-logger.d.ts +83 -0
- package/dist/core/tool-logger.d.ts.map +1 -0
- package/dist/core/tool-logger.js +453 -0
- package/dist/core/tool-logger.js.map +1 -0
- package/dist/core/validation.d.ts +39 -0
- package/dist/core/validation.d.ts.map +1 -0
- package/dist/core/validation.js +93 -0
- package/dist/core/validation.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +85 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/assert.d.ts +108 -0
- package/dist/tools/assert.d.ts.map +1 -0
- package/dist/tools/assert.js +291 -0
- package/dist/tools/assert.js.map +1 -0
- package/dist/tools/automator.d.ts +45 -0
- package/dist/tools/automator.d.ts.map +1 -0
- package/dist/tools/automator.js +186 -0
- package/dist/tools/automator.js.map +1 -0
- package/dist/tools/element.d.ts +253 -0
- package/dist/tools/element.d.ts.map +1 -0
- package/dist/tools/element.js +615 -0
- package/dist/tools/element.js.map +1 -0
- package/dist/tools/index.d.ts +97 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +1565 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/miniprogram.d.ts +79 -0
- package/dist/tools/miniprogram.d.ts.map +1 -0
- package/dist/tools/miniprogram.js +245 -0
- package/dist/tools/miniprogram.js.map +1 -0
- package/dist/tools/network.d.ts +65 -0
- package/dist/tools/network.d.ts.map +1 -0
- package/dist/tools/network.js +205 -0
- package/dist/tools/network.js.map +1 -0
- package/dist/tools/page.d.ts +108 -0
- package/dist/tools/page.d.ts.map +1 -0
- package/dist/tools/page.js +307 -0
- package/dist/tools/page.js.map +1 -0
- package/dist/tools/record.d.ts +86 -0
- package/dist/tools/record.d.ts.map +1 -0
- package/dist/tools/record.js +316 -0
- package/dist/tools/record.js.map +1 -0
- package/dist/tools/snapshot.d.ts +82 -0
- package/dist/tools/snapshot.d.ts.map +1 -0
- package/dist/tools/snapshot.js +258 -0
- package/dist/tools/snapshot.js.map +1 -0
- package/dist/types.d.ts +240 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/docs/SIMPLE_USAGE.md +210 -0
- package/docs/api/README.md +244 -0
- package/docs/api/assert.md +1015 -0
- package/docs/api/automator.md +345 -0
- package/docs/api/element.md +1454 -0
- package/docs/api/miniprogram.md +558 -0
- package/docs/api/network.md +883 -0
- package/docs/api/page.md +909 -0
- package/docs/api/record.md +963 -0
- package/docs/api/snapshot.md +792 -0
- package/docs/architecture.E-Docs.md +1359 -0
- package/docs/architecture.F1.md +720 -0
- package/docs/architecture.F2.md +871 -0
- package/docs/architecture.F3.md +905 -0
- package/docs/architecture.md +90 -0
- package/docs/charter.A1.align.yaml +170 -0
- package/docs/charter.A2.align.yaml +199 -0
- package/docs/charter.A3.align.yaml +242 -0
- package/docs/charter.A4.align.yaml +227 -0
- package/docs/charter.B1.align.yaml +179 -0
- package/docs/charter.B2.align.yaml +200 -0
- package/docs/charter.B3.align.yaml +200 -0
- package/docs/charter.B4.align.yaml +188 -0
- package/docs/charter.C1.align.yaml +190 -0
- package/docs/charter.C2.align.yaml +202 -0
- package/docs/charter.C3.align.yaml +211 -0
- package/docs/charter.C4.align.yaml +263 -0
- package/docs/charter.C5.align.yaml +220 -0
- package/docs/charter.D1.align.yaml +190 -0
- package/docs/charter.D2.align.yaml +234 -0
- package/docs/charter.D3.align.yaml +206 -0
- package/docs/charter.E-Docs.align.yaml +294 -0
- package/docs/charter.F1.align.yaml +193 -0
- package/docs/charter.F2.align.yaml +248 -0
- package/docs/charter.F3.align.yaml +287 -0
- package/docs/charter.G.align.yaml +174 -0
- package/docs/charter.align.yaml +111 -0
- package/docs/examples/session-report-usage.md +449 -0
- package/docs/maintenance.md +682 -0
- package/docs/playwright-mcp/350/260/203/347/240/224.md +53 -0
- package/docs/setup-guide.md +775 -0
- package/docs/tasks.A1.atomize.md +296 -0
- package/docs/tasks.A2.atomize.md +408 -0
- package/docs/tasks.A3.atomize.md +564 -0
- package/docs/tasks.A4.atomize.md +496 -0
- package/docs/tasks.B1.atomize.md +352 -0
- package/docs/tasks.B2.atomize.md +561 -0
- package/docs/tasks.B3.atomize.md +508 -0
- package/docs/tasks.B4.atomize.md +504 -0
- package/docs/tasks.C1.atomize.md +540 -0
- package/docs/tasks.C2.atomize.md +665 -0
- package/docs/tasks.C3.atomize.md +745 -0
- package/docs/tasks.C4.atomize.md +908 -0
- package/docs/tasks.C5.atomize.md +755 -0
- package/docs/tasks.D1.atomize.md +547 -0
- package/docs/tasks.D2.atomize.md +619 -0
- package/docs/tasks.D3.atomize.md +790 -0
- package/docs/tasks.E-Docs.atomize.md +1204 -0
- package/docs/tasks.atomize.md +189 -0
- package/docs/troubleshooting.md +855 -0
- package/docs//345/256/214/346/225/264/345/256/236/347/216/260/346/226/271/346/241/210.md +155 -0
- package/docs//345/274/200/345/217/221/344/273/273/345/212/241/350/256/241/345/210/222.md +110 -0
- package/docs//345/276/256/344/277/241/345/260/217/347/250/213/345/272/217/350/207/252/345/212/250/345/214/226API/345/256/214/346/225/264/346/226/207/346/241/243.md +894 -0
- package/docs//345/276/256/344/277/241/345/260/217/347/250/213/345/272/217/350/207/252/345/212/250/345/214/226/345/256/214/346/225/264/346/223/215/344/275/234/346/211/213/345/206/214.md +1885 -0
- package/docs//346/216/245/345/217/243/346/226/271/346/241/210.md +565 -0
- package/docs//347/254/254/344/270/200/347/211/210/346/234/254/346/226/271/346/241/210.md +380 -0
- package/package.json +87 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automator tool implementations
|
|
3
|
+
* Handles launch, connect, disconnect, and close operations
|
|
4
|
+
*/
|
|
5
|
+
import automator from 'miniprogram-automator';
|
|
6
|
+
/**
|
|
7
|
+
* Default automation port for WeChat DevTools
|
|
8
|
+
*/
|
|
9
|
+
const DEFAULT_PORT = 9420;
|
|
10
|
+
/**
|
|
11
|
+
* Default CLI path for macOS
|
|
12
|
+
*/
|
|
13
|
+
const DEFAULT_CLI_PATH = '/Applications/wechatwebdevtools.app/Contents/MacOS/cli';
|
|
14
|
+
/**
|
|
15
|
+
* Launch WeChat DevTools and connect to miniprogram
|
|
16
|
+
*/
|
|
17
|
+
export async function launch(session, args) {
|
|
18
|
+
const { projectPath, cliPath = DEFAULT_CLI_PATH, port = DEFAULT_PORT } = args;
|
|
19
|
+
const logger = session.logger;
|
|
20
|
+
try {
|
|
21
|
+
logger?.info('Launching miniprogram', {
|
|
22
|
+
projectPath,
|
|
23
|
+
cliPath,
|
|
24
|
+
port,
|
|
25
|
+
});
|
|
26
|
+
// Check if already connected
|
|
27
|
+
if (session.miniProgram) {
|
|
28
|
+
logger?.warn('MiniProgram already connected, disconnecting first');
|
|
29
|
+
await disconnect(session);
|
|
30
|
+
}
|
|
31
|
+
// Launch using miniprogram-automator
|
|
32
|
+
const miniProgram = await automator.launch({
|
|
33
|
+
projectPath,
|
|
34
|
+
cliPath,
|
|
35
|
+
port,
|
|
36
|
+
});
|
|
37
|
+
// Store in session (use 'as any' to bypass type incompatibility between official types and our interface)
|
|
38
|
+
session.miniProgram = miniProgram;
|
|
39
|
+
session.config = {
|
|
40
|
+
...session.config,
|
|
41
|
+
projectPath,
|
|
42
|
+
cliPath,
|
|
43
|
+
port,
|
|
44
|
+
};
|
|
45
|
+
logger?.info('MiniProgram launched successfully', { port });
|
|
46
|
+
return {
|
|
47
|
+
success: true,
|
|
48
|
+
message: `MiniProgram launched successfully on port ${port}`,
|
|
49
|
+
port,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
54
|
+
logger?.error('Failed to launch miniprogram', {
|
|
55
|
+
error: errorMessage,
|
|
56
|
+
projectPath,
|
|
57
|
+
});
|
|
58
|
+
throw new Error(`Failed to launch miniprogram: ${errorMessage}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Connect to an already running WeChat DevTools instance
|
|
63
|
+
* Note: The port must be configured in WeChat DevTools settings before connecting
|
|
64
|
+
*/
|
|
65
|
+
export async function connect(session, args = {}) {
|
|
66
|
+
const { port } = args;
|
|
67
|
+
const logger = session.logger;
|
|
68
|
+
try {
|
|
69
|
+
logger?.info('Connecting to existing DevTools instance', { port });
|
|
70
|
+
// Check if already connected
|
|
71
|
+
if (session.miniProgram) {
|
|
72
|
+
logger?.warn('MiniProgram already connected, disconnecting first');
|
|
73
|
+
await disconnect(session);
|
|
74
|
+
}
|
|
75
|
+
// Connect using miniprogram-automator
|
|
76
|
+
// Note: automator.connect() uses the port configured in WeChat DevTools
|
|
77
|
+
const miniProgram = await automator.connect({
|
|
78
|
+
wsEndpoint: port ? `ws://localhost:${port}` : undefined,
|
|
79
|
+
});
|
|
80
|
+
// Store in session (use 'as any' to bypass type incompatibility between official types and our interface)
|
|
81
|
+
session.miniProgram = miniProgram;
|
|
82
|
+
if (port) {
|
|
83
|
+
session.config = {
|
|
84
|
+
...session.config,
|
|
85
|
+
port,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
logger?.info('Connected to DevTools successfully', { port });
|
|
89
|
+
return {
|
|
90
|
+
success: true,
|
|
91
|
+
message: port
|
|
92
|
+
? `Connected to DevTools on port ${port}`
|
|
93
|
+
: 'Connected to DevTools successfully',
|
|
94
|
+
port,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
99
|
+
logger?.error('Failed to connect to DevTools', {
|
|
100
|
+
error: errorMessage,
|
|
101
|
+
port,
|
|
102
|
+
});
|
|
103
|
+
throw new Error(`Failed to connect to DevTools: ${errorMessage}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Disconnect from miniprogram but keep IDE process running
|
|
108
|
+
*/
|
|
109
|
+
export async function disconnect(session) {
|
|
110
|
+
const logger = session.logger;
|
|
111
|
+
try {
|
|
112
|
+
if (!session.miniProgram) {
|
|
113
|
+
logger?.warn('No active miniProgram connection to disconnect');
|
|
114
|
+
return {
|
|
115
|
+
success: true,
|
|
116
|
+
message: 'No active connection',
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
logger?.info('Disconnecting from miniprogram');
|
|
120
|
+
// Disconnect from miniprogram-automator
|
|
121
|
+
await session.miniProgram.disconnect();
|
|
122
|
+
// Clear miniProgram reference but keep session
|
|
123
|
+
session.miniProgram = undefined;
|
|
124
|
+
// Clear element cache
|
|
125
|
+
session.elements.clear();
|
|
126
|
+
// Clear page stack
|
|
127
|
+
session.pages = [];
|
|
128
|
+
logger?.info('Disconnected from miniprogram successfully');
|
|
129
|
+
return {
|
|
130
|
+
success: true,
|
|
131
|
+
message: 'Disconnected from miniprogram successfully',
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
136
|
+
logger?.error('Error disconnecting from miniprogram', {
|
|
137
|
+
error: errorMessage,
|
|
138
|
+
});
|
|
139
|
+
// Even if disconnect fails, clear the session state
|
|
140
|
+
session.miniProgram = undefined;
|
|
141
|
+
session.elements.clear();
|
|
142
|
+
session.pages = [];
|
|
143
|
+
throw new Error(`Error disconnecting from miniprogram: ${errorMessage}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Close miniprogram session completely
|
|
148
|
+
* This will disconnect and cleanup all resources
|
|
149
|
+
* The session itself will be deleted by the caller
|
|
150
|
+
*/
|
|
151
|
+
export async function close(session) {
|
|
152
|
+
const logger = session.logger;
|
|
153
|
+
try {
|
|
154
|
+
logger?.info('Closing miniprogram session', {
|
|
155
|
+
sessionId: session.sessionId,
|
|
156
|
+
});
|
|
157
|
+
// Disconnect if connected
|
|
158
|
+
if (session.miniProgram) {
|
|
159
|
+
await disconnect(session);
|
|
160
|
+
}
|
|
161
|
+
// Kill IDE process if we launched it
|
|
162
|
+
if (session.ideProcess && typeof session.ideProcess.kill === 'function') {
|
|
163
|
+
logger?.info('Killing IDE process');
|
|
164
|
+
session.ideProcess.kill();
|
|
165
|
+
session.ideProcess = undefined;
|
|
166
|
+
}
|
|
167
|
+
logger?.info('Miniprogram session closed successfully');
|
|
168
|
+
return {
|
|
169
|
+
success: true,
|
|
170
|
+
message: 'Miniprogram session closed successfully',
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
175
|
+
logger?.error('Error closing miniprogram session', {
|
|
176
|
+
error: errorMessage,
|
|
177
|
+
});
|
|
178
|
+
// Best effort cleanup
|
|
179
|
+
session.miniProgram = undefined;
|
|
180
|
+
session.ideProcess = undefined;
|
|
181
|
+
session.elements.clear();
|
|
182
|
+
session.pages = [];
|
|
183
|
+
throw new Error(`Error closing miniprogram session: ${errorMessage}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=automator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automator.js","sourceRoot":"","sources":["../../src/tools/automator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element tool implementations
|
|
3
|
+
* Handles element-level operations: interactions, attributes, properties
|
|
4
|
+
*/
|
|
5
|
+
import type { SessionState } from '../types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Tap (click) an element
|
|
8
|
+
*/
|
|
9
|
+
export declare function tap(session: SessionState, args: {
|
|
10
|
+
refId: string;
|
|
11
|
+
}): Promise<{
|
|
12
|
+
success: boolean;
|
|
13
|
+
message: string;
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Long press an element
|
|
17
|
+
*/
|
|
18
|
+
export declare function longpress(session: SessionState, args: {
|
|
19
|
+
refId: string;
|
|
20
|
+
}): Promise<{
|
|
21
|
+
success: boolean;
|
|
22
|
+
message: string;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* Input text into an element (input/textarea only)
|
|
26
|
+
*/
|
|
27
|
+
export declare function input(session: SessionState, args: {
|
|
28
|
+
refId: string;
|
|
29
|
+
value: string;
|
|
30
|
+
}): Promise<{
|
|
31
|
+
success: boolean;
|
|
32
|
+
message: string;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Get element text content
|
|
36
|
+
*/
|
|
37
|
+
export declare function getText(session: SessionState, args: {
|
|
38
|
+
refId: string;
|
|
39
|
+
}): Promise<{
|
|
40
|
+
success: boolean;
|
|
41
|
+
message: string;
|
|
42
|
+
text: string;
|
|
43
|
+
}>;
|
|
44
|
+
/**
|
|
45
|
+
* Get element attribute (特性)
|
|
46
|
+
*/
|
|
47
|
+
export declare function getAttribute(session: SessionState, args: {
|
|
48
|
+
refId: string;
|
|
49
|
+
name: string;
|
|
50
|
+
}): Promise<{
|
|
51
|
+
success: boolean;
|
|
52
|
+
message: string;
|
|
53
|
+
value: string | null;
|
|
54
|
+
}>;
|
|
55
|
+
/**
|
|
56
|
+
* Get element property (属性)
|
|
57
|
+
*/
|
|
58
|
+
export declare function getProperty(session: SessionState, args: {
|
|
59
|
+
refId: string;
|
|
60
|
+
name: string;
|
|
61
|
+
}): Promise<{
|
|
62
|
+
success: boolean;
|
|
63
|
+
message: string;
|
|
64
|
+
value: any;
|
|
65
|
+
}>;
|
|
66
|
+
/**
|
|
67
|
+
* Get element value
|
|
68
|
+
*/
|
|
69
|
+
export declare function getValue(session: SessionState, args: {
|
|
70
|
+
refId: string;
|
|
71
|
+
}): Promise<{
|
|
72
|
+
success: boolean;
|
|
73
|
+
message: string;
|
|
74
|
+
value: string;
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* Get element size
|
|
78
|
+
*/
|
|
79
|
+
export declare function getSize(session: SessionState, args: {
|
|
80
|
+
refId: string;
|
|
81
|
+
}): Promise<{
|
|
82
|
+
success: boolean;
|
|
83
|
+
message: string;
|
|
84
|
+
size: {
|
|
85
|
+
width: number;
|
|
86
|
+
height: number;
|
|
87
|
+
};
|
|
88
|
+
}>;
|
|
89
|
+
/**
|
|
90
|
+
* Get element offset (position)
|
|
91
|
+
*/
|
|
92
|
+
export declare function getOffset(session: SessionState, args: {
|
|
93
|
+
refId: string;
|
|
94
|
+
}): Promise<{
|
|
95
|
+
success: boolean;
|
|
96
|
+
message: string;
|
|
97
|
+
offset: {
|
|
98
|
+
left: number;
|
|
99
|
+
top: number;
|
|
100
|
+
};
|
|
101
|
+
}>;
|
|
102
|
+
/**
|
|
103
|
+
* Trigger an event on the element
|
|
104
|
+
*/
|
|
105
|
+
export declare function trigger(session: SessionState, args: {
|
|
106
|
+
refId: string;
|
|
107
|
+
type: string;
|
|
108
|
+
detail?: Record<string, any>;
|
|
109
|
+
}): Promise<{
|
|
110
|
+
success: boolean;
|
|
111
|
+
message: string;
|
|
112
|
+
}>;
|
|
113
|
+
/**
|
|
114
|
+
* Get element style value
|
|
115
|
+
*/
|
|
116
|
+
export declare function getStyle(session: SessionState, args: {
|
|
117
|
+
refId: string;
|
|
118
|
+
name: string;
|
|
119
|
+
}): Promise<{
|
|
120
|
+
success: boolean;
|
|
121
|
+
message: string;
|
|
122
|
+
value: string;
|
|
123
|
+
}>;
|
|
124
|
+
/**
|
|
125
|
+
* Touch start on element
|
|
126
|
+
*/
|
|
127
|
+
export declare function touchstart(session: SessionState, args: {
|
|
128
|
+
refId: string;
|
|
129
|
+
touches: any[];
|
|
130
|
+
changedTouches: any[];
|
|
131
|
+
}): Promise<{
|
|
132
|
+
success: boolean;
|
|
133
|
+
message: string;
|
|
134
|
+
}>;
|
|
135
|
+
/**
|
|
136
|
+
* Touch move on element
|
|
137
|
+
*/
|
|
138
|
+
export declare function touchmove(session: SessionState, args: {
|
|
139
|
+
refId: string;
|
|
140
|
+
touches: any[];
|
|
141
|
+
changedTouches: any[];
|
|
142
|
+
}): Promise<{
|
|
143
|
+
success: boolean;
|
|
144
|
+
message: string;
|
|
145
|
+
}>;
|
|
146
|
+
/**
|
|
147
|
+
* Touch end on element
|
|
148
|
+
*/
|
|
149
|
+
export declare function touchend(session: SessionState, args: {
|
|
150
|
+
refId: string;
|
|
151
|
+
touches: any[];
|
|
152
|
+
changedTouches: any[];
|
|
153
|
+
}): Promise<{
|
|
154
|
+
success: boolean;
|
|
155
|
+
message: string;
|
|
156
|
+
}>;
|
|
157
|
+
/**
|
|
158
|
+
* Scroll to position (ScrollView only)
|
|
159
|
+
*/
|
|
160
|
+
export declare function scrollTo(session: SessionState, args: {
|
|
161
|
+
refId: string;
|
|
162
|
+
x: number;
|
|
163
|
+
y: number;
|
|
164
|
+
}): Promise<{
|
|
165
|
+
success: boolean;
|
|
166
|
+
message: string;
|
|
167
|
+
}>;
|
|
168
|
+
/**
|
|
169
|
+
* Get scroll width (ScrollView only)
|
|
170
|
+
*/
|
|
171
|
+
export declare function scrollWidth(session: SessionState, args: {
|
|
172
|
+
refId: string;
|
|
173
|
+
}): Promise<{
|
|
174
|
+
success: boolean;
|
|
175
|
+
message: string;
|
|
176
|
+
width: number;
|
|
177
|
+
}>;
|
|
178
|
+
/**
|
|
179
|
+
* Get scroll height (ScrollView only)
|
|
180
|
+
*/
|
|
181
|
+
export declare function scrollHeight(session: SessionState, args: {
|
|
182
|
+
refId: string;
|
|
183
|
+
}): Promise<{
|
|
184
|
+
success: boolean;
|
|
185
|
+
message: string;
|
|
186
|
+
height: number;
|
|
187
|
+
}>;
|
|
188
|
+
/**
|
|
189
|
+
* Swipe to index (Swiper only)
|
|
190
|
+
*/
|
|
191
|
+
export declare function swipeTo(session: SessionState, args: {
|
|
192
|
+
refId: string;
|
|
193
|
+
index: number;
|
|
194
|
+
}): Promise<{
|
|
195
|
+
success: boolean;
|
|
196
|
+
message: string;
|
|
197
|
+
}>;
|
|
198
|
+
/**
|
|
199
|
+
* Move to position (MovableView only)
|
|
200
|
+
*/
|
|
201
|
+
export declare function moveTo(session: SessionState, args: {
|
|
202
|
+
refId: string;
|
|
203
|
+
x: number;
|
|
204
|
+
y: number;
|
|
205
|
+
}): Promise<{
|
|
206
|
+
success: boolean;
|
|
207
|
+
message: string;
|
|
208
|
+
}>;
|
|
209
|
+
/**
|
|
210
|
+
* Slide to value (Slider only)
|
|
211
|
+
*/
|
|
212
|
+
export declare function slideTo(session: SessionState, args: {
|
|
213
|
+
refId: string;
|
|
214
|
+
value: number;
|
|
215
|
+
}): Promise<{
|
|
216
|
+
success: boolean;
|
|
217
|
+
message: string;
|
|
218
|
+
}>;
|
|
219
|
+
/**
|
|
220
|
+
* Call context method (ContextElement only)
|
|
221
|
+
*/
|
|
222
|
+
export declare function callContextMethod(session: SessionState, args: {
|
|
223
|
+
refId: string;
|
|
224
|
+
method: string;
|
|
225
|
+
args?: any[];
|
|
226
|
+
}): Promise<{
|
|
227
|
+
success: boolean;
|
|
228
|
+
message: string;
|
|
229
|
+
result?: any;
|
|
230
|
+
}>;
|
|
231
|
+
/**
|
|
232
|
+
* Set data on custom element (CustomElement only)
|
|
233
|
+
*/
|
|
234
|
+
export declare function setData(session: SessionState, args: {
|
|
235
|
+
refId: string;
|
|
236
|
+
data: Record<string, any>;
|
|
237
|
+
}): Promise<{
|
|
238
|
+
success: boolean;
|
|
239
|
+
message: string;
|
|
240
|
+
}>;
|
|
241
|
+
/**
|
|
242
|
+
* Call method on custom element (CustomElement only)
|
|
243
|
+
*/
|
|
244
|
+
export declare function callMethod(session: SessionState, args: {
|
|
245
|
+
refId: string;
|
|
246
|
+
method: string;
|
|
247
|
+
args?: any[];
|
|
248
|
+
}): Promise<{
|
|
249
|
+
success: boolean;
|
|
250
|
+
message: string;
|
|
251
|
+
result?: any;
|
|
252
|
+
}>;
|
|
253
|
+
//# sourceMappingURL=element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../src/tools/element.ts"],"names":[],"mappings":"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"}
|