@unotest/web 0.12.0 → 0.13.1
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/.claude/skills/write-e2e-test/SKILL.md +4 -0
- package/.claude/skills/write-e2e-test-ground/SKILL.md +4 -0
- package/CHANGELOG.md +55 -0
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.js +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/runner/cli.js +1 -1
- package/dist/runner/init/chrome-probe.js +1 -1
- package/dist/runner/init.js +1 -1
- package/dist/runner/install-chromium.js +1 -1
- package/dist/runner/prepare-fix.js +1 -1
- package/dist/runner/scaffold-workspace.js +1 -1
- package/dist/runner/serve-fixture.js +1 -1
- package/dist/runner/web-runner-adapter.js +1 -1
- package/guides/agent-integration.md +9 -4
- package/guides/dsl-reference.md +33 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x192e23=_0x1a6c;function _0x1c08(){const _0x54167b=['ChvZAa','lMvUDG','nLbPBwHOAq','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','y2HHBM5LBa','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','ndCZmhr1wLHpra','Dw5VDgvZDenVBMzPz01QCW','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','mtvZrLDeuuy','zxHHBxbSzxm','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWO','odi5nZG1ve94suvs','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','mte3mdHXvMnszxm','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','mZe4zLfKsfHH','mZi0oxjur3PJDG','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','ztjL','mJC2nZCYmfD3r1bbDW','mdeTC21VA2uUANm','mJuXmZyZn3f2CMLTvq','mJGXmhbyuhrrvG','Dw5VDgvZDa','x2HLBhbLCNm','zw52rxHHBxbSzq','icbJAgfUBMvSoIa','mte0otKXmtr3vKXYsKK','zgvMAw5LuhjVCgvYDhK','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO'];_0x1c08=function(){return _0x54167b;};return _0x1c08();}(function(_0x198967,_0x2c9038){const _0x1a1d09={_0x518861:0x141,_0xcb8264:0x13f,_0x333c4d:0x15d,_0x3b9872:0x152,_0x9a1f54:0x145,_0xe7b6b2:0x14d},_0x52033e=_0x1a6c,_0x531273=_0x198967();while(!![]){try{const _0x2cd4c7=parseInt(_0x52033e(0x148))/0x1*(-parseInt(_0x52033e(_0x1a1d09._0x518861))/0x2)+parseInt(_0x52033e(0x15a))/0x3*(parseInt(_0x52033e(_0x1a1d09._0xcb8264))/0x4)+-parseInt(_0x52033e(_0x1a1d09._0x333c4d))/0x5*(parseInt(_0x52033e(_0x1a1d09._0x3b9872))/0x6)+-parseInt(_0x52033e(0x147))/0x7+parseInt(_0x52033e(_0x1a1d09._0x9a1f54))/0x8+parseInt(_0x52033e(0x142))/0x9*(-parseInt(_0x52033e(0x156))/0xa)+parseInt(_0x52033e(_0x1a1d09._0xe7b6b2))/0xb;if(_0x2cd4c7===_0x2c9038)break;else _0x531273['push'](_0x531273['shift']());}catch(_0x1327ac){_0x531273['push'](_0x531273['shift']());}}}(_0x1c08,0x404d7));var __defProp=Object[_0x192e23(0x14e)],__name=(_0x35d767,_0x1f1906)=>__defProp(_0x35d767,'name',{'value':_0x1f1906,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';function _0x1a6c(_0x2331f4,_0x1329df){_0x2331f4=_0x2331f4-0x13e;const _0x1c08a6=_0x1c08();let _0x1a6c49=_0x1c08a6[_0x2331f4];if(_0x1a6c['HFDZvo']===undefined){var _0x373836=function(_0xb8f0bc){const _0xeb77a1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35d767='',_0x1f1906='';for(let _0x1049f4=0x0,_0x16be92,_0x137f54,_0x521649=0x0;_0x137f54=_0xb8f0bc['charAt'](_0x521649++);~_0x137f54&&(_0x16be92=_0x1049f4%0x4?_0x16be92*0x40+_0x137f54:_0x137f54,_0x1049f4++%0x4)?_0x35d767+=String['fromCharCode'](0xff&_0x16be92>>(-0x2*_0x1049f4&0x6)):0x0){_0x137f54=_0xeb77a1['indexOf'](_0x137f54);}for(let _0x423465=0x0,_0x1fda55=_0x35d767['length'];_0x423465<_0x1fda55;_0x423465++){_0x1f1906+='%'+('00'+_0x35d767['charCodeAt'](_0x423465)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f1906);};_0x1a6c['mpPQqH']=_0x373836,_0x1a6c['mBietk']={},_0x1a6c['HFDZvo']=!![];}const _0x549a2b=_0x1c08a6[0x0],_0x543e2c=_0x2331f4+_0x549a2b,_0x39b78b=_0x1a6c['mBietk'][_0x543e2c];return!_0x39b78b?(_0x1a6c49=_0x1a6c['mpPQqH'](_0x1a6c49),_0x1a6c['mBietk'][_0x543e2c]=_0x1a6c49):_0x1a6c49=_0x39b78b,_0x1a6c49;}import{join}from'path';var templates={'scenarioTemplate':_0x192e23(0x158),'agentsMd':_0x192e23(0x13e),'claudeMdBody':_0x192e23(0x153),'examples':{'01-smoke.js':_0x192e23(0x14f),'02-form-fill.js':_0x192e23(0x159)},'secretsExample':'#\x20unotest-web\x20—\x20secret\x20scenario\x20variables.\x20Created\x20by\x20`init`,\x20gitignored.\x0a#\x0a#\x20Same\x20KEY=VALUE\x20format\x20as\x20unotest/.env,\x20but\x20values\x20here\x20are\x20treated\x20as\x0a#\x20SECRET:\x20they\x20are\x20masked\x20(shown\x20as\x20`‹secret:KEY›`)\x20anywhere\x20the\x20runner\x20or\x0a#\x20MCP\x20debug\x20log\x20would\x20otherwise\x20write\x20them\x20—\x20fill()\x20values,\x20URLs,\x20evaluate\x0a#\x20strings.\x20Reference\x20them\x20in\x20a\x20scenario\x20by\x20their\x20bare\x20UPPER_SNAKE\x20name,\x20the\x0a#\x20same\x20way\x20as\x20.env\x20variables:\x0a#\x0a#\x20\x20\x20fill(getByLabel(\x27Password\x27),\x20PASSWORD);\x0a#\x0a#\x20Secrets\x20are\x20NOT\x20exported\x20to\x20subprocesses\x20(shell())\x20—\x20they\x20stay\x20in\x20the\x0a#\x20variable\x20store.\x20A\x20subprocess\x20that\x20genuinely\x20needs\x20one\x20(a\x20listener\x20with\x20a\x0a#\x20token)\x20gets\x20it\x20via\x20the\x20explicit\x20allowlist\x20in\x20unotest.config.*:\x0a#\x20\x20\x20sandbox:\x20{\x20exportSecrets:\x20[\x27TOKEN\x27]\x20}\x0a#\x20Put\x20non-secret\x20values\x20(URLs,\x20emails,\x20ids)\x20in\x20unotest/.env.\x0a#\x0a#\x20FLEET_EXAMPLE\x0aLOGIN=\x0aPASSWORD=\x0aTOKEN=\x0a','envExample':_0x192e23(0x140)};function unotestConfigMjs(_0x1049f4){const _0x45dde0={_0x4de54b:0x14c,_0x435be2:0x15c},_0x1e436d=_0x192e23,_0x16be92=_0x1049f4===void 0x0?_0x1e436d(0x143):_0x1e436d(_0x45dde0._0x4de54b)+JSON['stringify'](_0x1049f4)+',';return _0x1e436d(_0x45dde0._0x435be2)+_0x16be92+_0x1e436d(0x155);}__name(unotestConfigMjs,_0x192e23(0x157));async function scaffoldWorkspace(_0x137f54,_0x521649={}){const _0x11f0fe={_0x492292:0x15b,_0x47c3f7:0x144,_0x435f6a:0x14a,_0x548178:0x154,_0x4d5572:0x14b,_0x4647d7:0x15b,_0x19299a:0x146,_0x8103e3:0x150},_0x55fea3=_0x192e23,_0x423465=[],_0x1fda55=[];await mkdir(join(_0x137f54,'unotest',_0x55fea3(0x144),_0x55fea3(_0x11f0fe._0x492292)),{'recursive':!![]}),await mkdir(join(_0x137f54,_0x55fea3(0x149),_0x55fea3(_0x11f0fe._0x47c3f7),_0x55fea3(_0x11f0fe._0x435f6a)),{'recursive':!![]});const _0x4ea585=[{'rel':'unotest.config.mjs','content':unotestConfigMjs(_0x521649[_0x55fea3(_0x11f0fe._0x548178)])},{'rel':join(_0x55fea3(0x149),_0x55fea3(0x151)),'content':templates[_0x55fea3(_0x11f0fe._0x4d5572)]},{'rel':join(_0x55fea3(0x149),_0x55fea3(_0x11f0fe._0x47c3f7),_0x55fea3(_0x11f0fe._0x4647d7),'01-smoke.js'),'content':templates['examples'][_0x55fea3(_0x11f0fe._0x19299a)]}];for(const {rel:_0x134246,content:_0x4b898e}of _0x4ea585){const _0x3a63c1=join(_0x137f54,_0x134246);if(existsSync(_0x3a63c1)){_0x1fda55[_0x55fea3(0x150)](_0x134246);continue;}await writeFile(_0x3a63c1,_0x4b898e),_0x423465[_0x55fea3(_0x11f0fe._0x8103e3)](_0x134246);}return{'projectRoot':_0x137f54,'created':_0x423465,'skipped':_0x1fda55};}__name(scaffoldWorkspace,'scaffoldWorkspace');export{scaffoldWorkspace};
|
|
1
|
+
const _0x2a6f48=_0x3da6;(function(_0xfa1bd9,_0x5916cc){const _0x1a1007={_0x2de87f:0x162,_0x1536d4:0x172,_0x23903d:0x176,_0xd73410:0x179,_0x29736d:0x165,_0x209bec:0x175},_0x5c6053=_0x3da6,_0x164795=_0xfa1bd9();while(!![]){try{const _0x35d9ea=parseInt(_0x5c6053(0x167))/0x1*(-parseInt(_0x5c6053(0x16a))/0x2)+-parseInt(_0x5c6053(_0x1a1007._0x2de87f))/0x3+parseInt(_0x5c6053(_0x1a1007._0x1536d4))/0x4+-parseInt(_0x5c6053(_0x1a1007._0x23903d))/0x5*(-parseInt(_0x5c6053(_0x1a1007._0xd73410))/0x6)+-parseInt(_0x5c6053(0x168))/0x7+-parseInt(_0x5c6053(0x16c))/0x8*(-parseInt(_0x5c6053(_0x1a1007._0x29736d))/0x9)+parseInt(_0x5c6053(_0x1a1007._0x209bec))/0xa;if(_0x35d9ea===_0x5916cc)break;else _0x164795['push'](_0x164795['shift']());}catch(_0x3c9514){_0x164795['push'](_0x164795['shift']());}}}(_0x2040,0xdbef1));var __defProp=Object['defineProperty'],__name=(_0x5ccd1f,_0x2828dd)=>__defProp(_0x5ccd1f,_0x2a6f48(0x164),{'value':_0x2828dd,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';import{join}from'path';var templates={'scenarioTemplate':_0x2a6f48(0x16f),'agentsMd':_0x2a6f48(0x16d),'claudeMdBody':_0x2a6f48(0x161),'examples':{'01-smoke.js':_0x2a6f48(0x16b),'02-form-fill.js':_0x2a6f48(0x178)},'secretsExample':_0x2a6f48(0x15f),'envExample':'#\x20unotest-web\x20—\x20copied\x20to\x20unotest/.env\x20by\x20`init`\x20if\x20not\x20present.\x0a#\x0a#\x20Fill\x20in\x20values\x20that\x20apply\x20to\x20your\x20project.\x20Variables\x20are\x20loaded\x20by\x20the\x0a#\x20runner\x20at\x20scenario\x20start.\x0a#\x0a#\x20Reference\x20any\x20variable\x20from\x20a\x20scenario\x20by\x20its\x20bare\x20UPPER_SNAKE\x20name\x20—\x0a#\x20no\x20env()/secret()\x20wrapper:\x0a#\x0a#\x20\x20\x20goto(\x27/login\x27);\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20relative\x20—\x20see\x20APP_BASE_URL\x0a#\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20TEST_USER_EMAIL);\x0a#\x0a#\x20Secret\x20values\x20(passwords,\x20tokens)\x20go\x20in\x20unotest/.secrets\x20instead\x20—\x20same\x0a#\x20format,\x20but\x20masked\x20in\x20every\x20log.\x20An\x20unknown\x20UPPER_SNAKE\x20name\x20fails\x20the\x0a#\x20run\x20with\x20a\x20clear\x20\x22add\x20it\x20to\x20unotest/.env\x22\x20message.\x0a#\x0a#\x20Environments:\x20override\x20any\x20value\x20per\x20environment\x20with\x20overlay\x20files\x20—\x0a#\x20unotest/.env.staging,\x20unotest/.env.production\x20(secrets:\x20.secrets.<env>).\x0a#\x20Select\x20one:\x20`npx\x20@unotest/web\x20e2e\x20<name>\x20--env\x20staging`.\x20The\x20overlay\x20layers\x0a#\x20over\x20this\x20base\x20file\x20(overlay\x20wins);\x20the\x20shell\x20environment\x20wins\x20over\x20both.\x0a\x0a#\x20---\x20App\x20under\x20test\x20--------------------------------------------------------\x0a#\x20The\x20app\x27s\x20base\x20URL.\x20Relative\x20goto(\x27/path\x27)\x20resolves\x20against\x20it\x20(wired\x20into\x0a#\x20Playwright\x27s\x20baseURL\x20automatically),\x20so\x20write\x20goto(\x27/login\x27)\x20—\x20never\x0a#\x20goto(APP_BASE_URL\x20+\x20\x27/login\x27).\x20Also\x20used\x20for\x20assertUrl\x20substring\x20matching.\x0a#\x20Defaults\x20to\x20the\x20unotest\x20playground\x20so\x20the\x20example\x20scenarios\x20run\x20out\x20of\x20the\x0a#\x20box;\x20point\x20it\x20at\x20your\x20own\x20app.\x0aAPP_BASE_URL=https://playground.unotest.com\x0a\x0a#\x20---\x20Database\x20--------------------------------------------------------------\x0a#\x20Used\x20by\x20dbQuery\x20/\x20dbExec.\x20Install\x20the\x20matching\x20driver\x20as\x20a\x20peer-dep:\x0a#\x20\x20\x20pnpm\x20add\x20-D\x20pg\x20@types/pg\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20for\x20postgresql://\x0a#\x20\x20\x20pnpm\x20add\x20-D\x20mysql2\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20for\x20mysql://\x0a#\x20(SQLite\x20via\x20better-sqlite3\x20—\x20install\x20only\x20if\x20needed.)\x0aDATABASE_URL=postgresql://postgres:postgres@localhost:5432/myapp_test\x0a\x0a#\x20---\x20Extra\x20API\x20hosts\x20-------------------------------------------------------\x0a#\x20apiCall(...)\x20goes\x20against\x20sandbox.apiBaseUrl\x20from\x20unotest.config.*\x20by\x0a#\x20default.\x20A\x20setup\x20that\x20talks\x20to\x20MORE\x20hosts\x20names\x20them\x20here\x20and\x20picks\x20one\x0a#\x20per\x20call\x20by\x20the\x20variable\x20NAME\x20(URLs\x20never\x20appear\x20in\x20scenarios):\x0a#\x20\x20\x20apiCall(\x27POST\x27,\x20\x27/things\x27,\x20body,\x20headers,\x20{base:\x20\x27API_BASE_CHAT\x27})\x0a#\x20API_BASE_CHAT=https://chatbackend.example.com\x0a\x0a#\x20---\x20Runner\x20--------------------------------------------------------------\x0a#\x20Show\x20the\x20browser\x20window\x20during\x20runs\x20(default:\x20headless).\x0a#\x20UNOTEST_HEADED=1\x0a#\x20Slow\x20each\x20Playwright\x20op\x20by\x20N\x20ms\x20(default:\x200).\x20Pairs\x20with\x20HEADED\x20for\x0a#\x20watching\x20the\x20agent\x20at\x20work.\x0a#\x20UNOTEST_SLOW_MO=100\x0a#\x20Browser\x20used\x20by\x20the\x20CLI\x20(chromium\x20|\x20firefox\x20|\x20webkit).\x20Default:\x20chromium.\x0a#\x20UNOTEST_BROWSER=chromium\x0a#\x20Default\x20action\x20timeout\x20in\x20milliseconds\x20—\x20applied\x20to\x20every\x20click\x20/\x0a#\x20fill\x20/\x20waitFor\x20/\x20etc.\x20via\x20Playwright\x27s\x20setDefaultTimeout.\x20Default\x203000.\x0a#\x20Bump\x20if\x20your\x20app\x20is\x20slow;\x20per-action\x20override\x20via\x20the\x20action\x27s\x0a#\x20options.timeout.\x20Playwright\x27s\x20stock\x2030000\x20strands\x20interactive\x20agents.\x0a#\x20UNOTEST_DEFAULT_TIMEOUT_MS=3000\x0a#\x20Default\x20navigation\x20timeout\x20in\x20milliseconds\x20—\x20applied\x20to\x20goto\x20/\x20reload\x20/\x0a#\x20waitForUrl,\x20click\x27s\x20post-action\x20navigation\x20wait,\x20AND\x20setPage\x27s\x20wait\x20for\x20a\x0a#\x20newly\x20opened\x20tab\x20to\x20appear\x20+\x20load.\x20Real-world\x20pages\x20routinely\x20take\x205–15s\x0a#\x20to\x20fire\x20\x27load\x27;\x20keep\x20this\x20separate\x20from\x20the\x20action\x20timeout\x20above.\x0aUNOTEST_DEFAULT_NAVIGATION_TIMEOUT_MS=15000\x0a\x0a#\x20Per-run\x20wall-clock\x20budget\x20in\x20milliseconds\x20—\x20a\x20run\x20aborts\x20once\x20it\x20exceeds\x0a#\x20this.\x20Guards\x20against\x20a\x20stuck\x20scenario\x20hanging\x20the\x20agent\x20indefinitely.\x0a#\x20Invalid\x20or\x20non-positive\x20values\x20fall\x20back\x20to\x20the\x20default.\x20Default\x20300000.\x0a#\x20UNOTEST_MAX_DURATION_MS=300000\x0a\x0a#\x20---\x20Locale\x20+\x20timezone\x20---------------------------------------------------\x0a#\x20Pin\x20the\x20browser\x20context\x27s\x20Accept-Language\x20/\x20navigator.language.\x20Without\x0a#\x20these,\x20tests\x20inherit\x20the\x20OS\x20locale\x20—\x20accessible-name\x20selectors\x0a#\x20(`getByRole(name)`)\x20on\x20i18n\x27d\x20apps\x20will\x20break\x20across\x20machines.\x0a#\x20UNOTEST_LOCALE=en-US\x0a#\x20UNOTEST_TIMEZONE=UTC\x0a\x0a#\x20---\x20Recording\x20(explore_*)\x20----------------------------------------------\x0a#\x20Grace\x20window\x20in\x20ms\x20after\x20each\x20explore_step\x20action.\x20If\x20a\x20click\x20opens\x20a\x0a#\x20new\x20tab/popup,\x20the\x20MCP\x20server\x20auto-switches\x20the\x20active\x20page\x20to\x20it\x20AND\x0a#\x20inserts\x20setPage(N)\x20into\x20the\x20generated\x20DSL\x20trace.\x20Set\x20to\x200\x20to\x20disable\x0a#\x20(strict\x20mode).\x20Has\x20NO\x20effect\x20on\x20run_test\x20—\x20there\x20setPage\x20already\x20waits\x0a#\x20for\x20the\x20tab\x20to\x20appear\x20on\x20its\x20own.\x20Range:\x20[0,\x2010000].\x20Default:\x202000.\x0a#\x20UNOTEST_POPUP_GRACE_MS=2000\x0a\x0a#\x20---\x20Logging\x20-------------------------------------------------------------\x0a#\x20debug\x20|\x20info\x20|\x20warn\x20|\x20error.\x20Default:\x20info.\x0aUNOTEST_LOG_LEVEL=info\x0a\x0a#\x20---\x20Debug\x20diagnostics\x20---------------------------------------------------\x0a#\x20Off\x20by\x20default.\x20Set\x20to\x201\x20to\x20record\x20a\x20structured\x20JSONL\x20log\x20+\x20per-call\x0a#\x20folders\x20under\x20unotest/.debug/\x20—\x20then\x20restart\x20the\x20MCP\x20server.\x20Each\x20tool\x0a#\x20call\x20gets\x20a\x20folder\x20with\x20the\x20full\x20snapshot\x20JSON,\x20the\x20outerHTML\x20of\x20the\x0a#\x20element\x20a\x20locator\x20resolved\x20to,\x20and\x20(on\x20failure)\x20page.html\x20+\x20a\x20screenshot,\x0a#\x20so\x20you\x20(and\x20the\x20AI\x20agent,\x20via\x20get_last_mcp_log)\x20can\x20verify\x20the\x20snapshot\x0a#\x20didn\x27t\x20glitch\x20and\x20the\x20locator\x20hit\x20the\x20right\x20element\x20—\x20instead\x20of\x20guessing\x0a#\x20from\x20a\x20truncated\x20error.\x20audit_last_run\x20then\x20checks\x20the\x20run\x20against\x20the\x0a#\x20testing\x20rules.\x20Also\x20turns\x20on\x20full\x20CLI\x20stack\x20traces.\x20Use\x20\x27summary\x27\x20for\x20a\x0a#\x20lighter\x20log\x20(tool\x20+\x20snapshot\x20layers\x20only,\x20no\x20artifacts).\x20NOTE:\x20tool\x0a#\x20arguments\x20are\x20logged\x20verbatim,\x20so\x20a\x20fill()\x20with\x20a\x20password\x20lands\x20in\x20the\x0a#\x20local\x20(gitignored)\x20log\x20—\x20keep\x20this\x20off\x20unless\x20you\x27re\x20debugging.\x0a#\x20UNOTEST_DEBUG=1\x0a\x0a#\x20---\x20Capture\x20(viewer\x20inspector)\x20------------------------------------------\x0a#\x20Record\x20the\x20browser\x20console\x20+\x20network\x20requests\x20into\x20each\x20run\x27s\x20dir\x20so\x20the\x0a#\x20viewer\x27s\x20Console\x20/\x20Network\x20inspector\x20tabs\x20are\x20populated.\x20Set\x20to\x200\x20to\x20disable.\x0aUNOTEST_NETWORK=1\x0aUNOTEST_CONSOLE=1\x0a#\x20Set\x20to\x201\x20to\x20also\x20capture\x20a\x20screenshot\x20after\x20EVERY\x20executed\x20step\x20(into\x0a#\x20unotest/.runs/<runId>/screenshot/;\x20click\x20a\x20step\x20row\x20in\x20the\x20viewer\x20to\x20see\x0a#\x20it).\x20On\x20failure,\x20a\x20screenshot\x20+\x20page.html\x20always\x20land\x20in\x0a#\x20unotest/.runs/<runId>/failure/\x20—\x20no\x20flag\x20needed.\x0a#\x20UNOTEST_STEP_SCREENSHOTS=1\x0a'};function unotestConfigMjs(_0x19b1bd){const _0x13ef88=_0x2a6f48,_0x24cd40=_0x19b1bd===void 0x0?_0x13ef88(0x174):'\x20\x20channel:\x20'+JSON[_0x13ef88(0x166)](_0x19b1bd)+',';return _0x13ef88(0x17b)+_0x24cd40+'\x0a\x20\x20//\x20viewer:\x20{\x0a\x20\x20//\x20\x20\x20port:\x205173,\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20default:\x20random\x20free\x20port\x0a\x20\x20//\x20\x20\x20browser:\x20true,\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20default:\x20true\x20(auto-open\x20on\x20`viewer`)\x0a\x20\x20//\x20},\x0a};\x0a';}function _0x3da6(_0x10a0f4,_0x4698e5){_0x10a0f4=_0x10a0f4-0x15f;const _0x2040fc=_0x2040();let _0x3da69=_0x2040fc[_0x10a0f4];if(_0x3da6['QnAsPI']===undefined){var _0x3b2635=function(_0x4dc7d2){const _0x2246f6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5ccd1f='',_0x2828dd='';for(let _0x19b1bd=0x0,_0x24cd40,_0xd526ce,_0x4addd1=0x0;_0xd526ce=_0x4dc7d2['charAt'](_0x4addd1++);~_0xd526ce&&(_0x24cd40=_0x19b1bd%0x4?_0x24cd40*0x40+_0xd526ce:_0xd526ce,_0x19b1bd++%0x4)?_0x5ccd1f+=String['fromCharCode'](0xff&_0x24cd40>>(-0x2*_0x19b1bd&0x6)):0x0){_0xd526ce=_0x2246f6['indexOf'](_0xd526ce);}for(let _0x185a63=0x0,_0x2f8b69=_0x5ccd1f['length'];_0x185a63<_0x2f8b69;_0x185a63++){_0x2828dd+='%'+('00'+_0x5ccd1f['charCodeAt'](_0x185a63)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2828dd);};_0x3da6['IbTCPB']=_0x3b2635,_0x3da6['MZtHVD']={},_0x3da6['QnAsPI']=!![];}const _0x394bb4=_0x2040fc[0x0],_0x13f735=_0x10a0f4+_0x394bb4,_0x45cc0d=_0x3da6['MZtHVD'][_0x13f735];return!_0x45cc0d?(_0x3da69=_0x3da6['IbTCPB'](_0x3da69),_0x3da6['MZtHVD'][_0x13f735]=_0x3da69):_0x3da69=_0x45cc0d,_0x3da69;}function _0x2040(){const _0x26235c=['Dw5VDgvZDenVBMzPz01QCW','zxHHBxbSzxm','nJCWoteXmMnTrhvVyq','Dw5VDgvZDc5JB25MAwCUBwPZ','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','mtCXotiZnJbWDfHbrLq','mtaWnwDpDwPWvG','mdeTC21VA2uUANm','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','mJiWodzNsvnIz2S','ztjL','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','y2HHBM5LBa','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','ndq5ndGWngHtuw1OCW','x2HLBhbLCNm','BMfTzq','mte3wfj0r1HN','C3rYAw5NAwz5','mujiq3jgBW','nJaYnZi4swXREfz0','ChvZAa','mZm2oduXofnNB29vvq','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','mJaZnJbWtLvtCg4','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','Dw5VDgvZDa','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHihn0zxaOiI4UlIiSicGPid0+ihSG4OcMih0PigjSB2nRlIbuAguklY8GDgL0BguGAxmGysbWBgfPBI1fBMDSAxnOigrLC2nYAxb0Aw9Uig9MihrOzsbNCM91CdSGDgHLihn0zxbZigLUC2LKzsbHCMuklY8GDgHLigLTCgXLBwvUDgf0Aw9UlIbhCM91CcbIEsbPBNrLBNqGkfnLDhvWic8Grw50zxiGlYbby3qGlYbbC3nLCNqGB3iklY8GD2HHDgv2zxiGCMvHzhmGD2vSBcKG4Ocuig9UzsbIBg9JAYbWzxiGBg9NAwnHBcbJAhvUAY4kcMz1BMn0Aw9UihrLC3rFEw91CL9Uyw1Lx2HLCMuOksb7cIaGC3rLCcGIu2vLzcbHigTUB3DUihvZzxiGDMLHiercic8GqvbjigzPEhr1CMvZigzYB20Gx2HLBhbLCNmViIWGkcKGpt4GEWOGicaGlY8GicaGD2LWzv9LmMvFDxnLCNmOktSkicaGic8VicaGihvZzxjFAwqGpsbZzwvKx3vZzxiOj2fSAwnLqgv4yw1WBguUy29TjYWGj3nLy3jLDcCPoWOGih0PoWOkicbZDgvWkcjtAwDUigLUigfZihrOzsbZzwvKzwqGDxnLCIiSicGPid0+ihSkicaGigDVDg8Oj2H0DhbZoI8VEw91CI1HChaUDgvZDc9SB2DPBICPoWOGicaGlY8GicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNywXPy2vazxHHBxbSzs5JB20NktSkicaGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGicaGlY8GicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKfZC2vYDcb0AguGzgfZAgjVyxjKihnOB3DZihrOzsbZAwDUzwqTAw4GDxnLCIiSicGPid0+ihSkicaGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGicaGlY8GicaGyxnZzxj0vgv4DcHNzxrcEvjVBguOj2HLywrPBMCNksWGj1DLBgnVBwuSiefSAwnLjYK7cIaGicaVlYaGicbJB3vUDca9igrIuxvLCNKOj1nftevdvcbJB3vUDcGQksbguK9nihvZzxjZifDirvjfigfJDgL2zsa9ihrYDwuNktSkicaGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGFsK7cN0k'];_0x2040=function(){return _0x26235c;};return _0x2040();}__name(unotestConfigMjs,_0x2a6f48(0x170));async function scaffoldWorkspace(_0xd526ce,_0x4addd1={}){const _0x51549d={_0x394f9b:0x16e,_0x5ec94e:0x163,_0x2951b8:0x173,_0x54a46f:0x160,_0x146ada:0x171,_0x5b0e68:0x171,_0x448a81:0x169},_0xbaf16=_0x2a6f48,_0x185a63=[],_0x2f8b69=[];await mkdir(join(_0xd526ce,'unotest',_0xbaf16(0x17a),_0xbaf16(0x171)),{'recursive':!![]}),await mkdir(join(_0xd526ce,_0xbaf16(_0x51549d._0x394f9b),'e2e',_0xbaf16(_0x51549d._0x5ec94e)),{'recursive':!![]});const _0x4ae2e2=[{'rel':_0xbaf16(_0x51549d._0x2951b8),'content':unotestConfigMjs(_0x4addd1[_0xbaf16(_0x51549d._0x54a46f)])},{'rel':join(_0xbaf16(0x16e),'.env'),'content':templates['envExample']},{'rel':join('unotest',_0xbaf16(0x17a),_0xbaf16(_0x51549d._0x146ada),_0xbaf16(0x177)),'content':templates[_0xbaf16(_0x51549d._0x5b0e68)][_0xbaf16(0x177)]}];for(const {rel:_0x14feb0,content:_0x14a7b5}of _0x4ae2e2){const _0x2c2b0a=join(_0xd526ce,_0x14feb0);if(existsSync(_0x2c2b0a)){_0x2f8b69['push'](_0x14feb0);continue;}await writeFile(_0x2c2b0a,_0x14a7b5),_0x185a63[_0xbaf16(_0x51549d._0x448a81)](_0x14feb0);}return{'projectRoot':_0xd526ce,'created':_0x185a63,'skipped':_0x2f8b69};}__name(scaffoldWorkspace,'scaffoldWorkspace');export{scaffoldWorkspace};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
function _0x3491(){var _0x36c289=['mJe5nZnhuNbAv1i','rgLKihLVDsbWDwjSAxnOihDPDgHVDxqGzxHHBxbSzxmVzML4DhvYzxmVpWO','mta3ne5ryKfita','BwfW','zxHLy1bHDgG','mJu3mJKXmxvYs1PnsG','C2vYDMuTzML4DhvYztOGy2fUBM90igXVy2f0zsbMAxH0DxjLihnLCNzLCIbLBNrYEs4GvhjPzwq6cG','mJyZmhzjtujjta','D3jPDgu','nJq1nNvxy1LQtq','AM9PBG','lI4VlI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','zMLUza','otGZnZG0mg9TveXyva','ofHNr3ftsG','zxHPDa','ody3ogPZquDnAq','mtKYteHTquHR','nJq3ndaYs1nZA3Dt','mtu2mgzuuhbmzq','lI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','otu1ouvQwxbmua','C2XPy2u'];_0x3491=function(){return _0x36c289;};return _0x3491();}var _0x5266ae=_0x3605;(function(_0x20ef57,_0x28d9f7){var _0x10967f={_0x51e8f9:0xd3,_0x1d9526:0xd1,_0x4b2544:0xcf,_0x1781f7:0xd6},_0x511f8f=_0x3605,_0x575bdc=_0x20ef57();while(!![]){try{var _0x5b0578=-parseInt(_0x511f8f(_0x10967f._0x51e8f9))/0x1+-parseInt(_0x511f8f(_0x10967f._0x1d9526))/0x2*(parseInt(_0x511f8f(0xd2))/0x3)+-parseInt(_0x511f8f(0xca))/0x4*(-parseInt(_0x511f8f(0xd4))/0x5)+-parseInt(_0x511f8f(0xda))/0x6*(-parseInt(_0x511f8f(0xd8))/0x7)+-parseInt(_0x511f8f(_0x10967f._0x4b2544))/0x8*(parseInt(_0x511f8f(0xdd))/0x9)+parseInt(_0x511f8f(0xc8))/0xa*(-parseInt(_0x511f8f(_0x10967f._0x1781f7))/0xb)+parseInt(_0x511f8f(0xce))/0xc;if(_0x5b0578===_0x28d9f7)break;else _0x575bdc['push'](_0x575bdc['shift']());}catch(_0x6d2b6d){_0x575bdc['push'](_0x575bdc['shift']());}}}(_0x3491,0x6cd31));import{fileURLToPath}from'url';import{dirname,resolve}from'path';import{spawn}from'child_process';import{existsSync}from'fs';var here=dirname(fileURLToPath(import.meta.url)),candidates=[resolve(here,_0x5266ae(0xd5)),resolve(here,_0x5266ae(0xcc))],serverEntry=candidates[_0x5266ae(0xcd)](_0x5a5d8b=>existsSync(_0x5a5d8b));!serverEntry&&(process['stderr'][_0x5266ae(0xc9)](_0x5266ae(0xc7)+candidates[_0x5266ae(0xdb)](_0x225169=>'\x20\x20'+_0x225169+'\x0a')[_0x5266ae(0xcb)]('')+_0x5266ae(0xd9)),process[_0x5266ae(0xd0)](0x1));var child=spawn(process[_0x5266ae(0xdc)],[serverEntry,...process['argv'][_0x5266ae(0xd7)](0x2)],{'stdio':'inherit'});function _0x3605(_0x3cd0ad,_0x23145c){_0x3cd0ad=_0x3cd0ad-0xc7;var _0x3491ed=_0x3491();var _0x3605ed=_0x3491ed[_0x3cd0ad];if(_0x3605['VRozsx']===undefined){var _0xe801f3=function(_0x14fb82){var _0x237407='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5a5d8b='',_0x225169='';for(var _0x592799=0x0,_0x24a471,_0xd105e8,_0x20d631=0x0;_0xd105e8=_0x14fb82['charAt'](_0x20d631++);~_0xd105e8&&(_0x24a471=_0x592799%0x4?_0x24a471*0x40+_0xd105e8:_0xd105e8,_0x592799++%0x4)?_0x5a5d8b+=String['fromCharCode'](0xff&_0x24a471>>(-0x2*_0x592799&0x6)):0x0){_0xd105e8=_0x237407['indexOf'](_0xd105e8);}for(var _0x4a9ed5=0x0,_0x4dbd38=_0x5a5d8b['length'];_0x4a9ed5<_0x4dbd38;_0x4a9ed5++){_0x225169+='%'+('00'+_0x5a5d8b['charCodeAt'](_0x4a9ed5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x225169);};_0x3605['akTvFp']=_0xe801f3,_0x3605['NXdumN']={},_0x3605['VRozsx']=!![];}var _0x39257b=_0x3491ed[0x0],_0x86cdd3=_0x3cd0ad+_0x39257b,_0x22663e=_0x3605['NXdumN'][_0x86cdd3];return!_0x22663e?(_0x3605ed=_0x3605['akTvFp'](_0x3605ed),_0x3605['NXdumN'][_0x86cdd3]=_0x3605ed):_0x3605ed=_0x22663e,_0x3605ed;}child['on']('exit',_0x592799=>process['exit'](_0x592799??0x1));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x2241bf=_0x46c1;(function(_0x2edf81,_0x25f6a0){const _0x44892c={_0x2df36a:0x10e,_0x3ceff0:0xf4,_0x1d8961:0x126,_0x56dd13:0xf6,_0x35c0ec:0x132,_0xb257c9:0x151},_0x267eb5=_0x46c1,_0xc88ff6=_0x2edf81();while(!![]){try{const _0x37d423=-parseInt(_0x267eb5(0x12f))/0x1*(-parseInt(_0x267eb5(_0x44892c._0x2df36a))/0x2)+-parseInt(_0x267eb5(0x12a))/0x3*(-parseInt(_0x267eb5(_0x44892c._0x3ceff0))/0x4)+-parseInt(_0x267eb5(0xf1))/0x5+-parseInt(_0x267eb5(_0x44892c._0x1d8961))/0x6*(-parseInt(_0x267eb5(0x137))/0x7)+parseInt(_0x267eb5(_0x44892c._0x56dd13))/0x8*(parseInt(_0x267eb5(_0x44892c._0x35c0ec))/0x9)+-parseInt(_0x267eb5(0x11f))/0xa*(-parseInt(_0x267eb5(0x118))/0xb)+-parseInt(_0x267eb5(_0x44892c._0xb257c9))/0xc*(parseInt(_0x267eb5(0x100))/0xd);if(_0x37d423===_0x25f6a0)break;else _0xc88ff6['push'](_0xc88ff6['shift']());}catch(_0x4ba2c4){_0xc88ff6['push'](_0xc88ff6['shift']());}}}(_0x54ef,0xbfc40));var __defProp=Object[_0x2241bf(0x148)],__name=(_0x39334c,_0x4eff35)=>__defProp(_0x39334c,_0x2241bf(0x12b),{'value':_0x4eff35,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';function _0x54ef(){const _0x42b2ea=['xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','AxngAw5PDgu','mty5nduWmhDfugrzvW','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','mtaZodqWndb6sMHRquq','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','C3bSAxq','yNvPBgrfBNy','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','AgvHzgvK','yxv0Ag9YAw5N','BM9Kzq','ihbHy2THz2uUANnVBIbKzwnSyxjLCYbUBYaNyMLUjYbMAwvSzcdIGjqGyNjVA2vUigLUC3rHBgW/','mtCYouvKEgn3yq','C2nLBMfYAw8','DhjPBq','yNvPBgrbCMDZ','yxbWu2vYDMvYqxjNCW','uhjVz3jHBuzPBgvZkhG4nIK','r29Vz2XLienOCM9TzsbczxrH','vu5pvevtvf9iruferuq','l3vZCI9IAw4Vy2HYB21PDw0','igrVzxmGBM90igv4Axn0','y2HYB21PDw0','twLJCM9ZB2z0ievKz2u','ztjL','C3vWCg9YDgvKs2LUzhm','nZG2mZGYq1j2txPV','D2HPy2G','zg9JDg9Y','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','yNjLywTWB2LUDhm','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','ls13B3jRzxjZpq','DMfSDwvZ','Cgf0Aa','C3vMzML4','mtfTuefNug0','y2HLy2ToB2rLvMvYC2LVBG','AM9PBG','igzVDw5K','u3LZDgvTigjYB3DZzxi','CMvZB2X2zq','ChjVyMvdAhjVBwvczxrH','mtK2mZeZmhj3twvsDa','y29SBgvJDgLVBG','D29YA2vYCW','D2HPy2HpzG','ls1ICMvHAW','qhvUB3rLC3qVD2vI','CgfYC2u','nKvHAK5kAG','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','zxjYB3i','nMXstfL4qW','BMfTzq','BwLJCM9ZB2z0lwvKz2u','C3rHCNrZv2L0Aa','tM9Kzs5QCYb2zxjZAw9U','mwDcs1fNEG','y3DK','yxbWlxnLCNzLCG','ow1JChv3AW','D2fYBMLUzW','z29Vz2XLlwnOCM9Tzq','ls1Kzwj1zW','y2HHBM5LBa','odyZodKZmvvVALDjDG','y2HYB21PDw0TyNjVD3nLCG','ChjVyMvdAhjVBwu','y2HYB21LlwjLDge','zgfYD2LU','ChvZAa','zMLYC3rfEgLZDgLUz1bHDgG','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','C3rYAw5N','Dw5KzwzPBMvK','uhjVz3jHBuzPBgvZ','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','ChjVyMvtExn0zw1cCM93C2vY','B2jQzwn0','BgfIzwW','zgvMAw5LuhjVCgvYDhK','y2HYB21L','te9dquXbufbeqvrb','CNvUrw52AxjVBM1LBNrdAgvJA3m','y2HLy2TxCML0ywjSzun3za','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','zw52','vgfYz2v0igrPCMvJDg9YEq','BgvUz3rO','mtG4mda0qLH4tgD0','CgXHDgzVCM0','yMLU','DgfYz2v0ia','A2LUza','CMvZB2X2zujPBG','y2HLy2TtExn0zw1cCM93C2vY','ls1IywLS','D2LUmZi','ntq5odu0nxzlz2TQvG'];_0x54ef=function(){return _0x42b2ea;};return _0x54ef();}import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x544ab2}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x41fe91={_0x24f2d8:0x136},_0x34bdc5=_0x2241bf;for(const _0x582e6e of[probeChrome,probeEdge,probeChromeBeta]){const _0x2a1acc=_0x582e6e();if(_0x2a1acc[_0x34bdc5(_0x41fe91._0x24f2d8)]!==null)return _0x2a1acc;}return{'channel':null};}__name(probeSystemBrowser,_0x2241bf(0x145));function probeChrome(){const _0x2337ec={_0x360d48:0x149},_0x21e365=_0x2241bf,_0x453786=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x453786)return{'channel':_0x21e365(_0x2337ec._0x360d48),'path':_0x453786,'label':'Google\x20Chrome'};return{'channel':null};}__name(probeChrome,_0x2241bf(0x139));function probeEdge(){const _0x398842={_0x66414a:0x10b},_0x19c25a=_0x2241bf,_0x3dbe15=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x3dbe15)return{'channel':'msedge','path':_0x3dbe15,'label':_0x19c25a(_0x398842._0x66414a)};return{'channel':null};}__name(probeEdge,'probeEdge');function probeChromeBeta(){const _0x407daa={_0x31c5a0:0x13a},_0x13ebad=_0x2241bf,_0x6a709a=firstExistingPath(CHROME_BETA_PATHS);if(_0x6a709a)return{'channel':_0x13ebad(_0x407daa._0x31c5a0),'path':_0x6a709a,'label':_0x13ebad(0x106)};return{'channel':null};}__name(probeChromeBeta,_0x2241bf(0x11e));var CHROME_PATHS=((()=>{const _0x4ab7a4={_0x38bbf2:0x13b,_0x2d274a:0x144,_0x565e68:0x13e,_0x5a0685:0x14e,_0x3ab5dd:0xf5,_0x56d32e:0x108},_0x123e20=_0x2241bf;switch(process[_0x123e20(0x152)]){case _0x123e20(_0x4ab7a4._0x38bbf2):return[_0x123e20(_0x4ab7a4._0x2d274a)];case _0x123e20(0xf0):return[process['env'][_0x123e20(0x141)]+_0x123e20(_0x4ab7a4._0x565e68),process[_0x123e20(_0x4ab7a4._0x5a0685)][_0x123e20(0x105)]+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe',process[_0x123e20(0x14e)][_0x123e20(0x14a)]+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe'];default:return[_0x123e20(_0x4ab7a4._0x3ab5dd),'/usr/bin/google-chrome-stable','/snap/bin/google-chrome',_0x123e20(_0x4ab7a4._0x56d32e),_0x123e20(0x143)];}})()),CHROME_BIN_NAMES=[_0x2241bf(0x134),_0x2241bf(0xf7),_0x2241bf(0x10a),_0x2241bf(0x138)],EDGE_PATHS=((()=>{const _0x24312f={_0x47998e:0x152,_0x1ec0db:0xf0,_0xfc4a8:0x14e,_0x4401c9:0xf2,_0x123f71:0x142},_0x25b124=_0x2241bf;switch(process[_0x25b124(_0x24312f._0x47998e)]){case'darwin':return['/Applications/Microsoft\x20Edge.app/Contents/MacOS/Microsoft\x20Edge'];case _0x25b124(_0x24312f._0x1ec0db):return[process[_0x25b124(_0x24312f._0xfc4a8)][_0x25b124(0x141)]+_0x25b124(0xf2),process[_0x25b124(0x14e)]['ProgramFiles(x86)']+_0x25b124(_0x24312f._0x4401c9)];default:return[_0x25b124(_0x24312f._0x123f71),'/usr/bin/microsoft-edge-stable'];}})()),EDGE_BIN_NAMES=[_0x2241bf(0x12c),_0x2241bf(0x14d)],CHROME_BETA_PATHS=((()=>{const _0x2bc30b={_0x1131b0:0xf8,_0x24805b:0x141,_0x53d5b1:0x128,_0x5d10c7:0xfb},_0x459bb5=_0x2241bf;switch(process[_0x459bb5(0x152)]){case'darwin':return[_0x459bb5(_0x2bc30b._0x1131b0)];case _0x459bb5(0xf0):return[process[_0x459bb5(0x14e)][_0x459bb5(_0x2bc30b._0x24805b)]+_0x459bb5(_0x2bc30b._0x53d5b1)];default:return[_0x459bb5(_0x2bc30b._0x5d10c7)];}})());function firstExistingPath(_0x1bff3b){const _0x2ff7a5={_0x501d5e:0x12d,_0xad3344:0x140},_0x278b05=_0x2241bf;for(const _0x3cd7ce of _0x1bff3b){if(!_0x3cd7ce||_0x3cd7ce[_0x278b05(_0x2ff7a5._0x501d5e)](_0x278b05(_0x2ff7a5._0xad3344)))continue;if(existsSync(_0x3cd7ce))return _0x3cd7ce;}return null;}__name(firstExistingPath,_0x2241bf(0x13d));function whichOf(_0x404c4b){const _0x50f790={_0x5baec4:0x10f,_0x1200dc:0x102},_0x344ab4=_0x2241bf;if(process[_0x344ab4(0x152)]==='win32')return void 0x0;for(const _0x1462d8 of _0x404c4b){try{const _0x2cff4c=execFileSync(_0x344ab4(_0x50f790._0x5baec4),[_0x1462d8],{'encoding':'utf8'})[_0x344ab4(_0x50f790._0x1200dc)]();if(_0x2cff4c[_0x344ab4(0x150)]>0x0&&existsSync(_0x2cff4c))return _0x2cff4c;}catch{}}return void 0x0;}__name(whichOf,_0x2241bf(0x122));function runEnvironmentChecks(_0x23ae79={}){const _0xfb6210={_0x50777e:0x130},_0x47aaa6=_0x2241bf,_0x25fa13=_0x23ae79['cwd']??process[_0x47aaa6(_0xfb6210._0x50777e)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x25fa13)];}__name(runEnvironmentChecks,_0x2241bf(0x14b));function checkNodeVersion(){const _0x54288b={_0x2df434:0xfe,_0x36af02:0xf9,_0x49dcc4:0xf3,_0x25bb53:0x129,_0x11c118:0x12e},_0x447a57=_0x2241bf,_0x57d40f=process['versions'][_0x447a57(_0x54288b._0x2df434)],_0x33a6c3=Number(_0x57d40f[_0x447a57(_0x54288b._0x36af02)]('.')[0x0]);if(!Number[_0x447a57(_0x54288b._0x49dcc4)](_0x33a6c3)||_0x33a6c3<0x14)return{'name':'Node.js\x20version','severity':_0x447a57(_0x54288b._0x25bb53),'message':_0x447a57(0x111)+_0x57d40f+')','detail':_0x447a57(0x127)};return{'name':_0x447a57(_0x54288b._0x11c118),'severity':'ok','message':_0x57d40f};}__name(checkNodeVersion,_0x2241bf(0x119));function checkSystemBrowser(){const _0x2e1ce8={_0x3067c3:0x136,_0x5c5b6f:0x147,_0x5b92ee:0x11b},_0xa356cc=_0x2241bf,_0x49f4fc=probeSystemBrowser();if(_0x49f4fc[_0xa356cc(_0x2e1ce8._0x3067c3)]!==null)return{'name':_0xa356cc(0x11c),'severity':'ok','message':_0x49f4fc[_0xa356cc(_0x2e1ce8._0x5c5b6f)]+_0xa356cc(_0x2e1ce8._0x5b92ee),'detail':_0x49f4fc[_0xa356cc(0x116)]};return{'name':_0xa356cc(0x11c),'severity':_0xa356cc(0x133),'message':_0xa356cc(0x113),'detail':'init\x20will\x20offer\x20to\x20download\x20bundled\x20Chromium\x20(~150\x20MB).\x20Alternatively,\x20install\x20Chrome\x20from\x20https://www.google.com/chrome\x20and\x20re-run.'};}__name(checkSystemBrowser,_0x2241bf(0xee));function checkWritableCwd(_0x4e8b6f){const _0x32b888={_0x285221:0x14f},_0xea6ccd=_0x2241bf;if(!_0x544ab2(_0x4e8b6f))return{'name':_0xea6ccd(0x14f),'severity':_0xea6ccd(0x129),'message':_0xea6ccd(0xeb)+_0x4e8b6f+_0xea6ccd(0x109),'detail':'Create\x20the\x20directory\x20or\x20run\x20init\x20in\x20an\x20existing\x20project\x20root.'};return{'name':_0xea6ccd(_0x32b888._0x285221),'severity':'ok','message':_0x4e8b6f};}__name(checkWritableCwd,_0x2241bf(0x14c));var PACKAGE_NAME=_0x2241bf(0x124),WebRunnerAdapter=class{static{__name(this,'WebRunnerAdapter');}[_0x2241bf(0x12b)]=PACKAGE_NAME;[_0x2241bf(0x117)]='';['debug']={'picker':!![],'attach':!![],'resumeFromFailure':![]};[_0x2241bf(0x10d)]=[_0x2241bf(0x101),_0x2241bf(0x120),_0x2241bf(0xfd)];[_0x2241bf(0xed)](){const _0xc81ab5={_0x241464:0x125},_0x17cc37=_0x2241bf,_0x17c5a6=createRequire(import.meta.url),_0x4cbfbb=_0x17c5a6[_0x17cc37(0x11d)](PACKAGE_NAME+'/package.json'),_0x4d5f1d=JSON[_0x17cc37(_0xc81ab5._0x241464)](readFileSync(_0x4cbfbb,'utf8')),_0x3fd713=pickBin(_0x4d5f1d);if(!_0x3fd713)throw new Error(PACKAGE_NAME+_0x17cc37(0xff));return join(dirname(_0x4cbfbb),_0x3fd713);}[_0x2241bf(0x103)](_0x238427){const _0x327335={_0x51f442:0xec,_0x2b3661:0x101,_0x59fa2e:0x10c,_0x224f82:0x135,_0x583e38:0x112,_0x2413d8:0x120,_0x4f599d:0x121,_0x52a4e1:0x13c,_0xfa123e:0x12b},_0x2c42b3=_0x2241bf;if(_0x238427[_0x2c42b3(_0x327335._0x51f442)]===_0x2c42b3(_0x327335._0x2b3661)){const _0xf367ae=[_0x2c42b3(_0x327335._0x59fa2e),_0x238427['scenario']];if(_0x238427['debug'])_0xf367ae['push'](_0x2c42b3(_0x327335._0x224f82));return _0x238427[_0x2c42b3(0x112)]&&_0x238427[_0x2c42b3(_0x327335._0x583e38)][_0x2c42b3(0x150)]>0x0&&_0xf367ae[_0x2c42b3(0x13c)](_0x2c42b3(0x123),_0x238427['breakpoints'][_0x2c42b3(0x11a)](',')),_0xf367ae;}if(_0x238427[_0x2c42b3(_0x327335._0x51f442)]===_0x2c42b3(0x120)){const _0x369fd4=[_0x2c42b3(_0x327335._0x2413d8),_0x238427[_0x2c42b3(0x120)]];_0x238427[_0x2c42b3(_0x327335._0x4f599d)]!==void 0x0&&_0x238427[_0x2c42b3(_0x327335._0x4f599d)]>0x1&&_0x369fd4[_0x2c42b3(_0x327335._0x52a4e1)](_0x2c42b3(0x114)+_0x238427[_0x2c42b3(_0x327335._0x4f599d)]);if(_0x238427['bail'])_0x369fd4[_0x2c42b3(_0x327335._0x52a4e1)](_0x2c42b3(0xef));return _0x369fd4;}if(_0x238427['kind']===_0x2c42b3(0xfd))return['author',_0x238427[_0x2c42b3(0x101)]];const _0x238797=_0x238427;throw new UnsupportedRunKindError(_0x238797[_0x2c42b3(_0x327335._0x51f442)],this[_0x2c42b3(_0x327335._0xfa123e)]);}[_0x2241bf(0xfa)](_0x95124d){const _0x151cd0=_0x2241bf,_0xfaed03={};if(_0x95124d[_0x151cd0(0xfc)])_0xfaed03[_0x151cd0(0x107)]='1';return _0xfaed03;}[_0x2241bf(0x104)](){const _0x4fcd22={_0x5f2a45:0x131},_0x207191=_0x2241bf;return[_0x207191(_0x4fcd22._0x5f2a45)];}async[_0x2241bf(0x110)](_0x247216){return runEnvironmentChecks({'cwd':_0x247216['projectRoot']});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function _0x46c1(_0x590181,_0x2c564c){_0x590181=_0x590181-0xea;const _0x54ef51=_0x54ef();let _0x46c1ba=_0x54ef51[_0x590181];if(_0x46c1['TmGbJO']===undefined){var _0x5c2e9e=function(_0x405e96){const _0x123caf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x544ab2='',_0x39334c='';for(let _0x4eff35=0x0,_0x582e6e,_0x2a1acc,_0x453786=0x0;_0x2a1acc=_0x405e96['charAt'](_0x453786++);~_0x2a1acc&&(_0x582e6e=_0x4eff35%0x4?_0x582e6e*0x40+_0x2a1acc:_0x2a1acc,_0x4eff35++%0x4)?_0x544ab2+=String['fromCharCode'](0xff&_0x582e6e>>(-0x2*_0x4eff35&0x6)):0x0){_0x2a1acc=_0x123caf['indexOf'](_0x2a1acc);}for(let _0x3dbe15=0x0,_0x6a709a=_0x544ab2['length'];_0x3dbe15<_0x6a709a;_0x3dbe15++){_0x39334c+='%'+('00'+_0x544ab2['charCodeAt'](_0x3dbe15)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x39334c);};_0x46c1['aaWuch']=_0x5c2e9e,_0x46c1['NkrNdo']={},_0x46c1['TmGbJO']=!![];}const _0x294589=_0x54ef51[0x0],_0x5c4644=_0x590181+_0x294589,_0x219abe=_0x46c1['NkrNdo'][_0x5c4644];return!_0x219abe?(_0x46c1ba=_0x46c1['aaWuch'](_0x46c1ba),_0x46c1['NkrNdo'][_0x5c4644]=_0x46c1ba):_0x46c1ba=_0x219abe,_0x46c1ba;}function pickBin(_0x564479){const _0x41ece6={_0x54fb81:0xea,_0x383bd8:0x146,_0x26c5c8:0x115,_0x156e2b:0xea},_0x565b27=_0x2241bf;if(typeof _0x564479['bin']===_0x565b27(0x13f))return _0x564479[_0x565b27(0xea)];if(_0x564479[_0x565b27(_0x41ece6._0x54fb81)]&&typeof _0x564479[_0x565b27(_0x41ece6._0x54fb81)]===_0x565b27(_0x41ece6._0x383bd8))return _0x564479[_0x565b27(0xea)]['unotest-web']??Object[_0x565b27(_0x41ece6._0x26c5c8)](_0x564479[_0x565b27(_0x41ece6._0x156e2b)])[0x0]??null;return null;}__name(pickBin,'pickBin');export{web_runner_adapter_default as default,webRunnerAdapter};
|
|
1
|
+
const _0x1a6276=_0x4b8a;(function(_0x2e47be,_0x4bca95){const _0x199c29={_0x25f1f7:0x151,_0x4bbc17:0x17e,_0x563e59:0x147,_0x2469d8:0x133,_0x3f8f4e:0x16c},_0x309e8c=_0x4b8a,_0x269b38=_0x2e47be();while(!![]){try{const _0x2e8d6f=-parseInt(_0x309e8c(_0x199c29._0x25f1f7))/0x1*(-parseInt(_0x309e8c(_0x199c29._0x4bbc17))/0x2)+parseInt(_0x309e8c(0x12b))/0x3+-parseInt(_0x309e8c(0x15e))/0x4*(parseInt(_0x309e8c(_0x199c29._0x563e59))/0x5)+-parseInt(_0x309e8c(0x13b))/0x6*(-parseInt(_0x309e8c(0x17a))/0x7)+-parseInt(_0x309e8c(0x127))/0x8+parseInt(_0x309e8c(0x172))/0x9*(-parseInt(_0x309e8c(_0x199c29._0x2469d8))/0xa)+-parseInt(_0x309e8c(_0x199c29._0x3f8f4e))/0xb*(-parseInt(_0x309e8c(0x152))/0xc);if(_0x2e8d6f===_0x4bca95)break;else _0x269b38['push'](_0x269b38['shift']());}catch(_0x598902){_0x269b38['push'](_0x269b38['shift']());}}}(_0x1b8e,0x80a63));var __defProp=Object[_0x1a6276(0x14c)],__name=(_0x3e84bd,_0x2c7786)=>__defProp(_0x3e84bd,_0x1a6276(0x138),{'value':_0x2c7786,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x57e5a8}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){for(const _0x54236f of[probeChrome,probeEdge,probeChromeBeta]){const _0x106aeb=_0x54236f();if(_0x106aeb['channel']!==null)return _0x106aeb;}return{'channel':null};}__name(probeSystemBrowser,_0x1a6276(0x135));function probeChrome(){const _0x45bf66=_0x1a6276,_0x422e58=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x422e58)return{'channel':_0x45bf66(0x179),'path':_0x422e58,'label':_0x45bf66(0x12a)};return{'channel':null};}function _0x1b8e(){const _0x3ade7a=['mtq2ndi0m1D4Aw1XAa','DhjPBq','C2nLBMfYAw8','yxv0Ag9Y','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','yNjLywTWB2LUDhm','mtG1otqYn2XSrvfxuW','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','yxv0Ag9YAw5N','te9dquXbufbeqvrb','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','B2jQzwn0','y2HYB21L','mtr1shrhque','CMvZB2X2zujPBG','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','zgvIDwC','nezXvMLPsq','DxrMoa','ChjVyMvfzgDL','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','u3LZDgvTigjYB3DZzxi','yNvPBgrbCMDZ','ChjVyMvdAhjVBwu','y2HHBM5LBa','D29YA2vYCW','CNvUrw52AxjVBM1LBNrdAgvJA3m','zg9JDg9Y','qhvUB3rLC3qVD2vI','ztjL','CgLJA0jPBG','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','D2HPy2G','ntq3oti2nejRB1zJta','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','r29Vz2XLienOCM9Tzq','mta1ode4n3bNEefera','ls13B3jRzxjZpq','AM9PBG','BwLJCM9ZB2z0lwvKz2u','y2HYB21LlwjLDge','r29Vz2XLienOCM9TzsbczxrH','v2vIuNvUBMvYqwrHChrLCG','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','ntbpv2LMvvy','DMvYC2LVBNm','ChjVyMvtExn0zw1cCM93C2vY','Dw5VDgvZDc13zwi','DMfSDwvZ','BMfTzq','ls1Kzwj1zW','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','mti5mJGYqvv1qwvT','ChjVAMvJDfjVB3q','yMfPBa','igrVzxmGBM90igv4Axn0','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','uhjVz3jHBuzPBgvZ','A2LUza','z29Vz2XLlwnOCM9Tzq','D2LUmZi','AxngAw5PDgu','C3rHCNrZv2L0Aa','CgXHDgzVCM0','mtbfB29YvKe','y2HLy2ToB2rLvMvYC2LVBG','C3vWCg9YDgvKs2LUzhm','zgfYD2LU','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','zgvMAw5LuhjVCgvYDhK','yxbWlxnLCNzLCG','ChvZAa','y2HYB21PDw0TyNjVD3nLCG','BgfIzwW','mti2ntu3DK5uDNbx','mJi4sgfmwNbW','vgfYz2v0igrPCMvJDg9YEq','l3vZCI9IAw4Vy2HYB21PDw0','y29SBgvJDgLVBG','zxjYB3i','yxbWu2vYDMvYqxjNCW','y3DK','y2HYB21PDw0','l3bHy2THz2uUANnVBG','yMLU','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','CMvZB2X2zq','mtG2nJqYofPLugHbsa','BxnLzgDL','yNvPBgrfBNy','Cgf0Aa','y2HLy2TtExn0zw1cCM93C2vY','DgfYz2v0ia','tM9Kzs5QCYb2zxjZAw9U','D2HPy2HpzG','zw52','ls1IywLS','uhjVz3jHBuzPBgvZkhG4nIK','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','BgvUz3rO','Dw5KzwzPBMvK'];_0x1b8e=function(){return _0x3ade7a;};return _0x1b8e();}__name(probeChrome,_0x1a6276(0x186));function probeEdge(){const _0x2c0b06={_0x3078eb:0x15f},_0x23c1c4=_0x1a6276,_0xd866ff=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0xd866ff)return{'channel':_0x23c1c4(_0x2c0b06._0x3078eb),'path':_0xd866ff,'label':'Microsoft\x20Edge'};return{'channel':null};}__name(probeEdge,_0x1a6276(0x180));function probeChromeBeta(){const _0x15fbdb={_0x13e0aa:0x12f},_0x1c334f=_0x1a6276,_0x157af9=firstExistingPath(CHROME_BETA_PATHS);if(_0x157af9)return{'channel':_0x1c334f(_0x15fbdb._0x13e0aa),'path':_0x157af9,'label':_0x1c334f(0x130)};return{'channel':null};}__name(probeChromeBeta,'probeChromeBeta');var CHROME_PATHS=((()=>{const _0x260d04={_0x46597e:0x14a,_0x10953a:0x166,_0x1c3060:0x183,_0x4f76ae:0x183,_0x592ace:0x176,_0x103a8f:0x177},_0x40531a=_0x1a6276;switch(process[_0x40531a(0x146)]){case _0x40531a(_0x260d04._0x46597e):return[_0x40531a(0x132)];case'win32':return[process[_0x40531a(_0x260d04._0x10953a)][_0x40531a(0x140)]+_0x40531a(_0x260d04._0x1c3060),process['env'][_0x40531a(0x168)]+_0x40531a(_0x260d04._0x4f76ae),process['env'][_0x40531a(_0x260d04._0x592ace)]+_0x40531a(0x183)];default:return['/usr/bin/google-chrome','/usr/bin/google-chrome-stable',_0x40531a(0x129),_0x40531a(0x154),_0x40531a(_0x260d04._0x103a8f)];}})()),CHROME_BIN_NAMES=[_0x1a6276(0x142),_0x1a6276(0x14b),_0x1a6276(0x159),_0x1a6276(0x14f)],EDGE_PATHS=((()=>{const _0xa29fe4={_0xe1ad78:0x14a,_0x2c0a29:0x166,_0x41a57f:0x140,_0x19ff8a:0x168,_0x2fff18:0x169,_0x126a30:0x13a},_0x57e879=_0x1a6276;switch(process['platform']){case _0x57e879(_0xa29fe4._0xe1ad78):return['/Applications/Microsoft\x20Edge.app/Contents/MacOS/Microsoft\x20Edge'];case _0x57e879(0x143):return[process[_0x57e879(_0xa29fe4._0x2c0a29)][_0x57e879(_0xa29fe4._0x41a57f)]+_0x57e879(0x182),process[_0x57e879(0x166)][_0x57e879(_0xa29fe4._0x19ff8a)]+_0x57e879(0x182)];default:return[_0x57e879(_0xa29fe4._0x2fff18),_0x57e879(_0xa29fe4._0x126a30)];}})()),EDGE_BIN_NAMES=[_0x1a6276(0x12e),_0x1a6276(0x174)],CHROME_BETA_PATHS=((()=>{const _0x1f5b86={_0x3ce791:0x140,_0x1bdeb8:0x15c},_0x38e08f=_0x1a6276;switch(process[_0x38e08f(0x146)]){case _0x38e08f(0x14a):return[_0x38e08f(0x125)];case'win32':return[process[_0x38e08f(0x166)][_0x38e08f(_0x1f5b86._0x3ce791)]+_0x38e08f(_0x1f5b86._0x1bdeb8)];default:return[_0x38e08f(0x173)];}})());function firstExistingPath(_0x3f115e){const _0x523aee=_0x1a6276;for(const _0x510186 of _0x3f115e){if(!_0x510186||_0x510186[_0x523aee(0x145)](_0x523aee(0x16b)))continue;if(existsSync(_0x510186))return _0x510186;}return null;}__name(firstExistingPath,'firstExistingPath');function whichOf(_0x42f24b){const _0x1ee91e={_0x1061d1:0x146,_0x1095e9:0x126,_0x5e13c6:0x17f,_0x4bdf2a:0x16d,_0x2e884d:0x16a},_0x3ea35d=_0x1a6276;if(process[_0x3ea35d(_0x1ee91e._0x1061d1)]==='win32')return void 0x0;for(const _0x177c84 of _0x42f24b){try{const _0x435e05=execFileSync(_0x3ea35d(_0x1ee91e._0x1095e9),[_0x177c84],{'encoding':_0x3ea35d(_0x1ee91e._0x5e13c6)})[_0x3ea35d(_0x1ee91e._0x4bdf2a)]();if(_0x435e05[_0x3ea35d(_0x1ee91e._0x2e884d)]>0x0&&existsSync(_0x435e05))return _0x435e05;}catch{}}return void 0x0;}__name(whichOf,_0x1a6276(0x165));function runEnvironmentChecks(_0x46f4b9={}){const _0x51e62e=_0x1a6276,_0x71049a=_0x46f4b9[_0x51e62e(0x158)]??process['cwd']();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x71049a)];}__name(runEnvironmentChecks,_0x1a6276(0x120));function checkNodeVersion(){const _0x45252f=_0x1a6276,_0x2389da=process[_0x45252f(0x134)]['node'],_0x33aad6=Number(_0x2389da['split']('.')[0x0]);if(!Number[_0x45252f(0x144)](_0x33aad6)||_0x33aad6<0x14)return{'name':'Node.js\x20version','severity':'error','message':_0x45252f(0x181)+_0x2389da+')','detail':_0x45252f(0x170)};return{'name':_0x45252f(0x164),'severity':'ok','message':_0x2389da};}__name(checkNodeVersion,_0x1a6276(0x148));function checkSystemBrowser(){const _0x2aa49c={_0x2ab430:0x11e,_0x366a2a:0x13f},_0xb8195c=_0x1a6276,_0x16c457=probeSystemBrowser();if(_0x16c457[_0xb8195c(_0x2aa49c._0x2ab430)]!==null)return{'name':_0xb8195c(0x184),'severity':'ok','message':_0x16c457[_0xb8195c(0x150)]+'\x20found','detail':_0x16c457[_0xb8195c(0x161)]};return{'name':_0xb8195c(0x184),'severity':'warning','message':_0xb8195c(_0x2aa49c._0x366a2a),'detail':_0xb8195c(0x128)};}__name(checkSystemBrowser,_0x1a6276(0x162));function checkWritableCwd(_0x35b616){const _0x4f0478={_0x553b2d:0x156,_0x4e72bf:0x13e,_0x212ca9:0x17c,_0x54402d:0x153},_0x3081b6=_0x1a6276;if(!_0x57e5a8(_0x35b616))return{'name':_0x3081b6(0x153),'severity':_0x3081b6(_0x4f0478._0x553b2d),'message':_0x3081b6(0x163)+_0x35b616+_0x3081b6(_0x4f0478._0x4e72bf),'detail':_0x3081b6(_0x4f0478._0x212ca9)};return{'name':_0x3081b6(_0x4f0478._0x54402d),'severity':'ok','message':_0x35b616};}__name(checkWritableCwd,'checkWritableCwd');var PACKAGE_NAME=_0x1a6276(0x122),WebRunnerAdapter=class{static{__name(this,_0x1a6276(0x131));}['name']=PACKAGE_NAME;['suffix']='';['debug']={'picker':!![],'attach':!![],'resumeFromFailure':![]};[_0x1a6276(0x149)]=[_0x1a6276(0x16e),_0x1a6276(0x155),_0x1a6276(0x175)];[_0x1a6276(0x17b)](){const _0x2bff41=_0x1a6276,_0x1a56db=createRequire(import.meta.url),_0x25c31f=_0x1a56db[_0x2bff41(0x15d)](PACKAGE_NAME+_0x2bff41(0x15a)),_0x3c8748=JSON['parse'](readFileSync(_0x25c31f,'utf8')),_0x15d877=pickBin(_0x3c8748);if(!_0x15d877)throw new Error(PACKAGE_NAME+'\x20package.json\x20declares\x20no\x20\x27bin\x27\x20field\x20—\x20broken\x20install?');return join(dirname(_0x25c31f),_0x15d877);}[_0x1a6276(0x185)](_0x37ad17){const _0x105bd9={_0x58023e:0x16e,_0x4c68ee:0x17d,_0x3ab12e:0x171,_0x527391:0x16a,_0x1cc684:0x12c,_0x559298:0x11f,_0x481fe1:0x13d,_0x2dc2d3:0x14e,_0xf95b56:0x167,_0x1138a9:0x16f},_0x33d483=_0x1a6276;if(_0x37ad17[_0x33d483(0x141)]===_0x33d483(_0x105bd9._0x58023e)){const _0x349f8c=[_0x33d483(0x123),_0x37ad17[_0x33d483(0x16e)]];if(_0x37ad17[_0x33d483(_0x105bd9._0x4c68ee)])_0x349f8c['push'](_0x33d483(0x139));return _0x37ad17['breakpoints']&&_0x37ad17[_0x33d483(_0x105bd9._0x3ab12e)][_0x33d483(_0x105bd9._0x527391)]>0x0&&_0x349f8c[_0x33d483(0x14e)]('--break',_0x37ad17[_0x33d483(0x171)][_0x33d483(0x12d)](',')),_0x349f8c;}if(_0x37ad17[_0x33d483(0x141)]===_0x33d483(0x155)){const _0x19f475=[_0x33d483(0x155),_0x37ad17[_0x33d483(0x155)]];_0x37ad17[_0x33d483(0x11f)]!==void 0x0&&_0x37ad17['workers']>0x1&&_0x19f475['push'](_0x33d483(_0x105bd9._0x1cc684)+_0x37ad17[_0x33d483(_0x105bd9._0x559298)]);if(_0x37ad17[_0x33d483(_0x105bd9._0x481fe1)])_0x19f475[_0x33d483(_0x105bd9._0x2dc2d3)](_0x33d483(_0x105bd9._0xf95b56));return _0x19f475;}if(_0x37ad17['kind']==='authoring')return[_0x33d483(_0x105bd9._0x1138a9),_0x37ad17[_0x33d483(0x16e)]];const _0x2b6d94=_0x37ad17;throw new UnsupportedRunKindError(_0x2b6d94[_0x33d483(0x141)],this[_0x33d483(0x138)]);}[_0x1a6276(0x160)](_0x3c432d){const _0x557816={};if(_0x3c432d['headed'])_0x557816['UNOTEST_HEADED']='1';return _0x557816;}[_0x1a6276(0x157)](){const _0x465bd3=_0x1a6276;return[_0x465bd3(0x14d)];}async[_0x1a6276(0x121)](_0xe438c6){const _0x150d91={_0x1d83be:0x13c},_0x400b5d=_0x1a6276;return runEnvironmentChecks({'cwd':_0xe438c6[_0x400b5d(_0x150d91._0x1d83be)]});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x27b6b9){const _0x181f34={_0x324683:0x15b,_0x20c234:0x178,_0x2e7ad4:0x136,_0x32b86e:0x15b},_0x5d8231=_0x1a6276;if(typeof _0x27b6b9['bin']==='string')return _0x27b6b9[_0x5d8231(_0x181f34._0x324683)];if(_0x27b6b9['bin']&&typeof _0x27b6b9['bin']===_0x5d8231(_0x181f34._0x20c234))return _0x27b6b9[_0x5d8231(_0x181f34._0x324683)][_0x5d8231(_0x181f34._0x2e7ad4)]??Object[_0x5d8231(0x137)](_0x27b6b9[_0x5d8231(_0x181f34._0x32b86e)])[0x0]??null;return null;}function _0x4b8a(_0x21df3a,_0xb5f9ef){_0x21df3a=_0x21df3a-0x11e;const _0x1b8e1e=_0x1b8e();let _0x4b8a77=_0x1b8e1e[_0x21df3a];if(_0x4b8a['ZfpyfN']===undefined){var _0x15cd4d=function(_0x53ae7b){const _0x1375ea='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x57e5a8='',_0x3e84bd='';for(let _0x2c7786=0x0,_0x54236f,_0x106aeb,_0x422e58=0x0;_0x106aeb=_0x53ae7b['charAt'](_0x422e58++);~_0x106aeb&&(_0x54236f=_0x2c7786%0x4?_0x54236f*0x40+_0x106aeb:_0x106aeb,_0x2c7786++%0x4)?_0x57e5a8+=String['fromCharCode'](0xff&_0x54236f>>(-0x2*_0x2c7786&0x6)):0x0){_0x106aeb=_0x1375ea['indexOf'](_0x106aeb);}for(let _0xd866ff=0x0,_0x157af9=_0x57e5a8['length'];_0xd866ff<_0x157af9;_0xd866ff++){_0x3e84bd+='%'+('00'+_0x57e5a8['charCodeAt'](_0xd866ff)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3e84bd);};_0x4b8a['toTkRI']=_0x15cd4d,_0x4b8a['aaDvaT']={},_0x4b8a['ZfpyfN']=!![];}const _0x5a8cb4=_0x1b8e1e[0x0],_0x577583=_0x21df3a+_0x5a8cb4,_0x3e6be5=_0x4b8a['aaDvaT'][_0x577583];return!_0x3e6be5?(_0x4b8a77=_0x4b8a['toTkRI'](_0x4b8a77),_0x4b8a['aaDvaT'][_0x577583]=_0x4b8a77):_0x4b8a77=_0x3e6be5,_0x4b8a77;}__name(pickBin,_0x1a6276(0x124));export{web_runner_adapter_default as default,webRunnerAdapter};
|
|
@@ -280,10 +280,15 @@ For MCP sessions the default environment is fixed at server start:
|
|
|
280
280
|
process inherited — set it in the MCP client's `env` block (e.g.
|
|
281
281
|
`.mcp.json`) and restart the server to switch the default.
|
|
282
282
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
283
|
+
Per-call overrides on top of that default:
|
|
284
|
+
|
|
285
|
+
- `run_test` accepts `env`: the spawned runner child gets
|
|
286
|
+
`UNOTEST_ENV=<env>` for that run only.
|
|
287
|
+
- `explore_start` accepts `env`: THAT session's variables, secrets and
|
|
288
|
+
`APP_BASE_URL` resolve against the `<env>` overlays; other sessions
|
|
289
|
+
and the server keep their own. A session recorded with an override
|
|
290
|
+
also autoRuns (`explore_steps`) against it.
|
|
291
|
+
- CLI runs take `--env <name>` per invocation.
|
|
287
292
|
|
|
288
293
|
You never have to guess the active state: `explore_start` and
|
|
289
294
|
`run_test` replies carry an `environment` field — the active name
|
package/guides/dsl-reference.md
CHANGED
|
@@ -190,6 +190,16 @@ Prefer `getByRole` + `filter({hasText})` over `nth()` — `nth()`-by-index is
|
|
|
190
190
|
flagged by `lint:disambig-by-index` because element order in the DOM is
|
|
191
191
|
brittle.
|
|
192
192
|
|
|
193
|
+
### Scoped builders — `loc.getByRole(...)`, `loc.locator(css)`, …
|
|
194
|
+
|
|
195
|
+
Every builder from the section above also works as a chain step: the
|
|
196
|
+
receiver scopes the query to its subtree — the Playwright semantics.
|
|
197
|
+
|
|
198
|
+
```js
|
|
199
|
+
getByRole('row', {name: /^Row R-00002:/}).getByRole('button', {name: 'Edit'})
|
|
200
|
+
locator('.sidebar').getByText('Settings')
|
|
201
|
+
```
|
|
202
|
+
|
|
193
203
|
### `contentFrame()`
|
|
194
204
|
|
|
195
205
|
Treat the matched element as an iframe and return a locator scoped to
|
|
@@ -796,10 +806,25 @@ whose content filters reject numbers in text.
|
|
|
796
806
|
|
|
797
807
|
```js
|
|
798
808
|
marker = randomWord(10);
|
|
799
|
-
fill(getByRole('textbox'), 'ping '
|
|
809
|
+
fill(getByRole('textbox'), textJoin(['ping ', marker]));
|
|
800
810
|
waitForText(marker);
|
|
801
811
|
```
|
|
802
812
|
|
|
813
|
+
### `textJoin(parts)` → `string`
|
|
814
|
+
|
|
815
|
+
Concatenate an array of parts into one string (numbers are coerced).
|
|
816
|
+
|
|
817
|
+
```js
|
|
818
|
+
goto(textJoin(['/list?page=', pageNo, '&q=', query]));
|
|
819
|
+
```
|
|
820
|
+
|
|
821
|
+
`+` with a string **literal** on either side also concatenates and
|
|
822
|
+
lints clean (`'prefix-' + name`). The validator rejects only
|
|
823
|
+
literal-free string addition (`a + b` where both sides are variables /
|
|
824
|
+
calls known to be strings) — that shape is indistinguishable from
|
|
825
|
+
arithmetic at a glance, and the error points here. Existing
|
|
826
|
+
literal-based `+` code needs no rewrite.
|
|
827
|
+
|
|
803
828
|
### `nowMs()` → `number`
|
|
804
829
|
|
|
805
830
|
Current epoch milliseconds — unique numeric suffixes.
|
|
@@ -918,6 +943,13 @@ The DSL is JavaScript-shaped but parsed by a small AST engine
|
|
|
918
943
|
- **Method chains** — `getByRole('row').filter({hasText:'X'}).click()`.
|
|
919
944
|
- **Backticks** — multi-line raw strings, no `${}` interpolation.
|
|
920
945
|
- **Booleans, numbers, strings, `null`**.
|
|
946
|
+
- **Comparison operators** — `==` / `!=` (loose: `"1" == 1` is true,
|
|
947
|
+
numeric strings coerce), `===` / `!==` (strict: type AND value must
|
|
948
|
+
match, `1 === "1"` is false), `<` `<=` `>` `>=`, logical `&&` / `||`.
|
|
949
|
+
Caveat: DOM reads (`textContent`, `getInputValue`, `getAttribute`)
|
|
950
|
+
return **strings** — for comparing against a number use `==`
|
|
951
|
+
(`getAttribute(loc, "data-count") === 5` is always false; write
|
|
952
|
+
`== 5` or compare with a string).
|
|
921
953
|
|
|
922
954
|
Not supported (and intentionally so): `while` / `do…while` /
|
|
923
955
|
`continue` (bound loops keep every scenario terminating), `++`/`--`,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unotest/web",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.1",
|
|
4
4
|
"description": "AI-native E2E testing for web applications. MCP server (run_test / step / resume / inspect_runtime / agent_fix) + CLI runner + JavaScript DSL scenarios on a sandboxed AST engine + semantic DOM snapshots.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -79,17 +79,17 @@
|
|
|
79
79
|
"tsx": "^4.19.2",
|
|
80
80
|
"yaml": "^2.6.0",
|
|
81
81
|
"zod": "^3.23.8",
|
|
82
|
-
"@unotest/
|
|
83
|
-
"@unotest/
|
|
84
|
-
"@unotest/
|
|
85
|
-
"@unotest/
|
|
86
|
-
"@unotest/
|
|
82
|
+
"@unotest/dsl": "^0.13.1",
|
|
83
|
+
"@unotest/core": "^0.13.1",
|
|
84
|
+
"@unotest/grounder-client": "^0.13.1",
|
|
85
|
+
"@unotest/protocol": "^0.13.1",
|
|
86
|
+
"@unotest/viewer": "^0.13.1"
|
|
87
87
|
},
|
|
88
88
|
"devDependencies": {
|
|
89
89
|
"@types/node": "^22.10.0",
|
|
90
90
|
"javascript-obfuscator": "^4.1.1",
|
|
91
91
|
"tsup": "^8.5.1",
|
|
92
92
|
"typescript": "^5.7.2",
|
|
93
|
-
"@unotest/grounder": "^0.
|
|
93
|
+
"@unotest/grounder": "^0.13.1"
|
|
94
94
|
}
|
|
95
95
|
}
|