@unotest/web 0.11.0 → 0.12.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
- function _0x5f21(_0x1d7224,_0x1aa1fa){_0x1d7224=_0x1d7224-0x186;const _0x92880c=_0x9288();let _0x5f2129=_0x92880c[_0x1d7224];if(_0x5f21['HmbwBi']===undefined){var _0x5c26a1=function(_0x3304ef){const _0x4a31b1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24650c='',_0xd5a10d='';for(let _0x2350b9=0x0,_0x70ac1c,_0x37d184,_0x5c4835=0x0;_0x37d184=_0x3304ef['charAt'](_0x5c4835++);~_0x37d184&&(_0x70ac1c=_0x2350b9%0x4?_0x70ac1c*0x40+_0x37d184:_0x37d184,_0x2350b9++%0x4)?_0x24650c+=String['fromCharCode'](0xff&_0x70ac1c>>(-0x2*_0x2350b9&0x6)):0x0){_0x37d184=_0x4a31b1['indexOf'](_0x37d184);}for(let _0x1babfa=0x0,_0x39ed32=_0x24650c['length'];_0x1babfa<_0x39ed32;_0x1babfa++){_0xd5a10d+='%'+('00'+_0x24650c['charCodeAt'](_0x1babfa)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xd5a10d);};_0x5f21['qoWtft']=_0x5c26a1,_0x5f21['JcQlWh']={},_0x5f21['HmbwBi']=!![];}const _0x44852a=_0x92880c[0x0],_0x2c7dd3=_0x1d7224+_0x44852a,_0xec3923=_0x5f21['JcQlWh'][_0x2c7dd3];return!_0xec3923?(_0x5f2129=_0x5f21['qoWtft'](_0x5f2129),_0x5f21['JcQlWh'][_0x2c7dd3]=_0x5f2129):_0x5f2129=_0xec3923,_0x5f2129;}const _0x3ee982=_0x5f21;(function(_0x2ce18c,_0x2c08d4){const _0x4423db={_0x12e61c:0x197,_0x124743:0x18c,_0x567e3b:0x196,_0x10d6df:0x19f},_0x163100=_0x5f21,_0x30ad7a=_0x2ce18c();while(!![]){try{const _0xf10bb0=parseInt(_0x163100(0x198))/0x1*(parseInt(_0x163100(0x194))/0x2)+parseInt(_0x163100(0x19b))/0x3*(-parseInt(_0x163100(_0x4423db._0x12e61c))/0x4)+-parseInt(_0x163100(0x193))/0x5+parseInt(_0x163100(0x191))/0x6*(-parseInt(_0x163100(_0x4423db._0x124743))/0x7)+parseInt(_0x163100(0x18b))/0x8+-parseInt(_0x163100(0x18d))/0x9*(parseInt(_0x163100(_0x4423db._0x567e3b))/0xa)+parseInt(_0x163100(_0x4423db._0x10d6df))/0xb*(parseInt(_0x163100(0x189))/0xc);if(_0xf10bb0===_0x2c08d4)break;else _0x30ad7a['push'](_0x30ad7a['shift']());}catch(_0x1d74c9){_0x30ad7a['push'](_0x30ad7a['shift']());}}}(_0x9288,0xed073));var __defProp=Object[_0x3ee982(0x18e)],__name=(_0x24650c,_0xd5a10d)=>__defProp(_0x24650c,_0x3ee982(0x187),{'value':_0xd5a10d,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';import{join}from'path';var templates={'scenarioTemplate':_0x3ee982(0x19a),'agentsMd':_0x3ee982(0x192),'claudeMdBody':_0x3ee982(0x186),'examples':{'01-smoke.js':_0x3ee982(0x1a2),'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':_0x3ee982(0x1a1),'envExample':_0x3ee982(0x199)};function unotestConfigMjs(_0x2350b9){const _0x1916e7={_0x75644f:0x190,_0x160810:0x1a0,_0x1297c1:0x1a3,_0x33aacf:0x19d},_0x22ebdd=_0x3ee982,_0x70ac1c=_0x2350b9===void 0x0?_0x22ebdd(_0x1916e7._0x75644f):'\x20\x20channel:\x20'+JSON[_0x22ebdd(_0x1916e7._0x160810)](_0x2350b9)+',';return _0x22ebdd(_0x1916e7._0x1297c1)+_0x70ac1c+_0x22ebdd(_0x1916e7._0x33aacf);}function _0x9288(){const _0x2279a1=['nfjXuxzrra','n1bQshrPva','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','nta4ndG1m1rnD2XyqG','y2HHBM5LBa','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','mdeTC21VA2uUANm','ndy5mte3EgXsA2j3','C3rYAw5NAwz5','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','zw52rxHHBxbSzq','lMvUDG','ztjL','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','BMfTzq','C2nHzMzVBgrxB3jRC3bHy2u','mtiXmNrdsvDXza','ChvZAa','mtqXotmZnMPRzg9PCW','mZqZsxbHBejv','ow5zqwfkBa','zgvMAw5LuhjVCgvYDhK','Dw5VDgvZDa','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','mtKZotyYCvjHzhHI','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','mJC0nta5me93tePrEq','mJCWnty2z0nMA0D4','zxHHBxbSzxm','nJmYodG2merhAgLKBW'];_0x9288=function(){return _0x2279a1;};return _0x9288();}__name(unotestConfigMjs,'unotestConfigMjs');async function scaffoldWorkspace(_0x37d184,_0x5c4835={}){const _0x4b4373={_0x19f125:0x195,_0x1171a1:0x1a6,_0x4194bf:0x1a5,_0x6c7795:0x18f,_0x5bfd45:0x19e},_0x4818dd=_0x3ee982,_0x1babfa=[],_0x39ed32=[];await mkdir(join(_0x37d184,'unotest',_0x4818dd(0x1a6),_0x4818dd(_0x4b4373._0x19f125)),{'recursive':!![]}),await mkdir(join(_0x37d184,'unotest',_0x4818dd(_0x4b4373._0x1171a1),'_helpers'),{'recursive':!![]});const _0x20d599=[{'rel':'unotest.config.mjs','content':unotestConfigMjs(_0x5c4835[_0x4818dd(0x19c)])},{'rel':join('unotest',_0x4818dd(_0x4b4373._0x4194bf)),'content':templates[_0x4818dd(0x1a4)]},{'rel':join(_0x4818dd(_0x4b4373._0x6c7795),_0x4818dd(0x1a6),_0x4818dd(_0x4b4373._0x19f125),'01-smoke.js'),'content':templates['examples'][_0x4818dd(_0x4b4373._0x5bfd45)]}];for(const {rel:_0x24a0ad,content:_0x2eb32c}of _0x20d599){const _0xd08239=join(_0x37d184,_0x24a0ad);if(existsSync(_0xd08239)){_0x39ed32[_0x4818dd(0x18a)](_0x24a0ad);continue;}await writeFile(_0xd08239,_0x2eb32c),_0x1babfa[_0x4818dd(0x18a)](_0x24a0ad);}return{'projectRoot':_0x37d184,'created':_0x1babfa,'skipped':_0x39ed32};}__name(scaffoldWorkspace,_0x3ee982(0x188));export{scaffoldWorkspace};
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 +1 @@
1
- var _0x53da3f=_0x52b6;(function(_0x5d12c5,_0x1b5c90){var _0x1ed404={_0x260e12:0xb7,_0x3d2170:0xbb,_0x5a60e3:0xbf,_0x2b39cd:0xb2,_0x4ac6ee:0xc5,_0x37e103:0xc4,_0x4b0aee:0xbd},_0x2c93ae=_0x52b6,_0x1dad45=_0x5d12c5();while(!![]){try{var _0x4b0c8e=parseInt(_0x2c93ae(0xb9))/0x1*(parseInt(_0x2c93ae(0xc3))/0x2)+parseInt(_0x2c93ae(_0x1ed404._0x260e12))/0x3+-parseInt(_0x2c93ae(_0x1ed404._0x3d2170))/0x4*(parseInt(_0x2c93ae(_0x1ed404._0x5a60e3))/0x5)+-parseInt(_0x2c93ae(_0x1ed404._0x2b39cd))/0x6*(-parseInt(_0x2c93ae(_0x1ed404._0x4ac6ee))/0x7)+parseInt(_0x2c93ae(0xb4))/0x8*(parseInt(_0x2c93ae(0xb3))/0x9)+-parseInt(_0x2c93ae(_0x1ed404._0x37e103))/0xa*(-parseInt(_0x2c93ae(_0x1ed404._0x4b0aee))/0xb)+-parseInt(_0x2c93ae(0xc8))/0xc;if(_0x4b0c8e===_0x1b5c90)break;else _0x1dad45['push'](_0x1dad45['shift']());}catch(_0x5a95f5){_0x1dad45['push'](_0x1dad45['shift']());}}}(_0x5471,0x68aac));import{fileURLToPath}from'url';import{dirname,resolve}from'path';import{spawn}from'child_process';function _0x5471(){var _0x22d017=['D3jPDgu','mZvnvvPwAee','zMLUza','lI4VlI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','zxHLy1bHDgG','mJbACK9HC3e','mtCWCfjisM1P','mZa1mdz5C21RELi','C2vYDMuTzML4DhvYztOGy2fUBM90igXVy2f0zsbMAxH0DxjLihnLCNzLCIbLBNrYEs4GvhjPzwq6cG','C3rKzxjY','mtGZmZCYmJrqqLjZshi','yxjNDG','mtG2BvHbrxvu','oxbdsfLdDG','mZGZmZaZmLL4tNnhzG','lI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','Aw5OzxjPDa','mJa0mdi3m2HlCKrkzG','AM9PBG','nZK1otrnvgn6v3G','rgLKihLVDsbWDwjSAxnOihDPDgHVDxqGzxHHBxbSzxmVzML4DhvYzxmVpWO','mZu0mJG0Bw5dv0Hr','zxHPDa','mZe0odmXtLb6r2ru'];_0x5471=function(){return _0x22d017;};return _0x5471();}function _0x52b6(_0x73e8c6,_0x560777){_0x73e8c6=_0x73e8c6-0xb1;var _0x5471ca=_0x5471();var _0x52b61a=_0x5471ca[_0x73e8c6];if(_0x52b6['gbHlhy']===undefined){var _0x149112=function(_0x1695dc){var _0x4308c9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1fc6d8='',_0xa14d08='';for(var _0x26283f=0x0,_0x22d68c,_0x5bf2b2,_0x55818c=0x0;_0x5bf2b2=_0x1695dc['charAt'](_0x55818c++);~_0x5bf2b2&&(_0x22d68c=_0x26283f%0x4?_0x22d68c*0x40+_0x5bf2b2:_0x5bf2b2,_0x26283f++%0x4)?_0x1fc6d8+=String['fromCharCode'](0xff&_0x22d68c>>(-0x2*_0x26283f&0x6)):0x0){_0x5bf2b2=_0x4308c9['indexOf'](_0x5bf2b2);}for(var _0xd36695=0x0,_0x37336a=_0x1fc6d8['length'];_0xd36695<_0x37336a;_0xd36695++){_0xa14d08+='%'+('00'+_0x1fc6d8['charCodeAt'](_0xd36695)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xa14d08);};_0x52b6['FqViBO']=_0x149112,_0x52b6['WXCUBW']={},_0x52b6['gbHlhy']=!![];}var _0x2bb86f=_0x5471ca[0x0],_0x3a2f7f=_0x73e8c6+_0x2bb86f,_0x1ccb2c=_0x52b6['WXCUBW'][_0x3a2f7f];return!_0x1ccb2c?(_0x52b61a=_0x52b6['FqViBO'](_0x52b61a),_0x52b6['WXCUBW'][_0x3a2f7f]=_0x52b61a):_0x52b61a=_0x1ccb2c,_0x52b61a;}import{existsSync}from'fs';var here=dirname(fileURLToPath(import.meta.url)),candidates=[resolve(here,_0x53da3f(0xb5)),resolve(here,_0x53da3f(0xc1))],serverEntry=candidates[_0x53da3f(0xc0)](_0x1fc6d8=>existsSync(_0x1fc6d8));!serverEntry&&(process[_0x53da3f(0xc7)][_0x53da3f(0xbe)](_0x53da3f(0xc6)+candidates['map'](_0xa14d08=>'\x20\x20'+_0xa14d08+'\x0a')[_0x53da3f(0xb8)]('')+_0x53da3f(0xba)),process[_0x53da3f(0xbc)](0x1));var child=spawn(process[_0x53da3f(0xc2)],[serverEntry,...process[_0x53da3f(0xb1)]['slice'](0x2)],{'stdio':_0x53da3f(0xb6)});child['on']('exit',_0x26283f=>process[_0x53da3f(0xbc)](_0x26283f??0x1));
1
+ var _0x5aa46b=_0x508d;(function(_0x2df4b5,_0x911980){var _0x453dfb={_0x46af6c:0x175,_0x3b7b94:0x180,_0x24f00e:0x174,_0x14d4a8:0x177,_0x519c13:0x17f},_0x175d2f=_0x508d,_0x43a8fb=_0x2df4b5();while(!![]){try{var _0x3c1987=-parseInt(_0x175d2f(_0x453dfb._0x46af6c))/0x1+-parseInt(_0x175d2f(0x176))/0x2+parseInt(_0x175d2f(_0x453dfb._0x3b7b94))/0x3*(-parseInt(_0x175d2f(_0x453dfb._0x24f00e))/0x4)+parseInt(_0x175d2f(0x17b))/0x5+-parseInt(_0x175d2f(_0x453dfb._0x14d4a8))/0x6+-parseInt(_0x175d2f(_0x453dfb._0x519c13))/0x7+parseInt(_0x175d2f(0x17e))/0x8;if(_0x3c1987===_0x911980)break;else _0x43a8fb['push'](_0x43a8fb['shift']());}catch(_0x4c6b8b){_0x43a8fb['push'](_0x43a8fb['shift']());}}}(_0x17f6,0xa0973));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,_0x5aa46b(0x17a)),resolve(here,_0x5aa46b(0x17d))],serverEntry=candidates['find'](_0x146361=>existsSync(_0x146361));!serverEntry&&(process[_0x5aa46b(0x183)]['write'](_0x5aa46b(0x179)+candidates['map'](_0x1cff6b=>'\x20\x20'+_0x1cff6b+'\x0a')[_0x5aa46b(0x17c)]('')+_0x5aa46b(0x184)),process['exit'](0x1));var child=spawn(process[_0x5aa46b(0x181)],[serverEntry,...process['argv'][_0x5aa46b(0x182)](0x2)],{'stdio':'inherit'});child['on'](_0x5aa46b(0x178),_0x3d4952=>process[_0x5aa46b(0x178)](_0x3d4952??0x1));function _0x508d(_0x4b2160,_0x27888b){_0x4b2160=_0x4b2160-0x174;var _0x17f6fb=_0x17f6();var _0x508d5c=_0x17f6fb[_0x4b2160];if(_0x508d['VZyjjE']===undefined){var _0x4edeea=function(_0x2f58b7){var _0x3a9f36='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x146361='',_0x1cff6b='';for(var _0x3d4952=0x0,_0x3b1ba3,_0x142b78,_0x2252f8=0x0;_0x142b78=_0x2f58b7['charAt'](_0x2252f8++);~_0x142b78&&(_0x3b1ba3=_0x3d4952%0x4?_0x3b1ba3*0x40+_0x142b78:_0x142b78,_0x3d4952++%0x4)?_0x146361+=String['fromCharCode'](0xff&_0x3b1ba3>>(-0x2*_0x3d4952&0x6)):0x0){_0x142b78=_0x3a9f36['indexOf'](_0x142b78);}for(var _0x2662cb=0x0,_0x5a67f4=_0x146361['length'];_0x2662cb<_0x5a67f4;_0x2662cb++){_0x1cff6b+='%'+('00'+_0x146361['charCodeAt'](_0x2662cb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1cff6b);};_0x508d['zEZPJw']=_0x4edeea,_0x508d['dmgebz']={},_0x508d['VZyjjE']=!![];}var _0x34f169=_0x17f6fb[0x0],_0x1758b5=_0x4b2160+_0x34f169,_0x5e2ad1=_0x508d['dmgebz'][_0x1758b5];return!_0x5e2ad1?(_0x508d5c=_0x508d['zEZPJw'](_0x508d5c),_0x508d['dmgebz'][_0x1758b5]=_0x508d5c):_0x508d5c=_0x5e2ad1,_0x508d5c;}function _0x17f6(){var _0x2c59ab=['nJy1mZy4mM9rDKPZsq','zxHPDa','C2vYDMuTzML4DhvYztOGy2fUBM90igXVy2f0zsbMAxH0DxjLihnLCNzLCIbLBNrYEs4GvhjPzwq6cG','lI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','ntG5mZmYnxbsDhrrDW','AM9PBG','lI4VlI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','mJu2mdmZmJbgtgDxEwq','odu5mZqXn1j1tM1hAG','mZGZmxPntgHyEa','zxHLy1bHDgG','C2XPy2u','C3rKzxjY','rgLKihLVDsbWDwjSAxnOihDPDgHVDxqGzxHHBxbSzxmVzML4DhvYzxmVpWO','oda0EuDTzfLV','nZu5mJK2BMr1z2Xv','nZm3ntaWs01Uv1vp'];_0x17f6=function(){return _0x2c59ab;};return _0x17f6();}
@@ -1 +1 @@
1
- const _0x27fbae=_0x1fe2;(function(_0x38f9a2,_0x32502a){const _0x74d110={_0x510192:0x12b,_0x4d2eac:0x130,_0x2c9d96:0x10a,_0x1ad60e:0x137},_0xa0b935=_0x1fe2,_0x36fbcd=_0x38f9a2();while(!![]){try{const _0x55fbd9=parseInt(_0xa0b935(0xf1))/0x1+-parseInt(_0xa0b935(_0x74d110._0x510192))/0x2+-parseInt(_0xa0b935(0x108))/0x3*(-parseInt(_0xa0b935(0x10b))/0x4)+-parseInt(_0xa0b935(_0x74d110._0x4d2eac))/0x5*(parseInt(_0xa0b935(0xf4))/0x6)+-parseInt(_0xa0b935(_0x74d110._0x2c9d96))/0x7+parseInt(_0xa0b935(_0x74d110._0x1ad60e))/0x8*(-parseInt(_0xa0b935(0x144))/0x9)+parseInt(_0xa0b935(0x13f))/0xa;if(_0x55fbd9===_0x32502a)break;else _0x36fbcd['push'](_0x36fbcd['shift']());}catch(_0x9a7a05){_0x36fbcd['push'](_0x36fbcd['shift']());}}}(_0x1571,0x1d5df));function _0x1fe2(_0x4fd5d5,_0x35d668){_0x4fd5d5=_0x4fd5d5-0xe2;const _0x1571aa=_0x1571();let _0x1fe2f7=_0x1571aa[_0x4fd5d5];if(_0x1fe2['fKIlLP']===undefined){var _0x4995bf=function(_0x416d3){const _0x423e7c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x15fc8b='',_0x3ecd13='';for(let _0x5028a0=0x0,_0x2883dd,_0x5b8b24,_0x10e10c=0x0;_0x5b8b24=_0x416d3['charAt'](_0x10e10c++);~_0x5b8b24&&(_0x2883dd=_0x5028a0%0x4?_0x2883dd*0x40+_0x5b8b24:_0x5b8b24,_0x5028a0++%0x4)?_0x15fc8b+=String['fromCharCode'](0xff&_0x2883dd>>(-0x2*_0x5028a0&0x6)):0x0){_0x5b8b24=_0x423e7c['indexOf'](_0x5b8b24);}for(let _0xcca118=0x0,_0x1319be=_0x15fc8b['length'];_0xcca118<_0x1319be;_0xcca118++){_0x3ecd13+='%'+('00'+_0x15fc8b['charCodeAt'](_0xcca118)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3ecd13);};_0x1fe2['ReYNfG']=_0x4995bf,_0x1fe2['kGfYoc']={},_0x1fe2['fKIlLP']=!![];}const _0x53bb15=_0x1571aa[0x0],_0x3073d1=_0x4fd5d5+_0x53bb15,_0x25d8cf=_0x1fe2['kGfYoc'][_0x3073d1];return!_0x25d8cf?(_0x1fe2f7=_0x1fe2['ReYNfG'](_0x1fe2f7),_0x1fe2['kGfYoc'][_0x3073d1]=_0x1fe2f7):_0x1fe2f7=_0x25d8cf,_0x1fe2f7;}var __defProp=Object[_0x27fbae(0x10f)],__name=(_0x3ecd13,_0x5028a0)=>__defProp(_0x3ecd13,_0x27fbae(0xed),{'value':_0x5028a0,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x15fc8b}from'fs';function _0x1571(){const _0x59b01d=['xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','ChjVyMvdAhjVBwvczxrH','BxnLzgDL','nJu1surUzuzg','yNvPBgrfBNy','C3vWCg9YDgvKs2LUzhm','AM9PBG','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','BgfIzwW','AgvHzgvK','mJy3mKDIAvziAa','ztjL','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','DxrMoa','A2LUza','uhjVz3jHBuzPBgvZ','ls1ICMvHAW','ndK1mdu5mhbjC3L6AG','y2HYB21PDw0TyNjVD3nLCG','DgfYz2v0ia','r29Vz2XLienOCM9Tzq','CMvZB2X2zujPBG','ntK0ovvMDerMwa','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','v2vIuNvUBMvYqwrHChrLCG','C3rHCNrZv2L0Aa','qhvUB3rLC3qVD2vI','zg9JDg9Y','zw52','u3LZDgvTigjYB3DZzxi','yNvPBgrbCMDZ','yNjLywTWB2LUDhm','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','D29YA2vYCW','D2LUmZi','vu5pvevtvf9iruferuq','zgvIDwC','BMfTzq','y2HLy2TxCML0ywjSzun3za','zxjYB3i','vgfYz2v0igrPCMvJDg9YEq','mJG5ndnYuePHy2C','AxngAw5PDgu','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','mJuYnK5Nvu9bBq','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','y2HYB21PDw0','yxv0Ag9YAw5N','y2HHBM5LBa','CgLJA0jPBG','y2HLy2TtExn0zw1cCM93C2vY','ihbHy2THz2uUANnVBIbKzwnSyxjLCYbUBYaNyMLUjYbMAwvSzcdIGjqGyNjVA2vUigLUC3rHBgW/','te9dquXbufbeqvrb','yxbWlxnLCNzLCG','DhjPBq','tM9Kzs5QCYb2zxjZAw9U','BgvUz3rO','ChjVAMvJDfjVB3q','Dw5VDgvZDc13zwi','D2HPy2G','ls1Kzwj1zW','ls13B3jRzxjZpq','ls1IywLS','nKPAsKjpqW','yMfPBa','mJiXmJyZsKPJBgH0','mJaYmZi0CezsAxbS','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','y29SBgvJDgLVBG','ChjVyMvtExn0zw1cCM93C2vY','zgvMAw5LuhjVCgvYDhK','r29Vz2XLienOCM9TzsbczxrH','ChvZAa','CgfYC2u','D2fYBMLUzW','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','igrVzxmGBM90igv4Axn0','uhjVz3jHBuzPBgvZkhG4nIK','CMvZB2X2zq','y3DK','twLJCM9ZB2z0ievKz2u','Cgf0Aa','C3bSAxq','D2HPy2HpzG','yxbWu2vYDMvYqxjNCW','BM9Kzq','y2HYB21L','ChjVyMvdAhjVBwu','l3bHy2THz2uUANnVBG','CgXHDgzVCM0','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','yMLU','zgfYD2LU','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','C3vMzML4','C2nLBMfYAw8','DMfSDwvZ','mZK0nJG2AhzqB09Y','DMvYC2LVBNm'];_0x1571=function(){return _0x59b01d;};return _0x1571();}import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x3979f6={_0x30da4a:0xf9},_0xf260c9=_0x27fbae;for(const _0x2883dd of[probeChrome,probeEdge,probeChromeBeta]){const _0x5b8b24=_0x2883dd();if(_0x5b8b24[_0xf260c9(_0x3979f6._0x30da4a)]!==null)return _0x5b8b24;}return{'channel':null};}__name(probeSystemBrowser,_0x27fbae(0x10e));function probeChrome(){const _0x2e6262={_0x221ee2:0x120},_0x17efe9=_0x27fbae,_0x10e10c=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x10e10c)return{'channel':_0x17efe9(_0x2e6262._0x221ee2),'path':_0x10e10c,'label':_0x17efe9(0x142)};return{'channel':null};}__name(probeChrome,_0x27fbae(0x121));function probeEdge(){const _0xa917ab=_0x27fbae,_0xcca118=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0xcca118)return{'channel':_0xa917ab(0x12f),'path':_0xcca118,'label':_0xa917ab(0x11a)};return{'channel':null};}__name(probeEdge,'probeEdge');function probeChromeBeta(){const _0x4fd733=_0x27fbae,_0x1319be=firstExistingPath(CHROME_BETA_PATHS);if(_0x1319be)return{'channel':'chrome-beta','path':_0x1319be,'label':_0x4fd733(0x110)};return{'channel':null};}__name(probeChromeBeta,_0x27fbae(0x12e));var CHROME_PATHS=((()=>{const _0x138f67={_0x42731c:0x126,_0x2a9c16:0xea,_0x25ad88:0x13d,_0x149dc5:0xf5,_0x1e9219:0xe4,_0x45db23:0x117,_0x2921f7:0x13a,_0xf13f83:0x139},_0x31c159=_0x27fbae;switch(process['platform']){case _0x31c159(_0x138f67._0x42731c):return['/Applications/Google\x20Chrome.app/Contents/MacOS/Google\x20Chrome'];case _0x31c159(_0x138f67._0x2a9c16):return[process['env'][_0x31c159(_0x138f67._0x25ad88)]+_0x31c159(_0x138f67._0x149dc5),process[_0x31c159(_0x138f67._0x1e9219)][_0x31c159(_0x138f67._0x45db23)]+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe',process[_0x31c159(0xe4)][_0x31c159(0xfd)]+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe'];default:return[_0x31c159(_0x138f67._0x2921f7),'/usr/bin/google-chrome-stable','/snap/bin/google-chrome','/usr/bin/chromium',_0x31c159(_0x138f67._0xf13f83)];}})()),CHROME_BIN_NAMES=['google-chrome',_0x27fbae(0x145),_0x27fbae(0xf7),_0x27fbae(0x140)],EDGE_PATHS=((()=>{const _0x58382c={_0x31b90d:0x114,_0x4d972e:0xe4,_0x34fab5:0x124,_0x357fb8:0x117,_0x20b2ae:0xe8},_0x37ca02=_0x27fbae;switch(process[_0x37ca02(0x123)]){case'darwin':return[_0x37ca02(_0x58382c._0x31b90d)];case'win32':return[process[_0x37ca02(_0x58382c._0x4d972e)]['ProgramFiles']+_0x37ca02(_0x58382c._0x34fab5),process[_0x37ca02(0xe4)][_0x37ca02(_0x58382c._0x357fb8)]+_0x37ca02(0x124)];default:return[_0x37ca02(_0x58382c._0x20b2ae),_0x37ca02(0xf6)];}})()),EDGE_BIN_NAMES=['microsoft-edge',_0x27fbae(0x10c)],CHROME_BETA_PATHS=((()=>{const _0xe64779={_0x24c3ab:0x123,_0x4a8126:0xe4,_0x18a310:0x134},_0x25d6ea=_0x27fbae;switch(process[_0x25d6ea(_0xe64779._0x24c3ab)]){case _0x25d6ea(0x126):return['/Applications/Google\x20Chrome\x20Beta.app/Contents/MacOS/Google\x20Chrome\x20Beta'];case'win32':return[process[_0x25d6ea(_0xe64779._0x4a8126)][_0x25d6ea(0x13d)]+_0x25d6ea(0x12d)];default:return[_0x25d6ea(_0xe64779._0x18a310)];}})());function firstExistingPath(_0x23fbaa){const _0x55e6c1=_0x27fbae;for(const _0x34613c of _0x23fbaa){if(!_0x34613c||_0x34613c[_0x55e6c1(0x147)]('undefined'))continue;if(existsSync(_0x34613c))return _0x34613c;}return null;}__name(firstExistingPath,'firstExistingPath');function whichOf(_0x48d543){const _0x2c8c77={_0x487f1d:0x123,_0x33db95:0x13b,_0x96e831:0xff},_0x19b1ef=_0x27fbae;if(process[_0x19b1ef(_0x2c8c77._0x487f1d)]===_0x19b1ef(0xea))return void 0x0;for(const _0x130d67 of _0x48d543){try{const _0x51d8ab=execFileSync(_0x19b1ef(0x104),[_0x130d67],{'encoding':_0x19b1ef(_0x2c8c77._0x33db95)})[_0x19b1ef(_0x2c8c77._0x96e831)]();if(_0x51d8ab[_0x19b1ef(0x101)]>0x0&&existsSync(_0x51d8ab))return _0x51d8ab;}catch{}}return void 0x0;}__name(whichOf,_0x27fbae(0x11d));function runEnvironmentChecks(_0x3edcc5={}){const _0x154174={_0x1cb485:0x119},_0x190bc4=_0x27fbae,_0x58f7cb=_0x3edcc5[_0x190bc4(_0x154174._0x1cb485)]??process[_0x190bc4(_0x154174._0x1cb485)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x58f7cb)];}__name(runEnvironmentChecks,'runEnvironmentChecks');function checkNodeVersion(){const _0x11aafd={_0x4f5440:0x12c,_0x328821:0x11f,_0x57a6d5:0x11c,_0x1fbeea:0xef},_0x2968fe=_0x27fbae,_0x26f638=process[_0x2968fe(_0x11aafd._0x4f5440)][_0x2968fe(_0x11aafd._0x328821)],_0x557ac7=Number(_0x26f638[_0x2968fe(_0x11aafd._0x57a6d5)]('.')[0x0]);if(!Number[_0x2968fe(0xf2)](_0x557ac7)||_0x557ac7<0x14)return{'name':_0x2968fe(0x100),'severity':_0x2968fe(_0x11aafd._0x1fbeea),'message':'requires\x20Node\x20≥20\x20(running\x20'+_0x26f638+')','detail':_0x2968fe(0xf3)};return{'name':'Node.js\x20version','severity':'ok','message':_0x26f638};}__name(checkNodeVersion,'checkNodeVersion');function checkSystemBrowser(){const _0x25887b={_0x5b1508:0x135,_0x2001ba:0xe5,_0x58707c:0x113,_0x49e93d:0x127},_0xf46669=_0x27fbae,_0x27d530=probeSystemBrowser();if(_0x27d530[_0xf46669(0xf9)]!==null)return{'name':_0xf46669(0xe5),'severity':'ok','message':_0x27d530[_0xf46669(_0x25887b._0x5b1508)]+'\x20found','detail':_0x27d530[_0xf46669(0x11b)]};return{'name':_0xf46669(_0x25887b._0x2001ba),'severity':_0xf46669(_0x25887b._0x58707c),'message':'no\x20Chrome\x20/\x20Edge\x20/\x20Chromium\x20detected','detail':_0xf46669(_0x25887b._0x49e93d)};}__name(checkSystemBrowser,_0x27fbae(0xfb));function checkWritableCwd(_0x44f1ce){const _0x5e3491=_0x27fbae;if(!_0x15fc8b(_0x44f1ce))return{'name':'Target\x20directory','severity':_0x5e3491(0xef),'message':_0x5e3491(0x141)+_0x44f1ce+_0x5e3491(0x116),'detail':_0x5e3491(0x115)};return{'name':_0x5e3491(0xf0),'severity':'ok','message':_0x44f1ce};}__name(checkWritableCwd,_0x27fbae(0xee));var PACKAGE_NAME=_0x27fbae(0xe2),WebRunnerAdapter=class{static{__name(this,_0x27fbae(0x146));}[_0x27fbae(0xed)]=PACKAGE_NAME;[_0x27fbae(0x128)]='';[_0x27fbae(0xec)]={'picker':!![],'attach':!![],'resumeFromFailure':![]};[_0x27fbae(0x132)]=['scenario','collection','authoring'];[_0x27fbae(0x143)](){const _0x4c2177={_0x40fad0:0xfc},_0x11e64d=_0x27fbae,_0x4394a5=createRequire(import.meta.url),_0x8fde3=_0x4394a5[_0x11e64d(0x118)](PACKAGE_NAME+_0x11e64d(0x122)),_0x4148e3=JSON[_0x11e64d(0x112)](readFileSync(_0x8fde3,'utf8')),_0x1d149e=pickBin(_0x4148e3);if(!_0x1d149e)throw new Error(PACKAGE_NAME+_0x11e64d(_0x4c2177._0x40fad0));return join(dirname(_0x8fde3),_0x1d149e);}[_0x27fbae(0xe6)](_0x532486){const _0x5e2444={_0x45f272:0xec,_0x5abf4d:0x101,_0x926ca2:0x13e,_0x231f14:0x133,_0x3ee2cc:0x13c,_0x50ffb5:0xe9,_0x101294:0xe9,_0x18bed6:0x109,_0x1a5122:0xf8,_0x2fd7af:0x129,_0x319850:0x13c},_0x328dab=_0x27fbae;if(_0x532486[_0x328dab(0x13c)]===_0x328dab(0x129)){const _0x3de5ee=[_0x328dab(0x138),_0x532486['scenario']];if(_0x532486[_0x328dab(_0x5e2444._0x45f272)])_0x3de5ee['push'](_0x328dab(0x105));return _0x532486[_0x328dab(0xe7)]&&_0x532486[_0x328dab(0xe7)][_0x328dab(_0x5e2444._0x5abf4d)]>0x0&&_0x3de5ee[_0x328dab(0x111)](_0x328dab(_0x5e2444._0x926ca2),_0x532486['breakpoints'][_0x328dab(_0x5e2444._0x231f14)](',')),_0x3de5ee;}if(_0x532486[_0x328dab(_0x5e2444._0x3ee2cc)]===_0x328dab(0x10d)){const _0x567cfe=['collection',_0x532486[_0x328dab(0x10d)]];_0x532486[_0x328dab(_0x5e2444._0x50ffb5)]!==void 0x0&&_0x532486[_0x328dab(0xe9)]>0x1&&_0x567cfe[_0x328dab(0x111)](_0x328dab(0x106)+_0x532486[_0x328dab(_0x5e2444._0x101294)]);if(_0x532486[_0x328dab(_0x5e2444._0x18bed6)])_0x567cfe[_0x328dab(0x111)](_0x328dab(0x107));return _0x567cfe;}if(_0x532486[_0x328dab(_0x5e2444._0x3ee2cc)]===_0x328dab(_0x5e2444._0x1a5122))return['author',_0x532486[_0x328dab(_0x5e2444._0x2fd7af)]];const _0x21f5fa=_0x532486;throw new UnsupportedRunKindError(_0x21f5fa[_0x328dab(_0x5e2444._0x319850)],this[_0x328dab(0xed)]);}[_0x27fbae(0x131)](_0x4bdb9e){const _0x24ecd5={_0x55d7a2:0x136},_0x5b993d=_0x27fbae,_0x307bff={};if(_0x4bdb9e[_0x5b993d(_0x24ecd5._0x55d7a2)])_0x307bff[_0x5b993d(0xeb)]='1';return _0x307bff;}[_0x27fbae(0x11e)](){const _0x1f633a={_0x448790:0xfe},_0x22cf89=_0x27fbae;return[_0x22cf89(_0x1f633a._0x448790)];}async[_0x27fbae(0xe3)](_0x4a6131){const _0x153c32={_0x27cff5:0x102},_0x30e276=_0x27fbae;return runEnvironmentChecks({'cwd':_0x4a6131[_0x30e276(_0x153c32._0x27cff5)]});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x345248){const _0x26f6fc={_0x5c1d71:0x125,_0x30c56c:0x103,_0xfb960b:0x12a},_0xd20272=_0x27fbae;if(typeof _0x345248[_0xd20272(0x125)]==='string')return _0x345248[_0xd20272(0x125)];if(_0x345248[_0xd20272(0x125)]&&typeof _0x345248[_0xd20272(0x125)]==='object')return _0x345248[_0xd20272(_0x26f6fc._0x5c1d71)][_0xd20272(_0x26f6fc._0x30c56c)]??Object[_0xd20272(_0x26f6fc._0xfb960b)](_0x345248[_0xd20272(0x125)])[0x0]??null;return null;}__name(pickBin,_0x27fbae(0xfa));export{web_runner_adapter_default as default,webRunnerAdapter};
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};
@@ -268,6 +268,30 @@ the last failed call plus recent failing exits. `filter:"layer:resolver"`
268
268
  `filter:"tool:explore_step"` → recent events for that tool. `limit` caps
269
269
  the count (default 50).
270
270
 
271
+ ## Variable environments (dev / staging / prod)
272
+
273
+ Scenario variables come from `unotest/.env` + `unotest/.secrets`.
274
+ Setting `UNOTEST_ENV=<name>` layers `unotest/.env.<name>` /
275
+ `unotest/.secrets.<name>` on top (overlay wins — it holds only the keys
276
+ that differ; ambient shell env beats every file).
277
+
278
+ For MCP sessions the default environment is fixed at server start:
279
+ `run_test` / `explore_*` resolve against the `UNOTEST_ENV` the server
280
+ process inherited — set it in the MCP client's `env` block (e.g.
281
+ `.mcp.json`) and restart the server to switch the default.
282
+
283
+ `run_test` additionally accepts a per-call `env` parameter: the spawned
284
+ runner child gets `UNOTEST_ENV=<env>` for that run only (the server and
285
+ any explore session keep their own). CLI runs take `--env <name>` per
286
+ invocation.
287
+
288
+ You never have to guess the active state: `explore_start` and
289
+ `run_test` replies carry an `environment` field — the active name
290
+ (`null` = base) and every layer file with an `exists` flag — plus the
291
+ effective `baseUrl`. A missing variable error also lists the searched
292
+ layers, and every CLI run prints a one-line header with the layers and
293
+ the effective baseUrl.
294
+
271
295
  ## Debug logging
272
296
 
273
297
  Set `UNOTEST_DEBUG=1` in `unotest/.env` and restart the MCP server to
@@ -53,8 +53,9 @@ function test_my_scenario() {
53
53
  - [Multi-context](#multi-context) — multi-tab / iframes
54
54
  - [Storage](#storage) — localStorage / cookies
55
55
  - [Edge actions](#edge-actions) — drag, upload, paste
56
- - [Sandbox primitives](#sandbox-primitives) — shell / db / HTTP
56
+ - [Sandbox primitives](#sandbox-primitives) — shell / db / HTTP / files
57
57
  - [Typed getters](#typed-getters) — page properties
58
+ - [Generators](#generators) — random fixture data + time
58
59
  - [`evaluate`](#evaluate) — escape hatch into the page
59
60
  - [Logging](#logging)
60
61
 
@@ -330,8 +331,8 @@ assertUrl('https://example.com/checkout')
330
331
  Generic boolean assert. Throws with `message` when `value` is falsy.
331
332
 
332
333
  ```js
333
- result = shell('echo', 'ok');
334
- assertTrue(result.code == 0, 'shell exit code should be 0');
334
+ probe = shell('grep', '-q', 'ready', 'app.log', {allowNonZero: true});
335
+ assertTrue(probe.code == 0, 'app.log should contain "ready"');
335
336
  ```
336
337
 
337
338
  ---
@@ -350,6 +351,22 @@ Empty string when the element has no text node (does not throw).
350
351
 
351
352
  ### `isVisible(loc)` → `boolean`
352
353
 
354
+ ### `isDisabled(loc)` → `boolean` / `isEnabled(loc)` → `boolean`
355
+
356
+ Disabled = native `:disabled` (covers `<fieldset disabled>` inheritance)
357
+ **or** `aria-disabled="true"`. Use these — not `getAttribute(loc,
358
+ 'disabled')`, which cannot distinguish a present boolean attribute from
359
+ an absent one (both read as `""`).
360
+
361
+ ```js
362
+ assertTrue(isEnabled(getByRole('button', {name: 'Send'})), 'send button should be active');
363
+ ```
364
+
365
+ ### `hasAttribute(loc, name)` → `boolean`
366
+
367
+ Whether the attribute is present at all — the honest probe for boolean
368
+ attributes (`disabled`, `readonly`, `required`, …).
369
+
353
370
  ```js
354
371
  n = count(getByRole('row'));
355
372
  if (n > 10) {
@@ -415,6 +432,26 @@ waitForText(/\bhi\b/, {timeout: 60000}); // word-boundary, long poll
415
432
 
416
433
  `state: 'hidden'` waits until **no** visible occurrence remains.
417
434
 
435
+ **Echo trap — wait for the reply, not your own message.** In a chat/feed
436
+ UI the text you just sent is itself on the page, so
437
+ `waitForText('Bot Service')` after
438
+ `fill(box, '@Bot Service what is …')` goes green **before** the bot
439
+ answers — the wait matched your own input. The linter flags this
440
+ statically (`lint:echo-assert`). The robust pattern: count the messages,
441
+ send, then wait for the count to grow — and only then assert on reply
442
+ content:
443
+
444
+ ```js
445
+ n = count(locator('[data-message]'));
446
+ fill(getByRole('textbox'), '@Bot Service ' + question);
447
+ press(getByRole('textbox'), 'Enter');
448
+ waitForCount(locator('[data-message]'), n + 2, {timeout: 90000}); // echo + reply
449
+ waitForText(/Ital/i, {timeout: 90000}); // reply content
450
+ ```
451
+
452
+ A unique marker (`randomWord(8)`) in the outgoing message plus a wait on
453
+ reply-specific text also works when the feed has no stable item locator.
454
+
418
455
  ### `waitForCount(loc, count, options?)`
419
456
 
420
457
  Poll until the locator matches **at least** `count` elements. The chat
@@ -435,14 +472,18 @@ waitForText(/\bshipping\b/i, {timeout: 90000});
435
472
  ### `pause(ms)`
436
473
 
437
474
  Hard sleep. **Avoid** — the linter flags it (`lint:pause-explicit`). Use
438
- `waitFor` / `waitForText` / assertion polling instead. Allowed only with
439
- a justifying `// reason:` comment.
475
+ `waitFor` / `waitForText` / assertion polling instead. A justified
476
+ occurrence is silenced per-line with `// lint-ok: <reason>` (the reason
477
+ is required — a bare `// lint-ok` suppresses nothing):
440
478
 
441
479
  ```js
442
- // reason: third-party widget has no completion signal we can hook into
443
- pause(500);
480
+ pause(500); // lint-ok: third-party widget has no completion signal to hook into
444
481
  ```
445
482
 
483
+ `// lint-ok:` works for any warning/info diagnostic on its line (legacy
484
+ helpers with known warnings stop drowning out new ones). Error-severity
485
+ diagnostics are never suppressible.
486
+
446
487
  ---
447
488
 
448
489
  ## Multi-context
@@ -558,20 +599,76 @@ apiBaseUrl}` — the scenario **cannot** override.
558
599
  export default {
559
600
  sandbox: {
560
601
  shellCwd: process.cwd(),
602
+ shellTimeoutMs: 120000, // wall-clock budget per shell() call
603
+ exportSecrets: ['STAND_TOKEN'], // .secrets vars exported to shell() children
561
604
  database: 'postgres://app:app@localhost:5432/myapp_test',
562
605
  apiBaseUrl: 'http://localhost:3000/api',
563
606
  },
564
607
  };
565
608
  ```
566
609
 
567
- ### `shell(cmd, ...args)` → `{stdout, stderr, code}`
610
+ ### `shell(cmd, ...args, options?)` → `{stdout, stderr, code}`
568
611
 
569
612
  `execFile`-style — **no shell interpretation**, no `&&` / `|` /
570
613
  redirection. cwd from `sandbox.shellCwd`.
571
614
 
615
+ Semantics:
616
+
617
+ - **Non-zero exit code fails the step** (typed error with the exit code
618
+ and stderr/stdout tails). To inspect the code yourself — e.g. a probe
619
+ where non-zero is expected — pass `{allowNonZero: true}` as the last
620
+ argument; the call then resolves with `{stdout, stderr, code}`.
621
+ - A missing binary / permission fault is a distinct "failed to start"
622
+ error, never a fake `code: 1`.
623
+ - **Timeout**: each call has a wall-clock budget —
624
+ `sandbox.shellTimeoutMs` (default 120 000 ms) or per-call
625
+ `{timeoutMs}`. On expiry the child is killed and the step fails.
626
+ - Output capture is limited to 10 MiB per stream; exceeding it fails the
627
+ step (write bulk output to a file instead).
628
+ - **Env**: the child inherits the runner's `process.env` (which includes
629
+ `unotest/.env` layers). Secrets from `.secrets*` are **not** inherited;
630
+ export them explicitly via the `sandbox.exportSecrets` allowlist
631
+ (values stay masked in logs).
632
+
572
633
  ```js
573
- out = shell('pnpm', 'db:create-user', 'alice');
574
- assertTrue(out.code == 0, out.stderr);
634
+ out = shell('pnpm', 'db:create-user', 'alice'); // non-zero exit → step fails
635
+ probe = shell('grep', '-q', 'ready', 'app.log', {allowNonZero: true});
636
+ if (probe.code == 0) { /* … */ }
637
+ ```
638
+
639
+ **Background / detached processes.** `shell()` waits for the child's
640
+ stdout/stderr pipes to close, not just for the command to exit. A
641
+ command that spawns a background process (`nohup node listener.js &`
642
+ inside a wrapper script) keeps the pipes open — the call runs until the
643
+ timeout. Recipe: fully detach the worker inside the wrapper script by
644
+ redirecting all its descriptors, then await its output with
645
+ `waitForFile`:
646
+
647
+ ```bash
648
+ #!/bin/sh
649
+ # start-listener.sh — detach completely: new session, no inherited fds
650
+ node listener.js < /dev/null > listener.log 2>&1 &
651
+ ```
652
+
653
+ ```js
654
+ step("Start the listener", () => {
655
+ shell('./scripts/start-listener.sh');
656
+ waitForFile('listener.log', 'listening on', {timeoutMs: 10000});
657
+ });
658
+ ```
659
+
660
+ ### `waitForFile(path, pattern?, options?)` → `string`
661
+
662
+ The file-side analogue of `waitForText` — polls a file until it exists
663
+ and (optionally) contains `pattern` (substring or regex literal), then
664
+ returns the file content. Relative `path` resolves against
665
+ `sandbox.shellCwd`. `options`: `{timeoutMs}` (default 20 000 ms). On
666
+ expiry the step fails with the file path and the last observed state.
667
+
668
+ ```js
669
+ step("Wait for the bot reply in the JSONL feed", () => {
670
+ line = waitForFile('events.jsonl', /"type":"reply"/, {timeoutMs: 30000});
671
+ });
575
672
  ```
576
673
 
577
674
  ### `dbQuery(sql, ...params)` → `rows[]`
@@ -657,6 +754,11 @@ Read page properties directly into a local variable.
657
754
  href = getAttribute(getByRole('link', {name: 'Docs'}), 'href');
658
755
  ```
659
756
 
757
+ Returns `""` when the attribute is missing — which makes it **blind to
758
+ boolean attributes**: `<button disabled>` and a button without the
759
+ attribute both read `""`. For those use `isDisabled(loc)` /
760
+ `hasAttribute(loc, name)`.
761
+
660
762
  ### `getInnerText(loc)` → `string`
661
763
 
662
764
  Like `textContent` but trimmed and rendered (display-aware).
@@ -676,6 +778,39 @@ Active page URL.
676
778
 
677
779
  ---
678
780
 
781
+ ## Generators
782
+
783
+ Random fixture data and time values — no imports, no `Date` / `Math` in
784
+ scenarios.
785
+
786
+ ### `randomFirstName()` / `randomLastName()` / `randomEmail()` → `string`
787
+
788
+ ### `randomText(length)` → `string`
789
+
790
+ Lorem-style prose cut to `length` characters.
791
+
792
+ ### `randomWord(length?)` → `string`
793
+
794
+ Random lowercase letters, default 8 — digit-free unique markers for apps
795
+ whose content filters reject numbers in text.
796
+
797
+ ```js
798
+ marker = randomWord(10);
799
+ fill(getByRole('textbox'), 'ping ' + marker);
800
+ waitForText(marker);
801
+ ```
802
+
803
+ ### `nowMs()` → `number`
804
+
805
+ Current epoch milliseconds — unique numeric suffixes.
806
+
807
+ ### `today()` → `string` / `daysFromNow(n)` → `string`
808
+
809
+ Local date as `YYYY-MM-DD`; `daysFromNow` accepts negative `n` for past
810
+ dates.
811
+
812
+ ---
813
+
679
814
  ## `evaluate`
680
815
 
681
816
  `evaluate(js, ...args)` — escape hatch. Runs `js` in the active page
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unotest/web",
3
- "version": "0.11.0",
3
+ "version": "0.12.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": {
@@ -79,17 +79,17 @@
79
79
  "tsx": "^4.19.2",
80
80
  "yaml": "^2.6.0",
81
81
  "zod": "^3.23.8",
82
- "@unotest/core": "^0.11.0",
83
- "@unotest/dsl": "^0.11.0",
84
- "@unotest/grounder-client": "^0.11.0",
85
- "@unotest/protocol": "^0.11.0",
86
- "@unotest/viewer": "^0.11.0"
82
+ "@unotest/core": "^0.12.0",
83
+ "@unotest/protocol": "^0.12.0",
84
+ "@unotest/viewer": "^0.12.0",
85
+ "@unotest/dsl": "^0.12.0",
86
+ "@unotest/grounder-client": "^0.12.0"
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.11.0"
93
+ "@unotest/grounder": "^0.12.0"
94
94
  }
95
95
  }