@midscene/web 1.12.8 → 1.12.9-beta-20260917120835.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/es/bridge-mode/io-client.mjs +1 -1
- package/dist/es/bridge-mode/io-server.mjs +2 -2
- package/dist/es/bridge-mode/io-server.mjs.map +1 -1
- package/dist/es/bridge-mode/page-browser-side.mjs +1 -1
- package/dist/es/bridge-mode/page-browser-side.mjs.map +1 -1
- package/dist/es/cli.mjs +1 -1
- package/dist/es/common/test-runner/cookies.mjs +133 -0
- package/dist/es/common/test-runner/cookies.mjs.map +1 -0
- package/dist/es/common/test-runner/utils.mjs +24 -0
- package/dist/es/common/test-runner/utils.mjs.map +1 -0
- package/dist/es/playwright/test-runner/cookies.mjs +5 -136
- package/dist/es/playwright/test-runner/cookies.mjs.map +1 -1
- package/dist/es/playwright/test-runner/utils.mjs +1 -21
- package/dist/es/playwright/test-runner/utils.mjs.map +1 -1
- package/dist/es/puppeteer/browser-agent.mjs +9 -1
- package/dist/es/puppeteer/browser-agent.mjs.map +1 -1
- package/dist/es/puppeteer/page-agent.mjs +19 -1
- package/dist/es/puppeteer/page-agent.mjs.map +1 -1
- package/dist/es/puppeteer/test-runner/agent-nodes.mjs +13 -0
- package/dist/es/puppeteer/test-runner/agent-nodes.mjs.map +1 -0
- package/dist/es/puppeteer/test-runner/clear-cookies.mjs +36 -0
- package/dist/es/puppeteer/test-runner/clear-cookies.mjs.map +1 -0
- package/dist/es/puppeteer/test-runner/cookies.mjs +31 -0
- package/dist/es/puppeteer/test-runner/cookies.mjs.map +1 -0
- package/dist/es/puppeteer/test-runner/goto-url.mjs +57 -0
- package/dist/es/puppeteer/test-runner/goto-url.mjs.map +1 -0
- package/dist/es/puppeteer/test-runner/index.mjs +6 -0
- package/dist/es/puppeteer/test-runner/types.mjs +0 -0
- package/dist/es/puppeteer/test-runner/utils.mjs +8 -0
- package/dist/es/puppeteer/test-runner/utils.mjs.map +1 -0
- package/dist/es/puppeteer/test-runner/viewport.mjs +39 -0
- package/dist/es/puppeteer/test-runner/viewport.mjs.map +1 -0
- package/dist/lib/bridge-mode/io-client.js +1 -1
- package/dist/lib/bridge-mode/io-server.js +2 -2
- package/dist/lib/bridge-mode/io-server.js.map +1 -1
- package/dist/lib/bridge-mode/page-browser-side.js +1 -1
- package/dist/lib/bridge-mode/page-browser-side.js.map +1 -1
- package/dist/lib/cli.js +1 -1
- package/dist/lib/common/test-runner/cookies.js +170 -0
- package/dist/lib/common/test-runner/cookies.js.map +1 -0
- package/dist/lib/common/test-runner/utils.js +61 -0
- package/dist/lib/common/test-runner/utils.js.map +1 -0
- package/dist/lib/playwright/test-runner/cookies.js +6 -137
- package/dist/lib/playwright/test-runner/cookies.js.map +1 -1
- package/dist/lib/playwright/test-runner/utils.js +4 -24
- package/dist/lib/playwright/test-runner/utils.js.map +1 -1
- package/dist/lib/puppeteer/browser-agent.js +9 -1
- package/dist/lib/puppeteer/browser-agent.js.map +1 -1
- package/dist/lib/puppeteer/page-agent.js +19 -1
- package/dist/lib/puppeteer/page-agent.js.map +1 -1
- package/dist/lib/puppeteer/test-runner/agent-nodes.js +47 -0
- package/dist/lib/puppeteer/test-runner/agent-nodes.js.map +1 -0
- package/dist/lib/puppeteer/test-runner/clear-cookies.js +73 -0
- package/dist/lib/puppeteer/test-runner/clear-cookies.js.map +1 -0
- package/dist/lib/puppeteer/test-runner/cookies.js +68 -0
- package/dist/lib/puppeteer/test-runner/cookies.js.map +1 -0
- package/dist/lib/puppeteer/test-runner/goto-url.js +94 -0
- package/dist/lib/puppeteer/test-runner/goto-url.js.map +1 -0
- package/dist/lib/puppeteer/test-runner/index.js +54 -0
- package/dist/lib/puppeteer/test-runner/index.js.map +1 -0
- package/dist/lib/puppeteer/test-runner/types.js +20 -0
- package/dist/lib/puppeteer/test-runner/types.js.map +1 -0
- package/dist/lib/puppeteer/test-runner/utils.js +48 -0
- package/dist/lib/puppeteer/test-runner/utils.js.map +1 -0
- package/dist/lib/puppeteer/test-runner/viewport.js +76 -0
- package/dist/lib/puppeteer/test-runner/viewport.js.map +1 -0
- package/dist/types/common/test-runner/cookies.d.ts +51 -0
- package/dist/types/common/test-runner/utils.d.ts +2 -0
- package/dist/types/playwright/test-runner/cookies.d.ts +4 -31
- package/dist/types/playwright/test-runner/types.d.ts +4 -14
- package/dist/types/playwright/test-runner/utils.d.ts +1 -2
- package/dist/types/puppeteer/browser-agent.d.ts +5 -0
- package/dist/types/puppeteer/index.d.ts +1 -1
- package/dist/types/puppeteer/page-agent.d.ts +8 -1
- package/dist/types/puppeteer/test-runner/agent-nodes.d.ts +2 -0
- package/dist/types/puppeteer/test-runner/clear-cookies.d.ts +11 -0
- package/dist/types/puppeteer/test-runner/cookies.d.ts +5 -0
- package/dist/types/puppeteer/test-runner/goto-url.d.ts +19 -0
- package/dist/types/puppeteer/test-runner/index.d.ts +10 -0
- package/dist/types/puppeteer/test-runner/types.d.ts +18 -0
- package/dist/types/puppeteer/test-runner/utils.d.ts +3 -0
- package/dist/types/puppeteer/test-runner/viewport.d.ts +11 -0
- package/package.json +9 -4
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
resolveWebUrl: ()=>utils_js_namespaceObject.resolveWebUrl,
|
|
28
|
+
throwIfAborted: ()=>utils_js_namespaceObject.throwIfAborted,
|
|
29
|
+
requirePuppeteerAgent: ()=>requirePuppeteerAgent
|
|
30
|
+
});
|
|
31
|
+
const utils_js_namespaceObject = require("../../common/test-runner/utils.js");
|
|
32
|
+
const requirePuppeteerAgent = (agent)=>{
|
|
33
|
+
if (!agent || 'object' != typeof agent || !('interface' in agent) || !agent.interface || 'object' != typeof agent.interface || !('underlyingPage' in agent.interface) || !agent.interface.underlyingPage) throw new TypeError('getAgent() must return a Puppeteer Agent with an underlying Page.');
|
|
34
|
+
return agent;
|
|
35
|
+
};
|
|
36
|
+
exports.requirePuppeteerAgent = __webpack_exports__.requirePuppeteerAgent;
|
|
37
|
+
exports.resolveWebUrl = __webpack_exports__.resolveWebUrl;
|
|
38
|
+
exports.throwIfAborted = __webpack_exports__.throwIfAborted;
|
|
39
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
40
|
+
"requirePuppeteerAgent",
|
|
41
|
+
"resolveWebUrl",
|
|
42
|
+
"throwIfAborted"
|
|
43
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
44
|
+
Object.defineProperty(exports, '__esModule', {
|
|
45
|
+
value: true
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer/test-runner/utils.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/puppeteer/test-runner/utils.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import type { PuppeteerTestRunnerAgent } from './types';\n\nexport { resolveWebUrl, throwIfAborted } from '../../common/test-runner/utils';\n\nexport const requirePuppeteerAgent = (\n agent: unknown,\n): PuppeteerTestRunnerAgent => {\n if (\n !agent ||\n typeof agent !== 'object' ||\n !('interface' in agent) ||\n !agent.interface ||\n typeof agent.interface !== 'object' ||\n !('underlyingPage' in agent.interface) ||\n !agent.interface.underlyingPage\n ) {\n throw new TypeError(\n 'getAgent() must return a Puppeteer Agent with an underlying Page.',\n );\n }\n return agent as PuppeteerTestRunnerAgent;\n};\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","requirePuppeteerAgent","agent","TypeError"],"mappings":";;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;;;;ACFO,MAAMI,wBAAwB,CACnCC;IAEA,IACE,CAACA,SACD,AAAiB,YAAjB,OAAOA,SACP,CAAE,gBAAeA,KAAI,KACrB,CAACA,MAAM,SAAS,IAChB,AAA2B,YAA3B,OAAOA,MAAM,SAAS,IACtB,CAAE,qBAAoBA,MAAM,SAAQ,KACpC,CAACA,MAAM,SAAS,CAAC,cAAc,EAE/B,MAAM,IAAIC,UACR;IAGJ,OAAOD;AACT"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
setViewportSizeInputSchema: ()=>setViewportSizeInputSchema,
|
|
28
|
+
setViewportSizeNode: ()=>setViewportSizeNode
|
|
29
|
+
});
|
|
30
|
+
const v4_namespaceObject = require("zod/v4");
|
|
31
|
+
const external_utils_js_namespaceObject = require("./utils.js");
|
|
32
|
+
const setViewportSizeInputSchema = v4_namespaceObject.z.strictObject({
|
|
33
|
+
width: v4_namespaceObject.z.number().int().positive().describe('Viewport width in CSS pixels.'),
|
|
34
|
+
height: v4_namespaceObject.z.number().int().positive().describe('Viewport height in CSS pixels.')
|
|
35
|
+
});
|
|
36
|
+
const setViewportSizeNode = {
|
|
37
|
+
name: 'setViewportSize',
|
|
38
|
+
title: 'Set the browser viewport size',
|
|
39
|
+
description: 'Set the current Puppeteer Page viewport size in CSS pixels and return the effective size.',
|
|
40
|
+
stringInputKey: false,
|
|
41
|
+
inputSchema: setViewportSizeInputSchema,
|
|
42
|
+
async execute (agent, input, executionContext) {
|
|
43
|
+
const ctx = {
|
|
44
|
+
...executionContext,
|
|
45
|
+
input,
|
|
46
|
+
context: (0, external_utils_js_namespaceObject.requirePuppeteerAgent)(agent)
|
|
47
|
+
};
|
|
48
|
+
(0, external_utils_js_namespaceObject.throwIfAborted)(ctx.signal, 'setViewportSize');
|
|
49
|
+
const page = ctx.context.interface.underlyingPage;
|
|
50
|
+
await page.setViewport({
|
|
51
|
+
width: input.width,
|
|
52
|
+
height: input.height
|
|
53
|
+
});
|
|
54
|
+
const viewport = page.viewport();
|
|
55
|
+
if (!viewport) throw new Error('Puppeteer did not report an effective viewport size.');
|
|
56
|
+
const result = {
|
|
57
|
+
width: viewport.width,
|
|
58
|
+
height: viewport.height
|
|
59
|
+
};
|
|
60
|
+
return {
|
|
61
|
+
summary: `Set viewport to ${result.width}x${result.height}`,
|
|
62
|
+
data: result
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
exports.setViewportSizeInputSchema = __webpack_exports__.setViewportSizeInputSchema;
|
|
67
|
+
exports.setViewportSizeNode = __webpack_exports__.setViewportSizeNode;
|
|
68
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
69
|
+
"setViewportSizeInputSchema",
|
|
70
|
+
"setViewportSizeNode"
|
|
71
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
72
|
+
Object.defineProperty(exports, '__esModule', {
|
|
73
|
+
value: true
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=viewport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer/test-runner/viewport.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/puppeteer/test-runner/viewport.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import type { AgentTestRunnerNodeDefinition } from '@midscene/core/agent';\nimport { z } from 'zod/v4';\nimport { requirePuppeteerAgent, throwIfAborted } from './utils';\n\nexport const setViewportSizeInputSchema = z.strictObject({\n width: z.number().int().positive().describe('Viewport width in CSS pixels.'),\n height: z\n .number()\n .int()\n .positive()\n .describe('Viewport height in CSS pixels.'),\n});\n\nexport type SetViewportSizeNodeInput = z.infer<\n typeof setViewportSizeInputSchema\n>;\n\nexport const setViewportSizeNode: AgentTestRunnerNodeDefinition<\n z.output<typeof setViewportSizeInputSchema>,\n { width: number; height: number }\n> = {\n name: 'setViewportSize',\n title: 'Set the browser viewport size',\n description:\n 'Set the current Puppeteer Page viewport size in CSS pixels and return the effective size.',\n stringInputKey: false,\n inputSchema: setViewportSizeInputSchema,\n async execute(agent, input, executionContext) {\n const ctx = {\n ...executionContext,\n input,\n context: requirePuppeteerAgent(agent),\n };\n throwIfAborted(ctx.signal, 'setViewportSize');\n const page = ctx.context.interface.underlyingPage;\n await page.setViewport({ width: input.width, height: input.height });\n const viewport = page.viewport();\n if (!viewport) {\n throw new Error('Puppeteer did not report an effective viewport size.');\n }\n const result = { width: viewport.width, height: viewport.height };\n return {\n summary: `Set viewport to ${result.width}x${result.height}`,\n data: result,\n };\n },\n};\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","setViewportSizeInputSchema","z","setViewportSizeNode","agent","input","executionContext","ctx","requirePuppeteerAgent","throwIfAborted","page","viewport","Error","result"],"mappings":";;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;;;;ACFO,MAAMI,6BAA6BC,mBAAAA,CAAAA,CAAAA,YAAc,CAAC;IACvD,OAAOA,mBAAAA,CAAAA,CAAAA,MAAQ,GAAG,GAAG,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5C,QAAQA,mBAAAA,CAAAA,CAAAA,MACC,GACN,GAAG,GACH,QAAQ,GACR,QAAQ,CAAC;AACd;AAMO,MAAMC,sBAGT;IACF,MAAM;IACN,OAAO;IACP,aACE;IACF,gBAAgB;IAChB,aAAaF;IACb,MAAM,SAAQG,KAAK,EAAEC,KAAK,EAAEC,gBAAgB;QAC1C,MAAMC,MAAM;YACV,GAAGD,gBAAgB;YACnBD;YACA,SAASG,AAAAA,IAAAA,kCAAAA,qBAAAA,AAAAA,EAAsBJ;QACjC;QACAK,IAAAA,kCAAAA,cAAAA,AAAAA,EAAeF,IAAI,MAAM,EAAE;QAC3B,MAAMG,OAAOH,IAAI,OAAO,CAAC,SAAS,CAAC,cAAc;QACjD,MAAMG,KAAK,WAAW,CAAC;YAAE,OAAOL,MAAM,KAAK;YAAE,QAAQA,MAAM,MAAM;QAAC;QAClE,MAAMM,WAAWD,KAAK,QAAQ;QAC9B,IAAI,CAACC,UACH,MAAM,IAAIC,MAAM;QAElB,MAAMC,SAAS;YAAE,OAAOF,SAAS,KAAK;YAAE,QAAQA,SAAS,MAAM;QAAC;QAChE,OAAO;YACL,SAAS,CAAC,gBAAgB,EAAEE,OAAO,KAAK,CAAC,CAAC,EAAEA,OAAO,MAAM,EAAE;YAC3D,MAAMA;QACR;IACF;AACF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
type Awaitable<T> = T | Promise<T>;
|
|
3
|
+
export type CookieSourceReference = {
|
|
4
|
+
kind: 'env';
|
|
5
|
+
name: string;
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'profile';
|
|
8
|
+
name: string;
|
|
9
|
+
} | {
|
|
10
|
+
kind: 'storage-state';
|
|
11
|
+
name: string;
|
|
12
|
+
};
|
|
13
|
+
export interface WebNodeContext<TContext> {
|
|
14
|
+
input: unknown;
|
|
15
|
+
context: TContext;
|
|
16
|
+
signal: AbortSignal;
|
|
17
|
+
}
|
|
18
|
+
export interface CookieProfileContext<TContext> {
|
|
19
|
+
profile: string;
|
|
20
|
+
context: TContext;
|
|
21
|
+
signal: AbortSignal;
|
|
22
|
+
}
|
|
23
|
+
export interface WebCookieSourceOptions<TAgent> {
|
|
24
|
+
getEnv?(ctx: WebNodeContext<TAgent>): Awaitable<Readonly<Record<string, string | undefined>>>;
|
|
25
|
+
getCookieProfile?(input: CookieProfileContext<TAgent>): Awaitable<unknown>;
|
|
26
|
+
resolveStorageStatePath?(path: string, ctx: WebNodeContext<TAgent>): Awaitable<string>;
|
|
27
|
+
}
|
|
28
|
+
export interface PortableWebCookie extends Record<string, unknown> {
|
|
29
|
+
name: string;
|
|
30
|
+
value: string;
|
|
31
|
+
url?: string;
|
|
32
|
+
domain?: string;
|
|
33
|
+
path?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare const setCookiesInputSchema: z.ZodObject<{
|
|
36
|
+
cookiesEnv: z.ZodOptional<z.ZodString>;
|
|
37
|
+
profile: z.ZodOptional<z.ZodString>;
|
|
38
|
+
storageStatePath: z.ZodOptional<z.ZodString>;
|
|
39
|
+
url: z.ZodOptional<z.ZodString>;
|
|
40
|
+
}, z.core.$strict>;
|
|
41
|
+
export type SetCookiesNodeInput = z.infer<typeof setCookiesInputSchema>;
|
|
42
|
+
export interface SetCookiesNodeResult {
|
|
43
|
+
source: CookieSourceReference['kind'];
|
|
44
|
+
sourceName: string;
|
|
45
|
+
count: number;
|
|
46
|
+
}
|
|
47
|
+
export declare const resolveCookieInput: <TAgent>(input: SetCookiesNodeInput, ctx: WebNodeContext<TAgent>, options: WebCookieSourceOptions<TAgent>) => Promise<{
|
|
48
|
+
cookies: PortableWebCookie[];
|
|
49
|
+
result: SetCookiesNodeResult;
|
|
50
|
+
}>;
|
|
51
|
+
export {};
|
|
@@ -1,32 +1,5 @@
|
|
|
1
|
+
import { type SetCookiesNodeInput, type SetCookiesNodeResult, setCookiesInputSchema } from '../../common/test-runner/cookies';
|
|
1
2
|
import type { AgentTestRunnerNodeDefinition } from '@midscene/core/agent';
|
|
2
|
-
|
|
3
|
-
type
|
|
4
|
-
|
|
5
|
-
name: string;
|
|
6
|
-
} | {
|
|
7
|
-
kind: 'profile';
|
|
8
|
-
name: string;
|
|
9
|
-
} | {
|
|
10
|
-
kind: 'storage-state';
|
|
11
|
-
name: string;
|
|
12
|
-
};
|
|
13
|
-
/** Input schema for the Playwright setCookies Node. */
|
|
14
|
-
export declare const setCookiesInputSchema: z.ZodObject<{
|
|
15
|
-
cookiesEnv: z.ZodOptional<z.ZodString>;
|
|
16
|
-
profile: z.ZodOptional<z.ZodString>;
|
|
17
|
-
storageStatePath: z.ZodOptional<z.ZodString>;
|
|
18
|
-
url: z.ZodOptional<z.ZodString>;
|
|
19
|
-
}, z.core.$strict>;
|
|
20
|
-
/** Validated input accepted by the Playwright setCookies Node. */
|
|
21
|
-
export type SetCookiesNodeInput = z.infer<typeof setCookiesInputSchema>;
|
|
22
|
-
/** Secret-free metadata returned by the Playwright setCookies Node. */
|
|
23
|
-
export interface SetCookiesNodeResult {
|
|
24
|
-
/** Kind of configured reference used to resolve the cookies. */
|
|
25
|
-
source: CookieSourceReference['kind'];
|
|
26
|
-
/** Environment variable, profile, or storage-state reference name. */
|
|
27
|
-
sourceName: string;
|
|
28
|
-
/** Number of cookies passed to the BrowserContext. */
|
|
29
|
-
count: number;
|
|
30
|
-
}
|
|
31
|
-
export declare const setCookiesNode: AgentTestRunnerNodeDefinition<z.output<typeof setCookiesInputSchema>, SetCookiesNodeResult>;
|
|
32
|
-
export {};
|
|
3
|
+
export { setCookiesInputSchema };
|
|
4
|
+
export type { SetCookiesNodeInput, SetCookiesNodeResult };
|
|
5
|
+
export declare const setCookiesNode: AgentTestRunnerNodeDefinition<SetCookiesNodeInput, SetCookiesNodeResult>;
|
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
import type { BrowserContext, Page } from 'playwright';
|
|
2
|
+
import type { CookieProfileContext, WebCookieSourceOptions, WebNodeContext } from '../../common/test-runner/cookies';
|
|
2
3
|
type Awaitable<T> = T | Promise<T>;
|
|
3
4
|
export type PlaywrightCookie = Parameters<BrowserContext['addCookies']>[0][number];
|
|
4
5
|
/** Runtime resources supplied by the test runner to Playwright Nodes. */
|
|
5
|
-
export
|
|
6
|
-
input: unknown;
|
|
7
|
-
context: TContext;
|
|
8
|
-
signal: AbortSignal;
|
|
9
|
-
}
|
|
6
|
+
export type PlaywrightNodeContext<TContext> = WebNodeContext<TContext>;
|
|
10
7
|
/** Context passed to a configured Playwright cookie profile resolver. */
|
|
11
|
-
export
|
|
12
|
-
/** Profile reference from the setCookies Node input. */
|
|
13
|
-
profile: string;
|
|
14
|
-
/** The Agent executing the current Node. */
|
|
15
|
-
context: TContext;
|
|
16
|
-
/** Cancellation signal for the current Node execution. */
|
|
17
|
-
signal: AbortSignal;
|
|
18
|
-
}
|
|
8
|
+
export type PlaywrightCookieProfileContext<TContext> = CookieProfileContext<TContext>;
|
|
19
9
|
/** Dependencies and source resolvers used by the Playwright preset Nodes. */
|
|
20
|
-
export interface PlaywrightTestRunnerOptions {
|
|
10
|
+
export interface PlaywrightTestRunnerOptions extends WebCookieSourceOptions<PlaywrightTestRunnerAgent> {
|
|
21
11
|
/**
|
|
22
12
|
* Return the environment used by setCookies. Defaults to process.env when
|
|
23
13
|
* omitted.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
+
export { resolveWebUrl, throwIfAborted } from '../../common/test-runner/utils';
|
|
1
2
|
import type { PlaywrightTestRunnerAgent } from './types';
|
|
2
|
-
export declare const throwIfAborted: (signal: AbortSignal, operation: string) => void;
|
|
3
|
-
export declare const resolveWebUrl: (target: string, baseUrl: string | undefined, label: string) => string;
|
|
4
3
|
export declare const requirePlaywrightAgent: (agent: unknown) => PlaywrightTestRunnerAgent;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { type BrowserPageManager, WebAgentCore } from '../common/browser-agent';
|
|
2
2
|
import type { WebPageAgentOpt } from '../web-element';
|
|
3
|
+
import type { AgentTestRunnerNodeDefinition } from '@midscene/core/agent';
|
|
3
4
|
import type { Browser as PuppeteerBrowser, Page as PuppeteerPage, Target as PuppeteerTarget } from 'puppeteer';
|
|
4
5
|
import { PuppeteerWebPage } from './page';
|
|
6
|
+
import type { PuppeteerTestRunnerOptions } from './test-runner/types';
|
|
5
7
|
export type PuppeteerBrowserAgentOpt = Omit<WebPageAgentOpt, 'forceSameTabNavigation'> & {
|
|
8
|
+
testRunner?: PuppeteerTestRunnerOptions;
|
|
6
9
|
autoFollowNewPage?: boolean;
|
|
7
10
|
newPageTimeout?: number;
|
|
8
11
|
};
|
|
@@ -10,6 +13,8 @@ export type PuppeteerBrowserAgentCreateOpt = PuppeteerBrowserAgentOpt & {
|
|
|
10
13
|
initialPage?: PuppeteerPage;
|
|
11
14
|
};
|
|
12
15
|
export declare class PuppeteerBrowserAgent extends WebAgentCore<PuppeteerWebPage> {
|
|
16
|
+
static getTestRunnerNodeDefinitions(): readonly AgentTestRunnerNodeDefinition[];
|
|
17
|
+
readonly testRunner?: PuppeteerTestRunnerOptions;
|
|
13
18
|
protected pageManager: BrowserPageManager<PuppeteerPage, PuppeteerTarget>;
|
|
14
19
|
constructor(browser: PuppeteerBrowser, initialPage: PuppeteerPage, opts?: PuppeteerBrowserAgentOpt);
|
|
15
20
|
static create(browser: PuppeteerBrowser, opts?: PuppeteerBrowserAgentCreateOpt): Promise<PuppeteerBrowserAgent>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { PuppeteerPageAgent, PuppeteerAgent } from './page-agent';
|
|
1
|
+
export { PuppeteerPageAgent, PuppeteerAgent, type PuppeteerPageAgentOpt, } from './page-agent';
|
|
2
2
|
export { PuppeteerBrowserAgent, type PuppeteerBrowserAgentCreateOpt, type PuppeteerBrowserAgentOpt, } from './browser-agent';
|
|
3
3
|
export { PuppeteerWebPage } from './page';
|
|
4
4
|
export type { WebPageAgentOpt } from '../web-element';
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { WebAgentCore } from '../common/browser-agent';
|
|
2
2
|
import type { WebPageAgentOpt } from '../web-element';
|
|
3
|
+
import type { AgentTestRunnerNodeDefinition } from '@midscene/core/agent';
|
|
3
4
|
import type { Page as PuppeteerPage } from 'puppeteer';
|
|
4
5
|
import { PuppeteerWebPage } from './page';
|
|
6
|
+
import type { PuppeteerTestRunnerOptions } from './test-runner/types';
|
|
7
|
+
export type PuppeteerPageAgentOpt = WebPageAgentOpt & {
|
|
8
|
+
testRunner?: PuppeteerTestRunnerOptions;
|
|
9
|
+
};
|
|
5
10
|
export declare class PuppeteerPageAgent extends WebAgentCore<PuppeteerWebPage> {
|
|
6
|
-
|
|
11
|
+
static getTestRunnerNodeDefinitions(): readonly AgentTestRunnerNodeDefinition[];
|
|
12
|
+
readonly testRunner?: PuppeteerTestRunnerOptions;
|
|
13
|
+
constructor(page: PuppeteerPage, opts?: PuppeteerPageAgentOpt);
|
|
7
14
|
}
|
|
8
15
|
export { PuppeteerPageAgent as PuppeteerAgent };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AgentTestRunnerNodeDefinition } from '@midscene/core/agent';
|
|
2
|
+
import { z } from 'zod/v4';
|
|
3
|
+
export declare const clearCookiesInputSchema: z.ZodObject<{
|
|
4
|
+
name: z.ZodOptional<z.ZodString>;
|
|
5
|
+
domain: z.ZodOptional<z.ZodString>;
|
|
6
|
+
path: z.ZodOptional<z.ZodString>;
|
|
7
|
+
}, z.core.$strict>;
|
|
8
|
+
export type ClearCookiesNodeInput = z.infer<typeof clearCookiesInputSchema>;
|
|
9
|
+
export declare const clearCookiesNode: AgentTestRunnerNodeDefinition<z.output<typeof clearCookiesInputSchema>, {
|
|
10
|
+
filters: ClearCookiesNodeInput;
|
|
11
|
+
}>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type SetCookiesNodeInput, type SetCookiesNodeResult, setCookiesInputSchema } from '../../common/test-runner/cookies';
|
|
2
|
+
import type { AgentTestRunnerNodeDefinition } from '@midscene/core/agent';
|
|
3
|
+
export { setCookiesInputSchema };
|
|
4
|
+
export type { SetCookiesNodeInput, SetCookiesNodeResult };
|
|
5
|
+
export declare const setCookiesNode: AgentTestRunnerNodeDefinition<SetCookiesNodeInput, SetCookiesNodeResult>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AgentTestRunnerNodeDefinition } from '@midscene/core/agent';
|
|
2
|
+
import { z } from 'zod/v4';
|
|
3
|
+
export declare const gotoUrlInputSchema: z.ZodObject<{
|
|
4
|
+
url: z.ZodString;
|
|
5
|
+
waitUntil: z.ZodDefault<z.ZodEnum<{
|
|
6
|
+
domcontentloaded: "domcontentloaded";
|
|
7
|
+
load: "load";
|
|
8
|
+
networkidle0: "networkidle0";
|
|
9
|
+
networkidle2: "networkidle2";
|
|
10
|
+
}>>;
|
|
11
|
+
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
12
|
+
}, z.core.$strict>;
|
|
13
|
+
export type GotoUrlNodeInput = z.infer<typeof gotoUrlInputSchema>;
|
|
14
|
+
export interface GotoUrlNodeResult {
|
|
15
|
+
url: string;
|
|
16
|
+
status: number | null;
|
|
17
|
+
title: string;
|
|
18
|
+
}
|
|
19
|
+
export declare const gotoUrlNode: AgentTestRunnerNodeDefinition<z.output<typeof gotoUrlInputSchema>, GotoUrlNodeResult>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { clearCookiesInputSchema } from './clear-cookies';
|
|
2
|
+
export type { ClearCookiesNodeInput } from './clear-cookies';
|
|
3
|
+
export { setCookiesInputSchema } from './cookies';
|
|
4
|
+
export type { SetCookiesNodeInput, SetCookiesNodeResult } from './cookies';
|
|
5
|
+
export { gotoUrlInputSchema } from './goto-url';
|
|
6
|
+
export type { GotoUrlNodeInput, GotoUrlNodeResult } from './goto-url';
|
|
7
|
+
export type { PuppeteerCookieProfileContext, PuppeteerNodeContext, PuppeteerTestRunnerAgent, PuppeteerTestRunnerOptions, } from './types';
|
|
8
|
+
export { setViewportSizeInputSchema } from './viewport';
|
|
9
|
+
export type { SetViewportSizeNodeInput } from './viewport';
|
|
10
|
+
export { puppeteerAgentTestRunnerNodeDefinitions } from './agent-nodes';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CookieProfileContext, WebCookieSourceOptions, WebNodeContext } from '../../common/test-runner/cookies';
|
|
2
|
+
import type { CookieParam, Page } from 'puppeteer';
|
|
3
|
+
export type PuppeteerCookie = CookieParam;
|
|
4
|
+
export type PuppeteerNodeContext<TContext> = WebNodeContext<TContext>;
|
|
5
|
+
export type PuppeteerCookieProfileContext<TContext> = CookieProfileContext<TContext>;
|
|
6
|
+
/** Dependencies and source resolvers used by the Puppeteer preset Nodes. */
|
|
7
|
+
export interface PuppeteerTestRunnerOptions extends WebCookieSourceOptions<PuppeteerTestRunnerAgent> {
|
|
8
|
+
/** Base URL used to resolve relative gotoUrl inputs before first navigation. */
|
|
9
|
+
baseURL?: string;
|
|
10
|
+
getCookieProfile?(input: PuppeteerCookieProfileContext<PuppeteerTestRunnerAgent>): readonly PuppeteerCookie[] | Promise<readonly PuppeteerCookie[]>;
|
|
11
|
+
}
|
|
12
|
+
/** Runtime resources used by Puppeteer Agent Nodes. */
|
|
13
|
+
export interface PuppeteerTestRunnerAgent {
|
|
14
|
+
interface: {
|
|
15
|
+
underlyingPage: Page;
|
|
16
|
+
};
|
|
17
|
+
readonly testRunner?: PuppeteerTestRunnerOptions;
|
|
18
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AgentTestRunnerNodeDefinition } from '@midscene/core/agent';
|
|
2
|
+
import { z } from 'zod/v4';
|
|
3
|
+
export declare const setViewportSizeInputSchema: z.ZodObject<{
|
|
4
|
+
width: z.ZodNumber;
|
|
5
|
+
height: z.ZodNumber;
|
|
6
|
+
}, z.core.$strict>;
|
|
7
|
+
export type SetViewportSizeNodeInput = z.infer<typeof setViewportSizeInputSchema>;
|
|
8
|
+
export declare const setViewportSizeNode: AgentTestRunnerNodeDefinition<z.output<typeof setViewportSizeInputSchema>, {
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
}>;
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"Browser use",
|
|
9
9
|
"Android use"
|
|
10
10
|
],
|
|
11
|
-
"version": "1.12.
|
|
11
|
+
"version": "1.12.9-beta-20260917120835.0",
|
|
12
12
|
"repository": "https://github.com/web-infra-dev/midscene",
|
|
13
13
|
"homepage": "https://midscenejs.com/",
|
|
14
14
|
"main": "./dist/lib/index.js",
|
|
@@ -50,6 +50,11 @@
|
|
|
50
50
|
"require": "./dist/lib/puppeteer/agent-launcher.js",
|
|
51
51
|
"import": "./dist/es/puppeteer/agent-launcher.mjs"
|
|
52
52
|
},
|
|
53
|
+
"./puppeteer/test": {
|
|
54
|
+
"types": "./dist/types/puppeteer/test-runner/index.d.ts",
|
|
55
|
+
"require": "./dist/lib/puppeteer/test-runner/index.js",
|
|
56
|
+
"import": "./dist/es/puppeteer/test-runner/index.mjs"
|
|
57
|
+
},
|
|
53
58
|
"./playwright": {
|
|
54
59
|
"types": "./dist/types/playwright/index.d.ts",
|
|
55
60
|
"require": "./dist/lib/playwright/index.js",
|
|
@@ -117,9 +122,9 @@
|
|
|
117
122
|
"socket.io-client": "4.8.1",
|
|
118
123
|
"ws": "^8.18.1",
|
|
119
124
|
"zod": "^3.25.1",
|
|
120
|
-
"@midscene/
|
|
121
|
-
"@midscene/
|
|
122
|
-
"@midscene/playground": "1.12.
|
|
125
|
+
"@midscene/core": "1.12.9-beta-20260917120835.0",
|
|
126
|
+
"@midscene/shared": "1.12.9-beta-20260917120835.0",
|
|
127
|
+
"@midscene/playground": "1.12.9-beta-20260917120835.0"
|
|
123
128
|
},
|
|
124
129
|
"devDependencies": {
|
|
125
130
|
"@playwright/test": "^1.45.0",
|