@unotest/web 0.28.0 → 0.30.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.
@@ -1 +1 @@
1
- const _0xfd9752=_0x3b73;(function(_0x328910,_0x4cc360){const _0x3d16de={_0x29bd44:0x219,_0xc626b3:0x20a},_0x5b14b0=_0x3b73,_0x221fec=_0x328910();while(!![]){try{const _0x3f5fec=-parseInt(_0x5b14b0(0x1fb))/0x1*(parseInt(_0x5b14b0(0x1f2))/0x2)+-parseInt(_0x5b14b0(_0x3d16de._0x29bd44))/0x3+-parseInt(_0x5b14b0(_0x3d16de._0xc626b3))/0x4+-parseInt(_0x5b14b0(0x214))/0x5+parseInt(_0x5b14b0(0x1ef))/0x6*(-parseInt(_0x5b14b0(0x209))/0x7)+parseInt(_0x5b14b0(0x204))/0x8+-parseInt(_0x5b14b0(0x1fc))/0x9*(-parseInt(_0x5b14b0(0x215))/0xa);if(_0x3f5fec===_0x4cc360)break;else _0x221fec['push'](_0x221fec['shift']());}catch(_0x46f9b6){_0x221fec['push'](_0x221fec['shift']());}}}(_0x4171,0x32829));var __defProp=Object[_0xfd9752(0x21a)],__name=(_0x3f6536,_0x4f3832)=>__defProp(_0x3f6536,'name',{'value':_0x4f3832,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';function _0x3b73(_0x1a1643,_0x6a1785){_0x1a1643=_0x1a1643-0x1ef;const _0x4171a9=_0x4171();let _0x3b73d3=_0x4171a9[_0x1a1643];if(_0x3b73['ooWJhy']===undefined){var _0x1b5554=function(_0x441282){const _0xc98c60='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3f6536='',_0x4f3832='';for(let _0x4191a3=0x0,_0x495ffd,_0x153eb6,_0x5f49ae=0x0;_0x153eb6=_0x441282['charAt'](_0x5f49ae++);~_0x153eb6&&(_0x495ffd=_0x4191a3%0x4?_0x495ffd*0x40+_0x153eb6:_0x153eb6,_0x4191a3++%0x4)?_0x3f6536+=String['fromCharCode'](0xff&_0x495ffd>>(-0x2*_0x4191a3&0x6)):0x0){_0x153eb6=_0xc98c60['indexOf'](_0x153eb6);}for(let _0x898390=0x0,_0x4d3895=_0x3f6536['length'];_0x898390<_0x4d3895;_0x898390++){_0x4f3832+='%'+('00'+_0x3f6536['charCodeAt'](_0x898390)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4f3832);};_0x3b73['eUNogw']=_0x1b5554,_0x3b73['HjcjJB']={},_0x3b73['ooWJhy']=!![];}const _0x1304a4=_0x4171a9[0x0],_0x7509b=_0x1a1643+_0x1304a4,_0xa69883=_0x3b73['HjcjJB'][_0x7509b];return!_0xa69883?(_0x3b73d3=_0x3b73['eUNogw'](_0x3b73d3),_0x3b73['HjcjJB'][_0x7509b]=_0x3b73d3):_0x3b73d3=_0xa69883,_0x3b73d3;}import{join}from'path';function _0x4171(){const _0x1e1a1f=['CMvHze93BLzLCNnPB24','mtm1oty4mgjLzgPnEa','y2HHBM5LBa','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CIbJB25ZB2XLicSGBMv0D29YAYbYzxf1zxn0CYbPBNrVigvHy2GGCNvUj3mGzgLYihnVihrOzqOJihzPzxDLCIDZienVBNnVBguGlYbozxr3B3jRigLUC3bLy3rVCIb0ywjZigfYzsbWB3b1Bgf0zwqUifnLDcb0BYaWihrVigrPC2fIBguUcLvot1rfu1rFtKvuv09ssZ0XcLvot1rfu1rFq09ou09mrt0XcImGu2v0ihrVideGDg8GywXZBYbJyxb0DxjLigeGC2nYzwvUC2HVDcbHzNrLCIbfvKvswsbLEgvJDxrLzcbZDgvWicHPBNrVcImGDw5VDgvZDc8UCNvUCY88CNvUswq+l3nJCMvLBNnOB3qVoYbJBgLJAYbHihn0zxaGCM93igLUihrOzsb2Awv3zxiGDg8GC2vLcImGAxqPlIbpBIbMywLSDxjLlcbHihnJCMvLBNnOB3qGkYbWywDLlMH0BwWGywX3yxLZigXHBMqGAw4kiYb1BM90zxn0lY5YDw5ZlZXYDw5jzd4VzMfPBhvYzs8G4Ocuig5VigzSywCGBMvLzgvKlGOJifvot1rfu1rFu1rfuf9tq1jfru5tse9uuZ0XcG','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','Dw5VDgvZDa','mJHyEu9iB2u','mZqXnZCYzMXKBwri','zxHHBxbSzxm','ANnJB25MAwCUANnVBG','Dw5VDgvZDenVBMzPz01QCW','icbJAgfUBMvSoIa','CgfJA2fNzs5QC29U','Dw5VDgvZDc5JB25MAwCUBwPZ','ztjL','ChvZAa','Dw5VDgvZDc1ZDwL0zq','mtu1mZm2meLJrLrVsq','mtbuDxvgu00','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','CgfYC2u','mteYntq4mfn3s0TPBG','zgvMAw5LuhjVCgvYDhK','mJKZnJiYsxLXwwHb','BgvUz3rO','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWOGic8VihnHBMrIB3G6ihSGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GyxbPq2fSBcaVihvWBg9HzcaVigrIuxvLCNKGlYbZAgvSBaOGic8VicaGyxbPqMfZzvvYBdOGj2H0DhbZoI8VyxbPlNLVDxiTyxbWlNrLC3qNlcaGicaGlY8GyMfZzsbMB3iGyxbPq2fSBcGNue9tvcCSicCVCgf0AcCSiokaPIKkicaVlYaGihvWBg9HzerPCJOGj3vUB3rLC3qVzML4DhvYzxmNlcaGicaGicaGicaGicaGic8VihjVB3qGzM9YihvWBg9HzcGNzg9JlNbKzICPihbHDgHZoWOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGChjVAMvJDcbYB290lIbvCgXVywrZig1HEqOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GBM90igvZy2fWzsbPDcaOCMvSyxrPDMuGCgf0AhmGB25SEsKUcIaGlY8GicbKyxrHyMfZztOGj3bVC3rNCMvZCwW6lY9SB2nHBgHVC3q6ntqZmI9HChbFDgvZDcCSicaVlYbKyLf1zxj5ic8GzgjfEgvJcIaGlY8GFsWk','nJu2nZm4q3vjy1Pu','C3rYAw5NAwz5','DxrMoa','C3rYAw5N','C3vPDgvqywnRywDLsNnVBG','mdeTC21VA2uUANm','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','igHHCYbUBYb1C2fIBguGiNzLCNnPB24IigzPzwXK','lI4VlI4VCgfJA2fNzs5QC29U','mwDiAhn4vq','mte5ota4odL3vwXvzLu','ANnJB25MAwDkC29U','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4GqsbZDwjWCM9JzxnZihrOyxqGz2vUDwLUzwX5ig5LzwrZig9UzsaOysbSAxn0zw5LCIb3AxrOigekiYb0B2TLBIKGz2v0CYbPDcb2AweGDgHLigv4CgXPy2L0igfSBg93BgLZDcbPBIb1BM90zxn0lMnVBMzPzY4QoGOJicaGC2fUzgjVEdOGEYbLEhbVCNrtzwnYzxrZoIbBj1rps0voj10GFqOJifb1DcbUB24TC2vJCMv0ihzHBhvLCYaOvvjmCYWGzw1HAwXZlcbPzhmPigLUihvUB3rLC3qVlMvUDI4kiWOJiezmruvux0vyqu1qteukte9hsu49cLbbu1nxt1jepqPut0TftJ0k','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','DMvYC2LVBG','x2HLBhbLCNm','C2nHzMzVBgrxB3jRC3bHy2u'];_0x4171=function(){return _0x1e1a1f;};return _0x4171();}var templates={'jsconfigJson':'{\x0a\x20\x20\x22compilerOptions\x22:\x20{\x0a\x20\x20\x20\x20\x22checkJs\x22:\x20false,\x0a\x20\x20\x20\x20\x22target\x22:\x20\x22es2022\x22,\x0a\x20\x20\x20\x20\x22lib\x22:\x20[\x22es2022\x22],\x0a\x20\x20\x20\x20\x22types\x22:\x20[]\x0a\x20\x20},\x0a\x20\x20\x22include\x22:\x20[\x0a\x20\x20\x20\x20\x22**/*.js\x22,\x0a\x20\x20\x20\x20\x22../.unotest/types/env.d.ts\x22,\x0a\x20\x20\x20\x20\x22./node_modules/@unotest/web/types/unotest-dsl.d.ts\x22\x0a\x20\x20]\x0a}\x0a','scenarioTemplate':_0xfd9752(0x216),'agentsMd':'#\x20@unotest/web\x20—\x20guide\x20for\x20AI\x20agents\x20(and\x20humans)\x0a\x0aThis\x20project\x20uses\x20[`@unotest/web`](https://www.npmjs.com/package/@unotest/web)\x0afor\x20end-to-end\x20testing\x20of\x20web\x20applications.\x0a\x0a##\x20Writing\x20a\x20test\x20—\x20use\x20the\x20skill\x20+\x20MCP\x0a\x0aFor\x20ANY\x20request\x20to\x20write,\x20record,\x20or\x20run\x20an\x20e2e\x20test:\x0a\x0a1.\x20Open\x20the\x20**`write-e2e-test`**\x20skill\x20—\x20`.claude/skills/write-e2e-test/SKILL.md`\x0a\x20\x20\x20(in\x20Claude\x20Code\x20you\x20can\x20also\x20run\x20`/write-e2e-test`)\x20—\x20and\x20follow\x20it.\x0a2.\x20Drive\x20the\x20browser\x20through\x20the\x20**`unotest-web`\x20MCP\x20tools**:\x20`new_context`\x20→\x0a\x20\x20\x20`explore_start`\x20→\x20`explore_step`\x20→\x20`get_page_snapshot`\x20→\x20`run_test`.\x0a\x0aDo\x20NOT\x20hand-author\x20tests\x20blind\x20or\x20map\x20the\x20project\x20with\x20`find`/`ls`/`awk`\x20—\x20the\x0askill\x27s\x20Phase\x200\x20names\x20the\x20exact\x20files\x20to\x20read.\x20Runnable,\x20copy-pasteable\x0aexamples\x20live\x20in\x20`unotest/e2e/examples/`.\x0a\x0a##\x20Layout\x0a\x0a-\x20`unotest/e2e/<feature>/<name>.js`\x20—\x20test\x20scenarios,\x20grouped\x20by\x20feature/page\x0a\x20\x20(one\x20`test_*`\x20function\x20per\x20file).\x20**Required:**\x20every\x20scenario\x20lives\x20in\x20a\x0a\x20\x20feature\x20subfolder.\x20A\x20test\x20file\x20placed\x20directly\x20in\x20`unotest/e2e/`\x20is\x20rejected\x0a\x20\x20by\x20the\x20linter\x20(`lint:scenario-in-root`).\x0a-\x20`unotest/e2e/_helpers/`\x20—\x20project-specific\x20helpers\x20(visible\x20to\x20all\x20scenarios)\x0a-\x20`unotest/e2e/_template.js`\x20—\x20starting-point\x20template\x20(copy\x20into\x20a\x20feature\x20folder)\x0a\x0a##\x20DSL\x20conventions\x0a\x0aThe\x20DSL\x20is\x20a\x20strict\x20JS\x20subset\x20parsed\x20by\x20@unotest/dsl.\x20Method\x20chains,\x20options-\x0aobjects,\x20and\x20variables\x20are\x20allowed.\x20Multi-line\x20strings\x20use\x0abackticks\x20but\x20`${...}`\x20interpolation\x20is\x20forbidden\x20(sandbox\x20boundary\x20—\x0apass\x20values\x20via\x20positional\x20args).\x0a\x0a**Every\x20step\x20must\x20sit\x20inside\x20a\x20`step(\x22description\x22,\x20()\x20=>\x20{\x20…\x20})`\x20block\x20(linter\x0aenforces).**\x20The\x20title\x20is\x20plain-English\x20intent;\x20the\x20steps\x20inside\x20are\x20the\x0aimplementation.\x20When\x20a\x20step\x20later\x20breaks\x20(selector\x20drift),\x20you\x20read\x20the\x0atitle\x20to\x20understand\x20what\x20the\x20group\x20was\x20trying\x20to\x20do\x20and\x20repair\x20it.\x20Group\x20by\x0aintent,\x20one\x20block\x20per\x20logical\x20chunk:\x0a\x0a```js\x0afunction\x20test_login()\x20{\x0a\x20\x20step(\x22Sign\x20in\x20as\x20the\x20demo\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27https://app.example.com/login\x27);\x0a\x20\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20\x27demo@example.com\x27);\x0a\x20\x20\x20\x20click(getByRole(\x27button\x27,\x20{name:\x20\x27Log\x20in\x27}));\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Dashboard\x20shows\x20the\x20signed-in\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20assertText(getByRole(\x27heading\x27),\x20\x27Welcome\x27);\x0a\x20\x20});\x0a}\x0a```\x0a\x0a**Base\x20URL\x20—\x20write\x20relative\x20paths.**\x20`APP_BASE_URL`\x20(in\x20`unotest/.env`)\x20is\x20the\x0aapp\x27s\x20base;\x20`goto(\x27/login\x27)`\x20resolves\x20against\x20it.\x20Don\x27t\x20concatenate\x0a(`goto(APP_BASE_URL\x20+\x20\x27/login\x27)`)\x20—\x20just\x20pass\x20the\x20path:\x0a\x0a```js\x0agoto(\x27/login\x27);\x0afill(getByLabel(\x27Password\x27),\x20TEST_USER_PASSWORD);\x0a```\x0a\x0a**Environments.**\x20Override\x20`APP_BASE_URL`\x20(and\x20any\x20var)\x20per\x20environment\x20with\x0aoverlay\x20files\x20—\x20`unotest/.env.staging`,\x20`unotest/.env.production`\x20(secrets:\x0a`unotest/.secrets.<env>`).\x20Select\x20one\x20at\x20run\x20time:\x20`npx\x20@unotest/web\x20e2e\x20<name>\x0a--env\x20staging`.\x20The\x20overlay\x20layers\x20over\x20the\x20base\x20`.env`\x20(overlay\x20wins).\x0a\x0a**External\x20variables\x20&\x20secrets:**\x20reference\x20logins\x20/\x20tokens\x20by\x20a\x20bare\x0a`UPPER_SNAKE`\x20name\x20—\x20resolved\x20from\x20`unotest/.env`\x20(normal)\x20or\x20`unotest/.secrets`\x0a(secret,\x20masked\x20in\x20logs).\x20No\x20`env()`/`secret()`\x20wrapper.\x20A\x20lowercase\x20name\x20is\x20an\x0ain-scenario\x20binding;\x20an\x20unknown\x20`UPPER_SNAKE`\x20fails\x20the\x20run\x20asking\x20you\x20to\x20add\x20it\x0ato\x20`unotest/.env`.\x0a\x0a**Selector\x20hierarchy\x20(D-22\x20—\x20linter\x20enforces):**\x0a1.\x20`getByTestId(id)`\x20—\x20most\x20stable\x0a2.\x20`getByRole(role,\x20{name})`\x20—\x20semantic,\x20a11y-aware\x0a3.\x20`getByLabel(text)`\x20—\x20for\x20form\x20fields\x0a4.\x20`getByText(text)`\x20—\x20for\x20unique\x20text\x0a5.\x20`locator(css)`\x20—\x20last\x20resort\x20(linter\x20warns)\x0a\x0aFull\x20reference\x20shipped\x20with\x20the\x20package:\x0a-\x20`node_modules/@unotest/web/guides/dsl-reference.md`\x20—\x20DSL\x20functions\x20+\x20linter\x20codes\x0a\x0a##\x20Running\x20(CLI)\x0a\x0a-\x20`npx\x20@unotest/web\x20e2e\x20<feature>/<name>`\x20—\x20run\x20a\x20scenario\x20by\x20name\x0a-\x20`npx\x20@unotest/web\x20lint`\x20—\x20static\x20check\x20of\x20all\x20scenarios\x20+\x20helpers\x0a-\x20`npx\x20@unotest/web\x20mcp`\x20—\x20start\x20the\x20MCP\x20server\x20for\x20agent\x20control\x0a\x0a##\x20Via\x20MCP\x20(Claude\x20Code\x20/\x20Claude\x20Desktop\x20/\x20Cursor)\x0a\x0aThe\x20MCP\x20server\x20exposes:\x0a-\x20`run_test\x20name=\x22<name>\x22\x20mode=\x22step\x22\x20pauseOnFailure=true`\x20—\x20run\x20with\x20step-mode\x0a-\x20`step`\x20/\x20`resume`\x20—\x20advance\x20one\x20AST\x20node\x20/\x20run\x20until\x20next\x20pause\x0a-\x20`inspect_runtime`\x20—\x20current\x20state,\x20last\x20error,\x20locals\x20dump\x0a-\x20`abort_runtime`\x20—\x20kill\x20a\x20paused\x20runtime\x0a\x0aFor\x20agent-fix\x20workflows\x20on\x20flaky\x20tests:\x20`agent_fix\x20testId=\x22<id>\x22`\x20returns\x20a\x0astructured\x20context\x20bundle\x20(see\x20D-25\x20—\x20we\x20never\x20call\x20LLMs\x20or\x20auto-apply\x0adiffs,\x20the\x20diff\x20comes\x20from\x20your\x20MCP-host\x20agent).\x0a','claudeMdBody':_0xfd9752(0x217),'examples':{'01-smoke.js':_0xfd9752(0x1ff),'02-form-fill.js':'//\x20Example\x2002\x20—\x20fill\x20an\x20input\x20+\x20assert\x20the\x20app\x20reacted.\x0a//\x0a//\x20Against\x20playground.unotest.com/scenarios/big-table.\x20Demonstrates\x20getByRole\x0a//\x20for\x20a\x20labelled\x20input,\x20typed\x20input\x20via\x20fill(),\x20and\x20a\x20locator\x20method-chain\x0a//\x20(getByRole(\x27row\x27).filter({hasText}).first())\x20in\x20an\x20assertion.\x0a//\x20Run\x20with:\x20\x20npx\x20@unotest/web\x20e2e\x20examples/02-form-fill\x0a\x0afunction\x20test_form_fill_happy_path()\x20{\x0a\x20\x20step(\x22Filter\x20the\x20Big\x20Table\x20by\x20a\x20name\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27/scenarios/big-table\x27);\x0a\x20\x20\x20\x20fill(getByRole(\x27textbox\x27,\x20{name:\x20\x27Filter\x20by\x20name\x27}),\x20\x27Uma\x20Quinn\x27);\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Filtering\x20reveals\x20the\x20Clear\x20filter\x20control\x20and\x20matching\x20rows\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20assertVisible(getByRole(\x27button\x27,\x20{name:\x20\x27Clear\x20filter\x27}));\x0a\x20\x20\x20\x20assertVisible(getByRole(\x27row\x27).filter({hasText:\x20\x27Uma\x20Quinn\x27}).first());\x0a\x20\x20});\x0a}\x0a'},'secretsExample':_0xfd9752(0x1fe),'envExample':_0xfd9752(0x206)};function unotestConfigMjs(_0x4191a3){const _0x5e81a0={_0x187557:0x20e,_0x2c2bc0:0x1f3,_0x37b847:0x1f1,_0x15beed:0x1f8},_0x13898c=_0xfd9752,_0x495ffd=_0x4191a3===void 0x0?_0x13898c(0x207):_0x13898c(_0x5e81a0._0x187557)+JSON[_0x13898c(_0x5e81a0._0x2c2bc0)](_0x4191a3)+',';return _0x13898c(_0x5e81a0._0x37b847)+_0x495ffd+_0x13898c(_0x5e81a0._0x15beed);}__name(unotestConfigMjs,_0xfd9752(0x20d));function suitePackageJson(_0x153eb6){const _0xe69227={_0x4a6aaa:0x213},_0xea56f0=_0xfd9752;return JSON[_0xea56f0(0x1f3)]({'name':_0xea56f0(_0xe69227._0x4a6aaa),'private':!![],'devDependencies':{'@unotest/web':'^'+_0x153eb6}},null,0x2)+'\x0a';}__name(suitePackageJson,_0xfd9752(0x1f6));import{readFileSync}from'fs';import{dirname,resolve}from'path';import{fileURLToPath}from'url';function readOwnVersion(){const _0xd7c70b={_0x9b8c20:0x1fa,_0x961b16:0x1f5,_0x1df21a:0x1f0,_0xb93e92:0x1f9},_0x1fd053=_0xfd9752,_0x5f49ae=dirname(fileURLToPath(import.meta.url)),_0x898390=resolve(_0x5f49ae,_0x1fd053(_0xd7c70b._0x9b8c20)),_0x4d3895=readFileSync(_0x898390,_0x1fd053(0x1f4)),_0x2ff3d9=JSON[_0x1fd053(0x218)](_0x4d3895);if(typeof _0x2ff3d9['version']!==_0x1fd053(_0xd7c70b._0x961b16)||_0x2ff3d9['version'][_0x1fd053(_0xd7c70b._0x1df21a)]===0x0)throw new Error('package.json\x20at\x20'+_0x898390+_0x1fd053(_0xd7c70b._0xb93e92));return _0x2ff3d9[_0x1fd053(0x200)];}__name(readOwnVersion,_0xfd9752(0x203));async function scaffoldWorkspace(_0x402966,_0x3e48db={}){const _0x2444c8={_0x4b65b5:0x211,_0x363dc5:0x201,_0x1fe4ce:0x205,_0x3f92c5:0x20f,_0xbdd835:0x20c,_0x547e99:0x1fd,_0x1707db:0x211,_0x25988b:0x20b,_0x339852:0x1f7,_0x50756a:0x212},_0x4e75f0=_0xfd9752,_0x2acfa2=[],_0x4ec820=[];await mkdir(join(_0x402966,'unotest','e2e',_0x4e75f0(0x20b)),{'recursive':!![]}),await mkdir(join(_0x402966,'unotest',_0x4e75f0(_0x2444c8._0x4b65b5),_0x4e75f0(_0x2444c8._0x363dc5)),{'recursive':!![]});const _0xe72d35=[{'rel':join('unotest',_0x4e75f0(0x210)),'content':unotestConfigMjs(_0x3e48db[_0x4e75f0(_0x2444c8._0x1fe4ce)])},{'rel':join(_0x4e75f0(0x208),_0x4e75f0(_0x2444c8._0x3f92c5)),'content':suitePackageJson(readOwnVersion())},{'rel':join(_0x4e75f0(0x208),'.env'),'content':templates['envExample']},{'rel':join('unotest',_0x4e75f0(_0x2444c8._0xbdd835)),'content':templates[_0x4e75f0(_0x2444c8._0x547e99)]},{'rel':join('unotest',_0x4e75f0(_0x2444c8._0x1707db),'examples',_0x4e75f0(0x1f7)),'content':templates[_0x4e75f0(_0x2444c8._0x25988b)][_0x4e75f0(_0x2444c8._0x339852)]}];for(const {rel:_0x35f005,content:_0x425fe2}of _0xe72d35){const _0x157676=join(_0x402966,_0x35f005);if(existsSync(_0x157676)){_0x4ec820[_0x4e75f0(0x212)](_0x35f005);continue;}await writeFile(_0x157676,_0x425fe2),_0x2acfa2[_0x4e75f0(_0x2444c8._0x50756a)](_0x35f005);}return{'projectRoot':_0x402966,'created':_0x2acfa2,'skipped':_0x4ec820};}__name(scaffoldWorkspace,_0xfd9752(0x202));export{scaffoldWorkspace};
1
+ const _0x240e79=_0x25e6;(function(_0x1021cd,_0x23d64a){const _0x4d546c={_0x14c545:0x1e9,_0x2063da:0x1d1,_0x1fee5d:0x1f2,_0x3c9a7c:0x1d2,_0x1da06a:0x1e8,_0x19d116:0x1f3},_0x11231d=_0x25e6,_0x5969af=_0x1021cd();while(!![]){try{const _0x445241=-parseInt(_0x11231d(_0x4d546c._0x14c545))/0x1+-parseInt(_0x11231d(0x1e2))/0x2*(-parseInt(_0x11231d(0x1d0))/0x3)+parseInt(_0x11231d(_0x4d546c._0x2063da))/0x4*(parseInt(_0x11231d(_0x4d546c._0x1fee5d))/0x5)+parseInt(_0x11231d(_0x4d546c._0x3c9a7c))/0x6*(parseInt(_0x11231d(_0x4d546c._0x1da06a))/0x7)+-parseInt(_0x11231d(0x1e3))/0x8*(parseInt(_0x11231d(0x1dc))/0x9)+parseInt(_0x11231d(0x1ee))/0xa+-parseInt(_0x11231d(_0x4d546c._0x19d116))/0xb;if(_0x445241===_0x23d64a)break;else _0x5969af['push'](_0x5969af['shift']());}catch(_0x2ac0a9){_0x5969af['push'](_0x5969af['shift']());}}}(_0x41b5,0xe6e42));var __defProp=Object['defineProperty'],__name=(_0x2fb7db,_0x22975e)=>__defProp(_0x2fb7db,_0x240e79(0x1d6),{'value':_0x22975e,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';import{join}from'path';var templates={'jsconfigJson':_0x240e79(0x1e6),'scenarioTemplate':_0x240e79(0x1ea),'agentsMd':'#\x20@unotest/web\x20—\x20guide\x20for\x20AI\x20agents\x20(and\x20humans)\x0a\x0aThis\x20project\x20uses\x20[`@unotest/web`](https://www.npmjs.com/package/@unotest/web)\x0afor\x20end-to-end\x20testing\x20of\x20web\x20applications.\x0a\x0a##\x20Writing\x20a\x20test\x20—\x20use\x20the\x20skill\x20+\x20MCP\x0a\x0aFor\x20ANY\x20request\x20to\x20write,\x20record,\x20or\x20run\x20an\x20e2e\x20test:\x0a\x0a1.\x20Open\x20the\x20**`write-e2e-test`**\x20skill\x20—\x20`.claude/skills/write-e2e-test/SKILL.md`\x0a\x20\x20\x20(in\x20Claude\x20Code\x20you\x20can\x20also\x20run\x20`/write-e2e-test`)\x20—\x20and\x20follow\x20it.\x0a2.\x20Drive\x20the\x20browser\x20through\x20the\x20**`unotest-web`\x20MCP\x20tools**:\x20`new_context`\x20→\x0a\x20\x20\x20`explore_start`\x20→\x20`explore_step`\x20→\x20`get_page_snapshot`\x20→\x20`run_test`.\x0a\x0aDo\x20NOT\x20hand-author\x20tests\x20blind\x20or\x20map\x20the\x20project\x20with\x20`find`/`ls`/`awk`\x20—\x20the\x0askill\x27s\x20Phase\x200\x20names\x20the\x20exact\x20files\x20to\x20read.\x20Runnable,\x20copy-pasteable\x0aexamples\x20live\x20in\x20`unotest/e2e/examples/`.\x0a\x0a##\x20Layout\x0a\x0a-\x20`unotest/e2e/<feature>/<name>.js`\x20—\x20test\x20scenarios,\x20grouped\x20by\x20feature/page\x0a\x20\x20(one\x20`test_*`\x20function\x20per\x20file).\x20**Required:**\x20every\x20scenario\x20lives\x20in\x20a\x0a\x20\x20feature\x20subfolder.\x20A\x20test\x20file\x20placed\x20directly\x20in\x20`unotest/e2e/`\x20is\x20rejected\x0a\x20\x20by\x20the\x20linter\x20(`lint:scenario-in-root`).\x0a-\x20`unotest/e2e/_helpers/`\x20—\x20project-specific\x20helpers\x20(visible\x20to\x20all\x20scenarios)\x0a-\x20`unotest/e2e/_template.js`\x20—\x20starting-point\x20template\x20(copy\x20into\x20a\x20feature\x20folder)\x0a\x0a##\x20DSL\x20conventions\x0a\x0aThe\x20DSL\x20is\x20a\x20strict\x20JS\x20subset\x20parsed\x20by\x20@unotest/dsl.\x20Method\x20chains,\x20options-\x0aobjects,\x20and\x20variables\x20are\x20allowed.\x20Multi-line\x20strings\x20use\x0abackticks\x20but\x20`${...}`\x20interpolation\x20is\x20forbidden\x20(sandbox\x20boundary\x20—\x0apass\x20values\x20via\x20positional\x20args).\x0a\x0a**Every\x20step\x20must\x20sit\x20inside\x20a\x20`step(\x22description\x22,\x20()\x20=>\x20{\x20…\x20})`\x20block\x20(linter\x0aenforces).**\x20The\x20title\x20is\x20plain-English\x20intent;\x20the\x20steps\x20inside\x20are\x20the\x0aimplementation.\x20When\x20a\x20step\x20later\x20breaks\x20(selector\x20drift),\x20you\x20read\x20the\x0atitle\x20to\x20understand\x20what\x20the\x20group\x20was\x20trying\x20to\x20do\x20and\x20repair\x20it.\x20Group\x20by\x0aintent,\x20one\x20block\x20per\x20logical\x20chunk:\x0a\x0a```js\x0afunction\x20test_login()\x20{\x0a\x20\x20step(\x22Sign\x20in\x20as\x20the\x20demo\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27https://app.example.com/login\x27);\x0a\x20\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20\x27demo@example.com\x27);\x0a\x20\x20\x20\x20click(getByRole(\x27button\x27,\x20{name:\x20\x27Log\x20in\x27}));\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Dashboard\x20shows\x20the\x20signed-in\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20assertText(getByRole(\x27heading\x27),\x20\x27Welcome\x27);\x0a\x20\x20});\x0a}\x0a```\x0a\x0a**Base\x20URL\x20—\x20write\x20relative\x20paths.**\x20`APP_BASE_URL`\x20(in\x20`unotest/.env`)\x20is\x20the\x0aapp\x27s\x20base;\x20`goto(\x27/login\x27)`\x20resolves\x20against\x20it.\x20Don\x27t\x20concatenate\x0a(`goto(APP_BASE_URL\x20+\x20\x27/login\x27)`)\x20—\x20just\x20pass\x20the\x20path:\x0a\x0a```js\x0agoto(\x27/login\x27);\x0afill(getByLabel(\x27Password\x27),\x20TEST_USER_PASSWORD);\x0a```\x0a\x0a**Environments.**\x20Override\x20`APP_BASE_URL`\x20(and\x20any\x20var)\x20per\x20environment\x20with\x0aoverlay\x20files\x20—\x20`unotest/.env.staging`,\x20`unotest/.env.production`\x20(secrets:\x0a`unotest/.secrets.<env>`).\x20Select\x20one\x20at\x20run\x20time:\x20`npx\x20@unotest/web\x20e2e\x20<name>\x0a--env\x20staging`.\x20The\x20overlay\x20layers\x20over\x20the\x20base\x20`.env`\x20(overlay\x20wins).\x0a\x0a**External\x20variables\x20&\x20secrets:**\x20reference\x20logins\x20/\x20tokens\x20by\x20a\x20bare\x0a`UPPER_SNAKE`\x20name\x20—\x20resolved\x20from\x20`unotest/.env`\x20(normal)\x20or\x20`unotest/.secrets`\x0a(secret,\x20masked\x20in\x20logs).\x20No\x20`env()`/`secret()`\x20wrapper.\x20A\x20lowercase\x20name\x20is\x20an\x0ain-scenario\x20binding;\x20an\x20unknown\x20`UPPER_SNAKE`\x20fails\x20the\x20run\x20asking\x20you\x20to\x20add\x20it\x0ato\x20`unotest/.env`.\x0a\x0a**Selector\x20hierarchy\x20(D-22\x20—\x20linter\x20enforces):**\x0a1.\x20`getByTestId(id)`\x20—\x20most\x20stable\x0a2.\x20`getByRole(role,\x20{name})`\x20—\x20semantic,\x20a11y-aware\x0a3.\x20`getByLabel(text)`\x20—\x20for\x20form\x20fields\x0a4.\x20`getByText(text)`\x20—\x20for\x20unique\x20text\x0a5.\x20`locator(css)`\x20—\x20last\x20resort\x20(linter\x20warns)\x0a\x0aFull\x20reference\x20shipped\x20with\x20the\x20package:\x0a-\x20`node_modules/@unotest/web/guides/dsl-reference.md`\x20—\x20DSL\x20functions\x20+\x20linter\x20codes\x0a\x0a##\x20Running\x20(CLI)\x0a\x0a-\x20`npx\x20@unotest/web\x20e2e\x20<feature>/<name>`\x20—\x20run\x20a\x20scenario\x20by\x20name\x0a-\x20`npx\x20@unotest/web\x20lint`\x20—\x20static\x20check\x20of\x20all\x20scenarios\x20+\x20helpers\x0a-\x20`npx\x20@unotest/web\x20mcp`\x20—\x20start\x20the\x20MCP\x20server\x20for\x20agent\x20control\x0a\x0a##\x20Via\x20MCP\x20(Claude\x20Code\x20/\x20Claude\x20Desktop\x20/\x20Cursor)\x0a\x0aThe\x20MCP\x20server\x20exposes:\x0a-\x20`run_test\x20name=\x22<name>\x22\x20mode=\x22step\x22\x20pauseOnFailure=true`\x20—\x20run\x20with\x20step-mode\x0a-\x20`step`\x20/\x20`resume`\x20—\x20advance\x20one\x20AST\x20node\x20/\x20run\x20until\x20next\x20pause\x0a-\x20`inspect_runtime`\x20—\x20current\x20state,\x20last\x20error,\x20locals\x20dump\x0a-\x20`abort_runtime`\x20—\x20kill\x20a\x20paused\x20runtime\x0a\x0aFor\x20agent-fix\x20workflows\x20on\x20flaky\x20tests:\x20`agent_fix\x20testId=\x22<id>\x22`\x20returns\x20a\x0astructured\x20context\x20bundle\x20(see\x20D-25\x20—\x20we\x20never\x20call\x20LLMs\x20or\x20auto-apply\x0adiffs,\x20the\x20diff\x20comes\x20from\x20your\x20MCP-host\x20agent).\x0a','claudeMdBody':_0x240e79(0x1d5),'examples':{'01-smoke.js':_0x240e79(0x1f5),'02-form-fill.js':_0x240e79(0x1cf)},'secretsExample':_0x240e79(0x1de),'envExample':_0x240e79(0x1f0)};function unotestConfigMjs(_0x55a1db){const _0x50dc45={_0x2a38c2:0x1d8,_0x11f930:0x1ed},_0x319753=_0x240e79,_0x39ce27=_0x55a1db===void 0x0?_0x319753(0x1df):_0x319753(0x1db)+JSON['stringify'](_0x55a1db)+',';return _0x319753(_0x50dc45._0x2a38c2)+_0x39ce27+_0x319753(_0x50dc45._0x11f930);}__name(unotestConfigMjs,_0x240e79(0x1da));function suitePackageJson(_0x1e7251){const _0x4c41e6=_0x240e79;return JSON['stringify']({'name':_0x4c41e6(0x1e1),'private':!![],'devDependencies':{'@unotest/web':'^'+_0x1e7251}},null,0x2)+'\x0a';}__name(suitePackageJson,_0x240e79(0x1e4));import{readFileSync}from'fs';import{dirname,resolve}from'path';function _0x25e6(_0x211068,_0x34759f){_0x211068=_0x211068-0x1cb;const _0x41b5de=_0x41b5();let _0x25e6be=_0x41b5de[_0x211068];if(_0x25e6['AMWHXl']===undefined){var _0x413613=function(_0x3f49cb){const _0x465543='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2fb7db='',_0x22975e='';for(let _0x55a1db=0x0,_0x39ce27,_0x1e7251,_0x3e186e=0x0;_0x1e7251=_0x3f49cb['charAt'](_0x3e186e++);~_0x1e7251&&(_0x39ce27=_0x55a1db%0x4?_0x39ce27*0x40+_0x1e7251:_0x1e7251,_0x55a1db++%0x4)?_0x2fb7db+=String['fromCharCode'](0xff&_0x39ce27>>(-0x2*_0x55a1db&0x6)):0x0){_0x1e7251=_0x465543['indexOf'](_0x1e7251);}for(let _0x41b919=0x0,_0x59e4cd=_0x2fb7db['length'];_0x41b919<_0x59e4cd;_0x41b919++){_0x22975e+='%'+('00'+_0x2fb7db['charCodeAt'](_0x41b919)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22975e);};_0x25e6['zbEVVG']=_0x413613,_0x25e6['DLmGxS']={},_0x25e6['AMWHXl']=!![];}const _0x2cc505=_0x41b5de[0x0],_0x2e4a8b=_0x211068+_0x2cc505,_0x2b537b=_0x25e6['DLmGxS'][_0x2e4a8b];return!_0x2b537b?(_0x25e6be=_0x25e6['zbEVVG'](_0x25e6be),_0x25e6['DLmGxS'][_0x2e4a8b]=_0x25e6be):_0x25e6be=_0x2b537b,_0x25e6be;}import{fileURLToPath}from'url';function readOwnVersion(){const _0xa7d67b={_0xf1abcf:0x1d4,_0x1fda29:0x1d9,_0x13370b:0x1e5,_0x12bcf8:0x1f7},_0x3c0810=_0x240e79,_0x3e186e=dirname(fileURLToPath(import.meta.url)),_0x41b919=resolve(_0x3e186e,_0x3c0810(0x1cb)),_0x59e4cd=readFileSync(_0x41b919,_0x3c0810(_0xa7d67b._0xf1abcf)),_0xde33e3=JSON[_0x3c0810(_0xa7d67b._0x1fda29)](_0x59e4cd);if(typeof _0xde33e3[_0x3c0810(0x1e5)]!==_0x3c0810(0x1d3)||_0xde33e3[_0x3c0810(_0xa7d67b._0x13370b)][_0x3c0810(0x1d7)]===0x0)throw new Error(_0x3c0810(_0xa7d67b._0x12bcf8)+_0x41b919+'\x20has\x20no\x20usable\x20\x22version\x22\x20field');return _0xde33e3['version'];}__name(readOwnVersion,_0x240e79(0x1f1));function _0x41b5(){const _0x2975eb=['nti1wgrYy0n3','mJq5nJGWrNDduwL3','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHihn0zxaOiI4UlIiSicGPid0+ihSG4OcMih0PigjSB2nRlIbuAguklY8GDgL0BguGAxmGysbWBgfPBI1fBMDSAxnOigrLC2nYAxb0Aw9Uig9MihrOzsbNCM91CdSGDgHLihn0zxbZigLUC2LKzsbHCMuklY8GDgHLigLTCgXLBwvUDgf0Aw9UlIbhCM91CcbIEsbPBNrLBNqGkfnLDhvWic8Grw50zxiGlYbby3qGlYbbC3nLCNqGB3iklY8GD2HHDgv2zxiGCMvHzhmGD2vSBcKG4Ocuig9UzsbIBg9JAYbWzxiGBg9NAwnHBcbJAhvUAY4kcMz1BMn0Aw9UihrLC3rFEw91CL9Uyw1Lx2HLCMuOksb7cIaGC3rLCcGIu2vLzcbHigTUB3DUihvZzxiGDMLHiercic8GqvbjigzPEhr1CMvZigzYB20Gx2HLBhbLCNmViIWGkcKGpt4GEWOGicaGlY8GicaGD2LWzv9LmMvFDxnLCNmOktSkicaGic8VicaGihvZzxjFAwqGpsbZzwvKx3vZzxiOj2fSAwnLqgv4yw1WBguUy29TjYWGj3nLy3jLDcCPoWOGih0PoWOkicbZDgvWkcjtAwDUigLUigfZihrOzsbZzwvKzwqGDxnLCIiSicGPid0+ihSkicaGigDVDg8Oj2H0DhbZoI8VEw91CI1HChaUDgvZDc9SB2DPBICPoWOGicaGlY8GicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNywXPy2vazxHHBxbSzs5JB20NktSkicaGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGicaGlY8GicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKfZC2vYDcb0AguGzgfZAgjVyxjKihnOB3DZihrOzsbZAwDUzwqTAw4GDxnLCIiSicGPid0+ihSkicaGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGicaGlY8GicaGyxnZzxj0vgv4DcHNzxrcEvjVBguOj2HLywrPBMCNksWGj1DLBgnVBwuSiefSAwnLjYK7cIaGicaVlYaGicbJB3vUDca9igrIuxvLCNKOj1nftevdvcbJB3vUDcGQksbguK9nihvZzxjZifDirvjfigfJDgL2zsa9ihrYDwuNktSkicaGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGFsK7cN0k','zw52rxHHBxbSzq','ChvZAa','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','mti3mtGYmdbsywPUsLC','CgfJA2fNzs5QC29U','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','CMvHze93BLzLCNnPB24','mZbkqxnSzw0','mZCXodmYmdfyDLnKEuu','ANnJB25MAwDkC29U','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','ztjL','CgfJA2fNzs5QC29Uigf0ia','lI4VlI4VCgfJA2fNzs5QC29U','x2HLBhbLCNm','C2nHzMzVBgrxB3jRC3bHy2u','zxHHBxbSzxm','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','mJiXngPrtvPxzq','otCZmte2vw9VBLPL','mtq2nJa0CeLttfH1','C3rYAw5N','DxrMoa','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','BMfTzq','BgvUz3rO','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWOGic8VihnHBMrIB3G6ihSGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GyxbPq2fSBcaVihvWBg9HzcaVigrIuxvLCNKGlYbZAgvSBaOGic8VicaGyxbPqMfZzvvYBdOGj2H0DhbZoI8VyxbPlNLVDxiTyxbWlNrLC3qNlcaGicaGlY8GyMfZzsbMB3iGyxbPq2fSBcGNue9tvcCSicCVCgf0AcCSiokaPIKkicaVlYaGihvWBg9HzerPCJOGj3vUB3rLC3qVzML4DhvYzxmNlcaGicaGicaGicaGicaGic8VihjVB3qGzM9YihvWBg9HzcGNzg9JlNbKzICPihbHDgHZoWOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGChjVAMvJDcbYB290lIbvCgXVywrZig1HEqOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GBM90igvZy2fWzsbPDcaOCMvSyxrPDMuGCgf0AhmGB25SEsKUcIaGlY8GicbKyxrHyMfZztOGj3bVC3rNCMvZCwW6lY9SB2nHBgHVC3q6ntqZmI9HChbFDgvZDcCSicaVlYbKyLf1zxj5ic8GzgjfEgvJcIaGlY8GFsWk','CgfYC2u','Dw5VDgvZDenVBMzPz01QCW','icbJAgfUBMvSoIa','ouzyBeL5yq','mdeTC21VA2uUANm','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4GqsbZDwjWCM9JzxnZihrOyxqGz2vUDwLUzwX5ig5LzwrZig9UzsaOysbSAxn0zw5LCIb3AxrOigekiYb0B2TLBIKGz2v0CYbPDcb2AweGDgHLigv4CgXPy2L0igfSBg93BgLZDcbPBIb1BM90zxn0lMnVBMzPzY4QoGOJicaGC2fUzgjVEdOGEYbLEhbVCNrtzwnYzxrZoIbBj1rps0voj10GFqOJifb1DcbUB24TC2vJCMv0ihzHBhvLCYaOvvjmCYWGzw1HAwXZlcbPzhmPigLUihvUB3rLC3qVlMvUDI4kiWOJiezmruvux0vyqu1qteukte9hsu49cLbbu1nxt1jepqPut0TftJ0k','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','Dw5VDgvZDa','Dw5VDgvZDc1ZDwL0zq','mtGZmM9brfnSza','ntmXndGWogPrterKvq','C3vPDgvqywnRywDLsNnVBG','DMvYC2LVBG','EWOGicjJB21WAwXLCK9WDgLVBNmIoIb7cIaGicaIy2HLy2TkCYi6igzHBhnLlaOGicaGiNrHCMDLDci6icjLCZiWmJiIlaOGicaGiMXPyIi6ifSIzxmYmdiYiL0ScIaGicaIDhLWzxmIoIbBxqOGih0ScIaGiMLUy2X1zguIoIbBcIaGicaIkIOVkI5QCYiScIaGicaIlI4VlNvUB3rLC3qVDhLWzxmVzw52lMqUDhmIlaOGicaGiI4VBM9Kzv9TB2r1BgvZl0b1BM90zxn0l3DLyI90ExbLCY91BM90zxn0lwrZBc5KlNrZiGOGif0kFqO','ANnJB25MAwCUANnVBG'];_0x41b5=function(){return _0x2975eb;};return _0x41b5();}async function scaffoldWorkspace(_0x14a908,_0x3061e5={}){const _0x336ca5={_0x750669:0x1e0,_0x261bee:0x1ce,_0x3fedc2:0x1cc,_0xecd80b:0x1ef,_0x343bf7:0x1e0,_0x13d7ba:0x1e7,_0x4dcd4b:0x1f4,_0xd62579:0x1dd},_0x338331=_0x240e79,_0x2c8834=[],_0x940153=[];await mkdir(join(_0x14a908,_0x338331(_0x336ca5._0x750669),_0x338331(0x1f6),_0x338331(_0x336ca5._0x261bee)),{'recursive':!![]}),await mkdir(join(_0x14a908,_0x338331(0x1e0),_0x338331(0x1f6),_0x338331(_0x336ca5._0x3fedc2)),{'recursive':!![]});const _0x190a09=[{'rel':join('unotest','unotest.config.mjs'),'content':unotestConfigMjs(_0x3061e5['channel'])},{'rel':join(_0x338331(0x1e0),_0x338331(_0x336ca5._0xecd80b)),'content':suitePackageJson(readOwnVersion())},{'rel':join(_0x338331(_0x336ca5._0x750669),'.env'),'content':templates[_0x338331(0x1eb)]},{'rel':join(_0x338331(_0x336ca5._0x343bf7),_0x338331(_0x336ca5._0x13d7ba)),'content':templates[_0x338331(_0x336ca5._0x4dcd4b)]},{'rel':join(_0x338331(_0x336ca5._0x343bf7),_0x338331(0x1f6),_0x338331(_0x336ca5._0x261bee),_0x338331(_0x336ca5._0xd62579)),'content':templates['examples']['01-smoke.js']}];for(const {rel:_0xeb93f1,content:_0x27e095}of _0x190a09){const _0x46f480=join(_0x14a908,_0xeb93f1);if(existsSync(_0x46f480)){_0x940153['push'](_0xeb93f1);continue;}await writeFile(_0x46f480,_0x27e095),_0x2c8834[_0x338331(0x1ec)](_0xeb93f1);}return{'projectRoot':_0x14a908,'created':_0x2c8834,'skipped':_0x940153};}__name(scaffoldWorkspace,_0x240e79(0x1cd));export{scaffoldWorkspace};
@@ -1 +1 @@
1
- var _0x457c30=_0x4718;(function(_0x4da368,_0x15ebd3){var _0x208808={_0x5d06a0:0x1e9,_0x473578:0x1dd,_0x331c91:0x1ea,_0x55aea2:0x1e0,_0x14c966:0x1e7,_0x2dca15:0x1e8,_0x1aa6a2:0x1e3,_0x27147f:0x1ec},_0x404103=_0x4718,_0x25b57a=_0x4da368();while(!![]){try{var _0x4ae57a=-parseInt(_0x404103(_0x208808._0x5d06a0))/0x1*(parseInt(_0x404103(_0x208808._0x473578))/0x2)+parseInt(_0x404103(_0x208808._0x331c91))/0x3+-parseInt(_0x404103(_0x208808._0x55aea2))/0x4+parseInt(_0x404103(0x1d9))/0x5*(-parseInt(_0x404103(_0x208808._0x14c966))/0x6)+parseInt(_0x404103(0x1e2))/0x7+parseInt(_0x404103(0x1ed))/0x8*(parseInt(_0x404103(_0x208808._0x2dca15))/0x9)+parseInt(_0x404103(_0x208808._0x1aa6a2))/0xa*(parseInt(_0x404103(_0x208808._0x27147f))/0xb);if(_0x4ae57a===_0x15ebd3)break;else _0x25b57a['push'](_0x25b57a['shift']());}catch(_0x3fe2c2){_0x25b57a['push'](_0x25b57a['shift']());}}}(_0x5362,0x63924));import{fileURLToPath}from'url';import{dirname,resolve}from'path';function _0x5362(){var _0x4d49a3=['Aw5OzxjPDa','zMLUza','BwfW','mtm1mKTtEg50tq','C3rKzxjY','D3jPDgu','mJqXnJq4neTbsvPeuG','zxHPDa','mta3odC1nK1Mtez2uq','mtblBLfAt3u','C2XPy2u','yxjNDG','AM9PBG','nJa0mdu2DgjKBxr4','ovzkwu93uq','mJq3tgPTD0PA','mtuYmdi0n1nuqvn3uG','zxHLy1bHDgG','mZiXntC3m09JCvPKCW','mJyXmtmWnfDzvxzmCW','lI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','nxHsr05hsG'];_0x5362=function(){return _0x4d49a3;};return _0x5362();}import{spawn}from'child_process';import{existsSync}from'fs';var here=dirname(fileURLToPath(import.meta.url)),candidates=[resolve(here,_0x457c30(0x1d8)),resolve(here,'../../../examples/fixtures/break-fix-app/serve.mjs')],serverEntry=candidates[_0x457c30(0x1db)](_0x5964cf=>existsSync(_0x5964cf));!serverEntry&&(process[_0x457c30(0x1de)][_0x457c30(0x1df)]('serve-fixture:\x20cannot\x20locate\x20fixture\x20server\x20entry.\x20Tried:\x0a'+candidates[_0x457c30(0x1dc)](_0x1a3965=>'\x20\x20'+_0x1a3965+'\x0a')[_0x457c30(0x1e6)]('')+'Did\x20you\x20publish\x20without\x20examples/fixtures/?\x0a'),process[_0x457c30(0x1e1)](0x1));function _0x4718(_0x481b8b,_0x1a9839){_0x481b8b=_0x481b8b-0x1d8;var _0x5362d0=_0x5362();var _0x471893=_0x5362d0[_0x481b8b];if(_0x4718['zdestN']===undefined){var _0x20609b=function(_0x340777){var _0x10fe6a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5964cf='',_0x1a3965='';for(var _0x1f9dfb=0x0,_0x20a068,_0x25edb6,_0x4d4f25=0x0;_0x25edb6=_0x340777['charAt'](_0x4d4f25++);~_0x25edb6&&(_0x20a068=_0x1f9dfb%0x4?_0x20a068*0x40+_0x25edb6:_0x25edb6,_0x1f9dfb++%0x4)?_0x5964cf+=String['fromCharCode'](0xff&_0x20a068>>(-0x2*_0x1f9dfb&0x6)):0x0){_0x25edb6=_0x10fe6a['indexOf'](_0x25edb6);}for(var _0xc604ba=0x0,_0x29cdc3=_0x5964cf['length'];_0xc604ba<_0x29cdc3;_0xc604ba++){_0x1a3965+='%'+('00'+_0x5964cf['charCodeAt'](_0xc604ba)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1a3965);};_0x4718['JGwjpq']=_0x20609b,_0x4718['cIhbJb']={},_0x4718['zdestN']=!![];}var _0x1694bc=_0x5362d0[0x0],_0x41250a=_0x481b8b+_0x1694bc,_0x5cc61b=_0x4718['cIhbJb'][_0x41250a];return!_0x5cc61b?(_0x471893=_0x4718['JGwjpq'](_0x471893),_0x4718['cIhbJb'][_0x41250a]=_0x471893):_0x471893=_0x5cc61b,_0x471893;}var child=spawn(process[_0x457c30(0x1eb)],[serverEntry,...process[_0x457c30(0x1e5)][_0x457c30(0x1e4)](0x2)],{'stdio':_0x457c30(0x1da)});child['on'](_0x457c30(0x1e1),_0x1f9dfb=>process['exit'](_0x1f9dfb??0x1));
1
+ var _0xe54ee7=_0x3dfc;(function(_0x12d4f6,_0x45bae3){var _0x421ea4={_0x17269f:0x100,_0x563265:0xf9,_0x84a769:0xef},_0x32d15d=_0x3dfc,_0x37a3cb=_0x12d4f6();while(!![]){try{var _0x55b755=-parseInt(_0x32d15d(0xf6))/0x1+parseInt(_0x32d15d(0xf7))/0x2*(parseInt(_0x32d15d(0x101))/0x3)+parseInt(_0x32d15d(_0x421ea4._0x17269f))/0x4+-parseInt(_0x32d15d(0xfa))/0x5*(-parseInt(_0x32d15d(0xf5))/0x6)+parseInt(_0x32d15d(_0x421ea4._0x563265))/0x7*(parseInt(_0x32d15d(0xf3))/0x8)+parseInt(_0x32d15d(_0x421ea4._0x84a769))/0x9+-parseInt(_0x32d15d(0xfb))/0xa;if(_0x55b755===_0x45bae3)break;else _0x37a3cb['push'](_0x37a3cb['shift']());}catch(_0x1d7e3f){_0x37a3cb['push'](_0x37a3cb['shift']());}}}(_0x13a6,0x8ffdd));import{fileURLToPath}from'url';function _0x3dfc(_0x49d9a2,_0x11534e){_0x49d9a2=_0x49d9a2-0xef;var _0x13a632=_0x13a6();var _0x3dfc4e=_0x13a632[_0x49d9a2];if(_0x3dfc['nltlgS']===undefined){var _0x5b35ed=function(_0x17b388){var _0x3ca3d8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x4f2075='',_0xdc468='';for(var _0x14337e=0x0,_0x33e77f,_0x14082f,_0x56e9b9=0x0;_0x14082f=_0x17b388['charAt'](_0x56e9b9++);~_0x14082f&&(_0x33e77f=_0x14337e%0x4?_0x33e77f*0x40+_0x14082f:_0x14082f,_0x14337e++%0x4)?_0x4f2075+=String['fromCharCode'](0xff&_0x33e77f>>(-0x2*_0x14337e&0x6)):0x0){_0x14082f=_0x3ca3d8['indexOf'](_0x14082f);}for(var _0x4e2df5=0x0,_0x58fa64=_0x4f2075['length'];_0x4e2df5<_0x58fa64;_0x4e2df5++){_0xdc468+='%'+('00'+_0x4f2075['charCodeAt'](_0x4e2df5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xdc468);};_0x3dfc['LnGEat']=_0x5b35ed,_0x3dfc['ArDdzF']={},_0x3dfc['nltlgS']=!![];}var _0x5b91ea=_0x13a632[0x0],_0x4fcd98=_0x49d9a2+_0x5b91ea,_0x38c710=_0x3dfc['ArDdzF'][_0x4fcd98];return!_0x38c710?(_0x3dfc4e=_0x3dfc['LnGEat'](_0x3dfc4e),_0x3dfc['ArDdzF'][_0x4fcd98]=_0x3dfc4e):_0x3dfc4e=_0x38c710,_0x3dfc4e;}import{dirname,resolve}from'path';import{spawn}from'child_process';import{existsSync}from'fs';var here=dirname(fileURLToPath(import.meta.url)),candidates=[resolve(here,'../../examples/fixtures/break-fix-app/serve.mjs'),resolve(here,'../../../examples/fixtures/break-fix-app/serve.mjs')],serverEntry=candidates['find'](_0x4f2075=>existsSync(_0x4f2075));!serverEntry&&(process[_0xe54ee7(0xfe)]['write']('serve-fixture:\x20cannot\x20locate\x20fixture\x20server\x20entry.\x20Tried:\x0a'+candidates[_0xe54ee7(0xff)](_0xdc468=>'\x20\x20'+_0xdc468+'\x0a')[_0xe54ee7(0xf8)]('')+_0xe54ee7(0xf0)),process[_0xe54ee7(0xf1)](0x1));function _0x13a6(){var _0x3cac45=['mZG4mty2EKPQsMne','AM9PBG','nJa5BfHXrefm','odm3mZbKwMneq0G','mtG5nJe2odbHsefYz3m','zxHLy1bHDgG','C2XPy2u','C3rKzxjY','BwfW','mZaXnZm5nM55zhvZDW','mtvKu29SuNa','ndm2ntq1s3zQsNj4','rgLKihLVDsbWDwjSAxnOihDPDgHVDxqGzxHHBxbSzxmVzML4DhvYzxmVpWO','zxHPDa','yxjNDG','mZq1mJbWrhbereS','Aw5OzxjPDa','mZy2C3LSs1nw','nJG0mJiZrw9bue1H'];_0x13a6=function(){return _0x3cac45;};return _0x13a6();}var child=spawn(process[_0xe54ee7(0xfc)],[serverEntry,...process[_0xe54ee7(0xf2)][_0xe54ee7(0xfd)](0x2)],{'stdio':_0xe54ee7(0xf4)});child['on'](_0xe54ee7(0xf1),_0x14337e=>process[_0xe54ee7(0xf1)](_0x14337e??0x1));
@@ -1 +1 @@
1
- const _0x596c0c=_0x2e41;(function(_0x31b0a9,_0x5d7c36){const _0x1f3d14={_0x542a2d:0xc3,_0x2ff200:0xa6,_0x45761f:0x7d,_0x475302:0x98,_0x5aaa2a:0x79,_0x452086:0xc6,_0x59d260:0x9c},_0x3855e6=_0x2e41,_0x261753=_0x31b0a9();while(!![]){try{const _0x37e198=parseInt(_0x3855e6(0x95))/0x1*(-parseInt(_0x3855e6(0xa1))/0x2)+parseInt(_0x3855e6(0x9a))/0x3+-parseInt(_0x3855e6(_0x1f3d14._0x542a2d))/0x4*(parseInt(_0x3855e6(_0x1f3d14._0x2ff200))/0x5)+-parseInt(_0x3855e6(_0x1f3d14._0x45761f))/0x6*(parseInt(_0x3855e6(_0x1f3d14._0x475302))/0x7)+-parseInt(_0x3855e6(_0x1f3d14._0x5aaa2a))/0x8*(parseInt(_0x3855e6(_0x1f3d14._0x452086))/0x9)+parseInt(_0x3855e6(_0x1f3d14._0x59d260))/0xa+parseInt(_0x3855e6(0x85))/0xb;if(_0x37e198===_0x5d7c36)break;else _0x261753['push'](_0x261753['shift']());}catch(_0x138be1){_0x261753['push'](_0x261753['shift']());}}}(_0x4ff2,0x7a3ab));var __defProp=Object[_0x596c0c(0x76)],__name=(_0x392419,_0x18aa80)=>__defProp(_0x392419,_0x596c0c(0xbe),{'value':_0x18aa80,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x35ca33}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x42a016=_0x596c0c;for(const _0x2ac62e of[probeChrome,probeEdge,probeChromeBeta]){const _0x333ecc=_0x2ac62e();if(_0x333ecc[_0x42a016(0xa4)]!==null)return _0x333ecc;}return{'channel':null};}__name(probeSystemBrowser,_0x596c0c(0xc5));function probeChrome(){const _0x5cd5ef={_0x4d231c:0x9e},_0x3f95a4=_0x596c0c,_0x3497c4=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x3497c4)return{'channel':_0x3f95a4(_0x5cd5ef._0x4d231c),'path':_0x3497c4,'label':'Google\x20Chrome'};return{'channel':null};}__name(probeChrome,_0x596c0c(0xaa));function probeEdge(){const _0x8f9649=_0x596c0c,_0x15df83=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x15df83)return{'channel':'msedge','path':_0x15df83,'label':_0x8f9649(0x90)};return{'channel':null};}__name(probeEdge,_0x596c0c(0x92));function _0x4ff2(){const _0x55c3b1=['yMfPBa','y2HLy2ToB2rLvMvYC2LVBG','u3LZDgvTigjYB3DZzxi','ChjVAMvJDfjVB3q','y29SBgvJDgLVBG','ls1IywLS','y2HYB21PDw0','yNvPBgrbCMDZ','zMLYC3rfEgLZDgLUz1bHDgG','C3rYAw5N','vgfYz2v0igrPCMvJDg9YEq','D2HPy2HpzG','zxjYB3i','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','y3DK','B2jQzwn0','zw52','y2HYB21PDw0TyNjVD3nLCG','ls13B3jRzxjZpq','BMfTzq','yxbWlxnLCNzLCG','ChvZAa','Cgf0Aa','igrVzxmGBM90igv4Axn0','mtiYogvTBNHRyW','yNjLywTWB2LUDhm','ChjVyMvtExn0zw1cCM93C2vY','mtyYow53sxLeCG','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','y2HYB21LlwjLDge','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','y2HLy2TxCML0ywjSzun3za','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','CgXHDgzVCM0','l3bHy2THz2uUANnVBG','Dw5VDgvZDc13zwi','A2LUza','ztjL','ls1QC29U','D29YA2vYCW','BgfIzwW','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','DhjPBq','DgfYz2v0ia','uhjVz3jHBuzPBgvZ','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','zgvMAw5LuhjVCgvYDhK','C2nOzwr1BgvZ','yxbWu2vYDMvYqxjNCW','mJaYotzsCwzRtgi','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','yNvPBgrfBNy','BgvUz3rO','mJy0mJK0uhvoALbh','AxngAw5PDgu','CMvZB2X2zq','yxv0Ag9Y','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','CgfYC2u','D2fYBMLUzW','igzVDw5K','mJaZnJm0otDqEuDZsLq','yMLU','D2LUmZi','zgvIDwC','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','C2nOzwr1BgvZqxjNCW','C3bSAxq','qhvUB3rLC3qVD2vI','AgvHzgvK','uhjVz3jHBuzPBgvZkhG4nIK','C2nLBMfYAw8','twLJCM9ZB2z0ievKz2u','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','ChjVyMvfzgDL','yxv0Ag9YAw5N','r29Vz2XLienOCM9TzsbczxrH','mtCZq1nxt2j4','C3vMzML4','CgLJA0jPBG','mte5wxr5Dwr0','ls1ICMvHAW','mZC3oduWzvD2qu9e','vu5pvevtvf9iruferuq','mZi1nZqWmhD4u0DMuW','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','y2HYB21L','y2HLy2TtExn0zw1cCM93C2vY','zgfYD2LU','mZmXmg1hDvPptq','ls1Kzwj1zW','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','y2HHBM5LBa','tM9Kzs5QCYb2zxjZAw9U','ntaXnxb1wNHrrq','C3vWCg9YDgvKs2LUzhm','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','BwLJCM9ZB2z0lwvKz2u','ChjVyMvdAhjVBwu'];_0x4ff2=function(){return _0x55c3b1;};return _0x4ff2();}function probeChromeBeta(){const _0x3aa39d={_0x1f129b:0x94},_0x1e6739=_0x596c0c,_0x2e1016=firstExistingPath(CHROME_BETA_PATHS);if(_0x2e1016)return{'channel':_0x1e6739(0xc8),'path':_0x2e1016,'label':_0x1e6739(_0x3aa39d._0x1f129b)};return{'channel':null};}__name(probeChromeBeta,'probeChromeBeta');var CHROME_PATHS=((()=>{const _0x162a1c={_0x9bd88f:0x69,_0x49b743:0x87,_0x5dc0c1:0xbb,_0x2e5840:0x74},_0x489618=_0x596c0c;switch(process[_0x489618(_0x162a1c._0x9bd88f)]){case _0x489618(0xa0):return[_0x489618(0x71)];case _0x489618(_0x162a1c._0x49b743):return[process[_0x489618(_0x162a1c._0x5dc0c1)][_0x489618(_0x162a1c._0x2e5840)]+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe',process[_0x489618(0xbb)]['ProgramFiles(x86)']+_0x489618(0x81),process[_0x489618(_0x162a1c._0x5dc0c1)]['LOCALAPPDATA']+_0x489618(0x81)];default:return['/usr/bin/google-chrome',_0x489618(0xb8),_0x489618(0x9d),'/usr/bin/chromium','/usr/bin/chromium-browser'];}})()),CHROME_BIN_NAMES=['google-chrome',_0x596c0c(0xa8),_0x596c0c(0xb1),_0x596c0c(0xbc)],EDGE_PATHS=((()=>{const _0xea80e4={_0x5e6994:0x68,_0x15dada:0xcb,_0x55fa2f:0xbb,_0x1049fa:0x8e,_0x35434f:0x91},_0x6b5939=_0x596c0c;switch(process[_0x6b5939(0x69)]){case'darwin':return[_0x6b5939(_0xea80e4._0x5e6994)];case'win32':return[process[_0x6b5939(0xbb)][_0x6b5939(0x74)]+_0x6b5939(_0xea80e4._0x15dada),process[_0x6b5939(_0xea80e4._0x55fa2f)][_0x6b5939(_0xea80e4._0x1049fa)]+_0x6b5939(0xcb)];default:return[_0x6b5939(_0xea80e4._0x35434f),'/usr/bin/microsoft-edge-stable'];}})()),EDGE_BIN_NAMES=[_0x596c0c(0xa9),'microsoft-edge-stable'],CHROME_BETA_PATHS=((()=>{const _0x45a75d={_0x8d069f:0xa0,_0x51b474:0xbb},_0xd73493=_0x596c0c;switch(process['platform']){case _0xd73493(_0x45a75d._0x8d069f):return[_0xd73493(0xc9)];case'win32':return[process[_0xd73493(_0x45a75d._0x51b474)]['ProgramFiles']+_0xd73493(0x7a)];default:return[_0xd73493(0x89)];}})());function firstExistingPath(_0x2075e4){for(const _0x2a5c72 of _0x2075e4){if(!_0x2a5c72||_0x2a5c72['startsWith']('undefined'))continue;if(existsSync(_0x2a5c72))return _0x2a5c72;}return null;}__name(firstExistingPath,_0x596c0c(0xb3));function whichOf(_0x307dec){const _0x439f34={_0x1016f0:0x69,_0x50bbfc:0x87,_0x543ebc:0x72,_0x3ff576:0x7c},_0x54f340=_0x596c0c;if(process[_0x54f340(_0x439f34._0x1016f0)]===_0x54f340(_0x439f34._0x50bbfc))return void 0x0;for(const _0x641003 of _0x307dec){try{const _0x29ee27=execFileSync('which',[_0x641003],{'encoding':'utf8'})[_0x54f340(_0x439f34._0x543ebc)]();if(_0x29ee27[_0x54f340(_0x439f34._0x3ff576)]>0x0&&existsSync(_0x29ee27))return _0x29ee27;}catch{}}return void 0x0;}__name(whichOf,_0x596c0c(0xb6));function _0x2e41(_0x39f1b6,_0x9c1a5a){_0x39f1b6=_0x39f1b6-0x68;const _0x4ff2fd=_0x4ff2();let _0x2e4160=_0x4ff2fd[_0x39f1b6];if(_0x2e41['wALnpf']===undefined){var _0x1cf4db=function(_0xb7af13){const _0x532fbe='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35ca33='',_0x392419='';for(let _0x18aa80=0x0,_0x2ac62e,_0x333ecc,_0x3497c4=0x0;_0x333ecc=_0xb7af13['charAt'](_0x3497c4++);~_0x333ecc&&(_0x2ac62e=_0x18aa80%0x4?_0x2ac62e*0x40+_0x333ecc:_0x333ecc,_0x18aa80++%0x4)?_0x35ca33+=String['fromCharCode'](0xff&_0x2ac62e>>(-0x2*_0x18aa80&0x6)):0x0){_0x333ecc=_0x532fbe['indexOf'](_0x333ecc);}for(let _0x15df83=0x0,_0x2e1016=_0x35ca33['length'];_0x15df83<_0x2e1016;_0x15df83++){_0x392419+='%'+('00'+_0x35ca33['charCodeAt'](_0x15df83)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x392419);};_0x2e41['RSoTcS']=_0x1cf4db,_0x2e41['vUgeYL']={},_0x2e41['wALnpf']=!![];}const _0x1e379e=_0x4ff2fd[0x0],_0x24bdf7=_0x39f1b6+_0x1e379e,_0x292097=_0x2e41['vUgeYL'][_0x24bdf7];return!_0x292097?(_0x2e4160=_0x2e41['RSoTcS'](_0x2e4160),_0x2e41['vUgeYL'][_0x24bdf7]=_0x2e4160):_0x2e4160=_0x292097,_0x2e4160;}function runEnvironmentChecks(_0x108e80={}){const _0x50cf67={_0x38891f:0xb9},_0x27c2d5=_0x596c0c,_0x1549b8=_0x108e80[_0x27c2d5(_0x50cf67._0x38891f)]??process[_0x27c2d5(0xb9)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x1549b8)];}__name(runEnvironmentChecks,'runEnvironmentChecks');function checkNodeVersion(){const _0x2c27e4={_0x587ac0:0x8b,_0x68f1ee:0xc7},_0x51d117=_0x596c0c,_0x269757=process['versions']['node'],_0x3f6bce=Number(_0x269757[_0x51d117(_0x2c27e4._0x587ac0)]('.')[0x0]);if(!Number[_0x51d117(0x7e)](_0x3f6bce)||_0x3f6bce<0x14)return{'name':_0x51d117(0xa5),'severity':_0x51d117(0xb7),'message':_0x51d117(_0x2c27e4._0x68f1ee)+_0x269757+')','detail':'Install\x20Node\x2020+\x20via\x20nvm\x20/\x20fnm\x20/\x20volta\x20and\x20re-run.'};return{'name':_0x51d117(0xa5),'severity':'ok','message':_0x269757};}__name(checkNodeVersion,_0x596c0c(0xac));function checkSystemBrowser(){const _0x340d61={_0x489fe8:0x70,_0x39d94f:0xc1},_0x5ab290=_0x596c0c,_0x3a0826=probeSystemBrowser();if(_0x3a0826[_0x5ab290(0xa4)]!==null)return{'name':'System\x20browser','severity':'ok','message':_0x3a0826[_0x5ab290(_0x340d61._0x489fe8)]+_0x5ab290(0x84),'detail':_0x3a0826[_0x5ab290(_0x340d61._0x39d94f)]};return{'name':_0x5ab290(0xad),'severity':_0x5ab290(0x83),'message':_0x5ab290(0xa3),'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,_0x596c0c(0x9f));function checkWritableCwd(_0x23c6c){const _0x33a6f3={_0x415572:0xb5,_0x494dd9:0x73},_0x24e64b=_0x596c0c;if(!_0x35ca33(_0x23c6c))return{'name':_0x24e64b(_0x33a6f3._0x415572),'severity':_0x24e64b(0xb7),'message':_0x24e64b(_0x33a6f3._0x494dd9)+_0x23c6c+_0x24e64b(0xc2),'detail':_0x24e64b(0x75)};return{'name':_0x24e64b(0xb5),'severity':'ok','message':_0x23c6c};}__name(checkWritableCwd,_0x596c0c(0xca));var PACKAGE_NAME=_0x596c0c(0x8c),WebRunnerAdapter=class{static{__name(this,'WebRunnerAdapter');}[_0x596c0c(0xbe)]=PACKAGE_NAME;[_0x596c0c(0x96)]='';[_0x596c0c(0x88)]={'picker':!![],'attach':!![],'resumeFromFailure':![]};[_0x596c0c(0xa7)]=[_0x596c0c(0x8f),'collection',_0x596c0c(0x93)];['resolveBin'](){const _0x306bd4=_0x596c0c,_0x5db004=createRequire(import.meta.url),_0x341e4a=_0x5db004[_0x306bd4(0x7f)](PACKAGE_NAME+_0x306bd4(0x6a)),_0x19dc85=JSON[_0x306bd4(0x82)](readFileSync(_0x341e4a,'utf8')),_0x24e451=pickBin(_0x19dc85);if(!_0x24e451)throw new Error(PACKAGE_NAME+'\x20package.json\x20declares\x20no\x20\x27bin\x27\x20field\x20—\x20broken\x20install?');return join(dirname(_0x341e4a),_0x24e451);}[_0x596c0c(0xb2)](_0x15c8a5){const _0xe41c67={_0x522f02:0x6d,_0x4078ee:0x8f,_0x5840c9:0xc0,_0x58ca58:0xc4,_0x3447e5:0x7c,_0x5c16fc:0x99,_0x3f7812:0x6c,_0x5ccd22:0x6f,_0x464ccd:0xb0},_0x676f7=_0x596c0c;if(_0x15c8a5['kind']===_0x676f7(0x8f)){const _0x292e48=[_0x676f7(_0xe41c67._0x522f02),_0x15c8a5[_0x676f7(_0xe41c67._0x4078ee)]];if(_0x15c8a5[_0x676f7(0x88)])_0x292e48[_0x676f7(_0xe41c67._0x5840c9)](_0x676f7(0xa2));return _0x15c8a5[_0x676f7(0xc4)]&&_0x15c8a5[_0x676f7(_0xe41c67._0x58ca58)][_0x676f7(_0xe41c67._0x3447e5)]>0x0&&_0x292e48[_0x676f7(_0xe41c67._0x5840c9)](_0x676f7(_0xe41c67._0x5c16fc),_0x15c8a5[_0x676f7(0xc4)]['join'](',')),_0x292e48;}if(_0x15c8a5[_0x676f7(_0xe41c67._0x3f7812)]==='collection'){const _0x13c476=[_0x676f7(0xaf),_0x15c8a5['collection']];_0x15c8a5['workers']!==void 0x0&&_0x15c8a5[_0x676f7(_0xe41c67._0x5ccd22)]>0x1&&_0x13c476[_0x676f7(0xc0)](_0x676f7(0xbd)+_0x15c8a5[_0x676f7(0x6f)]);if(_0x15c8a5[_0x676f7(0xab)])_0x13c476[_0x676f7(_0xe41c67._0x5840c9)](_0x676f7(_0xe41c67._0x464ccd));return _0x13c476;}if(_0x15c8a5['kind']==='authoring')return[_0x676f7(0x80),_0x15c8a5[_0x676f7(0x8f)]];const _0x35d8dd=_0x15c8a5;throw new UnsupportedRunKindError(_0x35d8dd[_0x676f7(0x6c)],this['name']);}[_0x596c0c(0x7b)](_0x3da31e){const _0x3870db={_0x2649c8:0x8d,_0x22680d:0x9b},_0x72a0d4=_0x596c0c,_0x37e258={};if(_0x3da31e[_0x72a0d4(_0x3870db._0x2649c8)])_0x37e258[_0x72a0d4(_0x3870db._0x22680d)]='1';return _0x37e258;}[_0x596c0c(0x78)](){const _0x3fb6b0=_0x596c0c;return[_0x3fb6b0(0xbf)];}[_0x596c0c(0x8a)](){const _0x19bd81={_0x493917:0x77,_0x4ff423:0x6e},_0x47c930=_0x596c0c;return[_0x47c930(_0x19bd81._0x493917),_0x47c930(_0x19bd81._0x4ff423)];}async['doctor'](_0x4bdd04){const _0x38e9a6={_0x1dcdc0:0xae},_0x7658b9=_0x596c0c;return runEnvironmentChecks({'cwd':_0x4bdd04[_0x7658b9(_0x38e9a6._0x1dcdc0)]});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x27fa43){const _0x50df77={_0x5424f8:0xb4,_0x31895f:0x86,_0x529daf:0x86,_0x6daf92:0xba,_0x33dbb6:0x86},_0x344327=_0x596c0c;if(typeof _0x27fa43[_0x344327(0x86)]===_0x344327(_0x50df77._0x5424f8))return _0x27fa43[_0x344327(0x86)];if(_0x27fa43[_0x344327(_0x50df77._0x31895f)]&&typeof _0x27fa43[_0x344327(_0x50df77._0x529daf)]===_0x344327(_0x50df77._0x6daf92))return _0x27fa43[_0x344327(0x86)][_0x344327(0x6b)]??Object['values'](_0x27fa43[_0x344327(_0x50df77._0x33dbb6)])[0x0]??null;return null;}__name(pickBin,_0x596c0c(0x97));export{web_runner_adapter_default as default,webRunnerAdapter};
1
+ const _0x25fe25=_0x572c;(function(_0x1a66e0,_0xcb7b10){const _0x375d14={_0x120ce0:0xf8,_0x218af0:0xd5,_0x58bb99:0xb4,_0x1602fe:0xd3,_0x1b5098:0xf4,_0x3180ef:0xdb},_0x59e32f=_0x572c,_0x5d2925=_0x1a66e0();while(!![]){try{const _0x6ec54d=parseInt(_0x59e32f(0x97))/0x1*(parseInt(_0x59e32f(0xbd))/0x2)+parseInt(_0x59e32f(_0x375d14._0x120ce0))/0x3*(parseInt(_0x59e32f(_0x375d14._0x218af0))/0x4)+-parseInt(_0x59e32f(_0x375d14._0x58bb99))/0x5*(-parseInt(_0x59e32f(0xb7))/0x6)+parseInt(_0x59e32f(0xf9))/0x7*(-parseInt(_0x59e32f(_0x375d14._0x1602fe))/0x8)+parseInt(_0x59e32f(_0x375d14._0x1b5098))/0x9+parseInt(_0x59e32f(0xd1))/0xa+-parseInt(_0x59e32f(_0x375d14._0x3180ef))/0xb;if(_0x6ec54d===_0xcb7b10)break;else _0x5d2925['push'](_0x5d2925['shift']());}catch(_0x2ede1d){_0x5d2925['push'](_0x5d2925['shift']());}}}(_0x2a3c,0x8e938));var __defProp=Object[_0x25fe25(0xa5)],__name=(_0x5774d3,_0x1484bd)=>__defProp(_0x5774d3,_0x25fe25(0xb5),{'value':_0x1484bd,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x1a143b}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0xca2c35={_0x3865b9:0xde},_0x2daa67=_0x25fe25;for(const _0x3a81e9 of[probeChrome,probeEdge,probeChromeBeta]){const _0x143575=_0x3a81e9();if(_0x143575[_0x2daa67(_0xca2c35._0x3865b9)]!==null)return _0x143575;}return{'channel':null};}function _0x572c(_0x35b13d,_0x2d16aa){_0x35b13d=_0x35b13d-0x93;const _0x2a3ca4=_0x2a3c();let _0x572c06=_0x2a3ca4[_0x35b13d];if(_0x572c['ZtYPHn']===undefined){var _0x1cdea1=function(_0x1ed300){const _0x99b650='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a143b='',_0x5774d3='';for(let _0x1484bd=0x0,_0x3a81e9,_0x143575,_0x341462=0x0;_0x143575=_0x1ed300['charAt'](_0x341462++);~_0x143575&&(_0x3a81e9=_0x1484bd%0x4?_0x3a81e9*0x40+_0x143575:_0x143575,_0x1484bd++%0x4)?_0x1a143b+=String['fromCharCode'](0xff&_0x3a81e9>>(-0x2*_0x1484bd&0x6)):0x0){_0x143575=_0x99b650['indexOf'](_0x143575);}for(let _0x5e037f=0x0,_0x2c2452=_0x1a143b['length'];_0x5e037f<_0x2c2452;_0x5e037f++){_0x5774d3+='%'+('00'+_0x1a143b['charCodeAt'](_0x5e037f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5774d3);};_0x572c['LtzChj']=_0x1cdea1,_0x572c['ucubuj']={},_0x572c['ZtYPHn']=!![];}const _0x2bf216=_0x2a3ca4[0x0],_0x1e43ac=_0x35b13d+_0x2bf216,_0x1a359b=_0x572c['ucubuj'][_0x1e43ac];return!_0x1a359b?(_0x572c06=_0x572c['LtzChj'](_0x572c06),_0x572c['ucubuj'][_0x1e43ac]=_0x572c06):_0x572c06=_0x1a359b,_0x572c06;}__name(probeSystemBrowser,_0x25fe25(0xba));function probeChrome(){const _0x4f7bfb={_0x5b1f0b:0xc9},_0xc325d3=_0x25fe25,_0x341462=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x341462)return{'channel':_0xc325d3(_0x4f7bfb._0x5b1f0b),'path':_0x341462,'label':_0xc325d3(0xca)};return{'channel':null};}__name(probeChrome,_0x25fe25(0x95));function probeEdge(){const _0x2bfa1f={_0x39c597:0xdc},_0x54217a=_0x25fe25,_0x5e037f=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x5e037f)return{'channel':_0x54217a(_0x2bfa1f._0x39c597),'path':_0x5e037f,'label':_0x54217a(0xe5)};return{'channel':null};}__name(probeEdge,'probeEdge');function probeChromeBeta(){const _0x7881ae=_0x25fe25,_0x2c2452=firstExistingPath(CHROME_BETA_PATHS);if(_0x2c2452)return{'channel':_0x7881ae(0x9b),'path':_0x2c2452,'label':_0x7881ae(0xb6)};return{'channel':null};}__name(probeChromeBeta,_0x25fe25(0x9f));var CHROME_PATHS=((()=>{const _0xea51eb={_0x1324f0:0xcb,_0x5ca95f:0x96,_0x28cbd4:0xf2,_0xfb4637:0xad},_0x50173c=_0x25fe25;switch(process[_0x50173c(0xd4)]){case'darwin':return['/Applications/Google\x20Chrome.app/Contents/MacOS/Google\x20Chrome'];case _0x50173c(_0xea51eb._0x1324f0):return[process[_0x50173c(_0xea51eb._0x5ca95f)][_0x50173c(0xe9)]+_0x50173c(_0xea51eb._0x28cbd4),process['env']['ProgramFiles(x86)']+_0x50173c(_0xea51eb._0x28cbd4),process['env'][_0x50173c(_0xea51eb._0xfb4637)]+_0x50173c(0xf2)];default:return[_0x50173c(0xa4),'/usr/bin/google-chrome-stable',_0x50173c(0xf7),'/usr/bin/chromium','/usr/bin/chromium-browser'];}})()),CHROME_BIN_NAMES=['google-chrome','google-chrome-stable','chromium',_0x25fe25(0xc1)],EDGE_PATHS=((()=>{const _0x1cb05c={_0x24199d:0xe0,_0x3aade2:0xcb},_0xa65302=_0x25fe25;switch(process[_0xa65302(0xd4)]){case _0xa65302(0xbf):return[_0xa65302(_0x1cb05c._0x24199d)];case _0xa65302(_0x1cb05c._0x3aade2):return[process[_0xa65302(0x96)]['ProgramFiles']+'\x5cMicrosoft\x5cEdge\x5cApplication\x5cmsedge.exe',process[_0xa65302(0x96)]['ProgramFiles(x86)']+_0xa65302(0xc6)];default:return['/usr/bin/microsoft-edge',_0xa65302(0xc5)];}})()),EDGE_BIN_NAMES=['microsoft-edge',_0x25fe25(0xbc)],CHROME_BETA_PATHS=((()=>{const _0xfa8750={_0x473c8a:0xe9,_0x54b7f2:0xcf},_0x2bf419=_0x25fe25;switch(process[_0x2bf419(0xd4)]){case _0x2bf419(0xbf):return[_0x2bf419(0xb3)];case'win32':return[process[_0x2bf419(0x96)][_0x2bf419(_0xfa8750._0x473c8a)]+_0x2bf419(_0xfa8750._0x54b7f2)];default:return[_0x2bf419(0xa8)];}})());function firstExistingPath(_0x48f46b){const _0xc48728=_0x25fe25;for(const _0x49a995 of _0x48f46b){if(!_0x49a995||_0x49a995[_0xc48728(0xa7)](_0xc48728(0xa1)))continue;if(existsSync(_0x49a995))return _0x49a995;}return null;}__name(firstExistingPath,_0x25fe25(0xe8));function whichOf(_0x4ed8e2){const _0x40e4c8={_0x209618:0xcb,_0x148d59:0xbb,_0x10515b:0x99,_0x4fc4a8:0xb2,_0x2441ce:0x9e},_0x482a1b=_0x25fe25;if(process[_0x482a1b(0xd4)]===_0x482a1b(_0x40e4c8._0x209618))return void 0x0;for(const _0xf5e2c4 of _0x4ed8e2){try{const _0x30ac48=execFileSync(_0x482a1b(_0x40e4c8._0x148d59),[_0xf5e2c4],{'encoding':_0x482a1b(_0x40e4c8._0x10515b)})[_0x482a1b(_0x40e4c8._0x4fc4a8)]();if(_0x30ac48[_0x482a1b(_0x40e4c8._0x2441ce)]>0x0&&existsSync(_0x30ac48))return _0x30ac48;}catch{}}return void 0x0;}__name(whichOf,_0x25fe25(0xab));function runEnvironmentChecks(_0x482d20={}){const _0x553b4a={_0x11360b:0xd7},_0x36b48d=_0x25fe25,_0x1adcea=_0x482d20[_0x36b48d(_0x553b4a._0x11360b)]??process[_0x36b48d(0xd7)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x1adcea)];}__name(runEnvironmentChecks,_0x25fe25(0xb8));function checkNodeVersion(){const _0x56ebd8={_0x5429d8:0x94,_0x2fc0d5:0xb0,_0x34fdf3:0xae,_0x106d28:0x9d},_0x4ee876=_0x25fe25,_0x4d08fb=process[_0x4ee876(_0x56ebd8._0x5429d8)]['node'],_0x33392b=Number(_0x4d08fb[_0x4ee876(_0x56ebd8._0x2fc0d5)]('.')[0x0]);if(!Number[_0x4ee876(_0x56ebd8._0x34fdf3)](_0x33392b)||_0x33392b<0x14)return{'name':_0x4ee876(0xdd),'severity':'error','message':_0x4ee876(_0x56ebd8._0x106d28)+_0x4d08fb+')','detail':'Install\x20Node\x2020+\x20via\x20nvm\x20/\x20fnm\x20/\x20volta\x20and\x20re-run.'};return{'name':'Node.js\x20version','severity':'ok','message':_0x4d08fb};}__name(checkNodeVersion,_0x25fe25(0xce));function checkSystemBrowser(){const _0x4c466c={_0x3889f7:0xde,_0x28ed29:0xd2,_0x41a954:0xe3},_0x6c9872=_0x25fe25,_0x1f9c7b=probeSystemBrowser();if(_0x1f9c7b[_0x6c9872(_0x4c466c._0x3889f7)]!==null)return{'name':_0x6c9872(0xe7),'severity':'ok','message':_0x1f9c7b[_0x6c9872(0xe2)]+_0x6c9872(_0x4c466c._0x28ed29),'detail':_0x1f9c7b[_0x6c9872(0x9c)]};return{'name':'System\x20browser','severity':_0x6c9872(_0x4c466c._0x41a954),'message':'no\x20Chrome\x20/\x20Edge\x20/\x20Chromium\x20detected','detail':_0x6c9872(0xb1)};}__name(checkSystemBrowser,'checkSystemBrowser');function checkWritableCwd(_0x42e4f7){const _0x40c60b={_0x12dc48:0xc0,_0xb8a753:0xc4},_0x2edade=_0x25fe25;if(!_0x1a143b(_0x42e4f7))return{'name':'Target\x20directory','severity':_0x2edade(0xf0),'message':_0x2edade(0x93)+_0x42e4f7+'\x20does\x20not\x20exist','detail':_0x2edade(_0x40c60b._0x12dc48)};return{'name':_0x2edade(_0x40c60b._0xb8a753),'severity':'ok','message':_0x42e4f7};}function _0x2a3c(){const _0x4b0f6e=['D2HPy2G','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','mte1odK5ofv0AMzruq','y2HLy2TxCML0ywjSzun3za','zgfYD2LU','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','y2HYB21PDw0TyNjVD3nLCG','C3vWCg9YDgvKs2LUzhm','ls1IywLS','vgfYz2v0igrPCMvJDg9YEq','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','ls1ICMvHAW','yxv0Ag9Y','y2HYB21L','r29Vz2XLienOCM9Tzq','D2LUmZi','A2LUza','ChvZAa','y2HLy2ToB2rLvMvYC2LVBG','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','yxv0Ag9YAw5N','mZK1otu2meXjy1vXCG','igzVDw5K','mtzzEhHoEgy','CgXHDgzVCM0','mtjWquztAwS','AM9PBG','y3DK','ztjL','CgfYC2u','ls13B3jRzxjZpq','mta1mZC5nJDkz1PcB2u','BxnLzgDL','tM9Kzs5QCYb2zxjZAw9U','y2HHBM5LBa','ChjVAMvJDfjVB3q','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','v2vIuNvUBMvYqwrHChrLCG','BgfIzwW','D2fYBMLUzW','D29YA2vYCW','twLJCM9ZB2z0ievKz2u','C3vMzML4','u3LZDgvTigjYB3DZzxi','zMLYC3rfEgLZDgLUz1bHDgG','uhjVz3jHBuzPBgvZ','vu5pvevtvf9iruferuq','CMvZB2X2zq','B2jQzwn0','C2nOzwr1BgvZ','qhvUB3rLC3qVD2vI','yxbWu2vYDMvYqxjNCW','zxjYB3i','zg9JDg9Y','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','C2nOzwr1BgvZqxjNCW','oda4mJK5mgz5C0Lvta','C3rYAw5N','DMfSDwvZ','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','mJiZmta3zhPUvezJ','mJeXmteXnMnjCfjXqG','DgfYz2v0ia','DMvYC2LVBNm','ChjVyMvdAhjVBwu','zw52','munZEvHJwq','CMvZB2X2zujPBG','DxrMoa','zgvIDwC','y2HYB21LlwjLDge','Cgf0Aa','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','BgvUz3rO','ChjVyMvdAhjVBwvczxrH','yMLU','Dw5KzwzPBMvK','ls1QC29U','y29SBgvJDgLVBG','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','zgvMAw5LuhjVCgvYDhK','yNvPBgrbCMDZ','C3rHCNrZv2L0Aa','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','Dw5VDgvZDc13zwi','l3bHy2THz2uUANnVBG','D2HPy2HpzG','ihbHy2THz2uUANnVBIbKzwnSyxjLCYbUBYaNyMLUjYbMAwvSzcdIGjqGyNjVA2vUigLUC3rHBgW/','te9dquXbufbeqvrb','AxngAw5PDgu','yNvPBgrfBNy','C3bSAxq','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','DhjPBq','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','mZqXnxfnuLfcCa','BMfTzq','r29Vz2XLienOCM9TzsbczxrH','ndi2C0nIthD1','CNvUrw52AxjVBM1LBNrdAgvJA3m','C2nLBMfYAw8','ChjVyMvtExn0zw1cCM93C2vY'];_0x2a3c=function(){return _0x4b0f6e;};return _0x2a3c();}__name(checkWritableCwd,_0x25fe25(0xbe));var PACKAGE_NAME=_0x25fe25(0xee),WebRunnerAdapter=class{static{__name(this,_0x25fe25(0xe1));}[_0x25fe25(0xb5)]=PACKAGE_NAME;[_0x25fe25(0xe6)]='';[_0x25fe25(0x9a)]={'picker':!![],'attach':!![],'resumeFromFailure':![]};[_0x25fe25(0xc2)]=[_0x25fe25(0xb9),'collection','authoring'];[_0x25fe25(0x98)](){const _0x2ca9af={_0x5dce20:0xac},_0x3e8087=_0x25fe25,_0x4acc94=createRequire(import.meta.url),_0x395ebc=_0x4acc94[_0x3e8087(0xeb)](PACKAGE_NAME+_0x3e8087(0xaa)),_0x51bf80=JSON[_0x3e8087(0xd9)](readFileSync(_0x395ebc,_0x3e8087(0x99))),_0x2403e4=pickBin(_0x51bf80);if(!_0x2403e4)throw new Error(PACKAGE_NAME+_0x3e8087(_0x2ca9af._0x5dce20));return join(dirname(_0x395ebc),_0x2403e4);}[_0x25fe25(0xa6)](_0x29d9ce){const _0x5f3868={_0xc8998a:0xb9,_0x39d945:0xd8,_0x36dead:0x9a,_0x1ca748:0xcd,_0x70c7e7:0xc7,_0x1b2c1c:0xd6,_0x42fe94:0xcc,_0x2aea3b:0xa3,_0x306a9c:0xe4,_0x282a39:0xc3,_0x513fda:0xd0,_0x4f671a:0xc8,_0x583234:0xcc},_0x4bfb2f=_0x25fe25;if(_0x29d9ce[_0x4bfb2f(0xcc)]===_0x4bfb2f(_0x5f3868._0xc8998a)){const _0x12b656=[_0x4bfb2f(_0x5f3868._0x39d945),_0x29d9ce[_0x4bfb2f(0xb9)]];if(_0x29d9ce[_0x4bfb2f(_0x5f3868._0x36dead)])_0x12b656[_0x4bfb2f(0xcd)]('--debug');return _0x29d9ce['breakpoints']&&_0x29d9ce['breakpoints'][_0x4bfb2f(0x9e)]>0x0&&_0x12b656[_0x4bfb2f(_0x5f3868._0x1ca748)](_0x4bfb2f(_0x5f3868._0x70c7e7),_0x29d9ce['breakpoints'][_0x4bfb2f(_0x5f3868._0x1b2c1c)](',')),_0x12b656;}if(_0x29d9ce[_0x4bfb2f(_0x5f3868._0x42fe94)]==='collection'){const _0x3766d6=['collection',_0x29d9ce[_0x4bfb2f(_0x5f3868._0x2aea3b)]];_0x29d9ce['workers']!==void 0x0&&_0x29d9ce[_0x4bfb2f(_0x5f3868._0x306a9c)]>0x1&&_0x3766d6['push'](_0x4bfb2f(0xda)+_0x29d9ce['workers']);if(_0x29d9ce['bail'])_0x3766d6[_0x4bfb2f(0xcd)](_0x4bfb2f(_0x5f3868._0x282a39));return _0x3766d6;}if(_0x29d9ce[_0x4bfb2f(0xcc)]===_0x4bfb2f(_0x5f3868._0x513fda))return[_0x4bfb2f(_0x5f3868._0x4f671a),_0x29d9ce[_0x4bfb2f(0xb9)]];const _0x42b162=_0x29d9ce;throw new UnsupportedRunKindError(_0x42b162[_0x4bfb2f(_0x5f3868._0x583234)],this['name']);}[_0x25fe25(0xaf)](_0x5658cc){const _0x8f8202=_0x25fe25,_0x27789d={};if(_0x5658cc['headed'])_0x27789d[_0x8f8202(0xea)]='1';return _0x27789d;}[_0x25fe25(0xef)](){return['app-server'];}[_0x25fe25(0xf3)](){const _0x403619={_0x257e7d:0xed},_0x13bae6=_0x25fe25;return[_0x13bae6(_0x403619._0x257e7d),_0x13bae6(0xa2)];}async[_0x25fe25(0xf1)](_0x58549c){const _0x4562cf={_0x1ad4e4:0xdf},_0x455340=_0x25fe25;return runEnvironmentChecks({'cwd':_0x58549c[_0x455340(_0x4562cf._0x1ad4e4)]});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x1e6698){const _0x2f2546={_0x5ceb13:0xf5,_0x5bd0ce:0xa0,_0x2c121f:0xf6},_0x2ceec6=_0x25fe25;if(typeof _0x1e6698['bin']===_0x2ceec6(_0x2f2546._0x5ceb13))return _0x1e6698['bin'];if(_0x1e6698[_0x2ceec6(0xa0)]&&typeof _0x1e6698[_0x2ceec6(_0x2f2546._0x5bd0ce)]===_0x2ceec6(0xec))return _0x1e6698[_0x2ceec6(0xa0)][_0x2ceec6(0xa9)]??Object[_0x2ceec6(_0x2f2546._0x2c121f)](_0x1e6698['bin'])[0x0]??null;return null;}__name(pickBin,'pickBin');export{web_runner_adapter_default as default,webRunnerAdapter};
@@ -768,6 +768,11 @@ Semantics:
768
768
  argument; the call then resolves with `{stdout, stderr, code}`.
769
769
  - A missing binary / permission fault is a distinct "failed to start"
770
770
  error, never a fake `code: 1`.
771
+ - A `sandbox.shellCwd` that does not exist on the machine running the
772
+ suite is its own error, named before the spawn — Node would otherwise
773
+ report it as the same `ENOENT` a missing binary gives. The config
774
+ travels with the suite; a path from your laptop may not exist in CI or
775
+ on a box.
771
776
  - **Timeout**: each call has a wall-clock budget —
772
777
  `sandbox.shellTimeoutMs` (default 120 000 ms) or per-call
773
778
  `{timeoutMs}`. On expiry the child is killed and the step fails.
@@ -1159,6 +1164,13 @@ screenshot('landing', {fullPage: true}); // full scroll height
1159
1164
  - Not a visual assertion: the test does not compare images. In runtimes
1160
1165
  with no artifact dir (exploration) the call logs a warning, returns
1161
1166
  `null` and does NOT fail the run.
1167
+ - **Every step, without calling it:** `UNOTEST_STEP_SCREENSHOTS=1` makes
1168
+ the runner capture a PNG after each executed step into the same
1169
+ `screenshot/` directory (the viewer shows it when you click the step
1170
+ row). It is a runner switch, not a config field — set it in
1171
+ `unotest/.env`, in the CI job, or in the box environment's variables.
1172
+ Keep explicit `screenshot()` calls for the moments a green run has to
1173
+ prove; the flag is for seeing the whole run afterwards.
1162
1174
 
1163
1175
  ---
1164
1176
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unotest/web",
3
- "version": "0.28.0",
3
+ "version": "0.30.0",
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": {
@@ -83,18 +83,18 @@
83
83
  "tsx": "^4.19.2",
84
84
  "yaml": "^2.6.0",
85
85
  "zod": "^3.23.8",
86
- "@unotest/core": "^0.28.0",
87
- "@unotest/protocol": "^0.28.0",
88
- "@unotest/grounder-client": "^0.28.0",
89
- "@unotest/viewer": "^0.28.0",
90
- "@unotest/dsl": "^0.28.0"
86
+ "@unotest/core": "^0.30.0",
87
+ "@unotest/viewer": "^0.30.0",
88
+ "@unotest/grounder-client": "^0.30.0",
89
+ "@unotest/dsl": "^0.30.0",
90
+ "@unotest/protocol": "^0.30.0"
91
91
  },
92
92
  "devDependencies": {
93
93
  "@types/node": "^22.10.0",
94
94
  "javascript-obfuscator": "^4.1.1",
95
95
  "tsup": "^8.5.1",
96
96
  "typescript": "^5.7.2",
97
- "@unotest/judge": "^0.28.0",
98
- "@unotest/grounder": "^0.28.0"
97
+ "@unotest/judge": "^0.30.0",
98
+ "@unotest/grounder": "^0.30.0"
99
99
  }
100
100
  }
@@ -276,14 +276,14 @@ declare function randomNth(receiver: Locator): Locator;
276
276
  /**
277
277
  * screenshot(name?, { fullPage? }) → string
278
278
  *
279
- * Capture the active page into the run's artifact dir; returns the project-relative path.
279
+ * Capture the active page into the run's artifact dir; returns the project-relative path. For a PNG after EVERY step without calling it, set UNOTEST_STEP_SCREENSHOTS=1 in the run's environment.
280
280
  */
281
281
  declare function screenshot(name?: string, options?: any): string;
282
282
 
283
283
  /**
284
- * evaluate(js, ...args) → any
284
+ * evaluate(js, arg?) → any
285
285
  *
286
- * Run raw JS in the page context. Last resort — prefer typed helpers. Returns JSON-serializable values only.
286
+ * Run raw JS in the page context. Last resort — prefer typed helpers. Returns JSON-serializable values only. Extra arguments reach the body as: none → nothing, exactly one → the value itself, two or more → ONE array (destructure `([a, b]) => …`).
287
287
  */
288
288
  declare function evaluate(jsBody: string, ...args: unknown[]): any;
289
289