@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
|
@@ -24,31 +24,11 @@ var __webpack_require__ = {};
|
|
|
24
24
|
var __webpack_exports__ = {};
|
|
25
25
|
__webpack_require__.r(__webpack_exports__);
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
resolveWebUrl: ()=>utils_js_namespaceObject.resolveWebUrl,
|
|
28
|
+
throwIfAborted: ()=>utils_js_namespaceObject.throwIfAborted,
|
|
29
|
+
requirePlaywrightAgent: ()=>requirePlaywrightAgent
|
|
30
30
|
});
|
|
31
|
-
const
|
|
32
|
-
'http:',
|
|
33
|
-
'https:'
|
|
34
|
-
]);
|
|
35
|
-
const throwIfAborted = (signal, operation)=>{
|
|
36
|
-
if (signal.aborted) throw signal.reason ?? new Error(`${operation} aborted.`);
|
|
37
|
-
};
|
|
38
|
-
const resolveWebUrl = (target, baseUrl, label)=>{
|
|
39
|
-
const trimmed = target.trim();
|
|
40
|
-
if (!trimmed) throw new TypeError(`${label} must not be blank.`);
|
|
41
|
-
let resolved;
|
|
42
|
-
try {
|
|
43
|
-
resolved = void 0 === baseUrl ? new URL(trimmed) : new URL(trimmed, baseUrl);
|
|
44
|
-
} catch (error) {
|
|
45
|
-
throw new TypeError(void 0 === baseUrl ? `${label} must be an absolute HTTP(S) URL.` : `${label} is not a valid URL.`, {
|
|
46
|
-
cause: error
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
if (!SUPPORTED_WEB_PROTOCOLS.has(resolved.protocol)) throw new TypeError(`${label} does not support the ${resolved.protocol} protocol.`);
|
|
50
|
-
return resolved.toString();
|
|
51
|
-
};
|
|
31
|
+
const utils_js_namespaceObject = require("../../common/test-runner/utils.js");
|
|
52
32
|
const requirePlaywrightAgent = (agent)=>{
|
|
53
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 Playwright Agent with an underlying Page.');
|
|
54
34
|
return agent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playwright/test-runner/utils.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/playwright/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};","
|
|
1
|
+
{"version":3,"file":"playwright/test-runner/utils.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/playwright/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};","export { resolveWebUrl, throwIfAborted } from '../../common/test-runner/utils';\n\nimport type { PlaywrightTestRunnerAgent } from './types';\n\nexport const requirePlaywrightAgent = (\n agent: unknown,\n): PlaywrightTestRunnerAgent => {\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 Playwright Agent with an underlying Page.',\n );\n }\n return agent as PlaywrightTestRunnerAgent;\n};\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","requirePlaywrightAgent","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,yBAAyB,CACpCC;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"}
|
|
@@ -31,6 +31,7 @@ const browser_agent_utils_js_namespaceObject = require("../common/browser-agent-
|
|
|
31
31
|
const logger_namespaceObject = require("@midscene/shared/logger");
|
|
32
32
|
const external_browser_page_manager_js_namespaceObject = require("./browser-page-manager.js");
|
|
33
33
|
const external_page_js_namespaceObject = require("./page.js");
|
|
34
|
+
const agent_nodes_js_namespaceObject = require("./test-runner/agent-nodes.js");
|
|
34
35
|
function _define_property(obj, key, value) {
|
|
35
36
|
if (key in obj) Object.defineProperty(obj, key, {
|
|
36
37
|
value: value,
|
|
@@ -43,6 +44,12 @@ function _define_property(obj, key, value) {
|
|
|
43
44
|
}
|
|
44
45
|
const debug = (0, logger_namespaceObject.getDebug)('puppeteer:browser-agent');
|
|
45
46
|
class PuppeteerBrowserAgent extends browser_agent_js_namespaceObject.WebAgentCore {
|
|
47
|
+
static getTestRunnerNodeDefinitions() {
|
|
48
|
+
return [
|
|
49
|
+
...browser_agent_js_namespaceObject.WebAgentCore.getTestRunnerNodeDefinitions(),
|
|
50
|
+
...agent_nodes_js_namespaceObject.puppeteerAgentTestRunnerNodeDefinitions
|
|
51
|
+
];
|
|
52
|
+
}
|
|
46
53
|
static async create(browser, opts) {
|
|
47
54
|
const { initialPage, ...agentOpts } = opts ?? {};
|
|
48
55
|
const page = initialPage ?? (await browser.pages())[0] ?? await browser.newPage();
|
|
@@ -89,7 +96,8 @@ class PuppeteerBrowserAgent extends browser_agent_js_namespaceObject.WebAgentCor
|
|
|
89
96
|
runtimeOptions,
|
|
90
97
|
debug
|
|
91
98
|
});
|
|
92
|
-
super(webPage, agentOpts), _define_property(this, "pageManager", void 0);
|
|
99
|
+
super(webPage, agentOpts), _define_property(this, "testRunner", void 0), _define_property(this, "pageManager", void 0);
|
|
100
|
+
this.testRunner = opts?.testRunner;
|
|
93
101
|
this.pageManager = pageManager;
|
|
94
102
|
(0, browser_agent_utils_js_namespaceObject.applyForceChromeSelectRendering)(initialPage, 'puppeteer', forceChromeSelectRendering);
|
|
95
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puppeteer/browser-agent.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../src/puppeteer/browser-agent.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 {\n type BrowserPageManager,\n WebAgentCore,\n resolveBrowserAgentRuntimeOptions,\n} from '@/common/browser-agent';\nimport { applyForceChromeSelectRendering } from '@/common/browser-agent-utils';\nimport type { WebPageAgentOpt } from '@/web-element';\nimport { getDebug } from '@midscene/shared/logger';\nimport type {\n Browser as PuppeteerBrowser,\n Page as PuppeteerPage,\n Target as PuppeteerTarget,\n} from 'puppeteer';\nimport { createPuppeteerBrowserPageManager } from './browser-page-manager';\nimport { PuppeteerWebPage } from './page';\n\nconst debug = getDebug('puppeteer:browser-agent');\n\nexport type PuppeteerBrowserAgentOpt = Omit<\n WebPageAgentOpt,\n 'forceSameTabNavigation'\n> & {\n autoFollowNewPage?: boolean;\n newPageTimeout?: number;\n};\n\nexport type PuppeteerBrowserAgentCreateOpt = PuppeteerBrowserAgentOpt & {\n initialPage?: PuppeteerPage;\n};\n\nexport class PuppeteerBrowserAgent extends WebAgentCore<PuppeteerWebPage> {\n protected pageManager: BrowserPageManager<PuppeteerPage, PuppeteerTarget>;\n\n constructor(\n browser: PuppeteerBrowser,\n initialPage: PuppeteerPage,\n opts?: PuppeteerBrowserAgentOpt,\n ) {\n if (!browser) {\n throw new Error(\n '[midscene] PuppeteerBrowserAgent requires a valid Puppeteer browser instance.',\n );\n }\n if (!initialPage) {\n throw new Error(\n '[midscene] PuppeteerBrowserAgent requires a valid initial page instance.',\n );\n }\n\n const { autoFollowNewPage, newPageTimeout, ...agentOpts } = opts ?? {};\n const runtimeOptions = resolveBrowserAgentRuntimeOptions({\n agentName: 'PuppeteerBrowserAgent',\n pageScope: 'browser',\n forceSameTabNavigation: (opts as WebPageAgentOpt | undefined)\n ?.forceSameTabNavigation,\n autoFollowNewPage,\n newPageTimeout,\n });\n const { forceChromeSelectRendering } = agentOpts;\n const webPage = new PuppeteerWebPage(initialPage, {\n ...agentOpts,\n forceSameTabNavigation: runtimeOptions.forceSameTabNavigation,\n });\n const pageManager = createPuppeteerBrowserPageManager({\n browser,\n webPage,\n runtimeOptions,\n debug,\n });\n super(webPage, agentOpts);\n this.pageManager = pageManager;\n\n applyForceChromeSelectRendering(\n initialPage,\n 'puppeteer',\n forceChromeSelectRendering,\n );\n }\n\n static async create(\n browser: PuppeteerBrowser,\n opts?: PuppeteerBrowserAgentCreateOpt,\n ) {\n const { initialPage, ...agentOpts } = opts ?? {};\n const page =\n initialPage ?? (await browser.pages())[0] ?? (await browser.newPage());\n\n return new PuppeteerBrowserAgent(browser, page, agentOpts);\n }\n\n get activePage() {\n return this.pageManager.activePage;\n }\n\n pages() {\n return this.pageManager.pages();\n }\n\n async newPage() {\n return this.pageManager.newPage();\n }\n\n async setActivePage(page: PuppeteerPage) {\n await this.pageManager.setActivePage(page);\n }\n\n async waitForNewPage(\n action?: () => Promise<unknown> | unknown,\n opts?: { timeout?: number },\n ) {\n return this.pageManager.waitForNewPage(action, opts);\n }\n\n async destroy() {\n this.pageManager.destroy();\n await super.destroy();\n }\n}\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","debug","getDebug","PuppeteerBrowserAgent","WebAgentCore","browser","opts","initialPage","agentOpts","page","action","Error","autoFollowNewPage","newPageTimeout","runtimeOptions","resolveBrowserAgentRuntimeOptions","forceChromeSelectRendering","webPage","PuppeteerWebPage","pageManager","createPuppeteerBrowserPageManager","applyForceChromeSelectRendering"],"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
|
|
1
|
+
{"version":3,"file":"puppeteer/browser-agent.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../src/puppeteer/browser-agent.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 {\n type BrowserPageManager,\n WebAgentCore,\n resolveBrowserAgentRuntimeOptions,\n} from '@/common/browser-agent';\nimport { applyForceChromeSelectRendering } from '@/common/browser-agent-utils';\nimport type { WebPageAgentOpt } from '@/web-element';\nimport type { AgentTestRunnerNodeDefinition } from '@midscene/core/agent';\nimport { getDebug } from '@midscene/shared/logger';\nimport type {\n Browser as PuppeteerBrowser,\n Page as PuppeteerPage,\n Target as PuppeteerTarget,\n} from 'puppeteer';\nimport { createPuppeteerBrowserPageManager } from './browser-page-manager';\nimport { PuppeteerWebPage } from './page';\nimport { puppeteerAgentTestRunnerNodeDefinitions } from './test-runner/agent-nodes';\nimport type { PuppeteerTestRunnerOptions } from './test-runner/types';\n\nconst debug = getDebug('puppeteer:browser-agent');\n\nexport type PuppeteerBrowserAgentOpt = Omit<\n WebPageAgentOpt,\n 'forceSameTabNavigation'\n> & {\n testRunner?: PuppeteerTestRunnerOptions;\n autoFollowNewPage?: boolean;\n newPageTimeout?: number;\n};\n\nexport type PuppeteerBrowserAgentCreateOpt = PuppeteerBrowserAgentOpt & {\n initialPage?: PuppeteerPage;\n};\n\nexport class PuppeteerBrowserAgent extends WebAgentCore<PuppeteerWebPage> {\n static override getTestRunnerNodeDefinitions(): readonly AgentTestRunnerNodeDefinition[] {\n return [\n ...WebAgentCore.getTestRunnerNodeDefinitions(),\n ...puppeteerAgentTestRunnerNodeDefinitions,\n ];\n }\n\n readonly testRunner?: PuppeteerTestRunnerOptions;\n\n protected pageManager: BrowserPageManager<PuppeteerPage, PuppeteerTarget>;\n\n constructor(\n browser: PuppeteerBrowser,\n initialPage: PuppeteerPage,\n opts?: PuppeteerBrowserAgentOpt,\n ) {\n if (!browser) {\n throw new Error(\n '[midscene] PuppeteerBrowserAgent requires a valid Puppeteer browser instance.',\n );\n }\n if (!initialPage) {\n throw new Error(\n '[midscene] PuppeteerBrowserAgent requires a valid initial page instance.',\n );\n }\n\n const { autoFollowNewPage, newPageTimeout, ...agentOpts } = opts ?? {};\n const runtimeOptions = resolveBrowserAgentRuntimeOptions({\n agentName: 'PuppeteerBrowserAgent',\n pageScope: 'browser',\n forceSameTabNavigation: (opts as WebPageAgentOpt | undefined)\n ?.forceSameTabNavigation,\n autoFollowNewPage,\n newPageTimeout,\n });\n const { forceChromeSelectRendering } = agentOpts;\n const webPage = new PuppeteerWebPage(initialPage, {\n ...agentOpts,\n forceSameTabNavigation: runtimeOptions.forceSameTabNavigation,\n });\n const pageManager = createPuppeteerBrowserPageManager({\n browser,\n webPage,\n runtimeOptions,\n debug,\n });\n super(webPage, agentOpts);\n this.testRunner = opts?.testRunner;\n this.pageManager = pageManager;\n\n applyForceChromeSelectRendering(\n initialPage,\n 'puppeteer',\n forceChromeSelectRendering,\n );\n }\n\n static async create(\n browser: PuppeteerBrowser,\n opts?: PuppeteerBrowserAgentCreateOpt,\n ) {\n const { initialPage, ...agentOpts } = opts ?? {};\n const page =\n initialPage ?? (await browser.pages())[0] ?? (await browser.newPage());\n\n return new PuppeteerBrowserAgent(browser, page, agentOpts);\n }\n\n get activePage() {\n return this.pageManager.activePage;\n }\n\n pages() {\n return this.pageManager.pages();\n }\n\n async newPage() {\n return this.pageManager.newPage();\n }\n\n async setActivePage(page: PuppeteerPage) {\n await this.pageManager.setActivePage(page);\n }\n\n async waitForNewPage(\n action?: () => Promise<unknown> | unknown,\n opts?: { timeout?: number },\n ) {\n return this.pageManager.waitForNewPage(action, opts);\n }\n\n async destroy() {\n this.pageManager.destroy();\n await super.destroy();\n }\n}\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","debug","getDebug","PuppeteerBrowserAgent","WebAgentCore","puppeteerAgentTestRunnerNodeDefinitions","browser","opts","initialPage","agentOpts","page","action","Error","autoFollowNewPage","newPageTimeout","runtimeOptions","resolveBrowserAgentRuntimeOptions","forceChromeSelectRendering","webPage","PuppeteerWebPage","pageManager","createPuppeteerBrowserPageManager","applyForceChromeSelectRendering"],"mappings":"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"}
|
|
@@ -32,12 +32,30 @@ const browser_agent_utils_js_namespaceObject = require("../common/browser-agent-
|
|
|
32
32
|
const logger_namespaceObject = require("@midscene/shared/logger");
|
|
33
33
|
const external_base_page_js_namespaceObject = require("./base-page.js");
|
|
34
34
|
const external_page_js_namespaceObject = require("./page.js");
|
|
35
|
+
const agent_nodes_js_namespaceObject = require("./test-runner/agent-nodes.js");
|
|
36
|
+
function _define_property(obj, key, value) {
|
|
37
|
+
if (key in obj) Object.defineProperty(obj, key, {
|
|
38
|
+
value: value,
|
|
39
|
+
enumerable: true,
|
|
40
|
+
configurable: true,
|
|
41
|
+
writable: true
|
|
42
|
+
});
|
|
43
|
+
else obj[key] = value;
|
|
44
|
+
return obj;
|
|
45
|
+
}
|
|
35
46
|
const debug = (0, logger_namespaceObject.getDebug)('puppeteer:agent');
|
|
36
47
|
class PuppeteerPageAgent extends browser_agent_js_namespaceObject.WebAgentCore {
|
|
48
|
+
static getTestRunnerNodeDefinitions() {
|
|
49
|
+
return [
|
|
50
|
+
...browser_agent_js_namespaceObject.WebAgentCore.getTestRunnerNodeDefinitions(),
|
|
51
|
+
...agent_nodes_js_namespaceObject.puppeteerAgentTestRunnerNodeDefinitions
|
|
52
|
+
];
|
|
53
|
+
}
|
|
37
54
|
constructor(page, opts){
|
|
38
55
|
if (!page) throw new Error('[midscene] PuppeteerPageAgent requires a valid Puppeteer page instance. Please make sure to pass a valid page object.');
|
|
39
56
|
const webPage = new external_page_js_namespaceObject.PuppeteerWebPage(page, opts);
|
|
40
|
-
super(webPage, opts);
|
|
57
|
+
super(webPage, opts), _define_property(this, "testRunner", void 0);
|
|
58
|
+
this.testRunner = opts?.testRunner;
|
|
41
59
|
const { forceSameTabNavigation, forceChromeSelectRendering } = opts ?? {};
|
|
42
60
|
const runtimeOptions = (0, browser_agent_js_namespaceObject.resolveBrowserAgentRuntimeOptions)({
|
|
43
61
|
agentName: 'PuppeteerPageAgent',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puppeteer/page-agent.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../src/puppeteer/page-agent.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 {\n WebAgentCore,\n resolveBrowserAgentRuntimeOptions,\n} from '@/common/browser-agent';\nimport { applyForceChromeSelectRendering } from '@/common/browser-agent-utils';\nimport type { WebPageAgentOpt } from '@/web-element';\nimport { getDebug } from '@midscene/shared/logger';\nimport type { Page as PuppeteerPage } from 'puppeteer';\nimport { forceClosePopup } from './base-page';\nimport { PuppeteerWebPage } from './page';\n\nconst debug = getDebug('puppeteer:agent');\n\nexport class PuppeteerPageAgent extends WebAgentCore<PuppeteerWebPage> {\n constructor(page: PuppeteerPage, opts?:
|
|
1
|
+
{"version":3,"file":"puppeteer/page-agent.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../src/puppeteer/page-agent.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 {\n WebAgentCore,\n resolveBrowserAgentRuntimeOptions,\n} from '@/common/browser-agent';\nimport { applyForceChromeSelectRendering } from '@/common/browser-agent-utils';\nimport type { WebPageAgentOpt } from '@/web-element';\nimport type { AgentTestRunnerNodeDefinition } from '@midscene/core/agent';\nimport { getDebug } from '@midscene/shared/logger';\nimport type { Page as PuppeteerPage } from 'puppeteer';\nimport { forceClosePopup } from './base-page';\nimport { PuppeteerWebPage } from './page';\nimport { puppeteerAgentTestRunnerNodeDefinitions } from './test-runner/agent-nodes';\nimport type { PuppeteerTestRunnerOptions } from './test-runner/types';\n\nconst debug = getDebug('puppeteer:agent');\n\nexport type PuppeteerPageAgentOpt = WebPageAgentOpt & {\n testRunner?: PuppeteerTestRunnerOptions;\n};\n\nexport class PuppeteerPageAgent extends WebAgentCore<PuppeteerWebPage> {\n static override getTestRunnerNodeDefinitions(): readonly AgentTestRunnerNodeDefinition[] {\n return [\n ...WebAgentCore.getTestRunnerNodeDefinitions(),\n ...puppeteerAgentTestRunnerNodeDefinitions,\n ];\n }\n\n readonly testRunner?: PuppeteerTestRunnerOptions;\n\n constructor(page: PuppeteerPage, opts?: PuppeteerPageAgentOpt) {\n if (!page) {\n throw new Error(\n '[midscene] PuppeteerPageAgent requires a valid Puppeteer page instance. Please make sure to pass a valid page object.',\n );\n }\n const webPage = new PuppeteerWebPage(page, opts);\n super(webPage, opts);\n this.testRunner = opts?.testRunner;\n\n const { forceSameTabNavigation, forceChromeSelectRendering } = opts ?? {};\n const runtimeOptions = resolveBrowserAgentRuntimeOptions({\n agentName: 'PuppeteerPageAgent',\n pageScope: 'page',\n forceSameTabNavigation,\n });\n\n if (runtimeOptions.forceSameTabNavigation) {\n forceClosePopup(page, debug);\n }\n\n applyForceChromeSelectRendering(\n page,\n 'puppeteer',\n forceChromeSelectRendering,\n );\n }\n}\n\nexport { PuppeteerPageAgent as PuppeteerAgent };\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","debug","getDebug","PuppeteerPageAgent","WebAgentCore","puppeteerAgentTestRunnerNodeDefinitions","page","opts","Error","webPage","PuppeteerWebPage","forceSameTabNavigation","forceChromeSelectRendering","runtimeOptions","resolveBrowserAgentRuntimeOptions","forceClosePopup","applyForceChromeSelectRendering"],"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;;;;;;;;;;;;;;;;;;;;;;;;ACQA,MAAMI,QAAQC,AAAAA,IAAAA,uBAAAA,QAAAA,AAAAA,EAAS;AAMhB,MAAMC,2BAA2BC,iCAAAA,YAAYA;IAClD,OAAgB,+BAAyE;QACvF,OAAO;eACFA,iCAAAA,YAAAA,CAAAA,4BAAyC;eACzCC,+BAAAA,uCAAuCA;SAC3C;IACH;IAIA,YAAYC,IAAmB,EAAEC,IAA4B,CAAE;QAC7D,IAAI,CAACD,MACH,MAAM,IAAIE,MACR;QAGJ,MAAMC,UAAU,IAAIC,iCAAAA,gBAAgBA,CAACJ,MAAMC;QAC3C,KAAK,CAACE,SAASF,OATjB,uBAAS,cAAT;QAUE,IAAI,CAAC,UAAU,GAAGA,MAAM;QAExB,MAAM,EAAEI,sBAAsB,EAAEC,0BAA0B,EAAE,GAAGL,QAAQ,CAAC;QACxE,MAAMM,iBAAiBC,AAAAA,IAAAA,iCAAAA,iCAAAA,AAAAA,EAAkC;YACvD,WAAW;YACX,WAAW;YACXH;QACF;QAEA,IAAIE,eAAe,sBAAsB,EACvCE,AAAAA,IAAAA,sCAAAA,eAAAA,AAAAA,EAAgBT,MAAML;QAGxBe,IAAAA,uCAAAA,+BAAAA,AAAAA,EACEV,MACA,aACAM;IAEJ;AACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
puppeteerAgentTestRunnerNodeDefinitions: ()=>puppeteerAgentTestRunnerNodeDefinitions
|
|
28
|
+
});
|
|
29
|
+
const external_clear_cookies_js_namespaceObject = require("./clear-cookies.js");
|
|
30
|
+
const external_cookies_js_namespaceObject = require("./cookies.js");
|
|
31
|
+
const external_goto_url_js_namespaceObject = require("./goto-url.js");
|
|
32
|
+
const external_viewport_js_namespaceObject = require("./viewport.js");
|
|
33
|
+
const puppeteerAgentTestRunnerNodeDefinitions = [
|
|
34
|
+
external_goto_url_js_namespaceObject.gotoUrlNode,
|
|
35
|
+
external_cookies_js_namespaceObject.setCookiesNode,
|
|
36
|
+
external_clear_cookies_js_namespaceObject.clearCookiesNode,
|
|
37
|
+
external_viewport_js_namespaceObject.setViewportSizeNode
|
|
38
|
+
];
|
|
39
|
+
exports.puppeteerAgentTestRunnerNodeDefinitions = __webpack_exports__.puppeteerAgentTestRunnerNodeDefinitions;
|
|
40
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
41
|
+
"puppeteerAgentTestRunnerNodeDefinitions"
|
|
42
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
43
|
+
Object.defineProperty(exports, '__esModule', {
|
|
44
|
+
value: true
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=agent-nodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer/test-runner/agent-nodes.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/puppeteer/test-runner/agent-nodes.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 { clearCookiesNode } from './clear-cookies';\nimport { setCookiesNode } from './cookies';\nimport { gotoUrlNode } from './goto-url';\nimport { setViewportSizeNode } from './viewport';\n\nexport const puppeteerAgentTestRunnerNodeDefinitions: readonly AgentTestRunnerNodeDefinition[] =\n [gotoUrlNode, setCookiesNode, clearCookiesNode, setViewportSizeNode];\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","puppeteerAgentTestRunnerNodeDefinitions","gotoUrlNode","setCookiesNode","clearCookiesNode","setViewportSizeNode"],"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;;;;;;;;;;;ACAO,MAAMI,0CACX;IAACC,qCAAAA,WAAWA;IAAEC,oCAAAA,cAAcA;IAAEC,0CAAAA,gBAAgBA;IAAEC,qCAAAA,mBAAmBA;CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
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
|
+
clearCookiesInputSchema: ()=>clearCookiesInputSchema,
|
|
28
|
+
clearCookiesNode: ()=>clearCookiesNode
|
|
29
|
+
});
|
|
30
|
+
const v4_namespaceObject = require("zod/v4");
|
|
31
|
+
const external_utils_js_namespaceObject = require("./utils.js");
|
|
32
|
+
const clearCookiesInputSchema = v4_namespaceObject.z.strictObject({
|
|
33
|
+
name: v4_namespaceObject.z.string().regex(/\S/).optional().describe('Cookie name to clear.'),
|
|
34
|
+
domain: v4_namespaceObject.z.string().regex(/\S/).optional().describe('Cookie domain to clear.'),
|
|
35
|
+
path: v4_namespaceObject.z.string().regex(/\S/).optional().describe('Cookie path to clear.')
|
|
36
|
+
});
|
|
37
|
+
const clearCookiesNode = {
|
|
38
|
+
name: 'clearCookies',
|
|
39
|
+
title: 'Clear browser cookies',
|
|
40
|
+
description: 'Clear all cookies from the current Puppeteer BrowserContext, or only cookies matching name, domain, or path.',
|
|
41
|
+
stringInputKey: false,
|
|
42
|
+
inputSchema: clearCookiesInputSchema,
|
|
43
|
+
async execute (agent, input, executionContext) {
|
|
44
|
+
const ctx = {
|
|
45
|
+
...executionContext,
|
|
46
|
+
input,
|
|
47
|
+
context: (0, external_utils_js_namespaceObject.requirePuppeteerAgent)(agent)
|
|
48
|
+
};
|
|
49
|
+
(0, external_utils_js_namespaceObject.throwIfAborted)(ctx.signal, 'clearCookies');
|
|
50
|
+
const browserContext = ctx.context.interface.underlyingPage.browserContext();
|
|
51
|
+
const cookies = (await browserContext.cookies()).filter((cookie)=>(void 0 === input.name || cookie.name === input.name) && (void 0 === input.domain || cookie.domain === input.domain) && (void 0 === input.path || cookie.path === input.path));
|
|
52
|
+
(0, external_utils_js_namespaceObject.throwIfAborted)(ctx.signal, 'clearCookies');
|
|
53
|
+
if (cookies.length > 0) await browserContext.deleteCookie(...cookies);
|
|
54
|
+
const filterNames = Object.keys(input);
|
|
55
|
+
return {
|
|
56
|
+
summary: 0 === filterNames.length ? `Cleared ${cookies.length} browser cookie(s)` : `Cleared ${cookies.length} browser cookie(s) matching ${filterNames.join(', ')}`,
|
|
57
|
+
data: {
|
|
58
|
+
filters: input
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
exports.clearCookiesInputSchema = __webpack_exports__.clearCookiesInputSchema;
|
|
64
|
+
exports.clearCookiesNode = __webpack_exports__.clearCookiesNode;
|
|
65
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
66
|
+
"clearCookiesInputSchema",
|
|
67
|
+
"clearCookiesNode"
|
|
68
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
69
|
+
Object.defineProperty(exports, '__esModule', {
|
|
70
|
+
value: true
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=clear-cookies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer/test-runner/clear-cookies.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/puppeteer/test-runner/clear-cookies.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 clearCookiesInputSchema = z.strictObject({\n name: z.string().regex(/\\S/).optional().describe('Cookie name to clear.'),\n domain: z.string().regex(/\\S/).optional().describe('Cookie domain to clear.'),\n path: z.string().regex(/\\S/).optional().describe('Cookie path to clear.'),\n});\n\nexport type ClearCookiesNodeInput = z.infer<typeof clearCookiesInputSchema>;\n\nexport const clearCookiesNode: AgentTestRunnerNodeDefinition<\n z.output<typeof clearCookiesInputSchema>,\n { filters: ClearCookiesNodeInput }\n> = {\n name: 'clearCookies',\n title: 'Clear browser cookies',\n description:\n 'Clear all cookies from the current Puppeteer BrowserContext, or only cookies matching name, domain, or path.',\n stringInputKey: false,\n inputSchema: clearCookiesInputSchema,\n async execute(agent, input, executionContext) {\n const ctx = {\n ...executionContext,\n input,\n context: requirePuppeteerAgent(agent),\n };\n throwIfAborted(ctx.signal, 'clearCookies');\n const browserContext =\n ctx.context.interface.underlyingPage.browserContext();\n const cookies = (await browserContext.cookies()).filter(\n (cookie) =>\n (input.name === undefined || cookie.name === input.name) &&\n (input.domain === undefined || cookie.domain === input.domain) &&\n (input.path === undefined || cookie.path === input.path),\n );\n throwIfAborted(ctx.signal, 'clearCookies');\n if (cookies.length > 0) await browserContext.deleteCookie(...cookies);\n const filterNames = Object.keys(input);\n return {\n summary:\n filterNames.length === 0\n ? `Cleared ${cookies.length} browser cookie(s)`\n : `Cleared ${cookies.length} browser cookie(s) matching ${filterNames.join(', ')}`,\n data: { filters: input },\n };\n },\n};\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","clearCookiesInputSchema","z","clearCookiesNode","agent","input","executionContext","ctx","requirePuppeteerAgent","throwIfAborted","browserContext","cookies","cookie","undefined","filterNames"],"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,0BAA0BC,mBAAAA,CAAAA,CAAAA,YAAc,CAAC;IACpD,MAAMA,mBAAAA,CAAAA,CAAAA,MAAQ,GAAG,KAAK,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC;IACjD,QAAQA,mBAAAA,CAAAA,CAAAA,MAAQ,GAAG,KAAK,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC;IACnD,MAAMA,mBAAAA,CAAAA,CAAAA,MAAQ,GAAG,KAAK,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC;AACnD;AAIO,MAAMC,mBAGT;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,iBACJH,IAAI,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,cAAc;QACrD,MAAMI,UAAW,OAAMD,eAAe,OAAO,EAAC,EAAG,MAAM,CACrD,CAACE,SACEP,AAAAA,CAAAA,AAAeQ,WAAfR,MAAM,IAAI,IAAkBO,OAAO,IAAI,KAAKP,MAAM,IAAG,KACrDA,CAAAA,AAAiBQ,WAAjBR,MAAM,MAAM,IAAkBO,OAAO,MAAM,KAAKP,MAAM,MAAK,KAC3DA,CAAAA,AAAeQ,WAAfR,MAAM,IAAI,IAAkBO,OAAO,IAAI,KAAKP,MAAM,IAAG;QAE1DI,IAAAA,kCAAAA,cAAAA,AAAAA,EAAeF,IAAI,MAAM,EAAE;QAC3B,IAAII,QAAQ,MAAM,GAAG,GAAG,MAAMD,eAAe,YAAY,IAAIC;QAC7D,MAAMG,cAAcjB,OAAO,IAAI,CAACQ;QAChC,OAAO;YACL,SACES,AAAuB,MAAvBA,YAAY,MAAM,GACd,CAAC,QAAQ,EAAEH,QAAQ,MAAM,CAAC,kBAAkB,CAAC,GAC7C,CAAC,QAAQ,EAAEA,QAAQ,MAAM,CAAC,4BAA4B,EAAEG,YAAY,IAAI,CAAC,OAAO;YACtF,MAAM;gBAAE,SAAST;YAAM;QACzB;IACF;AACF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
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
|
+
setCookiesNode: ()=>setCookiesNode,
|
|
28
|
+
setCookiesInputSchema: ()=>cookies_js_namespaceObject.setCookiesInputSchema
|
|
29
|
+
});
|
|
30
|
+
const cookies_js_namespaceObject = require("../../common/test-runner/cookies.js");
|
|
31
|
+
const external_utils_js_namespaceObject = require("./utils.js");
|
|
32
|
+
const setCookiesNode = {
|
|
33
|
+
name: 'setCookies',
|
|
34
|
+
title: 'Set browser cookies',
|
|
35
|
+
description: 'Load cookies from an environment variable, configured profile, or browser storage-state file without persisting cookie values in workflow input or output.',
|
|
36
|
+
stringInputKey: false,
|
|
37
|
+
inputSchema: cookies_js_namespaceObject.setCookiesInputSchema,
|
|
38
|
+
async execute (agent, input, executionContext) {
|
|
39
|
+
const ctx = {
|
|
40
|
+
...executionContext,
|
|
41
|
+
input,
|
|
42
|
+
context: (0, external_utils_js_namespaceObject.requirePuppeteerAgent)(agent)
|
|
43
|
+
};
|
|
44
|
+
(0, external_utils_js_namespaceObject.throwIfAborted)(ctx.signal, 'setCookies');
|
|
45
|
+
const { cookies, result } = await (0, cookies_js_namespaceObject.resolveCookieInput)(input, ctx, ctx.context.testRunner ?? {});
|
|
46
|
+
(0, external_utils_js_namespaceObject.throwIfAborted)(ctx.signal, 'setCookies');
|
|
47
|
+
try {
|
|
48
|
+
await ctx.context.interface.underlyingPage.setCookie(...cookies);
|
|
49
|
+
} catch {
|
|
50
|
+
throw new Error(`Failed to set ${cookies.length} browser cookie(s); the browser error was redacted because it may contain cookie values.`);
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
summary: `Set ${result.count} browser cookie(s) from ${result.source} source ${result.sourceName}`,
|
|
54
|
+
data: result
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
exports.setCookiesInputSchema = __webpack_exports__.setCookiesInputSchema;
|
|
59
|
+
exports.setCookiesNode = __webpack_exports__.setCookiesNode;
|
|
60
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
61
|
+
"setCookiesInputSchema",
|
|
62
|
+
"setCookiesNode"
|
|
63
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
64
|
+
Object.defineProperty(exports, '__esModule', {
|
|
65
|
+
value: true
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=cookies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer/test-runner/cookies.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/puppeteer/test-runner/cookies.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 {\n type SetCookiesNodeInput,\n type SetCookiesNodeResult,\n resolveCookieInput,\n setCookiesInputSchema,\n} from '@/common/test-runner/cookies';\nimport type { AgentTestRunnerNodeDefinition } from '@midscene/core/agent';\nimport type { CookieParam } from 'puppeteer';\nimport { requirePuppeteerAgent, throwIfAborted } from './utils';\n\nexport { setCookiesInputSchema };\nexport type { SetCookiesNodeInput, SetCookiesNodeResult };\n\nexport const setCookiesNode: AgentTestRunnerNodeDefinition<\n SetCookiesNodeInput,\n SetCookiesNodeResult\n> = {\n name: 'setCookies',\n title: 'Set browser cookies',\n description:\n 'Load cookies from an environment variable, configured profile, or browser storage-state file without persisting cookie values in workflow input or output.',\n stringInputKey: false,\n inputSchema: setCookiesInputSchema,\n async execute(agent, input, executionContext) {\n const ctx = {\n ...executionContext,\n input,\n context: requirePuppeteerAgent(agent),\n };\n throwIfAborted(ctx.signal, 'setCookies');\n const { cookies, result } = await resolveCookieInput(\n input,\n ctx,\n ctx.context.testRunner ?? {},\n );\n\n throwIfAborted(ctx.signal, 'setCookies');\n try {\n await ctx.context.interface.underlyingPage.setCookie(\n ...(cookies as CookieParam[]),\n );\n } catch {\n throw new Error(\n `Failed to set ${cookies.length} browser cookie(s); the browser error was redacted because it may contain cookie values.`,\n );\n }\n return {\n summary: `Set ${result.count} browser cookie(s) from ${result.source} source ${result.sourceName}`,\n data: result,\n };\n },\n};\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","setCookiesNode","setCookiesInputSchema","agent","input","executionContext","ctx","requirePuppeteerAgent","throwIfAborted","cookies","result","resolveCookieInput","Error"],"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;;;;;;;;;;ACOO,MAAMI,iBAGT;IACF,MAAM;IACN,OAAO;IACP,aACE;IACF,gBAAgB;IAChB,aAAaC,2BAAAA,qBAAqBA;IAClC,MAAM,SAAQC,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,MAAM,EAAEG,OAAO,EAAEC,MAAM,EAAE,GAAG,MAAMC,AAAAA,IAAAA,2BAAAA,kBAAAA,AAAAA,EAChCP,OACAE,KACAA,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC;QAG7BE,IAAAA,kCAAAA,cAAAA,AAAAA,EAAeF,IAAI,MAAM,EAAE;QAC3B,IAAI;YACF,MAAMA,IAAI,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,IAC9CG;QAER,EAAE,OAAM;YACN,MAAM,IAAIG,MACR,CAAC,cAAc,EAAEH,QAAQ,MAAM,CAAC,wFAAwF,CAAC;QAE7H;QACA,OAAO;YACL,SAAS,CAAC,IAAI,EAAEC,OAAO,KAAK,CAAC,wBAAwB,EAAEA,OAAO,MAAM,CAAC,QAAQ,EAAEA,OAAO,UAAU,EAAE;YAClG,MAAMA;QACR;IACF;AACF"}
|
|
@@ -0,0 +1,94 @@
|
|
|
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
|
+
gotoUrlInputSchema: ()=>gotoUrlInputSchema,
|
|
28
|
+
gotoUrlNode: ()=>gotoUrlNode
|
|
29
|
+
});
|
|
30
|
+
const v4_namespaceObject = require("zod/v4");
|
|
31
|
+
const external_utils_js_namespaceObject = require("./utils.js");
|
|
32
|
+
const DEFAULT_NAVIGATION_TIMEOUT_MS = 60000;
|
|
33
|
+
const DEFAULT_WAIT_UNTIL = 'domcontentloaded';
|
|
34
|
+
const gotoUrlInputSchema = v4_namespaceObject.z.strictObject({
|
|
35
|
+
url: v4_namespaceObject.z.string().min(1).describe('An absolute HTTP(S) URL or a path relative to Puppeteer baseURL or the current page URL.'),
|
|
36
|
+
waitUntil: v4_namespaceObject.z["enum"]([
|
|
37
|
+
'domcontentloaded',
|
|
38
|
+
'load',
|
|
39
|
+
'networkidle0',
|
|
40
|
+
'networkidle2'
|
|
41
|
+
]).default(DEFAULT_WAIT_UNTIL).describe('The Puppeteer navigation lifecycle event to wait for.'),
|
|
42
|
+
timeoutMs: v4_namespaceObject.z.number().positive().default(DEFAULT_NAVIGATION_TIMEOUT_MS).describe('The navigation timeout in milliseconds.')
|
|
43
|
+
});
|
|
44
|
+
const resolveNavigationUrl = (target, page, configuredBase)=>{
|
|
45
|
+
const trimmed = target.trim();
|
|
46
|
+
if (!trimmed) throw new TypeError('gotoUrl.url must not be blank.');
|
|
47
|
+
if (/^[a-z][a-z\d+.-]*:/i.test(trimmed)) return (0, external_utils_js_namespaceObject.resolveWebUrl)(trimmed, void 0, 'gotoUrl.url');
|
|
48
|
+
if (void 0 !== configuredBase) return (0, external_utils_js_namespaceObject.resolveWebUrl)(trimmed, configuredBase, 'gotoUrl.url');
|
|
49
|
+
const currentUrl = page.url();
|
|
50
|
+
if (!/^https?:\/\//i.test(currentUrl)) throw new TypeError(`gotoUrl.url cannot resolve a relative URL from ${JSON.stringify(currentUrl)}. Use an absolute HTTP(S) URL for the first navigation or configure Puppeteer testRunner.baseURL.`);
|
|
51
|
+
return (0, external_utils_js_namespaceObject.resolveWebUrl)(trimmed, currentUrl, 'gotoUrl.url');
|
|
52
|
+
};
|
|
53
|
+
const gotoUrlNode = {
|
|
54
|
+
name: 'gotoUrl',
|
|
55
|
+
title: 'Open a Web URL',
|
|
56
|
+
description: 'Navigate the current Puppeteer Page to an absolute HTTP(S) URL or a path relative to testRunner.baseURL or the current page URL.',
|
|
57
|
+
stringInputKey: 'url',
|
|
58
|
+
inputSchema: gotoUrlInputSchema,
|
|
59
|
+
async execute (agent, input, executionContext) {
|
|
60
|
+
const ctx = {
|
|
61
|
+
...executionContext,
|
|
62
|
+
input,
|
|
63
|
+
context: (0, external_utils_js_namespaceObject.requirePuppeteerAgent)(agent)
|
|
64
|
+
};
|
|
65
|
+
(0, external_utils_js_namespaceObject.throwIfAborted)(ctx.signal, 'gotoUrl');
|
|
66
|
+
const page = ctx.context.interface.underlyingPage;
|
|
67
|
+
const url = resolveNavigationUrl(ctx.input.url, page, ctx.context.testRunner?.baseURL);
|
|
68
|
+
const response = await page.goto(url, {
|
|
69
|
+
waitUntil: ctx.input.waitUntil,
|
|
70
|
+
timeout: ctx.input.timeoutMs
|
|
71
|
+
});
|
|
72
|
+
(0, external_utils_js_namespaceObject.throwIfAborted)(ctx.signal, 'gotoUrl');
|
|
73
|
+
const result = {
|
|
74
|
+
url: page.url(),
|
|
75
|
+
status: response?.status() ?? null,
|
|
76
|
+
title: await page.title()
|
|
77
|
+
};
|
|
78
|
+
return {
|
|
79
|
+
summary: `Navigated to ${result.url}`,
|
|
80
|
+
data: result
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
exports.gotoUrlInputSchema = __webpack_exports__.gotoUrlInputSchema;
|
|
85
|
+
exports.gotoUrlNode = __webpack_exports__.gotoUrlNode;
|
|
86
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
87
|
+
"gotoUrlInputSchema",
|
|
88
|
+
"gotoUrlNode"
|
|
89
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
90
|
+
Object.defineProperty(exports, '__esModule', {
|
|
91
|
+
value: true
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
//# sourceMappingURL=goto-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer/test-runner/goto-url.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/puppeteer/test-runner/goto-url.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 type { Page } from 'puppeteer';\nimport { z } from 'zod/v4';\nimport { requirePuppeteerAgent, resolveWebUrl, throwIfAborted } from './utils';\n\nconst DEFAULT_NAVIGATION_TIMEOUT_MS = 60_000;\nconst DEFAULT_WAIT_UNTIL = 'domcontentloaded' as const;\n\nexport const gotoUrlInputSchema = z.strictObject({\n url: z\n .string()\n .min(1)\n .describe(\n 'An absolute HTTP(S) URL or a path relative to Puppeteer baseURL or the current page URL.',\n ),\n waitUntil: z\n .enum(['domcontentloaded', 'load', 'networkidle0', 'networkidle2'])\n .default(DEFAULT_WAIT_UNTIL)\n .describe('The Puppeteer navigation lifecycle event to wait for.'),\n timeoutMs: z\n .number()\n .positive()\n .default(DEFAULT_NAVIGATION_TIMEOUT_MS)\n .describe('The navigation timeout in milliseconds.'),\n});\n\nexport type GotoUrlNodeInput = z.infer<typeof gotoUrlInputSchema>;\n\nexport interface GotoUrlNodeResult {\n url: string;\n status: number | null;\n title: string;\n}\n\nconst resolveNavigationUrl = (\n target: string,\n page: Page,\n configuredBase: string | undefined,\n): string => {\n const trimmed = target.trim();\n if (!trimmed) throw new TypeError('gotoUrl.url must not be blank.');\n if (/^[a-z][a-z\\d+.-]*:/i.test(trimmed)) {\n return resolveWebUrl(trimmed, undefined, 'gotoUrl.url');\n }\n if (configuredBase !== undefined) {\n return resolveWebUrl(trimmed, configuredBase, 'gotoUrl.url');\n }\n const currentUrl = page.url();\n if (!/^https?:\\/\\//i.test(currentUrl)) {\n throw new TypeError(\n `gotoUrl.url cannot resolve a relative URL from ${JSON.stringify(currentUrl)}. Use an absolute HTTP(S) URL for the first navigation or configure Puppeteer testRunner.baseURL.`,\n );\n }\n return resolveWebUrl(trimmed, currentUrl, 'gotoUrl.url');\n};\n\nexport const gotoUrlNode: AgentTestRunnerNodeDefinition<\n z.output<typeof gotoUrlInputSchema>,\n GotoUrlNodeResult\n> = {\n name: 'gotoUrl',\n title: 'Open a Web URL',\n description:\n 'Navigate the current Puppeteer Page to an absolute HTTP(S) URL or a path relative to testRunner.baseURL or the current page URL.',\n stringInputKey: 'url',\n inputSchema: gotoUrlInputSchema,\n async execute(agent, input, executionContext) {\n const ctx = {\n ...executionContext,\n input,\n context: requirePuppeteerAgent(agent),\n };\n throwIfAborted(ctx.signal, 'gotoUrl');\n const page = ctx.context.interface.underlyingPage;\n const url = resolveNavigationUrl(\n ctx.input.url,\n page,\n ctx.context.testRunner?.baseURL,\n );\n const response = await page.goto(url, {\n waitUntil: ctx.input.waitUntil,\n timeout: ctx.input.timeoutMs,\n });\n throwIfAborted(ctx.signal, 'gotoUrl');\n const result = {\n url: page.url(),\n status: response?.status() ?? null,\n title: await page.title(),\n };\n return { summary: `Navigated to ${result.url}`, data: result };\n },\n};\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","DEFAULT_NAVIGATION_TIMEOUT_MS","DEFAULT_WAIT_UNTIL","gotoUrlInputSchema","z","resolveNavigationUrl","target","page","configuredBase","trimmed","TypeError","resolveWebUrl","undefined","currentUrl","JSON","gotoUrlNode","agent","input","executionContext","ctx","requirePuppeteerAgent","throwIfAborted","url","response","result"],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
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
|
+
gotoUrlInputSchema: ()=>external_goto_url_js_namespaceObject.gotoUrlInputSchema,
|
|
28
|
+
setCookiesInputSchema: ()=>external_cookies_js_namespaceObject.setCookiesInputSchema,
|
|
29
|
+
setViewportSizeInputSchema: ()=>external_viewport_js_namespaceObject.setViewportSizeInputSchema,
|
|
30
|
+
clearCookiesInputSchema: ()=>external_clear_cookies_js_namespaceObject.clearCookiesInputSchema,
|
|
31
|
+
puppeteerAgentTestRunnerNodeDefinitions: ()=>external_agent_nodes_js_namespaceObject.puppeteerAgentTestRunnerNodeDefinitions
|
|
32
|
+
});
|
|
33
|
+
const external_clear_cookies_js_namespaceObject = require("./clear-cookies.js");
|
|
34
|
+
const external_cookies_js_namespaceObject = require("./cookies.js");
|
|
35
|
+
const external_goto_url_js_namespaceObject = require("./goto-url.js");
|
|
36
|
+
const external_viewport_js_namespaceObject = require("./viewport.js");
|
|
37
|
+
const external_agent_nodes_js_namespaceObject = require("./agent-nodes.js");
|
|
38
|
+
exports.clearCookiesInputSchema = __webpack_exports__.clearCookiesInputSchema;
|
|
39
|
+
exports.gotoUrlInputSchema = __webpack_exports__.gotoUrlInputSchema;
|
|
40
|
+
exports.puppeteerAgentTestRunnerNodeDefinitions = __webpack_exports__.puppeteerAgentTestRunnerNodeDefinitions;
|
|
41
|
+
exports.setCookiesInputSchema = __webpack_exports__.setCookiesInputSchema;
|
|
42
|
+
exports.setViewportSizeInputSchema = __webpack_exports__.setViewportSizeInputSchema;
|
|
43
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
44
|
+
"clearCookiesInputSchema",
|
|
45
|
+
"gotoUrlInputSchema",
|
|
46
|
+
"puppeteerAgentTestRunnerNodeDefinitions",
|
|
47
|
+
"setCookiesInputSchema",
|
|
48
|
+
"setViewportSizeInputSchema"
|
|
49
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
50
|
+
Object.defineProperty(exports, '__esModule', {
|
|
51
|
+
value: true
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer/test-runner/index.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object"],"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};"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol"],"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.r = (exports1)=>{
|
|
5
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
6
|
+
value: 'Module'
|
|
7
|
+
});
|
|
8
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
9
|
+
value: true
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
})();
|
|
13
|
+
var __webpack_exports__ = {};
|
|
14
|
+
__webpack_require__.r(__webpack_exports__);
|
|
15
|
+
for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
16
|
+
Object.defineProperty(exports, '__esModule', {
|
|
17
|
+
value: true
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer/test-runner/types.js","sources":["webpack/runtime/make_namespace_object"],"sourcesContent":["// 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};"],"names":["__webpack_require__","Symbol","Object"],"mappings":";;;IACAA,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOC,UAA0BA,OAAO,WAAW,EACrDC,OAAO,cAAc,CAAC,UAASD,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEC,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D"}
|