@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.
Files changed (160) hide show
  1. package/README.md +469 -0
  2. package/dist/cli.d.ts +6 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +144 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/config/defaults.d.ts +73 -0
  7. package/dist/config/defaults.d.ts.map +1 -0
  8. package/dist/config/defaults.js +118 -0
  9. package/dist/config/defaults.js.map +1 -0
  10. package/dist/config/loader.d.ts +50 -0
  11. package/dist/config/loader.d.ts.map +1 -0
  12. package/dist/config/loader.js +189 -0
  13. package/dist/config/loader.js.map +1 -0
  14. package/dist/core/element-ref.d.ts +44 -0
  15. package/dist/core/element-ref.d.ts.map +1 -0
  16. package/dist/core/element-ref.js +213 -0
  17. package/dist/core/element-ref.js.map +1 -0
  18. package/dist/core/logger.d.ts +55 -0
  19. package/dist/core/logger.d.ts.map +1 -0
  20. package/dist/core/logger.js +378 -0
  21. package/dist/core/logger.js.map +1 -0
  22. package/dist/core/output.d.ts +21 -0
  23. package/dist/core/output.d.ts.map +1 -0
  24. package/dist/core/output.js +56 -0
  25. package/dist/core/output.js.map +1 -0
  26. package/dist/core/report-generator.d.ts +24 -0
  27. package/dist/core/report-generator.d.ts.map +1 -0
  28. package/dist/core/report-generator.js +212 -0
  29. package/dist/core/report-generator.js.map +1 -0
  30. package/dist/core/session.d.ts +83 -0
  31. package/dist/core/session.d.ts.map +1 -0
  32. package/dist/core/session.js +306 -0
  33. package/dist/core/session.js.map +1 -0
  34. package/dist/core/timeout.d.ts +49 -0
  35. package/dist/core/timeout.d.ts.map +1 -0
  36. package/dist/core/timeout.js +67 -0
  37. package/dist/core/timeout.js.map +1 -0
  38. package/dist/core/tool-logger.d.ts +83 -0
  39. package/dist/core/tool-logger.d.ts.map +1 -0
  40. package/dist/core/tool-logger.js +453 -0
  41. package/dist/core/tool-logger.js.map +1 -0
  42. package/dist/core/validation.d.ts +39 -0
  43. package/dist/core/validation.d.ts.map +1 -0
  44. package/dist/core/validation.js +93 -0
  45. package/dist/core/validation.js.map +1 -0
  46. package/dist/index.d.ts +7 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +6 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/server.d.ts +7 -0
  51. package/dist/server.d.ts.map +1 -0
  52. package/dist/server.js +85 -0
  53. package/dist/server.js.map +1 -0
  54. package/dist/tools/assert.d.ts +108 -0
  55. package/dist/tools/assert.d.ts.map +1 -0
  56. package/dist/tools/assert.js +291 -0
  57. package/dist/tools/assert.js.map +1 -0
  58. package/dist/tools/automator.d.ts +45 -0
  59. package/dist/tools/automator.d.ts.map +1 -0
  60. package/dist/tools/automator.js +186 -0
  61. package/dist/tools/automator.js.map +1 -0
  62. package/dist/tools/element.d.ts +253 -0
  63. package/dist/tools/element.d.ts.map +1 -0
  64. package/dist/tools/element.js +615 -0
  65. package/dist/tools/element.js.map +1 -0
  66. package/dist/tools/index.d.ts +97 -0
  67. package/dist/tools/index.d.ts.map +1 -0
  68. package/dist/tools/index.js +1565 -0
  69. package/dist/tools/index.js.map +1 -0
  70. package/dist/tools/miniprogram.d.ts +79 -0
  71. package/dist/tools/miniprogram.d.ts.map +1 -0
  72. package/dist/tools/miniprogram.js +245 -0
  73. package/dist/tools/miniprogram.js.map +1 -0
  74. package/dist/tools/network.d.ts +65 -0
  75. package/dist/tools/network.d.ts.map +1 -0
  76. package/dist/tools/network.js +205 -0
  77. package/dist/tools/network.js.map +1 -0
  78. package/dist/tools/page.d.ts +108 -0
  79. package/dist/tools/page.d.ts.map +1 -0
  80. package/dist/tools/page.js +307 -0
  81. package/dist/tools/page.js.map +1 -0
  82. package/dist/tools/record.d.ts +86 -0
  83. package/dist/tools/record.d.ts.map +1 -0
  84. package/dist/tools/record.js +316 -0
  85. package/dist/tools/record.js.map +1 -0
  86. package/dist/tools/snapshot.d.ts +82 -0
  87. package/dist/tools/snapshot.d.ts.map +1 -0
  88. package/dist/tools/snapshot.js +258 -0
  89. package/dist/tools/snapshot.js.map +1 -0
  90. package/dist/types.d.ts +240 -0
  91. package/dist/types.d.ts.map +1 -0
  92. package/dist/types.js +5 -0
  93. package/dist/types.js.map +1 -0
  94. package/docs/SIMPLE_USAGE.md +210 -0
  95. package/docs/api/README.md +244 -0
  96. package/docs/api/assert.md +1015 -0
  97. package/docs/api/automator.md +345 -0
  98. package/docs/api/element.md +1454 -0
  99. package/docs/api/miniprogram.md +558 -0
  100. package/docs/api/network.md +883 -0
  101. package/docs/api/page.md +909 -0
  102. package/docs/api/record.md +963 -0
  103. package/docs/api/snapshot.md +792 -0
  104. package/docs/architecture.E-Docs.md +1359 -0
  105. package/docs/architecture.F1.md +720 -0
  106. package/docs/architecture.F2.md +871 -0
  107. package/docs/architecture.F3.md +905 -0
  108. package/docs/architecture.md +90 -0
  109. package/docs/charter.A1.align.yaml +170 -0
  110. package/docs/charter.A2.align.yaml +199 -0
  111. package/docs/charter.A3.align.yaml +242 -0
  112. package/docs/charter.A4.align.yaml +227 -0
  113. package/docs/charter.B1.align.yaml +179 -0
  114. package/docs/charter.B2.align.yaml +200 -0
  115. package/docs/charter.B3.align.yaml +200 -0
  116. package/docs/charter.B4.align.yaml +188 -0
  117. package/docs/charter.C1.align.yaml +190 -0
  118. package/docs/charter.C2.align.yaml +202 -0
  119. package/docs/charter.C3.align.yaml +211 -0
  120. package/docs/charter.C4.align.yaml +263 -0
  121. package/docs/charter.C5.align.yaml +220 -0
  122. package/docs/charter.D1.align.yaml +190 -0
  123. package/docs/charter.D2.align.yaml +234 -0
  124. package/docs/charter.D3.align.yaml +206 -0
  125. package/docs/charter.E-Docs.align.yaml +294 -0
  126. package/docs/charter.F1.align.yaml +193 -0
  127. package/docs/charter.F2.align.yaml +248 -0
  128. package/docs/charter.F3.align.yaml +287 -0
  129. package/docs/charter.G.align.yaml +174 -0
  130. package/docs/charter.align.yaml +111 -0
  131. package/docs/examples/session-report-usage.md +449 -0
  132. package/docs/maintenance.md +682 -0
  133. package/docs/playwright-mcp/350/260/203/347/240/224.md +53 -0
  134. package/docs/setup-guide.md +775 -0
  135. package/docs/tasks.A1.atomize.md +296 -0
  136. package/docs/tasks.A2.atomize.md +408 -0
  137. package/docs/tasks.A3.atomize.md +564 -0
  138. package/docs/tasks.A4.atomize.md +496 -0
  139. package/docs/tasks.B1.atomize.md +352 -0
  140. package/docs/tasks.B2.atomize.md +561 -0
  141. package/docs/tasks.B3.atomize.md +508 -0
  142. package/docs/tasks.B4.atomize.md +504 -0
  143. package/docs/tasks.C1.atomize.md +540 -0
  144. package/docs/tasks.C2.atomize.md +665 -0
  145. package/docs/tasks.C3.atomize.md +745 -0
  146. package/docs/tasks.C4.atomize.md +908 -0
  147. package/docs/tasks.C5.atomize.md +755 -0
  148. package/docs/tasks.D1.atomize.md +547 -0
  149. package/docs/tasks.D2.atomize.md +619 -0
  150. package/docs/tasks.D3.atomize.md +790 -0
  151. package/docs/tasks.E-Docs.atomize.md +1204 -0
  152. package/docs/tasks.atomize.md +189 -0
  153. package/docs/troubleshooting.md +855 -0
  154. package/docs//345/256/214/346/225/264/345/256/236/347/216/260/346/226/271/346/241/210.md +155 -0
  155. package/docs//345/274/200/345/217/221/344/273/273/345/212/241/350/256/241/345/210/222.md +110 -0
  156. 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
  157. 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
  158. package/docs//346/216/245/345/217/243/346/226/271/346/241/210.md +565 -0
  159. package/docs//347/254/254/344/270/200/347/211/210/346/234/254/346/226/271/346/241/210.md +380 -0
  160. package/package.json +87 -0
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Network Mock tool implementations
3
+ * Handles wx.request and other network API mocking
4
+ */
5
+ /**
6
+ * Mock a WeChat API method (wx.*)
7
+ * Useful for testing without real network calls
8
+ */
9
+ export async function mockWxMethod(session, args) {
10
+ const { method, result, type = 'success' } = args;
11
+ const logger = session.logger;
12
+ try {
13
+ if (!session.miniProgram) {
14
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
15
+ }
16
+ logger?.info('Mocking wx method', { method, type });
17
+ // Mock the WeChat API method
18
+ session.miniProgram.mockWxMethod(method, result, { type });
19
+ logger?.info('Wx method mocked successfully', { method, type });
20
+ return {
21
+ success: true,
22
+ message: `Successfully mocked wx.${method} to return ${type}`,
23
+ };
24
+ }
25
+ catch (error) {
26
+ const errorMessage = error instanceof Error ? error.message : String(error);
27
+ logger?.error('Mock wx method failed', {
28
+ error: errorMessage,
29
+ method,
30
+ });
31
+ throw new Error(`Failed to mock wx.${method}: ${errorMessage}`);
32
+ }
33
+ }
34
+ /**
35
+ * Restore a previously mocked WeChat API method
36
+ */
37
+ export async function restoreWxMethod(session, args) {
38
+ const { method } = args;
39
+ const logger = session.logger;
40
+ try {
41
+ if (!session.miniProgram) {
42
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
43
+ }
44
+ logger?.info('Restoring wx method', { method });
45
+ // Restore the WeChat API method to its original behavior
46
+ session.miniProgram.restoreWxMethod(method);
47
+ logger?.info('Wx method restored successfully', { method });
48
+ return {
49
+ success: true,
50
+ message: `Successfully restored wx.${method} to original behavior`,
51
+ };
52
+ }
53
+ catch (error) {
54
+ const errorMessage = error instanceof Error ? error.message : String(error);
55
+ logger?.error('Restore wx method failed', {
56
+ error: errorMessage,
57
+ method,
58
+ });
59
+ throw new Error(`Failed to restore wx.${method}: ${errorMessage}`);
60
+ }
61
+ }
62
+ /**
63
+ * Mock wx.request to return specific data
64
+ * Convenient wrapper for mocking network requests
65
+ */
66
+ export async function mockRequest(session, args) {
67
+ const { data = {}, statusCode = 200, header = {}, type = 'success' } = args;
68
+ const logger = session.logger;
69
+ try {
70
+ if (!session.miniProgram) {
71
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
72
+ }
73
+ logger?.info('Mocking wx.request', { statusCode, type });
74
+ const result = {
75
+ data,
76
+ statusCode,
77
+ header,
78
+ };
79
+ // Mock wx.request
80
+ session.miniProgram.mockWxMethod('request', result, { type });
81
+ logger?.info('wx.request mocked successfully', { statusCode, type });
82
+ return {
83
+ success: true,
84
+ message: `Successfully mocked wx.request to return ${type} with status ${statusCode}`,
85
+ };
86
+ }
87
+ catch (error) {
88
+ const errorMessage = error instanceof Error ? error.message : String(error);
89
+ logger?.error('Mock request failed', {
90
+ error: errorMessage,
91
+ });
92
+ throw new Error(`Failed to mock wx.request: ${errorMessage}`);
93
+ }
94
+ }
95
+ /**
96
+ * Mock wx.request to fail with specific error
97
+ * Useful for testing error handling
98
+ */
99
+ export async function mockRequestFailure(session, args) {
100
+ const { errMsg = 'request:fail', errno = -1 } = args;
101
+ const logger = session.logger;
102
+ try {
103
+ if (!session.miniProgram) {
104
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
105
+ }
106
+ logger?.info('Mocking wx.request failure', { errMsg, errno });
107
+ const result = {
108
+ errMsg,
109
+ errno,
110
+ };
111
+ // Mock wx.request to fail
112
+ session.miniProgram.mockWxMethod('request', result, { type: 'fail' });
113
+ logger?.info('wx.request failure mocked successfully', { errMsg });
114
+ return {
115
+ success: true,
116
+ message: `Successfully mocked wx.request to fail with: ${errMsg}`,
117
+ };
118
+ }
119
+ catch (error) {
120
+ const errorMessage = error instanceof Error ? error.message : String(error);
121
+ logger?.error('Mock request failure failed', {
122
+ error: errorMessage,
123
+ });
124
+ throw new Error(`Failed to mock wx.request failure: ${errorMessage}`);
125
+ }
126
+ }
127
+ /**
128
+ * Restore wx.request to original behavior
129
+ */
130
+ export async function restoreRequest(session) {
131
+ const logger = session.logger;
132
+ try {
133
+ if (!session.miniProgram) {
134
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
135
+ }
136
+ logger?.info('Restoring wx.request');
137
+ // Restore wx.request
138
+ session.miniProgram.restoreWxMethod('request');
139
+ logger?.info('wx.request restored successfully');
140
+ return {
141
+ success: true,
142
+ message: 'Successfully restored wx.request to original behavior',
143
+ };
144
+ }
145
+ catch (error) {
146
+ const errorMessage = error instanceof Error ? error.message : String(error);
147
+ logger?.error('Restore request failed', {
148
+ error: errorMessage,
149
+ });
150
+ throw new Error(`Failed to restore wx.request: ${errorMessage}`);
151
+ }
152
+ }
153
+ /**
154
+ * Restore all mocked WeChat API methods
155
+ */
156
+ export async function restoreAllMocks(session) {
157
+ const logger = session.logger;
158
+ try {
159
+ if (!session.miniProgram) {
160
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
161
+ }
162
+ logger?.info('Restoring all mocked wx methods');
163
+ // Common methods that might be mocked
164
+ const commonMethods = [
165
+ 'request',
166
+ 'uploadFile',
167
+ 'downloadFile',
168
+ 'connectSocket',
169
+ 'getStorage',
170
+ 'setStorage',
171
+ 'removeStorage',
172
+ 'clearStorage',
173
+ 'getSystemInfo',
174
+ 'getLocation',
175
+ 'chooseImage',
176
+ 'showToast',
177
+ 'showModal',
178
+ 'navigateTo',
179
+ 'redirectTo',
180
+ ];
181
+ let restoredCount = 0;
182
+ for (const method of commonMethods) {
183
+ try {
184
+ session.miniProgram.restoreWxMethod(method);
185
+ restoredCount++;
186
+ }
187
+ catch {
188
+ // Ignore errors for methods that weren't mocked
189
+ }
190
+ }
191
+ logger?.info('All mocks restored', { restoredCount });
192
+ return {
193
+ success: true,
194
+ message: `Successfully restored ${restoredCount} mocked wx methods`,
195
+ };
196
+ }
197
+ catch (error) {
198
+ const errorMessage = error instanceof Error ? error.message : String(error);
199
+ logger?.error('Restore all mocks failed', {
200
+ error: errorMessage,
201
+ });
202
+ throw new Error(`Failed to restore all mocks: ${errorMessage}`);
203
+ }
204
+ }
205
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/tools/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Page tool implementations
3
+ * Handles page-level operations: query elements, data access, method calls
4
+ */
5
+ import type { SessionState } from '../types.js';
6
+ /**
7
+ * Query a single element on the page
8
+ * Returns an ElementRef that can be used in subsequent element operations
9
+ */
10
+ export declare function query(session: SessionState, args: {
11
+ selector: string;
12
+ pagePath?: string;
13
+ save?: boolean;
14
+ }): Promise<{
15
+ success: boolean;
16
+ message: string;
17
+ refId?: string;
18
+ exists: boolean;
19
+ }>;
20
+ /**
21
+ * Query all matching elements on the page
22
+ * Returns an array of ElementRefs
23
+ */
24
+ export declare function queryAll(session: SessionState, args: {
25
+ selector: string;
26
+ pagePath?: string;
27
+ save?: boolean;
28
+ }): Promise<{
29
+ success: boolean;
30
+ message: string;
31
+ refIds?: string[];
32
+ count: number;
33
+ }>;
34
+ /**
35
+ * Wait for a condition to be met
36
+ * Supports: selector (string), timeout (number), or function
37
+ */
38
+ export declare function waitFor(session: SessionState, args: {
39
+ condition: string | number;
40
+ pagePath?: string;
41
+ timeout?: number;
42
+ }): Promise<{
43
+ success: boolean;
44
+ message: string;
45
+ }>;
46
+ /**
47
+ * Get page data
48
+ * Optionally specify a path to get nested data
49
+ */
50
+ export declare function getData(session: SessionState, args?: {
51
+ path?: string;
52
+ pagePath?: string;
53
+ }): Promise<{
54
+ success: boolean;
55
+ message: string;
56
+ data: any;
57
+ }>;
58
+ /**
59
+ * Set page data
60
+ * Updates the page's data object
61
+ */
62
+ export declare function setData(session: SessionState, args: {
63
+ data: Record<string, any>;
64
+ pagePath?: string;
65
+ }): Promise<{
66
+ success: boolean;
67
+ message: string;
68
+ }>;
69
+ /**
70
+ * Call a method on the page
71
+ * Invokes a method defined in the page's JS logic
72
+ */
73
+ export declare function callMethod(session: SessionState, args: {
74
+ method: string;
75
+ args?: any[];
76
+ pagePath?: string;
77
+ }): Promise<{
78
+ success: boolean;
79
+ message: string;
80
+ result?: any;
81
+ }>;
82
+ /**
83
+ * Get page size
84
+ * Returns page width, height, and scrollable height
85
+ */
86
+ export declare function getSize(session: SessionState, args?: {
87
+ pagePath?: string;
88
+ }): Promise<{
89
+ success: boolean;
90
+ message: string;
91
+ size: {
92
+ width: number;
93
+ height: number;
94
+ scrollHeight: number;
95
+ };
96
+ }>;
97
+ /**
98
+ * Get page scroll position
99
+ * Returns the current vertical scroll offset
100
+ */
101
+ export declare function getScrollTop(session: SessionState, args?: {
102
+ pagePath?: string;
103
+ }): Promise<{
104
+ success: boolean;
105
+ message: string;
106
+ scrollTop: number;
107
+ }>;
108
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/tools/page.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAI/C;;;GAGG;AACH,wBAAsB,KAAK,CACzB,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,GACA,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB,CAAC,CAyDD;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,GACA,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd,CAAC,CAqDD;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE;IACJ,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GACA,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAC,CA0CD;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,YAAY,EACrB,IAAI,GAAE;IACJ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;CACb,GACL,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,GAAG,CAAA;CACV,CAAC,CAmCD;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GACA,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAC,CAkCD;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GACA,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,GAAG,CAAA;CACb,CAAC,CAmCD;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,YAAY,EACrB,IAAI,GAAE;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAA;CACb,GACL,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;QACd,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;CACF,CAAC,CAkCD;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,YAAY,EACrB,IAAI,GAAE;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAA;CACb,GACL,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB,CAAC,CAkCD"}
@@ -0,0 +1,307 @@
1
+ /**
2
+ * Page tool implementations
3
+ * Handles page-level operations: query elements, data access, method calls
4
+ */
5
+ import { resolvePage } from '../core/element-ref.js';
6
+ import { generateRefId } from '../core/element-ref.js';
7
+ /**
8
+ * Query a single element on the page
9
+ * Returns an ElementRef that can be used in subsequent element operations
10
+ */
11
+ export async function query(session, args) {
12
+ const { selector, pagePath, save = true } = args;
13
+ const logger = session.logger;
14
+ try {
15
+ if (!session.miniProgram) {
16
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
17
+ }
18
+ logger?.info('Querying element', { selector, pagePath });
19
+ // Resolve page (current or specified)
20
+ const page = await resolvePage(session, pagePath);
21
+ // Query element
22
+ const element = await page.$(selector);
23
+ if (!element) {
24
+ logger?.info('Element not found', { selector });
25
+ return {
26
+ success: true,
27
+ message: `Element not found: ${selector}`,
28
+ exists: false,
29
+ };
30
+ }
31
+ // Save element to session if requested
32
+ let refId;
33
+ if (save) {
34
+ refId = generateRefId();
35
+ session.elements.set(refId, {
36
+ element,
37
+ pagePath: page.path || 'unknown',
38
+ cachedAt: new Date(),
39
+ });
40
+ logger?.info(`Cached element with refId: ${refId}`, { selector, pagePath: page.path });
41
+ }
42
+ logger?.info('Element queried successfully', { selector, refId });
43
+ return {
44
+ success: true,
45
+ message: `Element found: ${selector}`,
46
+ refId,
47
+ exists: true,
48
+ };
49
+ }
50
+ catch (error) {
51
+ const errorMessage = error instanceof Error ? error.message : String(error);
52
+ logger?.error('Query failed', {
53
+ error: errorMessage,
54
+ selector,
55
+ });
56
+ throw new Error(`Query failed: ${errorMessage}`);
57
+ }
58
+ }
59
+ /**
60
+ * Query all matching elements on the page
61
+ * Returns an array of ElementRefs
62
+ */
63
+ export async function queryAll(session, args) {
64
+ const { selector, pagePath, save = true } = args;
65
+ const logger = session.logger;
66
+ try {
67
+ if (!session.miniProgram) {
68
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
69
+ }
70
+ logger?.info('Querying all elements', { selector, pagePath });
71
+ // Resolve page (current or specified)
72
+ const page = await resolvePage(session, pagePath);
73
+ // Query all elements
74
+ const elements = await page.$$(selector);
75
+ const count = elements.length;
76
+ logger?.info(`Found ${count} elements`, { selector });
77
+ // Save elements to session if requested
78
+ let refIds;
79
+ if (save && count > 0) {
80
+ refIds = [];
81
+ for (const element of elements) {
82
+ const refId = generateRefId();
83
+ session.elements.set(refId, {
84
+ element,
85
+ pagePath: page.path || 'unknown',
86
+ cachedAt: new Date(),
87
+ });
88
+ refIds.push(refId);
89
+ }
90
+ logger?.info(`Cached ${count} elements`, { selector, refIds, pagePath: page.path });
91
+ }
92
+ return {
93
+ success: true,
94
+ message: `Found ${count} elements matching: ${selector}`,
95
+ refIds,
96
+ count,
97
+ };
98
+ }
99
+ catch (error) {
100
+ const errorMessage = error instanceof Error ? error.message : String(error);
101
+ logger?.error('QueryAll failed', {
102
+ error: errorMessage,
103
+ selector,
104
+ });
105
+ throw new Error(`QueryAll failed: ${errorMessage}`);
106
+ }
107
+ }
108
+ /**
109
+ * Wait for a condition to be met
110
+ * Supports: selector (string), timeout (number), or function
111
+ */
112
+ export async function waitFor(session, args) {
113
+ const { condition, pagePath, timeout } = args;
114
+ const logger = session.logger;
115
+ try {
116
+ if (!session.miniProgram) {
117
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
118
+ }
119
+ logger?.info('Waiting for condition', { condition, pagePath, timeout });
120
+ // Resolve page (current or specified)
121
+ const page = await resolvePage(session, pagePath);
122
+ // Wait for condition
123
+ if (typeof condition === 'number') {
124
+ await page.waitFor(condition);
125
+ logger?.info(`Waited for ${condition}ms`);
126
+ return {
127
+ success: true,
128
+ message: `Waited for ${condition}ms`,
129
+ };
130
+ }
131
+ else {
132
+ // String condition (selector)
133
+ await page.waitFor(condition);
134
+ logger?.info(`Waited for selector: ${condition}`);
135
+ return {
136
+ success: true,
137
+ message: `Element appeared: ${condition}`,
138
+ };
139
+ }
140
+ }
141
+ catch (error) {
142
+ const errorMessage = error instanceof Error ? error.message : String(error);
143
+ logger?.error('WaitFor failed', {
144
+ error: errorMessage,
145
+ condition,
146
+ });
147
+ throw new Error(`WaitFor failed: ${errorMessage}`);
148
+ }
149
+ }
150
+ /**
151
+ * Get page data
152
+ * Optionally specify a path to get nested data
153
+ */
154
+ export async function getData(session, args = {}) {
155
+ const { path, pagePath } = args;
156
+ const logger = session.logger;
157
+ try {
158
+ if (!session.miniProgram) {
159
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
160
+ }
161
+ logger?.info('Getting page data', { path, pagePath });
162
+ // Resolve page (current or specified)
163
+ const page = await resolvePage(session, pagePath);
164
+ // Get data
165
+ const data = await page.data(path);
166
+ logger?.info('Page data retrieved', { path, dataType: typeof data });
167
+ return {
168
+ success: true,
169
+ message: path ? `Data at path "${path}" retrieved` : 'Page data retrieved',
170
+ data,
171
+ };
172
+ }
173
+ catch (error) {
174
+ const errorMessage = error instanceof Error ? error.message : String(error);
175
+ logger?.error('GetData failed', {
176
+ error: errorMessage,
177
+ path,
178
+ });
179
+ throw new Error(`GetData failed: ${errorMessage}`);
180
+ }
181
+ }
182
+ /**
183
+ * Set page data
184
+ * Updates the page's data object
185
+ */
186
+ export async function setData(session, args) {
187
+ const { data, pagePath } = args;
188
+ const logger = session.logger;
189
+ try {
190
+ if (!session.miniProgram) {
191
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
192
+ }
193
+ logger?.info('Setting page data', { data, pagePath });
194
+ // Resolve page (current or specified)
195
+ const page = await resolvePage(session, pagePath);
196
+ // Set data
197
+ await page.setData(data);
198
+ logger?.info('Page data set successfully', { keys: Object.keys(data) });
199
+ return {
200
+ success: true,
201
+ message: `Page data updated with ${Object.keys(data).length} keys`,
202
+ };
203
+ }
204
+ catch (error) {
205
+ const errorMessage = error instanceof Error ? error.message : String(error);
206
+ logger?.error('SetData failed', {
207
+ error: errorMessage,
208
+ data,
209
+ });
210
+ throw new Error(`SetData failed: ${errorMessage}`);
211
+ }
212
+ }
213
+ /**
214
+ * Call a method on the page
215
+ * Invokes a method defined in the page's JS logic
216
+ */
217
+ export async function callMethod(session, args) {
218
+ const { method, args: methodArgs = [], pagePath } = args;
219
+ const logger = session.logger;
220
+ try {
221
+ if (!session.miniProgram) {
222
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
223
+ }
224
+ logger?.info('Calling page method', { method, args: methodArgs, pagePath });
225
+ // Resolve page (current or specified)
226
+ const page = await resolvePage(session, pagePath);
227
+ // Call method
228
+ const result = await page.callMethod(method, ...methodArgs);
229
+ logger?.info('Page method called successfully', { method, result });
230
+ return {
231
+ success: true,
232
+ message: `Method "${method}" called successfully`,
233
+ result,
234
+ };
235
+ }
236
+ catch (error) {
237
+ const errorMessage = error instanceof Error ? error.message : String(error);
238
+ logger?.error('CallMethod failed', {
239
+ error: errorMessage,
240
+ method,
241
+ });
242
+ throw new Error(`CallMethod failed: ${errorMessage}`);
243
+ }
244
+ }
245
+ /**
246
+ * Get page size
247
+ * Returns page width, height, and scrollable height
248
+ */
249
+ export async function getSize(session, args = {}) {
250
+ const { pagePath } = args;
251
+ const logger = session.logger;
252
+ try {
253
+ if (!session.miniProgram) {
254
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
255
+ }
256
+ logger?.info('Getting page size', { pagePath });
257
+ // Resolve page (current or specified)
258
+ const page = await resolvePage(session, pagePath);
259
+ // Get size
260
+ const size = await page.size();
261
+ logger?.info('Page size retrieved', { size });
262
+ return {
263
+ success: true,
264
+ message: 'Page size retrieved',
265
+ size: size,
266
+ };
267
+ }
268
+ catch (error) {
269
+ const errorMessage = error instanceof Error ? error.message : String(error);
270
+ logger?.error('GetSize failed', {
271
+ error: errorMessage,
272
+ });
273
+ throw new Error(`GetSize failed: ${errorMessage}`);
274
+ }
275
+ }
276
+ /**
277
+ * Get page scroll position
278
+ * Returns the current vertical scroll offset
279
+ */
280
+ export async function getScrollTop(session, args = {}) {
281
+ const { pagePath } = args;
282
+ const logger = session.logger;
283
+ try {
284
+ if (!session.miniProgram) {
285
+ throw new Error('MiniProgram not connected. Call miniprogram_launch or miniprogram_connect first.');
286
+ }
287
+ logger?.info('Getting page scrollTop', { pagePath });
288
+ // Resolve page (current or specified)
289
+ const page = await resolvePage(session, pagePath);
290
+ // Get scrollTop
291
+ const scrollTop = await page.scrollTop();
292
+ logger?.info('Page scrollTop retrieved', { scrollTop });
293
+ return {
294
+ success: true,
295
+ message: 'Page scroll position retrieved',
296
+ scrollTop,
297
+ };
298
+ }
299
+ catch (error) {
300
+ const errorMessage = error instanceof Error ? error.message : String(error);
301
+ logger?.error('GetScrollTop failed', {
302
+ error: errorMessage,
303
+ });
304
+ throw new Error(`GetScrollTop failed: ${errorMessage}`);
305
+ }
306
+ }
307
+ //# sourceMappingURL=page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/tools/page.ts"],"names":[],"mappings":"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"}