@weapp-vite/mcp 1.4.9 → 1.4.10

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/index.d.mts CHANGED
@@ -95,13 +95,16 @@ interface MiniProgramElement {
95
95
  interface MiniProgramPage {
96
96
  path: string;
97
97
  query?: unknown;
98
- $: (selector: string) => Promise<MiniProgramElement | null>;
99
- $$?: (selector: string) => Promise<MiniProgramElement[]>;
98
+ $: (selector: string, options?: MiniProgramPageQueryOptions) => Promise<MiniProgramElement | null>;
99
+ $$?: (selector: string, options?: MiniProgramPageQueryOptions) => Promise<MiniProgramElement[]>;
100
100
  data: (path?: string) => Promise<unknown>;
101
101
  size: () => Promise<unknown>;
102
102
  scrollTop: () => Promise<unknown>;
103
103
  waitFor: (milliseconds: number) => Promise<void>;
104
104
  }
105
+ interface MiniProgramPageQueryOptions {
106
+ fallback?: boolean;
107
+ }
105
108
  interface MiniProgramLike {
106
109
  on: (name: 'console' | 'exception', handler: (payload: unknown) => void) => void;
107
110
  off?: (name: 'console' | 'exception', handler: (payload: unknown) => void) => void;
package/dist/index.d.ts CHANGED
@@ -95,13 +95,16 @@ interface MiniProgramElement {
95
95
  interface MiniProgramPage {
96
96
  path: string;
97
97
  query?: unknown;
98
- $: (selector: string) => Promise<MiniProgramElement | null>;
99
- $$?: (selector: string) => Promise<MiniProgramElement[]>;
98
+ $: (selector: string, options?: MiniProgramPageQueryOptions) => Promise<MiniProgramElement | null>;
99
+ $$?: (selector: string, options?: MiniProgramPageQueryOptions) => Promise<MiniProgramElement[]>;
100
100
  data: (path?: string) => Promise<unknown>;
101
101
  size: () => Promise<unknown>;
102
102
  scrollTop: () => Promise<unknown>;
103
103
  waitFor: (milliseconds: number) => Promise<void>;
104
104
  }
105
+ interface MiniProgramPageQueryOptions {
106
+ fallback?: boolean;
107
+ }
105
108
  interface MiniProgramLike {
106
109
  on: (name: 'console' | 'exception', handler: (payload: unknown) => void) => void;
107
110
  off?: (name: 'console' | 'exception', handler: (payload: unknown) => void) => void;
package/dist/index.mjs CHANGED
@@ -821,13 +821,13 @@ function parseSelectorWithIndex(selector) {
821
821
  index: Number.parseInt(match[2], 10)
822
822
  };
823
823
  }
824
- async function resolveElement(page, selectorInput, innerSelector) {
824
+ async function resolveElement(page, selectorInput, innerSelector, queryOptions) {
825
825
  const { selector, index } = parseSelectorWithIndex(selectorInput);
826
826
  let element;
827
827
  if (index === void 0) {
828
- element = await page.$(selector);
828
+ element = await page.$(selector, queryOptions);
829
829
  } else {
830
- const elements = await queryElements(page, selector);
830
+ const elements = await queryElements(page, selector, queryOptions);
831
831
  if (index < 0 || index >= elements.length) {
832
832
  throw new Error(`\u9009\u62E9\u5668 "${selector}" \u7684 index=${index} \u8D85\u51FA\u8303\u56F4\uFF0C\u5F53\u524D\u5339\u914D ${elements.length} \u4E2A\u5143\u7D20\u3002`);
833
833
  }
@@ -845,9 +845,9 @@ async function resolveElement(page, selectorInput, innerSelector) {
845
845
  }
846
846
  return inner;
847
847
  }
848
- async function queryElements(page, selectorInput) {
848
+ async function queryElements(page, selectorInput, queryOptions) {
849
849
  const { selector, index } = parseSelectorWithIndex(selectorInput);
850
- const elements = await callOptionalMethod(page, "$$", selector);
850
+ const elements = await callOptionalMethod(page, "$$", selector, queryOptions);
851
851
  if (!Array.isArray(elements)) {
852
852
  return [];
853
853
  }
@@ -1213,6 +1213,7 @@ const elementSelectorSchema = {
1213
1213
  selector: z.string().trim().min(1),
1214
1214
  innerSelector: z.string().trim().min(1).optional()
1215
1215
  };
1216
+ const nativeElementQuery = { fallback: false };
1216
1217
  function registerRuntimeNodeTools(server, manager) {
1217
1218
  server.registerTool("weapp_runtime_tap_node", {
1218
1219
  title: "Tap Element",
@@ -1224,7 +1225,7 @@ function registerRuntimeNodeTools(server, manager) {
1224
1225
  }, async ({ selector, innerSelector, waitMs, ...connection }) => {
1225
1226
  try {
1226
1227
  const result = await manager.withPage(connection, async (page) => {
1227
- const element = await resolveElement(page, selector, innerSelector);
1228
+ const element = await resolveElement(page, selector, innerSelector, nativeElementQuery);
1228
1229
  await element.tap();
1229
1230
  if (waitMs) {
1230
1231
  await page.waitFor(waitMs);
@@ -1250,7 +1251,7 @@ function registerRuntimeNodeTools(server, manager) {
1250
1251
  }, async ({ selector, innerSelector, value, ...connection }) => {
1251
1252
  try {
1252
1253
  const result = await manager.withPage(connection, async (page) => {
1253
- const element = await resolveElement(page, selector, innerSelector);
1254
+ const element = await resolveElement(page, selector, innerSelector, nativeElementQuery);
1254
1255
  await callRequiredMethod(element, "input", String(value));
1255
1256
  return {
1256
1257
  selector,
@@ -1274,7 +1275,7 @@ function registerRuntimeNodeTools(server, manager) {
1274
1275
  }, async ({ selector, innerSelector, method, args, ...connection }) => {
1275
1276
  try {
1276
1277
  const result = await manager.withPage(connection, async (page) => {
1277
- const element = await resolveElement(page, selector, innerSelector);
1278
+ const element = await resolveElement(page, selector, innerSelector, nativeElementQuery);
1278
1279
  const callArgs = args ?? [];
1279
1280
  return {
1280
1281
  selector,
@@ -1299,7 +1300,7 @@ function registerRuntimeNodeTools(server, manager) {
1299
1300
  }, async ({ selector, innerSelector, path, ...connection }) => {
1300
1301
  try {
1301
1302
  const result = await manager.withPage(connection, async (page) => {
1302
- const element = await resolveElement(page, selector, innerSelector);
1303
+ const element = await resolveElement(page, selector, innerSelector, nativeElementQuery);
1303
1304
  return {
1304
1305
  selector,
1305
1306
  innerSelector: innerSelector ?? null,
@@ -1322,7 +1323,7 @@ function registerRuntimeNodeTools(server, manager) {
1322
1323
  }, async ({ selector, innerSelector, data, ...connection }) => {
1323
1324
  try {
1324
1325
  const result = await manager.withPage(connection, async (page) => {
1325
- const element = await resolveElement(page, selector, innerSelector);
1326
+ const element = await resolveElement(page, selector, innerSelector, nativeElementQuery);
1326
1327
  await callRequiredMethod(element, "setData", data);
1327
1328
  return {
1328
1329
  selector,
@@ -1346,7 +1347,7 @@ function registerRuntimeNodeTools(server, manager) {
1346
1347
  }, async ({ selector, innerSelector, targetSelector, withWxml, ...connection }) => {
1347
1348
  try {
1348
1349
  const result = await manager.withPage(connection, async (page) => {
1349
- const parent = await resolveElement(page, selector, innerSelector);
1350
+ const parent = await resolveElement(page, selector, innerSelector, nativeElementQuery);
1350
1351
  const element = await callRequiredMethod(parent, "$", targetSelector);
1351
1352
  if (!element) {
1352
1353
  throw new Error(`\u5728\u5143\u7D20 "${selector}" \u5185\u672A\u627E\u5230\u5143\u7D20: ${targetSelector}`);
@@ -1374,7 +1375,7 @@ function registerRuntimeNodeTools(server, manager) {
1374
1375
  }, async ({ selector, innerSelector, targetSelector, withWxml, ...connection }) => {
1375
1376
  try {
1376
1377
  const result = await manager.withPage(connection, async (page) => {
1377
- const parent = await resolveElement(page, selector, innerSelector);
1378
+ const parent = await resolveElement(page, selector, innerSelector, nativeElementQuery);
1378
1379
  const elements = await callRequiredMethod(parent, "$$", targetSelector);
1379
1380
  if (!Array.isArray(elements)) {
1380
1381
  throw new TypeError(`\u5728\u5143\u7D20 "${selector}" \u5185\u67E5\u8BE2 "${targetSelector}" \u5931\u8D25\u3002`);
@@ -1405,7 +1406,7 @@ function registerRuntimeNodeTools(server, manager) {
1405
1406
  }, async ({ selector, innerSelector, outer, ...connection }) => {
1406
1407
  try {
1407
1408
  const result = await manager.withPage(connection, async (page) => {
1408
- const element = await resolveElement(page, selector, innerSelector);
1409
+ const element = await resolveElement(page, selector, innerSelector, nativeElementQuery);
1409
1410
  const markup = await readElementMarkup(element, outer);
1410
1411
  return {
1411
1412
  selector,
@@ -1429,7 +1430,7 @@ function registerRuntimeNodeTools(server, manager) {
1429
1430
  }, async ({ selector, innerSelector, names, ...connection }) => {
1430
1431
  try {
1431
1432
  const result = await manager.withPage(connection, async (page) => {
1432
- const element = await resolveElement(page, selector, innerSelector);
1433
+ const element = await resolveElement(page, selector, innerSelector, nativeElementQuery);
1433
1434
  return {
1434
1435
  selector,
1435
1436
  innerSelector: innerSelector ?? null,
@@ -1454,7 +1455,7 @@ function registerRuntimeNodeTools(server, manager) {
1454
1455
  }, async ({ selector, innerSelector, names, ...connection }) => {
1455
1456
  try {
1456
1457
  const result = await manager.withPage(connection, async (page) => {
1457
- const element = await resolveElement(page, selector, innerSelector);
1458
+ const element = await resolveElement(page, selector, innerSelector, nativeElementQuery);
1458
1459
  return {
1459
1460
  selector,
1460
1461
  innerSelector: innerSelector ?? null,
@@ -1480,7 +1481,7 @@ function registerRuntimeNodeTools(server, manager) {
1480
1481
  }, async ({ selector, innerSelector, x, y, ...connection }) => {
1481
1482
  try {
1482
1483
  const result = await manager.withPage(connection, async (page) => {
1483
- const element = await resolveElement(page, selector, innerSelector);
1484
+ const element = await resolveElement(page, selector, innerSelector, nativeElementQuery);
1484
1485
  await callRequiredMethod(element, "scrollTo", x, y);
1485
1486
  return {
1486
1487
  selector,
@@ -1501,7 +1502,7 @@ function registerRuntimeNodeTools(server, manager) {
1501
1502
  }, async ({ selector, innerSelector, ...connection }) => {
1502
1503
  try {
1503
1504
  const result = await manager.withPage(connection, async (page) => {
1504
- const element = await resolveElement(page, selector, innerSelector);
1505
+ const element = await resolveElement(page, selector, innerSelector, nativeElementQuery);
1505
1506
  const offset = toRecord(await callMaybe(element, "offset"));
1506
1507
  const size = toRecord(await callMaybe(element, "size"));
1507
1508
  const left = toNumber(offset.left);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@weapp-vite/mcp",
3
3
  "type": "module",
4
- "version": "1.4.9",
4
+ "version": "1.4.10",
5
5
  "description": "mcp",
6
6
  "author": "ice breaker <1324318532@qq.com>",
7
7
  "license": "ISC",
@@ -31,9 +31,9 @@
31
31
  "node": "^20.19.0 || >=22.12.0"
32
32
  },
33
33
  "dependencies": {
34
- "@modelcontextprotocol/sdk": "^1.29.0",
34
+ "@modelcontextprotocol/sdk": "^1.30.0",
35
35
  "zod": "^4.4.3",
36
- "@weapp-vite/devtools-runtime": "0.4.9"
36
+ "@weapp-vite/devtools-runtime": "0.4.10"
37
37
  },
38
38
  "scripts": {
39
39
  "dev": "unbuild --stub",