@unotest/web 0.9.1 → 0.11.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 _0xe93819=_0x1d2c;(function(_0x14c85d,_0x41cbe5){const _0x427889={_0x2f1ee9:0x8f,_0x5e5f6c:0x93},_0x101c8=_0x1d2c,_0x5f4698=_0x14c85d();while(!![]){try{const _0x382684=parseInt(_0x101c8(0x92))/0x1+-parseInt(_0x101c8(_0x427889._0x2f1ee9))/0x2+-parseInt(_0x101c8(_0x427889._0x5e5f6c))/0x3+parseInt(_0x101c8(0x9b))/0x4*(parseInt(_0x101c8(0x8d))/0x5)+parseInt(_0x101c8(0x87))/0x6+parseInt(_0x101c8(0x9c))/0x7+-parseInt(_0x101c8(0xa0))/0x8;if(_0x382684===_0x41cbe5)break;else _0x5f4698['push'](_0x5f4698['shift']());}catch(_0x132ec3){_0x5f4698['push'](_0x5f4698['shift']());}}}(_0x20f8,0xb4469));var __defProp=Object[_0xe93819(0x90)],__name=(_0x259df8,_0xb1a55d)=>__defProp(_0x259df8,_0xe93819(0x88),{'value':_0xb1a55d,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';function _0x1d2c(_0x5f117c,_0x438070){_0x5f117c=_0x5f117c-0x87;const _0x20f84a=_0x20f8();let _0x1d2c61=_0x20f84a[_0x5f117c];if(_0x1d2c['ChVSbS']===undefined){var _0x5153a7=function(_0x25b804){const _0xabea35='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x259df8='',_0xb1a55d='';for(let _0x27a254=0x0,_0x5ed29c,_0x29cc37,_0x7d12be=0x0;_0x29cc37=_0x25b804['charAt'](_0x7d12be++);~_0x29cc37&&(_0x5ed29c=_0x27a254%0x4?_0x5ed29c*0x40+_0x29cc37:_0x29cc37,_0x27a254++%0x4)?_0x259df8+=String['fromCharCode'](0xff&_0x5ed29c>>(-0x2*_0x27a254&0x6)):0x0){_0x29cc37=_0xabea35['indexOf'](_0x29cc37);}for(let _0x2cbbc6=0x0,_0x1e59a1=_0x259df8['length'];_0x2cbbc6<_0x1e59a1;_0x2cbbc6++){_0xb1a55d+='%'+('00'+_0x259df8['charCodeAt'](_0x2cbbc6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xb1a55d);};_0x1d2c['fhtcfI']=_0x5153a7,_0x1d2c['IBVTxc']={},_0x1d2c['ChVSbS']=!![];}const _0x2ee8d3=_0x20f84a[0x0],_0x295fce=_0x5f117c+_0x2ee8d3,_0xc7b11f=_0x1d2c['IBVTxc'][_0x295fce];return!_0xc7b11f?(_0x1d2c61=_0x1d2c['fhtcfI'](_0x1d2c61),_0x1d2c['IBVTxc'][_0x295fce]=_0x1d2c61):_0x1d2c61=_0xc7b11f,_0x1d2c61;}import{existsSync}from'fs';function _0x20f8(){const _0x84cdc4=['mZGYmti5nxDMvMzqCa','Dw5VDgvZDenVBMzPz01QCW','mte5mde1ngznyMzWAG','zgvMAw5LuhjVCgvYDhK','iYb1BM90zxn0lxDLyIdIGjqGy29WAwvKihrVihvUB3rLC3qVlMvUDIbIEsbGAw5PDgaGAwyGBM90ihbYzxnLBNqUcImkiYbgAwXSigLUihzHBhvLCYb0Agf0igfWCgX5ihrVihLVDxiGChjVAMvJDc4GvMfYAwfIBgvZigfYzsbSB2fKzwqGyNKGDgHLcImGCNvUBMvYigf0ihnJzw5HCMLVihn0yxj0lGOJcImGuMvMzxjLBMnLigfUEsb2yxjPywjSzsbMCM9TigeGC2nLBMfYAw8GyNKGAxrZigjHCMuGvvbqrvjFu05bs0uGBMfTzsdIGjqkiYbUBYbLBNyOks9ZzwnYzxqOksb3CMfWCgvYoGOJcImGicbNB3rVkcCVBg9NAw4NktSGicaGicaGicaGicaGicaGicaGicaGicaGicmGCMvSyxrPDMuG4OcuihnLzsbbufbFqKftrv9vuKWkiYaGigzPBgWOz2v0qNLmywjLBcGNrw1HAwWNksWGvevtvf9vu0vsx0vnquLmktSkiWOJifnLy3jLDcb2ywX1zxmGkhbHC3n3B3jKCYWGDg9Rzw5ZksbNBYbPBIb1BM90zxn0lY5ZzwnYzxrZigLUC3rLywqG4OcuihnHBwukiYbMB3jTyxqSigj1DcbTyxnRzwqGAw4GzxzLCNKGBg9NlIbbBIb1BMTUB3DUifvquevsx1noquTfig5HBwuGzMfPBhmGDgHLcImGCNvUihDPDgGGysbJBgvHCIaIywrKigL0ihrVihvUB3rLC3qVlMvUDIiGBwvZC2fNzs4kiWOJievUDMLYB25Tzw50CZOGB3zLCNjPzguGyw55ihzHBhvLihbLCIbLBNzPCM9UBwvUDcb3AxrOig92zxjSyxKGzMLSzxmG4OcucImGDw5VDgvZDc8Uzw52lNn0ywDPBMCSihvUB3rLC3qVlMvUDI5WCM9KDwn0Aw9UicHZzwnYzxrZoIaUC2vJCMv0CY48zw52pIKUcImGu2vSzwn0ig9UztOGyg5WEcbaDw5VDgvZDc93zwiGztjLidXUyw1LpIaTlwvUDIbZDgfNAw5Nyc4GvgHLig92zxjSyxKGBgf5zxjZcImGB3zLCIb0AgLZigjHC2uGzMLSzsaOB3zLCMXHEsb3Aw5ZktSGDgHLihnOzwXSigvUDMLYB25Tzw50ihDPBNmGB3zLCIbIB3rOlGOkiYaTls0GqxbWihvUzgvYihrLC3qGls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0kiYbuAguGyxbWj3mGyMfZzsbvuKWUifjLBgf0AxzLigDVDg8OjY9WyxrOjYKGCMvZB2X2zxmGywDHAw5ZDcbPDcaOD2LYzwqGAw50BWOJifbSyxL3CMLNAhqNCYbIyxnLvvjmigf1Dg9TyxrPy2fSBhKPlcbZBYb3CML0zsbNB3rVkcCVBg9NAw4NksdIGjqGBMv2zxikiYbNB3rVkefquf9cqvnfx1vstcaRicCVBg9NAw4Nks4GqwXZBYb1C2vKigzVCIbHC3nLCNrvCMWGC3vIC3rYAw5Nig1HDgnOAw5NlGOJierLzMf1BhrZihrVihrOzsb1BM90zxn0ihbSyxLNCM91BMqGC28GDgHLigv4yw1WBguGC2nLBMfYAw9Zihj1BIbVDxqGB2yGDgHLcImGyM94oYbWB2LUDcbPDcbHDcb5B3vYig93BIbHChaUcKfquf9cqvnfx1vstd1ODhrWCZOVl3bSyxLNCM91BMqUDw5VDgvZDc5JB20kcImGls0TierHDgfIyxnLic0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0TcImGvxnLzcbIEsbKyLf1zxj5ic8GzgjfEgvJlIbjBNn0ywXSihrOzsbTyxrJAgLUzYbKCML2zxiGyxmGysbWzwvYlwrLCdOkiYaGihbUCg0GywrKic1eihbNieb0ExbLCY9WzYaGicaGicaGicaJigzVCIbWB3n0z3jLC3fSoI8VcImGicbWBNbTigfKzcaTrcbTExnXBdiGicaGicaGicaGicaGicaGiYbMB3iGBxLZCwW6lY8kiYaOu1fmAxrLihzPysbIzxr0zxiTC3fSAxrLmYdIGjqGAw5ZDgfSBcbVBMX5igLMig5LzwrLzc4PcKrbvefcqvnfx1vstd1WB3n0z3jLC3fSoI8VCg9ZDgDYzxm6Cg9ZDgDYzxnaBg9JywXOB3n0oJu0mZiVBxLHChbFDgvZDaOkiYaTls0GuNvUBMvYic0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0T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','mtmYodKWnhvHy3botG','mZi0mdm1mwfnB2LxuG','Dw5VDgvZDa','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWO','x2HLBhbLCNm','icbJAgfUBMvSoIa','Dw5VDgvZDc5JB25MAwCUBwPZ','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4Guhv0ig5VBI1ZzwnYzxqGDMfSDwvZicHvuKXZlcbLBwfPBhmSigLKCYKGAw4GDw5VDgvZDc8Uzw52lGOJcImGrKXfrvrFrvHbtvbmrqPmt0DjtJ0kueftu1DpuKq9cLrps0vopqO','nfHKsLrtqG','nJK3otDRD3rIt04','zw52rxHHBxbSzq','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','ztjL','mtK5nZKXmLDWue96ua','mdeTC21VA2uUANm','ChvZAa','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','mZm2mti0oer1r0Ppza','BMfTzq','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','zxHHBxbSzxm','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHihn0zxaOiI4UlIiSicGPid0+ihSG4OcMih0PigjSB2nRlIbuAguklY8GDgL0BguGAxmGysbWBgfPBI1fBMDSAxnOigrLC2nYAxb0Aw9Uig9MihrOzsbNCM91CdSGDgHLihn0zxbZigLUC2LKzsbHCMuklY8GDgHLigLTCgXLBwvUDgf0Aw9UlIbhCM91CcbIEsbPBNrLBNqGkfnLDhvWic8Grw50zxiGlYbby3qGlYbbC3nLCNqGB3iklY8GD2HHDgv2zxiGCMvHzhmGD2vSBcKG4Ocuig9UzsbIBg9JAYbWzxiGBg9NAwnHBcbJAhvUAY4kcMz1BMn0Aw9UihrLC3rFEw91CL9Uyw1Lx2HLCMuOksb7cIaGC3rLCcGIu2vLzcbHigTUB3DUihvZzxiGDMLHiercic8GqvbjigzPEhr1CMvZigzYB20Gx2HLBhbLCNmViIWGkcKGpt4GEWOGicaGlY8GicaGD2LWzv9LmMvFDxnLCNmOktSkicaGic8VicaGihvZzxjFAwqGpsbZzwvKx3vZzxiOj2fSAwnLqgv4yw1WBguUy29TjYWGj3nLy3jLDcCPoWOGih0PoWOkicbZDgvWkcjtAwDUigLUigfZihrOzsbZzwvKzwqGDxnLCIiSicGPid0+ihSkicaGigDVDg8Oj2H0DhbZoI8VEw91CI1HChaUDgvZDc9SB2DPBICPoWOGicaGlY8GicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNywXPy2vazxHHBxbSzs5JB20NktSkicaGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGicaGlY8GicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKfZC2vYDcb0AguGzgfZAgjVyxjKihnOB3DZihrOzsbZAwDUzwqTAw4GDxnLCIiSicGPid0+ihSkicaGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGicaGlY8GicaGyxnZzxj0vgv4DcHNzxrcEvjVBguOj2HLywrPBMCNksWGj1DLBgnVBwuSiefSAwnLjYK7cIaGicaVlYaGicbJB3vUDca9igrIuxvLCNKOj1nftevdvcbJB3vUDcGQksbguK9nihvZzxjZifDirvjfigfJDgL2zsa9ihrYDwuNktSkicaGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGFsK7cN0k','C3rYAw5NAwz5'];_0x20f8=function(){return _0x84cdc4;};return _0x20f8();}import{join}from'path';var templates={'scenarioTemplate':_0xe93819(0x8b),'agentsMd':_0xe93819(0x89),'claudeMdBody':_0xe93819(0x9e),'examples':{'01-smoke.js':_0xe93819(0xa3),'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':_0xe93819(0x9a),'envExample':_0xe93819(0x91)};function unotestConfigMjs(_0x27a254){const _0x4e3937={_0x3855d2:0x8c,_0x4ce11c:0x96},_0x479397=_0xe93819,_0x5ed29c=_0x27a254===void 0x0?_0x479397(0x95):_0x479397(0x98)+JSON[_0x479397(_0x4e3937._0x3855d2)](_0x27a254)+',';return _0x479397(_0x4e3937._0x4ce11c)+_0x5ed29c+'\x0a\x20\x20//\x20viewer:\x20{\x0a\x20\x20//\x20\x20\x20port:\x205173,\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20default:\x20random\x20free\x20port\x0a\x20\x20//\x20\x20\x20browser:\x20true,\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20default:\x20true\x20(auto-open\x20on\x20`viewer`)\x0a\x20\x20//\x20},\x0a};\x0a';}__name(unotestConfigMjs,_0xe93819(0x8e));async function scaffoldWorkspace(_0x29cc37,_0x7d12be={}){const _0x337c21={_0x14a4c5:0x94,_0x55e50a:0x9d,_0x4e86cd:0x9f,_0x52e117:0x8a,_0x2bea52:0xa1,_0x1eebe2:0xa1,_0x436de2:0xa2,_0x1680d0:0xa2},_0x4c224c=_0xe93819,_0x2cbbc6=[],_0x1e59a1=[];await mkdir(join(_0x29cc37,_0x4c224c(0x94),_0x4c224c(0x9f),'examples'),{'recursive':!![]}),await mkdir(join(_0x29cc37,_0x4c224c(0x94),_0x4c224c(0x9f),_0x4c224c(0x97)),{'recursive':!![]});const _0x50831c=[{'rel':_0x4c224c(0x99),'content':unotestConfigMjs(_0x7d12be['channel'])},{'rel':join(_0x4c224c(_0x337c21._0x14a4c5),'.env'),'content':templates[_0x4c224c(_0x337c21._0x55e50a)]},{'rel':join(_0x4c224c(0x94),_0x4c224c(_0x337c21._0x4e86cd),_0x4c224c(_0x337c21._0x52e117),_0x4c224c(_0x337c21._0x2bea52)),'content':templates[_0x4c224c(_0x337c21._0x52e117)][_0x4c224c(_0x337c21._0x1eebe2)]}];for(const {rel:_0xf7e9f6,content:_0x4b218a}of _0x50831c){const _0x3a0841=join(_0x29cc37,_0xf7e9f6);if(existsSync(_0x3a0841)){_0x1e59a1[_0x4c224c(_0x337c21._0x436de2)](_0xf7e9f6);continue;}await writeFile(_0x3a0841,_0x4b218a),_0x2cbbc6[_0x4c224c(_0x337c21._0x1680d0)](_0xf7e9f6);}return{'projectRoot':_0x29cc37,'created':_0x2cbbc6,'skipped':_0x1e59a1};}__name(scaffoldWorkspace,'scaffoldWorkspace');export{scaffoldWorkspace};
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','iYbaDw5VDgvZDc93zwiG4OcuigD1AwrLigzVCIbbssbHz2vUDhmGkgfUzcbODw1HBNmPcGPuAgLZihbYB2PLy3qGDxnLCYbByeb1BM90zxn0l3DLyMbDkgH0DhbZoI8VD3D3lM5WBwPZlMnVBs9WywnRywDLl0b1BM90zxn0l3DLyIKkzM9YigvUzc10BY1LBMqGDgvZDgLUzYbVzIb3zwiGyxbWBgLJyxrPB25ZlGOkiYmGv3jPDgLUzYbHihrLC3qG4OcuihvZzsb0AguGC2TPBgWGkYbnq1akcKzVCIbbtLKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4GztjLihrLC3q6cGOXlIbpCgvUihrOzsaQkMb3CML0zs1LmMuTDgvZDgaQkIbZA2LSBcdIGjqGyc5JBgf1zguVC2TPBgXZl3DYAxrLlwuYzs10zxn0l1nlsuXmlM1KyaOGicaOAw4Gq2XHDwrLienVzguGEw91ignHBIbHBhnVihj1BIbGl3DYAxrLlwuYzs10zxn0ycKG4OcuigfUzcbMB2XSB3CGAxqUcJiUierYAxzLihrOzsbICM93C2vYihrOCM91z2GGDgHLicOQyhvUB3rLC3qTD2vIycbnq1aGDg9VBhmQkJOGyg5LD19JB250zxH0ycdIHPikicaGygv4CgXVCMvFC3rHCNrGiokgKIbGzxHWBg9Yzv9ZDgvWycdIHPiGygDLDf9WywDLx3nUyxbZAg90ycdIHPiGyhj1BL90zxn0yc4kcKrVie5pvcbOyw5Klwf1DgHVCIb0zxn0CYbIBgLUzcbVCIbTyxaGDgHLihbYB2PLy3qGD2L0AcbGzMLUzgaVygXZyc9GyxDRycdIGjqGDgHLcNnRAwXSj3mGugHHC2uGmcbUyw1LCYb0AguGzxHHy3qGzMLSzxmGDg8GCMvHzc4GuNvUBMfIBguSignVChKTCgfZDgvHyMXLcMv4yw1WBgvZigXPDMuGAw4GyhvUB3rLC3qVztjLl2v4yw1WBgvZl2aUcGOJiYbmyxLVDxqkcI0GyhvUB3rLC3qVztjLlZXMzwf0DxjLpI88BMfTzt4UANnGiokaLcb0zxn0ihnJzw5HCMLVCYWGz3jVDxbLzcbIEsbMzwf0DxjLl3bHz2ukicaOB25Ligb0zxn0xYPGigz1BMn0Aw9UihbLCIbMAwXLks4GkIPszxf1AxjLzdOQkIbLDMvYEsbZy2vUyxjPBYbSAxzLCYbPBIbHcIaGzMvHDhvYzsbZDwjMB2XKzxiUieeGDgvZDcbMAwXLihbSywnLzcbKAxjLy3rSEsbPBIbGDw5VDgvZDc9LmMuVycbPCYbYzwPLy3rLzaOGigj5ihrOzsbSAw50zxiGkgbSAw50oNnJzw5HCMLVlwLUlxjVB3rGks4klsbGDw5VDgvZDc9LmMuVx2HLBhbLCNmVycdIGjqGChjVAMvJDc1ZCgvJAwzPyYbOzwXWzxjZicH2AxnPyMXLihrVigfSBcbZy2vUyxjPB3mPcI0GyhvUB3rLC3qVztjLl190zw1WBgf0zs5QC2aG4Ocuihn0yxj0Aw5NlxbVAw50ihrLBxbSyxrLicHJB3b5igLUDg8GysbMzwf0DxjLigzVBgrLCIKkcImJierttcbJB252zw50Aw9UCWOkvgHLierttcbPCYbHihn0CMLJDcbkuYbZDwjZzxqGCgfYC2vKigj5ieb1BM90zxn0l2rZBc4Gtwv0Ag9KignOywLUCYWGB3b0Aw9UCY0kB2jQzwn0CYWGyw5KihzHCMLHyMXLCYbHCMuGywXSB3DLzc4GtxvSDgKTBgLUzsbZDhjPBMDZihvZzqPIywnRDgLJA3mGyNv0igaKEY4UlN1GigLUDgvYCg9SyxrPB24GAxmGzM9YyMLKzgvUicHZyw5KyM94igjVDw5Kyxj5iokaLaPWyxnZihzHBhvLCYb2AweGCg9ZAxrPB25HBcbHCMDZks4kcIOQrxzLCNKGC3rLCcbTDxn0ihnPDcbPBNnPzguGysbGC3rLCcGIzgvZy3jPChrPB24IlcaOksa9pIb7iokaPIb9kwaGyMXVy2SGkgXPBNrLCGPLBMzVCMnLCYKUkIOGvgHLihrPDgXLigLZihbSywLUluvUz2XPC2GGAw50zw50oYb0AguGC3rLChmGAw5ZAwrLigfYzsb0AgukAw1WBgvTzw50yxrPB24UifDOzw4GysbZDgvWigXHDgvYigjYzwfRCYaOC2vSzwn0B3iGzhjPzNqPlcb5B3uGCMvHzcb0AgukDgL0BguGDg8GDw5KzxjZDgfUzcb3Agf0ihrOzsbNCM91Ccb3yxmGDhj5Aw5NihrVigrVigfUzcbYzxbHAxiGAxqUieDYB3vWigj5cMLUDgvUDcWGB25LigjSB2nRihbLCIbSB2DPy2fSignODw5RoGOkygbGANmkzNvUy3rPB24GDgvZDf9SB2DPBIGPihSkicbZDgvWkcjtAwDUigLUigfZihrOzsbKzw1VihvZzxiIlcaOksa9pIb7cIaGicbNB3rVkcDODhrWCZOVl2fWCc5LEgfTCgXLlMnVBs9SB2DPBICPoWOGicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNzgvTB0bLEgfTCgXLlMnVBsCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKrHC2HIB2fYzcbZAg93CYb0AguGC2LNBMvKlwLUihvZzxiIlcaOksa9pIb7cIaGicbHC3nLCNruzxH0kgDLDej5uM9SzsGNAgvHzgLUzYCPlcaNv2vSy29TzsCPoWOGih0PoWP9cMbGyaOkkIPcyxnLifvstcdIGjqGD3jPDguGCMvSyxrPDMuGCgf0AhmUkIOGyefquf9cqvnfx1vstgaGkgLUigb1BM90zxn0lY5LBNzGksbPCYb0AgukyxbWj3mGyMfZztSGygDVDg8OjY9SB2DPBICPycbYzxnVBhzLCYbHz2fPBNn0igL0lIbeB24NDcbJB25JyxrLBMf0zqOOygDVDg8Oqvbqx0jbu0vFvvjmicSGjY9SB2DPBICPycKG4OcuigP1C3qGCgfZCYb0AguGCgf0AdOkcMbGygPZcMDVDg8OjY9SB2DPBICPoWPMAwXSkgDLDej5tgfIzwWOj1bHC3n3B3jKjYKSifrfu1rFvvnfuL9qqvntv09srcK7cMbGyaOkkIPfBNzPCM9UBwvUDhmUkIOGt3zLCNjPzguGyefquf9cqvnfx1vstgaGkgfUzcbHBNKGDMfYksbWzxiGzw52AxjVBM1LBNqGD2L0AaPVDMvYBgf5igzPBgvZiokaLcbGDw5VDgvZDc8Uzw52lNn0ywDPBMDGlcbGDw5VDgvZDc8Uzw52lNbYB2r1y3rPB25GicHZzwnYzxrZoGPGDw5VDgvZDc8UC2vJCMv0CY48zw52pMaPlIbtzwXLy3qGB25Ligf0ihj1BIb0Aw1LoIbGBNb4ieb1BM90zxn0l3DLyIbLmMuGpg5HBwu+cI0Tzw52ihn0ywDPBMDGlIbuAguGB3zLCMXHEsbSyxLLCNmGB3zLCIb0AguGyMfZzsbGlMvUDMaGkg92zxjSyxKGD2LUCYKUcGOQkKv4DgvYBMfSihzHCMLHyMXLCYaMihnLy3jLDhm6kIOGCMvMzxjLBMnLigXVz2LUCYaVihrVA2vUCYbIEsbHigjHCMukyfvquevsx1noquTfycbUyw1LiokaLcbYzxnVBhzLzcbMCM9Tigb1BM90zxn0lY5LBNzGicHUB3jTywWPig9Yigb1BM90zxn0lY5ZzwnYzxrZyaOOC2vJCMv0lcbTyxnRzwqGAw4GBg9NCYKUie5VigbLBNyOkwaVyhnLy3jLDcGPycb3CMfWCgvYlIbbigXVD2vYy2fZzsbUyw1LigLZigfUcMLUlxnJzw5HCMLVigjPBMrPBMC7igfUihvUA25VD24Gyfvquevsx1noquTfycbMywLSCYb0AguGCNvUigfZA2LUzYb5B3uGDg8GywrKigL0cNrVigb1BM90zxn0lY5LBNzGlGOkkIPtzwXLy3rVCIbOAwvYyxjJAhKGkeqTmJiG4OcuigXPBNrLCIbLBMzVCMnLCYK6kIOkms4GygDLDej5vgvZDeLKkgLKkwaG4Ocuig1VC3qGC3rHyMXLcJiUigbNzxrcEvjVBguOCM9SzsWGE25HBwv9kwaG4OcuihnLBwfUDgLJlcbHmtf5lwf3yxjLcJmUigbNzxrcEuXHyMvSkhrLEhqPycdIGjqGzM9YigzVCM0GzMLLBgrZcJqUigbNzxrcEvrLEhqODgv4DcLGiokaLcbMB3iGDw5PCxvLihrLEhqkns4GygXVy2f0B3iOy3nZkwaG4OcuigXHC3qGCMvZB3j0icHSAw50zxiGD2fYBNmPcGPgDwXSihjLzMvYzw5JzsbZAgLWCgvKihDPDgGGDgHLihbHy2THz2u6cI0Gyg5VzgvFBw9KDwXLCY9aDw5VDgvZDc93zwiVz3vPzgvZl2rZBc1YzwzLCMvUy2uUBwrGiokaLcbeu0WGzNvUy3rPB25ZicSGBgLUDgvYignVzgvZcGOJiYbsDw5UAw5NicHdteKPcGOTigbUChGGqhvUB3rLC3qVD2vIiguYzsa8zMvHDhvYzt4Vpg5HBwu+ycdIGjqGCNvUigeGC2nLBMfYAw8GyNKGBMfTzqOTigbUChGGqhvUB3rLC3qVD2vIigXPBNrGiokaLcbZDgf0AwmGy2HLy2SGB2yGywXSihnJzw5HCMLVCYaRigHLBhbLCNmklsbGBNb4ieb1BM90zxn0l3DLyIbTy3bGiokaLcbZDgfYDcb0AguGtunqihnLCNzLCIbMB3iGywDLBNqGy29UDhjVBaOkiYmGvMLHie1ducaOq2XHDwrLienVzguGlYbdBgf1zguGrgvZA3rVCcaVien1CNnVCIKkcLrOzsbnq1aGC2vYDMvYigv4Cg9Zzxm6cI0Gyhj1BL90zxn0ig5HBwu9iJXUyw1LpIiGBw9Kzt0IC3rLCciGCgf1C2vpBKzHAwX1CMu9Dhj1zwaG4Ocuihj1BIb3AxrOihn0zxaTBw9KzqOTigbZDgvWycaVigbYzxn1BwvGiokaLcbHzhzHBMnLig9Uzsbbu1qGBM9KzsaVihj1BIb1BNrPBcbUzxH0ihbHDxnLcI0GygLUC3bLy3rFCNvUDgLTzwaG4Ocuign1CNjLBNqGC3rHDguSigXHC3qGzxjYB3iSigXVy2fSCYbKDw1WcI0GygfIB3j0x3j1BNrPBwvGiokaLcbRAwXSigeGCgf1C2vKihj1BNrPBwukcKzVCIbHz2vUDc1MAxGGD29YA2zSB3DZig9UigzSywT5ihrLC3rZoIbGywDLBNrFzML4ihrLC3rjzd0IpgLKpIjGihjLDhvYBNmGyqPZDhj1y3r1CMvKignVBNrLEhqGyNvUzgXLicHZzwuGrc0YnsdIGjqGD2uGBMv2zxiGy2fSBcbmte1Zig9Yigf1Dg8TyxbWBhKkzgLMzNmSihrOzsbKAwzMignVBwvZigzYB20GEw91CIbnq1aTAg9ZDcbHz2vUDcKUcG','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 +1 @@
1
- function _0x1303(){var _0x28eaf4=['C2vYDMuTzML4DhvYztOGy2fUBM90igXVy2f0zsbMAxH0DxjLihnLCNzLCIbLBNrYEs4GvhjPzwq6cG','rgLKihLVDsbWDwjSAxnOihDPDgHVDxqGzxHHBxbSzxmVzML4DhvYzxmVpWO','m01tuNfNAq','D3jPDgu','mtq2nJi3mffRwgXkrG','mJu3nJqZmKLxCwfMwG','mZC3ntu2AePmuwfi','zxHLy1bHDgG','lI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','mtroCNf2u1i','zMLUza','C3rKzxjY','ode5odzmruTIy3i','BwfW','mtC3nZKZnJbyvw5fwKC','zxHPDa','nM9qvufiDq','AM9PBG','odaYodC2nufSA3bkqG','mJGWmdeXmerWtLrLEG','C2XPy2u'];_0x1303=function(){return _0x28eaf4;};return _0x1303();}var _0x58651e=_0x3d94;(function(_0x431d6b,_0x6d1318){var _0x5b2c86={_0x1cdd31:0x208,_0x476103:0x201,_0xb41d2f:0x1f7,_0x82f54b:0x1f5,_0x1b2bd5:0x204,_0x3928f0:0x1fa,_0x43684c:0x1f6,_0x1251cc:0x203,_0x34c995:0x1ff},_0x73ba99=_0x3d94,_0x2bcd7d=_0x431d6b();while(!![]){try{var _0x104839=-parseInt(_0x73ba99(_0x5b2c86._0x1cdd31))/0x1*(-parseInt(_0x73ba99(0x1fd))/0x2)+-parseInt(_0x73ba99(_0x5b2c86._0x476103))/0x3*(parseInt(_0x73ba99(_0x5b2c86._0xb41d2f))/0x4)+parseInt(_0x73ba99(_0x5b2c86._0x82f54b))/0x5+-parseInt(_0x73ba99(_0x5b2c86._0x1b2bd5))/0x6*(parseInt(_0x73ba99(_0x5b2c86._0x3928f0))/0x7)+parseInt(_0x73ba99(_0x5b2c86._0x43684c))/0x8+-parseInt(_0x73ba99(_0x5b2c86._0x1251cc))/0x9+parseInt(_0x73ba99(_0x5b2c86._0x34c995))/0xa;if(_0x104839===_0x6d1318)break;else _0x2bcd7d['push'](_0x2bcd7d['shift']());}catch(_0x11c3c0){_0x2bcd7d['push'](_0x2bcd7d['shift']());}}}(_0x1303,0x7a8e6));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,_0x58651e(0x1f9)),resolve(here,'../../../examples/fixtures/break-fix-app/serve.mjs')],serverEntry=candidates[_0x58651e(0x1fb)](_0xbe0779=>existsSync(_0xbe0779));!serverEntry&&(process[_0x58651e(0x1fc)][_0x58651e(0x1f4)](_0x58651e(0x206)+candidates[_0x58651e(0x1fe)](_0x2cb00a=>'\x20\x20'+_0x2cb00a+'\x0a')[_0x58651e(0x202)]('')+_0x58651e(0x207)),process[_0x58651e(0x200)](0x1));var child=spawn(process[_0x58651e(0x1f8)],[serverEntry,...process['argv'][_0x58651e(0x205)](0x2)],{'stdio':'inherit'});function _0x3d94(_0x4d8882,_0x4ef9db){_0x4d8882=_0x4d8882-0x1f4;var _0x1303f4=_0x1303();var _0x3d9419=_0x1303f4[_0x4d8882];if(_0x3d94['aVNELQ']===undefined){var _0x395848=function(_0x127116){var _0x26f70b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xbe0779='',_0x2cb00a='';for(var _0x4741d0=0x0,_0x2a9a04,_0x35875a,_0x26b932=0x0;_0x35875a=_0x127116['charAt'](_0x26b932++);~_0x35875a&&(_0x2a9a04=_0x4741d0%0x4?_0x2a9a04*0x40+_0x35875a:_0x35875a,_0x4741d0++%0x4)?_0xbe0779+=String['fromCharCode'](0xff&_0x2a9a04>>(-0x2*_0x4741d0&0x6)):0x0){_0x35875a=_0x26f70b['indexOf'](_0x35875a);}for(var _0x3d9d76=0x0,_0x35ce26=_0xbe0779['length'];_0x3d9d76<_0x35ce26;_0x3d9d76++){_0x2cb00a+='%'+('00'+_0xbe0779['charCodeAt'](_0x3d9d76)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2cb00a);};_0x3d94['BZjJxz']=_0x395848,_0x3d94['PBmsRF']={},_0x3d94['aVNELQ']=!![];}var _0x748574=_0x1303f4[0x0],_0xf44620=_0x4d8882+_0x748574,_0x1dde45=_0x3d94['PBmsRF'][_0xf44620];return!_0x1dde45?(_0x3d9419=_0x3d94['BZjJxz'](_0x3d9419),_0x3d94['PBmsRF'][_0xf44620]=_0x3d9419):_0x3d9419=_0x1dde45,_0x3d9419;}child['on']('exit',_0x4741d0=>process[_0x58651e(0x200)](_0x4741d0??0x1));
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 +1 @@
1
- const _0x28effa=_0x5df4;(function(_0x53bb20,_0x3d3787){const _0x39d30c={_0x32b890:0x200,_0x11cfbf:0x1a9,_0x43a5b9:0x1c5,_0x2e21d0:0x1e3},_0x2f15dc=_0x5df4,_0x3af074=_0x53bb20();while(!![]){try{const _0x32564a=-parseInt(_0x2f15dc(_0x39d30c._0x32b890))/0x1+-parseInt(_0x2f15dc(_0x39d30c._0x11cfbf))/0x2+-parseInt(_0x2f15dc(0x1ca))/0x3+parseInt(_0x2f15dc(_0x39d30c._0x43a5b9))/0x4*(-parseInt(_0x2f15dc(0x1e6))/0x5)+parseInt(_0x2f15dc(0x1b9))/0x6+parseInt(_0x2f15dc(_0x39d30c._0x2e21d0))/0x7+-parseInt(_0x2f15dc(0x1b3))/0x8*(-parseInt(_0x2f15dc(0x1e1))/0x9);if(_0x32564a===_0x3d3787)break;else _0x3af074['push'](_0x3af074['shift']());}catch(_0x5cd5a7){_0x3af074['push'](_0x3af074['shift']());}}}(_0x2cc6,0x5706b));var __defProp=Object[_0x28effa(0x1ed)],__name=(_0x28c9b6,_0x13939a)=>__defProp(_0x28c9b6,_0x28effa(0x1ef),{'value':_0x13939a,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x59abd9}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){for(const _0x29c80b of[probeChrome,probeEdge,probeChromeBeta]){const _0x338913=_0x29c80b();if(_0x338913['channel']!==null)return _0x338913;}return{'channel':null};}__name(probeSystemBrowser,_0x28effa(0x1e5));function probeChrome(){const _0x34b658={_0xd2a988:0x1ee,_0x27e93a:0x1d1},_0x13ab35=_0x28effa,_0x107d84=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x107d84)return{'channel':_0x13ab35(_0x34b658._0xd2a988),'path':_0x107d84,'label':_0x13ab35(_0x34b658._0x27e93a)};return{'channel':null};}__name(probeChrome,_0x28effa(0x1fb));function probeEdge(){const _0x185428={_0x2e9231:0x1ea},_0x30086e=_0x28effa,_0x6db848=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x6db848)return{'channel':'msedge','path':_0x6db848,'label':_0x30086e(_0x185428._0x2e9231)};return{'channel':null};}__name(probeEdge,_0x28effa(0x1c8));function probeChromeBeta(){const _0x543a40={_0x2f44b8:0x1c6,_0x55c826:0x1ba},_0x2de730=_0x28effa,_0x41c5c9=firstExistingPath(CHROME_BETA_PATHS);if(_0x41c5c9)return{'channel':_0x2de730(_0x543a40._0x2f44b8),'path':_0x41c5c9,'label':_0x2de730(_0x543a40._0x55c826)};return{'channel':null};}__name(probeChromeBeta,_0x28effa(0x1d5));var CHROME_PATHS=((()=>{const _0x347a6a={_0x305365:0x1c7,_0x3aeb07:0x1db,_0x5544c8:0x1a5,_0x178038:0x1c3,_0x38d58b:0x1fc},_0x4db1df=_0x28effa;switch(process[_0x4db1df(0x1d6)]){case _0x4db1df(_0x347a6a._0x305365):return[_0x4db1df(_0x347a6a._0x3aeb07)];case _0x4db1df(0x1f3):return[process[_0x4db1df(0x1fe)][_0x4db1df(_0x347a6a._0x5544c8)]+_0x4db1df(_0x347a6a._0x178038),process[_0x4db1df(0x1fe)][_0x4db1df(_0x347a6a._0x38d58b)]+_0x4db1df(0x1c3),process[_0x4db1df(0x1fe)]['LOCALAPPDATA']+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe'];default:return[_0x4db1df(0x1e7),'/usr/bin/google-chrome-stable','/snap/bin/google-chrome','/usr/bin/chromium',_0x4db1df(0x1ad)];}})()),CHROME_BIN_NAMES=[_0x28effa(0x1b6),_0x28effa(0x1cd),_0x28effa(0x1b2),'chromium-browser'],EDGE_PATHS=((()=>{const _0x5ddb53={_0xb7f18d:0x1fe,_0x29ea9c:0x1b1,_0x35eae5:0x1fe},_0x218198=_0x28effa;switch(process['platform']){case'darwin':return[_0x218198(0x1f2)];case _0x218198(0x1f3):return[process[_0x218198(_0x5ddb53._0xb7f18d)][_0x218198(0x1a5)]+_0x218198(_0x5ddb53._0x29ea9c),process[_0x218198(_0x5ddb53._0x35eae5)][_0x218198(0x1fc)]+_0x218198(0x1b1)];default:return['/usr/bin/microsoft-edge','/usr/bin/microsoft-edge-stable'];}})()),EDGE_BIN_NAMES=[_0x28effa(0x1ec),_0x28effa(0x1d7)],CHROME_BETA_PATHS=((()=>{const _0x4186f0={_0x428019:0x1cb},_0x1f4380=_0x28effa;switch(process['platform']){case'darwin':return['/Applications/Google\x20Chrome\x20Beta.app/Contents/MacOS/Google\x20Chrome\x20Beta'];case _0x1f4380(0x1f3):return[process['env'][_0x1f4380(0x1a5)]+_0x1f4380(_0x4186f0._0x428019)];default:return[_0x1f4380(0x1ae)];}})());function firstExistingPath(_0x53b240){const _0x2bb675=_0x28effa;for(const _0x56b8cd of _0x53b240){if(!_0x56b8cd||_0x56b8cd['startsWith'](_0x2bb675(0x1a3)))continue;if(existsSync(_0x56b8cd))return _0x56b8cd;}return null;}__name(firstExistingPath,_0x28effa(0x1b0));function whichOf(_0x586ad5){const _0x16c8ff={_0x344ebe:0x1d6,_0x5c0d4f:0x1f0,_0x11b5a4:0x1dd,_0x4bf0fb:0x1d3},_0x4030f5=_0x28effa;if(process[_0x4030f5(_0x16c8ff._0x344ebe)]==='win32')return void 0x0;for(const _0x36def0 of _0x586ad5){try{const _0x4c9f05=execFileSync(_0x4030f5(_0x16c8ff._0x5c0d4f),[_0x36def0],{'encoding':_0x4030f5(_0x16c8ff._0x11b5a4)})[_0x4030f5(0x1bf)]();if(_0x4c9f05[_0x4030f5(_0x16c8ff._0x4bf0fb)]>0x0&&existsSync(_0x4c9f05))return _0x4c9f05;}catch{}}return void 0x0;}__name(whichOf,_0x28effa(0x1c9));function runEnvironmentChecks(_0x69cdfa={}){const _0x345d00=_0x28effa,_0x3708d0=_0x69cdfa[_0x345d00(0x1da)]??process['cwd']();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x3708d0)];}function _0x5df4(_0x43fdd4,_0x8f6963){_0x43fdd4=_0x43fdd4-0x1a0;const _0x2cc633=_0x2cc6();let _0x5df425=_0x2cc633[_0x43fdd4];if(_0x5df4['xtnVRS']===undefined){var _0x2acbf2=function(_0x21c28f){const _0xf40cb4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x59abd9='',_0x28c9b6='';for(let _0x13939a=0x0,_0x29c80b,_0x338913,_0x107d84=0x0;_0x338913=_0x21c28f['charAt'](_0x107d84++);~_0x338913&&(_0x29c80b=_0x13939a%0x4?_0x29c80b*0x40+_0x338913:_0x338913,_0x13939a++%0x4)?_0x59abd9+=String['fromCharCode'](0xff&_0x29c80b>>(-0x2*_0x13939a&0x6)):0x0){_0x338913=_0xf40cb4['indexOf'](_0x338913);}for(let _0x6db848=0x0,_0x41c5c9=_0x59abd9['length'];_0x6db848<_0x41c5c9;_0x6db848++){_0x28c9b6+='%'+('00'+_0x59abd9['charCodeAt'](_0x6db848)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x28c9b6);};_0x5df4['OdfOqG']=_0x2acbf2,_0x5df4['DVuMqN']={},_0x5df4['xtnVRS']=!![];}const _0xf819c8=_0x2cc633[0x0],_0x384fc7=_0x43fdd4+_0xf819c8,_0x435822=_0x5df4['DVuMqN'][_0x384fc7];return!_0x435822?(_0x5df425=_0x5df4['OdfOqG'](_0x5df425),_0x5df4['DVuMqN'][_0x384fc7]=_0x5df425):_0x5df425=_0x435822,_0x5df425;}__name(runEnvironmentChecks,_0x28effa(0x1ab));function checkNodeVersion(){const _0x4d6af4={_0x391856:0x1e4,_0x226e36:0x1af,_0x46baf4:0x1f7,_0x162b1a:0x1be},_0x5aa999=_0x28effa,_0x45cd50=process['versions']['node'],_0xa22e5c=Number(_0x45cd50[_0x5aa999(0x1e9)]('.')[0x0]);if(!Number[_0x5aa999(_0x4d6af4._0x391856)](_0xa22e5c)||_0xa22e5c<0x14)return{'name':_0x5aa999(_0x4d6af4._0x226e36),'severity':_0x5aa999(_0x4d6af4._0x46baf4),'message':'requires\x20Node\x20≥20\x20(running\x20'+_0x45cd50+')','detail':_0x5aa999(_0x4d6af4._0x162b1a)};return{'name':_0x5aa999(0x1af),'severity':'ok','message':_0x45cd50};}__name(checkNodeVersion,'checkNodeVersion');function checkSystemBrowser(){const _0x46229b={_0x1518ad:0x1f1,_0x5eefd7:0x1ce,_0x263dae:0x1a1,_0x11417c:0x1a8,_0xfd5220:0x1d8,_0x240bdb:0x1bc},_0x40aa29=_0x28effa,_0x17f8e8=probeSystemBrowser();if(_0x17f8e8[_0x40aa29(_0x46229b._0x1518ad)]!==null)return{'name':_0x40aa29(0x1d8),'severity':'ok','message':_0x17f8e8[_0x40aa29(_0x46229b._0x5eefd7)]+_0x40aa29(_0x46229b._0x263dae),'detail':_0x17f8e8[_0x40aa29(_0x46229b._0x11417c)]};return{'name':_0x40aa29(_0x46229b._0xfd5220),'severity':'warning','message':_0x40aa29(_0x46229b._0x240bdb),'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,'checkSystemBrowser');function checkWritableCwd(_0x1962cb){const _0x450911={_0x250769:0x1d2,_0x94f5f3:0x1c0,_0x4b076a:0x1cf},_0x23ec03=_0x28effa;if(!_0x59abd9(_0x1962cb))return{'name':_0x23ec03(_0x450911._0x250769),'severity':'error','message':_0x23ec03(_0x450911._0x94f5f3)+_0x1962cb+_0x23ec03(_0x450911._0x4b076a),'detail':_0x23ec03(0x1de)};return{'name':_0x23ec03(0x1d2),'severity':'ok','message':_0x1962cb};}__name(checkWritableCwd,'checkWritableCwd');var PACKAGE_NAME=_0x28effa(0x1f5),WebRunnerAdapter=class{static{__name(this,_0x28effa(0x1c1));}[_0x28effa(0x1ef)]=PACKAGE_NAME;['suffix']='';['debug']={'picker':!![],'attach':!![],'resumeFromFailure':![]};['supportedKinds']=[_0x28effa(0x1b4),_0x28effa(0x1bb),_0x28effa(0x1c2)];['resolveBin'](){const _0x5d5fce={_0x111f8e:0x1e0,_0x5a238c:0x1dc,_0x403936:0x1a4,_0x2230d7:0x1e8},_0x35218d=_0x28effa,_0x29910b=createRequire(import.meta.url),_0x5828fe=_0x29910b[_0x35218d(_0x5d5fce._0x111f8e)](PACKAGE_NAME+_0x35218d(_0x5d5fce._0x5a238c)),_0x31818e=JSON[_0x35218d(_0x5d5fce._0x403936)](readFileSync(_0x5828fe,_0x35218d(0x1dd))),_0x29c3f7=pickBin(_0x31818e);if(!_0x29c3f7)throw new Error(PACKAGE_NAME+_0x35218d(_0x5d5fce._0x2230d7));return join(dirname(_0x5828fe),_0x29c3f7);}[_0x28effa(0x1bd)](_0x55f0fa){const _0x47481c={_0x307073:0x1ff,_0x4df2df:0x1d3,_0x316b0a:0x1f8,_0x44c0da:0x1f6,_0x3466b1:0x1f4,_0x53909a:0x1a0,_0x1ba411:0x1bb,_0x42c1dc:0x1a7,_0x5e1e29:0x1ff,_0x3a4e19:0x1ff,_0x2c4434:0x1b7,_0x53908d:0x1ef},_0x58ae1c=_0x28effa;if(_0x55f0fa[_0x58ae1c(0x1a0)]===_0x58ae1c(0x1b4)){const _0x233335=[_0x58ae1c(0x1eb),_0x55f0fa['scenario']];if(_0x55f0fa[_0x58ae1c(0x1fd)])_0x233335[_0x58ae1c(_0x47481c._0x307073)](_0x58ae1c(0x1e2));return _0x55f0fa[_0x58ae1c(0x1f6)]&&_0x55f0fa[_0x58ae1c(0x1f6)][_0x58ae1c(_0x47481c._0x4df2df)]>0x0&&_0x233335[_0x58ae1c(0x1ff)](_0x58ae1c(_0x47481c._0x316b0a),_0x55f0fa[_0x58ae1c(_0x47481c._0x44c0da)][_0x58ae1c(_0x47481c._0x3466b1)](',')),_0x233335;}if(_0x55f0fa[_0x58ae1c(_0x47481c._0x53909a)]===_0x58ae1c(0x1bb)){const _0x51a0ef=[_0x58ae1c(_0x47481c._0x1ba411),_0x55f0fa[_0x58ae1c(_0x47481c._0x1ba411)]];_0x55f0fa[_0x58ae1c(_0x47481c._0x42c1dc)]!==void 0x0&&_0x55f0fa[_0x58ae1c(0x1a7)]>0x1&&_0x51a0ef[_0x58ae1c(_0x47481c._0x5e1e29)]('--workers='+_0x55f0fa['workers']);if(_0x55f0fa[_0x58ae1c(0x1d9)])_0x51a0ef[_0x58ae1c(_0x47481c._0x3a4e19)](_0x58ae1c(0x1c4));return _0x51a0ef;}if(_0x55f0fa[_0x58ae1c(0x1a0)]==='authoring')return[_0x58ae1c(_0x47481c._0x2c4434),_0x55f0fa[_0x58ae1c(0x1b4)]];const _0x58289f=_0x55f0fa;throw new UnsupportedRunKindError(_0x58289f[_0x58ae1c(0x1a0)],this[_0x58ae1c(_0x47481c._0x53908d)]);}[_0x28effa(0x1cc)](_0x232979){const _0x9c2163={_0x29ea5b:0x1aa},_0x1bd0ed=_0x28effa,_0x3e36cb={};if(_0x232979[_0x1bd0ed(_0x9c2163._0x29ea5b)])_0x3e36cb[_0x1bd0ed(0x1ac)]='1';return _0x3e36cb;}[_0x28effa(0x1f9)](){const _0x4cb06a=_0x28effa;return[_0x4cb06a(0x1a6)];}async[_0x28effa(0x1fa)](_0x4a3ee9){const _0x4a5393=_0x28effa;return runEnvironmentChecks({'cwd':_0x4a3ee9[_0x4a5393(0x1d4)]});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x10820a){const _0x537906={_0x5285e9:0x1b8,_0x3fa5fe:0x1df,_0x41acf0:0x1d0},_0xaa6bb6=_0x28effa;if(typeof _0x10820a[_0xaa6bb6(_0x537906._0x5285e9)]==='string')return _0x10820a['bin'];if(_0x10820a[_0xaa6bb6(0x1b8)]&&typeof _0x10820a[_0xaa6bb6(0x1b8)]===_0xaa6bb6(_0x537906._0x3fa5fe))return _0x10820a[_0xaa6bb6(_0x537906._0x5285e9)][_0xaa6bb6(0x1b5)]??Object[_0xaa6bb6(_0x537906._0x41acf0)](_0x10820a[_0xaa6bb6(0x1b8)])[0x0]??null;return null;}function _0x2cc6(){const _0x302a5d=['l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','D2LUmZi','AM9PBG','qhvUB3rLC3qVD2vI','yNjLywTWB2LUDhm','zxjYB3i','ls1ICMvHAW','yxbWu2vYDMvYqxjNCW','zg9JDg9Y','ChjVyMvdAhjVBwu','uhjVz3jHBuzPBgvZkhG4nIK','zgvIDwC','zw52','ChvZAa','ndu5mde3v0PYwK5g','A2LUza','igzVDw5K','CgLJA0jPBG','Dw5KzwzPBMvK','CgfYC2u','uhjVz3jHBuzPBgvZ','yxbWlxnLCNzLCG','D29YA2vYCW','Cgf0Aa','mtaYntm1mMnhuLrwAG','AgvHzgvK','CNvUrw52AxjVBM1LBNrdAgvJA3m','vu5pvevtvf9iruferuq','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','tM9Kzs5QCYb2zxjZAw9U','zMLYC3rfEgLZDgLUz1bHDgG','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','y2HYB21PDw0','mty0mJC5nJHOD3H4B1a','C2nLBMfYAw8','Dw5VDgvZDc13zwi','z29Vz2XLlwnOCM9Tzq','yxv0Ag9Y','yMLU','mJa0mdz1svrWqMO','r29Vz2XLienOCM9TzsbczxrH','y29SBgvJDgLVBG','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','yNvPBgrbCMDZ','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','DhjPBq','DgfYz2v0ia','v2vIuNvUBMvYqwrHChrLCG','yxv0Ag9YAw5N','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','ls1IywLS','mtjYuLfKsuq','y2HYB21LlwjLDge','zgfYD2LU','ChjVyMvfzgDL','D2HPy2HpzG','mtyYntK1nu1vD0XizW','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','yNvPBgrfBNy','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','BgfIzwW','igrVzxmGBM90igv4Axn0','DMfSDwvZ','r29Vz2XLienOCM9Tzq','vgfYz2v0igrPCMvJDg9YEq','BgvUz3rO','ChjVAMvJDfjVB3q','ChjVyMvdAhjVBwvczxrH','CgXHDgzVCM0','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','u3LZDgvTigjYB3DZzxi','yMfPBa','y3DK','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','l3bHy2THz2uUANnVBG','DxrMoa','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','B2jQzwn0','CMvZB2X2zq','ovnmDu5Oqq','ls1Kzwj1zW','mteXnZeZzMD5rej4','AxngAw5PDgu','ChjVyMvtExn0zw1cCM93C2vY','mZm3ody1qNH3rNvt','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','ihbHy2THz2uUANnVBIbKzwnSyxjLCYbUBYaNyMLUjYbMAwvSzcdIGjqGyNjVA2vUigLUC3rHBgW/','C3bSAxq','twLJCM9ZB2z0ievKz2u','ztjL','BwLJCM9ZB2z0lwvKz2u','zgvMAw5LuhjVCgvYDhK','y2HYB21L','BMfTzq','D2HPy2G','y2HHBM5LBa'];_0x2cc6=function(){return _0x302a5d;};return _0x2cc6();}__name(pickBin,_0x28effa(0x1a2));export{web_runner_adapter_default as default,webRunnerAdapter};
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};
@@ -56,7 +56,8 @@ echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' \
56
56
  | npx @unotest/web mcp
57
57
  ```
58
58
 
59
- Should return JSON with `tools: [...39 entries]`.
59
+ Should return JSON with `tools: [...44 entries]` (default env: full
60
+ toolset, snapshots on, grounder off).
60
61
 
61
62
  ## Tool catalog
62
63
 
@@ -87,6 +88,32 @@ escape hatch when `get_page_snapshot` / `get_aria_snapshot` exceed
87
88
  the MCP token cap (table-heavy fleet UIs with 100+ rows). Refs are
88
89
  shared with outline / aria-snapshot.
89
90
 
91
+ `UNOTEST_SNAPSHOT=0` unregisters the three snapshot tools
92
+ (`get_page_snapshot`, `get_frame_snapshot`, `get_aria_snapshot`) — for
93
+ ground-only runs where discovery goes through `ground_element` (A/B
94
+ purity: the agent cannot fall back to snapshot reading). `find_element`
95
+ always stays, and tool descriptions that normally cross-reference the
96
+ snapshot tools switch to snapshot-free wording.
97
+
98
+ `UNOTEST_TOOLSET=core` narrows the whole surface to the minimal
99
+ explore-first loop for small local models: `new_context`,
100
+ `explore_start` / `explore_step` / `explore_steps` / `explore_stop`,
101
+ `ground_element` (still needs `UNOTEST_GROUNDER_MODE`),
102
+ `save_exploration_as_test`, `run_test`. assert_* actions and the
103
+ `autoRun` flag live inside `explore_steps` (actions are not tools), so
104
+ the core happy-path is `explore_start` (it opens the context itself) →
105
+ `explore_steps {…, autoRun: true}`; save/run stay registered as the
106
+ fallback when an autoRun gate skips. Fewer tools = smaller prefill
107
+ per turn, and no side doors around the grounder (`find_element`,
108
+ snapshot dumps). Default `full`. MCP is per-process: every client spawns
109
+ its own server with its own env, so Claude can run `full` while a local
110
+ driver runs `core` from the same code. Typical matrices:
111
+
112
+ ```
113
+ # Claude agent: UNOTEST_TOOLSET=full UNOTEST_SNAPSHOT=1 UNOTEST_GROUNDER_MODE=local
114
+ # local-model driver: UNOTEST_TOOLSET=core UNOTEST_SNAPSHOT=0 UNOTEST_GROUNDER_MODE=local
115
+ ```
116
+
90
117
  ### Debugger (6)
91
118
 
92
119
  The reason most agents pick this package over driving Playwright
@@ -151,6 +178,78 @@ Auto-switch runs **only** under `explore_step` (recording / ad-hoc).
151
178
  - `get_failure_network` — HAR (tier 3 — not yet wired, see
152
179
  `KNOWN_ISSUES.md`)
153
180
 
181
+ ### `ground_element` (1, experimental, off by default)
182
+
183
+ Registered when `UNOTEST_GROUNDER_MODE` is `local` or `remote` for the
184
+ MCP server process (`off` by default → tool absent). Semantic element
185
+ lookup: the agent describes the target in natural language (any language)
186
+ and gets back the best-matching ref plus the top-20 candidate lines the
187
+ decision was made from. Positional intents pass `ordinal` (`"first" |
188
+ "last" | N`) instead of baking the position into the text. Refs share the
189
+ `data-unotest-ref` space with the snapshot tools, so a grounded `eN` goes
190
+ straight into `explore_step`.
191
+
192
+ For an element ref (`eN`) the response carries a **paste-ready
193
+ `locator`** (`{kind:"locator", steps:[{kind:"ref", ref:"eN"}]}`) — the
194
+ agent passes it to `explore_step` verbatim instead of assembling the
195
+ JSON by hand (the top format-error class in small models). A record/text
196
+ ref (`rN`/`tN`/…) is not addressable by a ref locator, so instead of a
197
+ `locator` the result carries a `locatorNote` telling the agent to act on
198
+ the record's inner controls (visible in the candidates list) or ground
199
+ one directly («the edit button in row X»).
200
+
201
+ Intent locators in `explore_step` / `explore_steps` are grounded with a
202
+ **target class** owned by the action: click/fill/hover targets ask for a
203
+ control (a record answer hops to the record's inner control), while
204
+ assert steps (`assert_text` / `assert_visible` / …) ask for the semantic
205
+ unit itself — a page heading, a table row, a text block. A unit with no
206
+ capture-time ref gets one materialized on its own DOM element at resolve
207
+ time, so "assert the page heading says X" works as a single intent step
208
+ with no discovery call.
209
+
210
+ `frame` (an iframe locator) grounds **inside** that iframe — the
211
+ page-level walk cannot see into iframes. Frame refs are frame-local
212
+ (`e5` inside the frame is unrelated to the page's `e5`): the agent runs
213
+ `explore_step {action:"enter_frame"}` before acting on one, and
214
+ `exit_frame` after. Page and frame indexes coexist (the index cache is
215
+ an LRU keyed by content hash, both locally and on the remote server),
216
+ so alternating page ↔ frame grounding does not re-index.
217
+
218
+ Two modes, same tool surface:
219
+
220
+ - **local** — grounding runs in-process against local models
221
+ (`UNOTEST_GROUNDER_*`; defaults: ollama at `http://localhost:11434`,
222
+ `embeddinggemma` + `gemma4:e4b`).
223
+ - **remote** — only the page walk runs locally; embed + picker run on a
224
+ GPU grounding server (`UNOTEST_GROUNDER_REMOTE_URL` +
225
+ `UNOTEST_GROUNDER_REMOTE_TOKEN`). Each MCP-server process is an isolated
226
+ session — two servers never share an index.
227
+
228
+ At MCP-server start a cheap reachability ping runs against the backend
229
+ (`/api/tags` for local ollama, `/health` for a remote server, no model
230
+ warm-up) — it never blocks or fails startup. A down backend produces one
231
+ actionable warning in the server log, and any later network-level failure
232
+ on an intent step or `ground_element` call surfaces as a typed
233
+ `grounder unreachable at <url> — …` error that cites the backend URL, a
234
+ mode-specific fix hint and whether the backend was reachable at server
235
+ start — instead of a raw `fetch failed`.
236
+
237
+ The page is **re-indexed automatically** whenever its content changes
238
+ (navigation, filter, sort, SPA update) — there is no `reindex` flag; an
239
+ unchanged page reuses its index. The first index on a page takes seconds
240
+ (longer on huge pages / when running locally on weak hardware).
241
+
242
+ For ground-only A/B runs combine with `UNOTEST_SNAPSHOT=0` (see the
243
+ core-tools section) so the agent cannot fall back to snapshot reading.
244
+
245
+ `ground_element` is the **discovery** path («what's on the page?»). For
246
+ acting on an element, `explore_step` / `explore_steps` accept an
247
+ **intent locator** directly — `{kind:"locator", steps:[{kind:"intent",
248
+ intent:"the login field", ordinal?}]}` — and the runner grounds it itself
249
+ (intent → ref → stable locator), saving the separate lookup call and
250
+ keeping refs out of the agent's context entirely. See
251
+ `exploration-mode.md` for details.
252
+
154
253
  ### `agent_fix` (1)
155
254
 
156
255
  Build a structured fix-context for a failed run (D-25). Composes the
@@ -290,7 +389,9 @@ What it **can** do (with your approval):
290
389
  - Read failure artifacts from `.unotest/failures/`
291
390
  - Execute sandbox primitives — `shell(cmd, …args)` (execFile, not
292
391
  shell), `dbQuery` / `dbExec` (against `sandbox.database`), `apiCall`
293
- (path-only against `sandbox.apiBaseUrl`)
392
+ (path-only against `sandbox.apiBaseUrl`, or against an env-named base
393
+ via `{base: 'API_BASE_X'}`; upload files confined to
394
+ `sandbox.uploadDir`)
294
395
 
295
396
  Pinning `sandbox.*` in `unotest.config.*` is how you constrain what the
296
397
  agent's scenarios can touch: a scenario cannot redirect `shell` cwd or
@@ -301,6 +301,15 @@ Compares `inputValue()` (`<input>`, `<textarea>`, native `<select>`).
301
301
  assertValue(getByLabel('Email'), 'a@b.c')
302
302
  ```
303
303
 
304
+ On a checkbox / radio / switch (native or `role=`) it asserts the
305
+ **checked state** instead — their DOM value is the submitted payload
306
+ (`"on"` by default), identical whether ticked or not. Pass `'true'` or
307
+ `'false'`; anything else is rejected as a usage error.
308
+
309
+ ```js
310
+ assertValue(getByRole('checkbox', {name: 'Select row R-00147'}), 'true')
311
+ ```
312
+
304
313
  ### `assertCount(loc, expected, options?)`
305
314
 
306
315
  ```js
@@ -388,7 +397,40 @@ waitFor(getByTestId('content-loaded'))
388
397
 
389
398
  ### `waitForText(text, options?)`
390
399
 
391
- Wait for any element on the active page to contain `text`.
400
+ Wait until at least one **visible** element on the active page contains
401
+ `text` (chat feeds and repeated labels legally duplicate text — ≥1
402
+ visible match is the success condition; `{first: true}` from older
403
+ scenarios is accepted as a no-op).
404
+
405
+ Options: `{ exact?, state?, timeout? }`. Default matching is substring —
406
+ it also matches *inside* a word (`'hi'` hits `'anything'`). For precise
407
+ matching pass `{exact: true}` (full-text equality) or a regex with word
408
+ boundaries:
409
+
410
+ ```js
411
+ waitForText('Active'); // ≥1 visible occurrence
412
+ waitForText('Active', {exact: true}); // full-text equality
413
+ waitForText(/\bhi\b/, {timeout: 60000}); // word-boundary, long poll
414
+ ```
415
+
416
+ `state: 'hidden'` waits until **no** visible occurrence remains.
417
+
418
+ ### `waitForCount(loc, count, options?)`
419
+
420
+ Poll until the locator matches **at least** `count` elements. The chat
421
+ pattern "wait for reply №N": at-least semantics don't flake when the
422
+ feed grows past N between polls. `{exact: true}` waits for exactly
423
+ `count` matches; timeout throws with the last observed count.
424
+
425
+ Options: `{ exact?, timeout? }` (default timeout 5000 ms — raise it for
426
+ slow producers like LLM replies).
427
+
428
+ ```js
429
+ // Chat feed: the bot's reply is message #3 — wait for it, then assert
430
+ // on its text with a second, content-anchored wait:
431
+ waitForCount(locator('[data-id]'), 3, {timeout: 90000});
432
+ waitForText(/\bshipping\b/i, {timeout: 90000});
433
+ ```
392
434
 
393
435
  ### `pause(ms)`
394
436
 
@@ -552,7 +594,7 @@ INSERT / UPDATE / DELETE.
552
594
  dbExec('delete from sessions where user_id = ?', userId);
553
595
  ```
554
596
 
555
- ### `apiCall(method, path, body?, headers?)` → `{status, body, headers}`
597
+ ### `apiCall(method, path, body?, headers?, options?)` → `{status, body, headers}`
556
598
 
557
599
  HTTP via global `fetch`. **`path` must be relative** (starts with `/`) —
558
600
  absolute URLs throw to prevent scenarios from hitting arbitrary hosts.
@@ -562,6 +604,47 @@ res = apiCall('POST', '/auth/login', {email: 'a@b.c', password: 'x'});
562
604
  assertTrue(res.status == 200, 'login failed');
563
605
  ```
564
606
 
607
+ **Named API bases.** Without `options` the path goes against
608
+ `sandbox.apiBaseUrl`. A setup that talks to more than one host names
609
+ the base per call — `{base: 'API_BASE_X'}` is the **name of a
610
+ variable** from `unotest/.env` (overlays apply as usual), never a URL:
611
+
612
+ ```js
613
+ // unotest/.env: API_BASE_CHAT=https://chatbackend.example.com
614
+ res = apiCall('DELETE', '/external/room/r1', null, {'x-api-key': KEY},
615
+ {base: 'API_BASE_CHAT'});
616
+ ```
617
+
618
+ The variable must hold an http(s) URL; an unknown name fails with the
619
+ usual "add it to unotest/.env" message. URLs never appear in the
620
+ scenario — hosts are controlled by project env files only.
621
+
622
+ **Multipart file upload — `upload(path, options?)`.** Passing the
623
+ result of `upload(...)` as the body posts `multipart/form-data`:
624
+
625
+ ```js
626
+ res = apiCall('POST', '/tenants/t1/documents',
627
+ upload('fixtures/manual.pdf', {fields: {source: 'e2e'}}),
628
+ {Authorization: BEARER});
629
+ assertTrue(res.status == 202, 'ingestion not accepted');
630
+ ```
631
+
632
+ - `path` — **relative**, resolved against `sandbox.uploadDir`
633
+ (defaults to the project root). Absolute paths and `../` escapes
634
+ out of that root throw.
635
+ - `options.field` — form part name, default `"file"`.
636
+ `options.fields` — extra string parts. The part's content type
637
+ derives from the file extension.
638
+ - Don't set a `Content-Type` header with an `upload()` body — `fetch`
639
+ derives the boundary itself; a manual value throws.
640
+ - Plain JSON bodies are NEVER promoted to multipart — a body with a
641
+ `file` key posts as JSON. (Before 0.11, the exact shape
642
+ `{file, field?, fields?}` switched modes by key name; that magic
643
+ broke JSON APIs with a legitimate `file` field and is gone —
644
+ migrate to `upload(...)`.)
645
+ - `upload(...)` must be the body itself, not a field inside a JSON
646
+ body — extra form fields go in `options.fields`.
647
+
565
648
  ---
566
649
 
567
650
  ## Typed getters
@@ -617,6 +700,37 @@ Backticks are **raw** — `${…}` interpolation is rejected at parse time
617
700
 
618
701
  ---
619
702
 
703
+ ## Diagnostics
704
+
705
+ ### `screenshot(name?, options?)` → `string`
706
+
707
+ On-demand PNG capture of the active page into the run's artifact dir:
708
+ `unotest/.runs/<runId>/screenshot/<NNN>-<name>.png`. Returns the
709
+ project-relative path. Evidence tool — fixes what the page actually
710
+ looked like at this point, so a green run can be verified after the
711
+ fact (the viewer lists each capture as a `screenshot` event).
712
+
713
+ ```js
714
+ screenshot(); // 001-shot.png
715
+ screenshot('bot-reply'); // 002-bot-reply.png
716
+ screenshot('landing', {fullPage: true}); // full scroll height
717
+ ```
718
+
719
+ - `name` is slugified to `[a-z0-9._-]` (`'Bot Reply!'` → `bot-reply`);
720
+ omitted → `shot`. Files are numbered in capture order.
721
+ - **Options:** `fullPage?` (default `false` — viewport only).
722
+ - Before capturing, the call waits for the network to go quiet and for a
723
+ painted frame (up to 2s). Without it a `screenshot()` right after
724
+ `goto()` would freeze the blank pre-render frame — `goto` resolves on
725
+ `load`, which on a client-rendered app fires before any content is on
726
+ screen. A page that never goes quiet (polling, live feeds) costs the
727
+ 2s cap and is then captured as-is.
728
+ - Not a visual assertion: the test does not compare images. In runtimes
729
+ with no artifact dir (exploration) the call logs a warning, returns
730
+ `null` and does NOT fail the run.
731
+
732
+ ---
733
+
620
734
  ## Logging
621
735
 
622
736
  ### `log(...args)`
@@ -638,21 +752,44 @@ The DSL is JavaScript-shaped but parsed by a small AST engine
638
752
  - **`function test_*(): { … }`** — scenario entry; each top-level
639
753
  `function test_*` is a separately runnable test.
640
754
  - **Assignments** — `name = expression;` (no `let`/`const`/`var`).
641
- - **`if` / `else`**, **`while`**, **`for (a; b; c)`**,
642
- **`do { … } while (cond)`**, **`break`**, **`continue`**.
643
- - **Increment / decrement** — `i++`, `i--`, `++i`, `--i` (numeric
644
- variables only; postfix returns the old value, prefix the new).
645
- - **Object / array literals** — `{name: 'x'}`, `[1, 2, 3]`.
646
- - **Member access** — `row.email`, `result.headers['content-type']`.
755
+ - **`if` / `else`** and **`for` in the canonical shape**
756
+ `for (i = 0; i < N; i = i + 1) { … }` (increment must be an
757
+ assignment — `i++` is rejected everywhere).
758
+ - **`break`** inside a loop body only. Typical polling loop:
759
+
760
+ ```js
761
+ done = false;
762
+ for (i = 0; i < 60; i = i + 1) {
763
+ job = apiCall('GET', '/jobs/1');
764
+ if (job.body.status == 'DONE') {
765
+ done = true;
766
+ break;
767
+ }
768
+ pause(2000); // reason: ingestion job is async, poll every 2s
769
+ }
770
+ assertTrue(done, 'job never reached DONE');
771
+ ```
772
+
773
+ - **Array literals** — `[1, 2, 3]`.
774
+ - **Index access on data** — `docs[0]`, `docs[0].objectsCount`. The
775
+ index goes on a **bare variable** (grammar restriction), so pull
776
+ nested arrays into one first: `docs = res.body; n = docs[0].count;`.
777
+ Indexing a **Locator** is rejected — disambiguate with chain methods
778
+ (`.filter(...)`), and `arr[i] = v` assignment stays unsupported.
779
+ - **Object literals — as call arguments only** (`click(loc, {force:
780
+ true})`); a standalone `x = {name: 'x'}` is rejected.
781
+ - **Member access** — `row.email` (dot form; `obj['key']` doesn't
782
+ parse).
647
783
  - **Method chains** — `getByRole('row').filter({hasText:'X'}).click()`.
648
784
  - **Backticks** — multi-line raw strings, no `${}` interpolation.
649
785
  - **Booleans, numbers, strings, `null`**.
650
786
 
651
- Not supported (and intentionally so): arrow functions, async/await
652
- (everything is sequenced by the AST executor), classes, modules,
653
- promises, `try/catch`. Errors thrown from a primitive abort the
654
- scenario; if the runtime is paused (debugger / MCP step mode), the
655
- failure is captured for inspection.
787
+ Not supported (and intentionally so): `while` / `do…while` /
788
+ `continue` (bound loops keep every scenario terminating), `++`/`--`,
789
+ arrow functions, async/await (everything is sequenced by the AST
790
+ executor), classes, modules, promises, `try/catch`. Errors thrown from
791
+ a primitive abort the scenario; if the runtime is paused (debugger /
792
+ MCP step mode), the failure is captured for inspection.
656
793
 
657
794
  See `vendor/dsl/EXTENSIONS.md` for the
658
795
  exact grammar deltas from the upstream parser.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unotest/web",
3
- "version": "0.9.1",
3
+ "version": "0.11.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": {
@@ -71,53 +71,25 @@
71
71
  "README.md"
72
72
  ],
73
73
  "dependencies": {
74
+ "@faker-js/faker": "^10.5.0",
74
75
  "@modelcontextprotocol/sdk": "^1.0.4",
75
76
  "chokidar": "^4.0.3",
76
77
  "dotenv": "^16.4.5",
77
- "playwright": "^1.49.0",
78
+ "playwright": "^1.51.0",
78
79
  "tsx": "^4.19.2",
79
80
  "yaml": "^2.6.0",
80
81
  "zod": "^3.23.8",
81
- "@unotest/core": "^0.9.1",
82
- "@unotest/dsl": "^0.9.1",
83
- "@unotest/protocol": "^0.9.1",
84
- "@unotest/viewer": "^0.9.1"
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"
85
87
  },
86
88
  "devDependencies": {
87
89
  "@types/node": "^22.10.0",
88
90
  "javascript-obfuscator": "^4.1.1",
89
91
  "tsup": "^8.5.1",
90
- "typescript": "^5.7.2"
91
- },
92
- "scripts": {
93
- "typecheck": "tsc --noEmit",
94
- "design": "npx serve -l 3111 design",
95
- "test": "node --import tsx --test --test-reporter=spec 'src/**/*.test.ts' 'scripts/**/*.test.mjs' 'evals/**/*.test.ts'",
96
- "compile": "tsup",
97
- "compile:all": "pnpm -C ../unotest-dsl compile && pnpm -C ../unotest-web compile && pnpm -C ../unotest-viewer compile",
98
- "lint:scenarios": "tsx src/runner/cli.ts lint",
99
- "smoke:bundle": "node scripts/smoke-bundle.mjs",
100
- "check:docs-sync": "node scripts/check-docs-sync.mjs",
101
- "check:no-internal-refs": "node scripts/check-no-internal-refs.mjs",
102
- "check:no-cyrillic": "node scripts/check-no-cyrillic.mjs",
103
- "check:surface": "pnpm check:no-internal-refs && pnpm check:no-cyrillic && pnpm check:skill-prompt-sync",
104
- "check:skill-prompt-sync": "node scripts/check-skill-prompt-sync.mjs",
105
- "check:tarball": "node scripts/check-tarball.mjs",
106
- "check:sibling-versions": "node scripts/check-sibling-versions.mjs",
107
- "build:guides": "node scripts/build-guides.mjs",
108
- "prepublish:check": "node scripts/prepublish-check.mjs",
109
- "evals:run": "tsx evals/run.ts",
110
- "evals:prepare": "tsx evals/prepare.ts",
111
- "evals:check": "tsx evals/check.ts",
112
- "evals:bless": "tsx evals/bless.ts",
113
- "evals:diff": "tsx evals/diff.ts",
114
- "perf:baseline": "node scripts/perf-baseline.mjs",
115
- "verify": "pnpm typecheck && pnpm lint:scenarios && pnpm check:surface && pnpm test",
116
- "obfuscate": "node scripts/obfuscate.mjs",
117
- "build": "pnpm verify && pnpm compile && pnpm obfuscate && pnpm smoke:bundle && pnpm build:guides && pnpm check:tarball",
118
- "e2e": "tsx src/runner/cli.ts e2e",
119
- "m1:cross-browser": "node scripts/m1-cross-browser.mjs",
120
- "mcp": "tsx src/mcp/server.ts",
121
- "serve-fixture": "node examples/fixtures/break-fix-app/serve.mjs"
92
+ "typescript": "^5.7.2",
93
+ "@unotest/grounder": "^0.11.0"
122
94
  }
123
95
  }