@unotest/web 0.35.2 → 0.37.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 _0x3420(_0xd4c857,_0x1101b2){_0xd4c857=_0xd4c857-0x1eb;const _0xae52e2=_0xae52();let _0x3420ed=_0xae52e2[_0xd4c857];if(_0x3420['IiLBbl']===undefined){var _0x44e75a=function(_0x23a861){const _0x35a440='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xc59779='',_0x46cd5a='';for(let _0x1ab457=0x0,_0x513c16,_0x40bf10,_0xe7c9d9=0x0;_0x40bf10=_0x23a861['charAt'](_0xe7c9d9++);~_0x40bf10&&(_0x513c16=_0x1ab457%0x4?_0x513c16*0x40+_0x40bf10:_0x40bf10,_0x1ab457++%0x4)?_0xc59779+=String['fromCharCode'](0xff&_0x513c16>>(-0x2*_0x1ab457&0x6)):0x0){_0x40bf10=_0x35a440['indexOf'](_0x40bf10);}for(let _0x56f41c=0x0,_0x1a0cfb=_0xc59779['length'];_0x56f41c<_0x1a0cfb;_0x56f41c++){_0x46cd5a+='%'+('00'+_0xc59779['charCodeAt'](_0x56f41c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x46cd5a);};_0x3420['svINWl']=_0x44e75a,_0x3420['tlTlkq']={},_0x3420['IiLBbl']=!![];}const _0x10deae=_0xae52e2[0x0],_0x5ba7a9=_0xd4c857+_0x10deae,_0x4d1188=_0x3420['tlTlkq'][_0x5ba7a9];return!_0x4d1188?(_0x3420ed=_0x3420['svINWl'](_0x3420ed),_0x3420['tlTlkq'][_0x5ba7a9]=_0x3420ed):_0x3420ed=_0x4d1188,_0x3420ed;}const _0xedfc3=_0x3420;(function(_0x358fee,_0xc90d5a){const _0x25dbfd={_0x3532a0:0x202,_0x4c2b17:0x22b,_0x207863:0x251,_0x5908dc:0x249,_0xf66d5:0x247},_0xa130f5=_0x3420,_0x1d253c=_0x358fee();while(!![]){try{const _0x89304c=parseInt(_0xa130f5(0x21b))/0x1+parseInt(_0xa130f5(0x1f9))/0x2+parseInt(_0xa130f5(0x224))/0x3*(parseInt(_0xa130f5(_0x25dbfd._0x3532a0))/0x4)+parseInt(_0xa130f5(0x24a))/0x5*(parseInt(_0xa130f5(_0x25dbfd._0x4c2b17))/0x6)+-parseInt(_0xa130f5(0x259))/0x7*(parseInt(_0xa130f5(_0x25dbfd._0x207863))/0x8)+parseInt(_0xa130f5(_0x25dbfd._0x5908dc))/0x9+parseInt(_0xa130f5(0x1f5))/0xa*(-parseInt(_0xa130f5(_0x25dbfd._0xf66d5))/0xb);if(_0x89304c===_0xc90d5a)break;else _0x1d253c['push'](_0x1d253c['shift']());}catch(_0x1dcb2d){_0x1d253c['push'](_0x1d253c['shift']());}}}(_0xae52,0x4e987));var __defProp=Object[_0xedfc3(0x210)],__name=(_0x40bf10,_0xe7c9d9)=>__defProp(_0x40bf10,_0xedfc3(0x22e),{'value':_0xe7c9d9,'configurable':!![]});import{writeFileSync as _0xc59779}from'fs';import{join as _0x46cd5a}from'path';import{fileURLToPath}from'url';import{readFileSync as _0x1ab457,existsSync as _0x513c16}from'fs';import{relative}from'path';import{existsSync,mkdirSync,readFileSync,readdirSync,statSync,writeFileSync}from'fs';import{join,dirname}from'path';import{artifactsRootFrom,FAILURES_DIR_SEGMENTS,failuresRootFrom}from'@unotest/protocol';function readFailureBundle(_0x56f41c){const _0x38aa7f={_0x40e1b5:0x218,_0x51029e:0x20d,_0x1138db:0x20d,_0x3e4d49:0x20d,_0x44e46b:0x23f,_0x5a9aaf:0x216,_0x1e078d:0x1f6},_0x5e8da2=_0xedfc3;if(!existsSync(_0x56f41c))return null;const _0x1a0cfb=join(_0x56f41c,_0x5e8da2(_0x38aa7f._0x40e1b5));if(!existsSync(_0x1a0cfb))return null;const _0x213597=JSON['parse'](readFileSync(_0x1a0cfb,_0x5e8da2(_0x38aa7f._0x51029e))),_0x35ab63=join(_0x56f41c,_0x5e8da2(0x239)),_0x4c03c8=existsSync(_0x35ab63)?JSON[_0x5e8da2(0x226)](readFileSync(_0x35ab63,_0x5e8da2(_0x38aa7f._0x1138db))):[],_0x177e50=join(_0x56f41c,_0x5e8da2(0x246)),_0x91095f=existsSync(_0x177e50)?JSON['parse'](readFileSync(_0x177e50,_0x5e8da2(_0x38aa7f._0x3e4d49))):void 0x0,_0x33b8fe={'trace':_0x213597,'console':_0x4c03c8},_0x32fafc=join(_0x56f41c,'network.json');existsSync(_0x32fafc)&&(_0x33b8fe[_0x5e8da2(0x21e)]=JSON[_0x5e8da2(0x226)](readFileSync(_0x32fafc,_0x5e8da2(_0x38aa7f._0x3e4d49))));if(_0x91095f!==void 0x0)_0x33b8fe[_0x5e8da2(0x1fb)]=_0x91095f;const _0x3d7fbf=join(_0x56f41c,_0x5e8da2(_0x38aa7f._0x44e46b));if(existsSync(_0x3d7fbf))_0x33b8fe[_0x5e8da2(_0x38aa7f._0x5a9aaf)]=_0x3d7fbf;else{const _0x522a6d=join(_0x56f41c,'screenshot-error.txt');existsSync(_0x522a6d)&&(_0x33b8fe[_0x5e8da2(0x22d)]=readFileSync(_0x522a6d,_0x5e8da2(0x20d)));}const _0x54da10=join(_0x56f41c,_0x5e8da2(0x1eb));if(existsSync(_0x54da10))_0x33b8fe[_0x5e8da2(0x21f)]=_0x54da10;const _0x3637ca=join(_0x56f41c,_0x5e8da2(0x257));if(existsSync(_0x3637ca))_0x33b8fe[_0x5e8da2(_0x38aa7f._0x1e078d)]=_0x3637ca;return _0x33b8fe;}__name(readFailureBundle,_0xedfc3(0x234));function listFailures(_0x22e0d0){const _0x355281={_0x5b7996:0x223,_0x18bd7b:0x238,_0xb5b416:0x253},_0x34d086=_0xedfc3;if(!existsSync(_0x22e0d0))return[];const _0x2dc81d=[];for(const _0x2dca4d of readdirSync(_0x22e0d0)){const _0x10e2cd=join(_0x22e0d0,_0x2dca4d);if(!statSync(_0x10e2cd)[_0x34d086(_0x355281._0x5b7996)]())continue;for(const _0x34e694 of readdirSync(_0x10e2cd)){const _0x359135=join(_0x10e2cd,_0x34e694);if(!statSync(_0x359135)[_0x34d086(0x223)]())continue;const _0xa8bf19=join(_0x359135,_0x34d086(0x218));if(!existsSync(_0xa8bf19))continue;try{const _0x90a7c9=JSON[_0x34d086(0x226)](readFileSync(_0xa8bf19,_0x34d086(0x20d)));_0x2dc81d['push']({'runId':_0x2dca4d,'testFn':_0x90a7c9[_0x34d086(_0x355281._0x18bd7b)],'scenarioPath':_0x90a7c9[_0x34d086(_0x355281._0xb5b416)],'dir':_0x359135,'timestamp':_0x90a7c9[_0x34d086(0x217)]});}catch{}}}return _0x2dc81d[_0x34d086(0x22f)]((_0x2ecad5,_0x54e9a7)=>_0x54e9a7[_0x34d086(0x217)][_0x34d086(0x24c)](_0x2ecad5['timestamp'])),_0x2dc81d;}__name(listFailures,_0xedfc3(0x235));function defaultFailuresRoot(_0x117ab1=artifactsRootFrom(process['env'],process['cwd']()),_0x3cc17e=process[_0xedfc3(0x245)]){return failuresRootFrom(_0x3cc17e,join(_0x117ab1,...FAILURES_DIR_SEGMENTS));}__name(defaultFailuresRoot,'defaultFailuresRoot');function resolveBundleDir(_0x279038,_0x5a3904){const _0x5ba15e=_0xedfc3;if(existsSync(_0x279038)&&statSync(_0x279038)[_0x5ba15e(0x223)]())return _0x279038;return join(_0x5a3904,_0x279038);}__name(resolveBundleDir,_0xedfc3(0x21a));function _0xae52(){const _0x39f5ee=['y3DK','zgvMAw5LuhjVCgvYDhK','iYbuzxn0igzPEcbYzxf1zxn0cGOJiYbgywLSDxjLignVBNrLEhqkcI0GkIPuzxn0kIO6iga','cKnHChr1CMvKoIa','DhjHy2u','ls1MywLSAw5N','ycdIGjqG','C2nYzwvUC2HVDfbHDgG','DgLTzxn0yw1W','zMfPBhvYzs5QC29U','iIaOBg9VA2vKigLUia','CMvZB2X2zuj1BMrSzurPCG','mtK5nZK5A3HmBfPw','yNvPBgrqCM9TChrnyxjRzg93BG','cI0GkIPfCNjVCIOQoIbG','BMv0D29YAW','AgfYugf0Aa','cK5LEhq6ihbHC3rLigvHy2GGzML4lxbYB21WDc5TzcbPBNrVihLVDxiGteXnignSAwvUDcaOq2XHDwrLienVzguGlWPdDxjZB3iGlYbLDgmUks4GvgHLieXmtsbYzxr1CM5ZigeGDw5PzMLLzcbKAwzMoYbYzxzPzxCGAxqGyw5KigfWCgX5cM1HBNvHBgX5lIbxzsbUzxzLCIbHDxrVlwfWCgX5icHelti1ks4k','xYHUBYbJB25ZB2XLigvUDhjPzxmGy2fWDhvYzwqPxW','D3jPDgu','AxneAxjLy3rVCNK','mtjqzu1ps3G','lcbJB2WG','CgfYC2u','icaGicaG','iYmJifn0ywnRcMbGyaO','yxbWCM94vg9Rzw5Z','DgvZDa','ote1mfnNCgzYrq','vgLTzw91DevYCM9Y','C2nYzwvUC2HVDevYCM9Y','BMfTzq','C29YDa','tg9JyxrVCKvYCM9Y','Dg9vChbLCKnHC2u','C3rHCNrZv2L0Aa','zMfPBhvYzsbIDw5KBguGBM90igzVDw5KigzVCIb0zxn0swq9iG','CMvHzezHAwX1CMvcDw5KBgu','BgLZDezHAwX1CMvZ','y2HHBMDLlwfZC2vYDgLVBG','cMbGyaOkiYmGu2vTyw50AwmTre9nihnUyxbZAg90cGO','DgvZDezU','y29UC29Szs5QC29U','BwvZC2fNzq','DMfSDwvZ','y2vPBa','icaGicaGC3vNz2vZDgvKqwn0Aw9Upq','Dw5RBM93BG','C2nYzwvUC2HVDc5WBMC','zxjYB3i','DxjS','zxjY','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','y29UC29Szq','zw52','C25HChnOB3qUANnVBG','mtC5m2PmzgfgqW','CNvUuhjLCgfYzuzPEa','ndyYodm4nwT2yK5MtG','odC1qxP0zMjI','zMLSDgvY','Bg9JywXLq29TCgfYzq','cMbGyaOkiYmGtgfZDcbJB25ZB2XLigvUDhjPzxmkcMbGyaO','C3vNz2vZDgvKqwn0Aw9U','ChjLCgfYzs1MAxG6ig5VigzHAwX1CMuGyNvUzgXLCYbMB3vUzcb1BMrLCIaUDw5VDgvZDc9MywLSDxjLCY8Uifj1BIbHigzHAwXPBMCGDgvZDcbMAxjZDdSGDgHLigj1BMrSzsbPCYb3CML0DgvUigf1Dg9TyxrPy2fSBhKUcG','AM9PBG','mtq2mJr0qxrYvMW','CNvUswq','C2nLBMfYAw9qyxrO','y29S','B3v0','y29TCg9ZzuzPEfbYB21WDa','DMLKzw8UD2vIBq','icbJB25MAwrLBMnLpq','mte4m1LHsKD5EG','AgfYlMPZB24','CgfKu3rHCNq','ihrLC3qOCYKGkeqTmJuPcGO','zxHPDa','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','BwfW','C3rKB3v0','yxjNDG','C2XPy2u','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','ntG1mtbbDwvXvuC','DMLKzw9qyxrO','CMv3CML0zs1ZzwXLy3rVCG','yaOTicOQu3rLCcbPBMrLEcOQoIa','ody3nJeWANjcz3vO','rxjYB3i','C25HChnOB3q','zMfPBhvYzxnsB290','xYHUBYbZzw1HBNrPyY1KB20GC25HChnOB3qGy2fWDhvYzwqGzM9YihrOAxmGzMfPBhvYzsLF','C3rHy2S','qxnZzxj0Aw9UrxjYB3i','vvjmoIa','BwvKAxvT','mty5odi4DwLfyLzJ','C291CMnLCW','C3bSAxq','ChjLCgfYzs1MAxG6ignVBxbVC2LUzYbMAxGGChjVBxb0CYbMB3iG','y2fWDhvYzwrbDa','cI0GkIPmB2nHDgLVBIOQoIbSAw5Lia','BgvUz3rO','kqOk','Dg9mB3DLCKnHC2u','Bgv2zwW','ywrKlxDHAxrMB3i','DxrMoa','AgLNAa'];_0xae52=function(){return _0x39f5ee;};return _0xae52();}function composeFixPrompt(_0x164e98,_0x42fdfb={}){const _0x372299={_0x3ebecc:0x1fc,_0x20c08d:0x233,_0x4605aa:0x219,_0x59363d:0x244,_0x3c1be9:0x1f3,_0x3add84:0x23c,_0x55ce07:0x213,_0x50bc1b:0x253,_0x2db7ae:0x1fb},_0x1c9a51=_0xedfc3,_0x110dfe=_0x42fdfb[_0x1c9a51(_0x372299._0x3ebecc)]??defaultFailuresRoot(),_0xaedbf1=resolveBundleDir(_0x164e98,_0x110dfe),_0x6c8d76=readFailureBundle(_0xaedbf1);if(!_0x6c8d76)throw new Error(_0x1c9a51(_0x372299._0x20c08d)+_0x164e98+_0x1c9a51(_0x372299._0x4605aa)+_0xaedbf1+')');const _0xa972bf=_0x42fdfb['cwd']??process[_0x1c9a51(0x20f)](),_0x3298b2=_0x513c16(_0x6c8d76['trace'][_0x1c9a51(0x253)])?_0x1ab457(_0x6c8d76[_0x1c9a51(0x213)][_0x1c9a51(0x253)],'utf8'):_0x1c9a51(0x1f4),_0x71feea=_0x42fdfb['consoleLimit']??0x19,_0x569f4e=_0x6c8d76[_0x1c9a51(_0x372299._0x59363d)][_0x1c9a51(_0x372299._0x3c1be9)](-_0x71feea),{suggestedAction:_0x537f33,confidence:_0x16a958}=classify(_0x6c8d76),_0x4b90c3=buildPromptMarkdown({'bundle':_0x6c8d76,'scenarioSource':_0x3298b2,'scenarioRelative':relative(_0xa972bf,_0x6c8d76['trace'][_0x1c9a51(0x253)]),'consoleTail':_0x569f4e,'suggestedAction':_0x537f33,'confidence':_0x16a958}),_0x12489b=Math[_0x1c9a51(_0x372299._0x3add84)](_0x4b90c3['length']/0x4);return{'promptMarkdown':_0x4b90c3,'suggestedAction':_0x537f33,'confidence':_0x16a958,'sources':{'bundleDir':_0xaedbf1,'scenarioPath':_0x6c8d76[_0x1c9a51(_0x372299._0x55ce07)][_0x1c9a51(_0x372299._0x50bc1b)],'consoleEntries':_0x6c8d76[_0x1c9a51(0x244)][_0x1c9a51(0x208)],'hasSnapshot':!!_0x6c8d76[_0x1c9a51(_0x372299._0x2db7ae)]},'approxTokens':_0x12489b};}__name(composeFixPrompt,_0xedfc3(0x256));function classify(_0x4b4b16){const _0x43829c={_0x4f691f:0x213,_0x55082e:0x23a,_0x399fa6:0x20a,_0x26e3dd:0x22e,_0x1bc0fd:0x23e,_0x1640f5:0x20e,_0x5adca1:0x22c,_0x35a1b7:0x22a,_0xdd848f:0x20e,_0x522644:0x1ff,_0x5dc26f:0x236,_0x1195f2:0x201},_0x12d12a=_0xedfc3,_0x21c601=_0x4b4b16[_0x12d12a(_0x43829c._0x4f691f)]['error'][_0x12d12a(_0x43829c._0x55082e)][_0x12d12a(_0x43829c._0x399fa6)](),_0x4b75ab=_0x4b4b16[_0x12d12a(0x213)]['error'][_0x12d12a(_0x43829c._0x26e3dd)]??'';let _0x258c6a=_0x12d12a(_0x43829c._0x1bc0fd),_0x597aa1='low';if(_0x4b75ab===_0x12d12a(0x230)||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i[_0x12d12a(0x22a)](_0x21c601))_0x258c6a=_0x12d12a(0x1f7),_0x597aa1=_0x4b75ab===_0x12d12a(0x230)?_0x12d12a(_0x43829c._0x1640f5):_0x12d12a(0x201);else{if(_0x4b75ab===_0x12d12a(_0x43829c._0x5adca1)||/timeout|waiting for/i[_0x12d12a(_0x43829c._0x35a1b7)](_0x21c601))_0x258c6a=_0x12d12a(0x20c),_0x597aa1=_0x4b75ab===_0x12d12a(0x22c)?_0x12d12a(_0x43829c._0xdd848f):'medium';else(_0x4b75ab===_0x12d12a(_0x43829c._0x522644)||/asserttext|assertvisible|expected.*got/i['test'](_0x21c601))&&(_0x258c6a=_0x12d12a(_0x43829c._0x5dc26f),_0x597aa1=_0x4b75ab===_0x12d12a(0x1ff)?_0x12d12a(0x20e):_0x12d12a(_0x43829c._0x1195f2));}return{'suggestedAction':_0x258c6a,'confidence':_0x597aa1};}__name(classify,'classify');function buildPromptMarkdown(_0x4394c4){const _0x422835={_0x45bbc6:0x204,_0xf0d85b:0x250,_0x26bc20:0x208,_0x144edc:0x1fb,_0x2a2ffc:0x1ef,_0x1d0e98:0x1fd,_0xb56bcd:0x238,_0x29a4f9:0x213,_0x950fb:0x207,_0x38af84:0x213,_0x68421a:0x254,_0x186f41:0x22e,_0x2b1886:0x1fa,_0x4df4ff:0x209,_0xbc9466:0x1fe,_0x4a1b2c:0x1fe,_0x35f6c4:0x237,_0x1ff0d5:0x243},_0x35e670=_0xedfc3,{bundle:_0x46b629,scenarioSource:_0x1350bf,scenarioRelative:_0x2b112d,consoleTail:_0x2621ad,suggestedAction:_0x49ab85,confidence:_0x2fcf61}=_0x4394c4,_0x84fcec=_0x1350bf[_0x35e670(_0x422835._0x45bbc6)]('\x0a')['map']((_0x32344a,_0xdbd15a)=>String(_0xdbd15a+0x1)[_0x35e670(0x1ec)](0x3,'\x20')+'\x20\x20'+_0x32344a)[_0x35e670(_0x422835._0xf0d85b)]('\x0a'),_0x30dd46=_0x2621ad[_0x35e670(_0x422835._0x26bc20)]===0x0?_0x35e670(0x221):_0x2621ad[_0x35e670(0x1f0)](_0xade085=>'['+_0xade085[_0x35e670(0x217)]+']\x20'+_0xade085[_0x35e670(0x20b)][_0x35e670(0x231)]()+':\x20'+_0xade085['text'])['join']('\x0a'),_0x18042b=_0x46b629['snapshot']?_0x35e670(0x200)+_0x46b629[_0x35e670(_0x422835._0x144edc)][_0x35e670(0x241)]+_0x35e670(0x212)+_0x46b629['snapshot'][_0x35e670(0x206)]+_0x35e670(_0x422835._0x2a2ffc):_0x35e670(_0x422835._0x1d0e98);return _0x35e670(0x211)+_0x46b629[_0x35e670(0x213)][_0x35e670(_0x422835._0xb56bcd)]+'`\x20in\x20`'+_0x2b112d+_0x35e670(0x1f8)+(_0x46b629[_0x35e670(_0x422835._0x29a4f9)]['stepIndex']??'?')+_0x35e670(_0x422835._0x950fb)+_0x46b629['trace']['line']+_0x35e670(0x225)+_0x46b629[_0x35e670(_0x422835._0x38af84)][_0x35e670(_0x422835._0x68421a)]+_0x35e670(0x21d)+(_0x46b629[_0x35e670(_0x422835._0x29a4f9)][_0x35e670(0x240)][_0x35e670(_0x422835._0x186f41)]??_0x35e670(_0x422835._0x2b1886))+_0x35e670(0x215)+_0x46b629[_0x35e670(_0x422835._0x38af84)]['error'][_0x35e670(0x23a)]+'\x0a-\x20**Suggested\x20action**:\x20`'+_0x49ab85+'`\x20(confidence:\x20'+_0x2fcf61+_0x35e670(_0x422835._0x4df4ff)+(_0x46b629[_0x35e670(0x213)]['error'][_0x35e670(_0x422835._0xbc9466)]?_0x35e670(0x228)+_0x46b629['trace'][_0x35e670(0x240)][_0x35e670(_0x422835._0x4a1b2c)]+'\x0a```\x0a':'')+'\x0a\x0a##\x20Scenario\x20source\x20(line-numbered)\x0a\x0a```js\x0a'+_0x84fcec+_0x35e670(0x24d)+_0x30dd46+_0x35e670(_0x422835._0x35f6c4)+_0x18042b+_0x35e670(_0x422835._0x1ff0d5);}__name(buildPromptMarkdown,_0xedfc3(0x21c));function runPrepareFix(_0x30610d,_0x4a6189={}){const _0x313c25={_0x195cf2:0x255,_0x4af4d4:0x1f1,_0x519826:0x20f,_0x22301d:0x24b,_0x4cdd91:0x208,_0x2ede75:0x222,_0x1711e2:0x23b,_0x106554:0x1f0,_0x5816a1:0x208,_0x370d58:0x1ed,_0x4f53c2:0x227,_0x43432d:0x222,_0x3a140a:0x23d,_0x5e0364:0x24e,_0x273559:0x258,_0x29de2d:0x229},_0x3b0695=_0xedfc3,_0x5b2a50=_0x4a6189[_0x3b0695(_0x313c25._0x195cf2)]??process[_0x3b0695(_0x313c25._0x4af4d4)],_0x3c5d00=_0x4a6189[_0x3b0695(0x242)]??process['stderr'],_0x2c1474=_0x4a6189[_0x3b0695(_0x313c25._0x519826)]??process['cwd'](),_0x3564cf=_0x30610d['includes'](_0x3b0695(0x214));let _0x3d16b5=_0x30610d[_0x3b0695(_0x313c25._0x22301d)](_0x5a3378=>!_0x5a3378[_0x3b0695(0x232)]('-'));if(_0x3564cf||_0x3d16b5[_0x3b0695(_0x313c25._0x4cdd91)]===0x0){const _0xaac339=listFailures(defaultFailuresRoot(_0x2c1474));if(_0xaac339[_0x3b0695(0x208)]===0x0)return _0x3c5d00[_0x3b0695(_0x313c25._0x2ede75)](_0x3b0695(0x24f)),0x1;if(_0x3d16b5[_0x3b0695(0x208)]===0x0){const _0xb30f17=new Map();for(const _0x5efcbe of _0xaac339){if(!_0xb30f17['has'](_0x5efcbe['testFn']))_0xb30f17['set'](_0x5efcbe[_0x3b0695(0x238)],_0x5efcbe);}_0x3d16b5=[..._0xb30f17[_0x3b0695(_0x313c25._0x1711e2)]()][_0x3b0695(_0x313c25._0x106554)](_0x2aa3d5=>_0x2aa3d5[_0x3b0695(0x252)]+'/'+_0x2aa3d5[_0x3b0695(0x238)]);}}if(_0x3d16b5[_0x3b0695(0x208)]===0x0)return _0x3c5d00[_0x3b0695(0x222)]('prepare-fix:\x20no\x20testId\x20provided\x20and\x20no\x20failing\x20tests\x20found.\x0a'),0x1;_0x5b2a50[_0x3b0695(0x222)](_0x3b0695(0x205)+_0x3d16b5[_0x3b0695(_0x313c25._0x5816a1)]+_0x3b0695(_0x313c25._0x370d58));const _0x2e91ea=defaultFailuresRoot(_0x2c1474);for(const _0x1d0c93 of _0x3d16b5){try{const _0x5dc6b4=composeFixPrompt(_0x1d0c93,{'cwd':_0x2c1474,'failuresRoot':_0x2e91ea}),_0xe9fba=_0x46cd5a(_0x5dc6b4[_0x3b0695(0x203)]['bundleDir'],'fix-prompt.md');_0xc59779(_0xe9fba,_0x5dc6b4['promptMarkdown']),_0x5b2a50[_0x3b0695(0x222)]('\x20\x20✓\x20'+_0x1d0c93+'\x0a'),_0x5b2a50[_0x3b0695(0x222)](_0x3b0695(_0x313c25._0x4f53c2)+_0xe9fba+'\x0a'),_0x5b2a50[_0x3b0695(_0x313c25._0x43432d)](_0x3b0695(_0x313c25._0x3a140a)+_0x5dc6b4[_0x3b0695(_0x313c25._0x5e0364)]+_0x3b0695(_0x313c25._0x273559)+_0x5dc6b4['confidence']+'\x20\x20~'+_0x5dc6b4[_0x3b0695(_0x313c25._0x29de2d)]+'t\x0a');}catch(_0x70cef3){_0x3c5d00['write']('\x20\x20✗\x20'+_0x1d0c93+':\x20'+(_0x70cef3 instanceof Error?_0x70cef3['message']:String(_0x70cef3))+'\x0a');}}return _0x5b2a50['write'](_0x3b0695(0x220)),0x0;}__name(runPrepareFix,_0xedfc3(0x248));var invokedDirectly=process[_0xedfc3(0x1f2)][0x1]&&fileURLToPath(import.meta.url)===process['argv'][0x1];if(invokedDirectly){const code=runPrepareFix(process[_0xedfc3(0x1f2)][_0xedfc3(0x1f3)](0x2));process[_0xedfc3(0x1ee)](code);}export{runPrepareFix};
1
+ const _0x54be84=_0x2a21;(function(_0x5323e3,_0x472f5b){const _0x233bf4={_0x483bac:0x1fd,_0x281db7:0x1ae,_0x193f54:0x1dd,_0x3b11b2:0x1aa,_0xfe7a23:0x1fa,_0x3b8093:0x1f3},_0x3376dd=_0x2a21,_0x4afec7=_0x5323e3();while(!![]){try{const _0x50635a=parseInt(_0x3376dd(_0x233bf4._0x483bac))/0x1+parseInt(_0x3376dd(0x1ef))/0x2*(parseInt(_0x3376dd(0x191))/0x3)+parseInt(_0x3376dd(0x1cd))/0x4+parseInt(_0x3376dd(_0x233bf4._0x281db7))/0x5*(-parseInt(_0x3376dd(0x1d6))/0x6)+-parseInt(_0x3376dd(0x1dc))/0x7*(-parseInt(_0x3376dd(_0x233bf4._0x193f54))/0x8)+parseInt(_0x3376dd(_0x233bf4._0x3b11b2))/0x9*(-parseInt(_0x3376dd(_0x233bf4._0xfe7a23))/0xa)+parseInt(_0x3376dd(_0x233bf4._0x3b8093))/0xb*(parseInt(_0x3376dd(0x1c4))/0xc);if(_0x50635a===_0x472f5b)break;else _0x4afec7['push'](_0x4afec7['shift']());}catch(_0x570963){_0x4afec7['push'](_0x4afec7['shift']());}}}(_0x3ae9,0xc9e42));var __defProp=Object[_0x54be84(0x1f1)],__name=(_0x2c0db0,_0x4b32ae)=>__defProp(_0x2c0db0,_0x54be84(0x1f4),{'value':_0x4b32ae,'configurable':!![]});import{writeFileSync as _0x2ae88c}from'fs';import{join as _0x5953c0}from'path';import{fileURLToPath}from'url';import{readFileSync as _0xb6feda,existsSync as _0x5a3c67}from'fs';import{relative}from'path';import{existsSync,mkdirSync,readFileSync,readdirSync,statSync,writeFileSync}from'fs';import{join,dirname}from'path';function _0x3ae9(){const _0x3d6198=['iIaOBg9VA2vKigLUia','BwvKAxvT','C2XPy2u','C2nYzwvUC2HVDevYCM9Y','cK5LEhq6ihbHC3rLigvHy2GGzML4lxbYB21WDc5TzcbPBNrVihLVDxiGteXnignSAwvUDcaOq2XHDwrLienVzguGlWPdDxjZB3iGlYbLDgmUks4GvgHLieXmtsbYzxr1CM5ZigeGDw5PzMLLzcbKAwzMoYbYzxzPzxCGAxqGyw5KigfWCgX5cM1HBNvHBgX5lIbxzsbUzxzLCIbHDxrVlwfWCgX5icHelti1ks4k','BMv0D29YAW','Dgv4Da','DgLTzxn0yw1W','kqOk','mZCYnti4ovbOuLHKwq','ChvZAa','y2HHBMDLlwfZC2vYDgLVBG','C3vNz2vZDgvKqwn0Aw9U','mZCXmtK4mhfdsKj0BW','C29YDa','ycaOy29UzMLKzw5JztOG','C3rLCeLUzgv4','C3rKzxjY','yaOTicOQu3rLCcbPBMrLEcOQoIa','y2fWDhvYzwrbDa','DMfSDwvZ','CMvZB2X2zuj1BMrSzurPCG','BgLUzq','AgLNAa','C3rHy2S','Dw5RBM93BG','xYHUBYbJB25ZB2XLigvUDhjPzxmGy2fWDhvYzwqPxW','ywrKlxDHAxrMB3i','cMbGyaOkiYmGu2vTyw50AwmTre9nihnUyxbZAg90cGO','vvjmoIa','yNvUzgXLrgLY','CMv3CML0zs1ZzwXLy3rVCG','zxjYB3i','C25HChnOB3q','lcbJB2WG','mJrpEwX1A0y','y3DK','ihrLC3qOCYKGkeqTmJuPcGO','DMLKzw8UD2vIBq','zw52','BMv0D29YAY5QC29U','B3v0','zMLSDgvY','y29UC29SzuXPBwL0','nZy4nJy0zuXhyKfN','yxjNDG','C25HChnOB3qUANnVBG','yxbWCM94vg9Rzw5Z','C2v0','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','CgfYC2u','y29UC29Szq','y2XHC3nPzNK','nMzqBgLVwa','zxjY','ycbPBIbG','Bgv2zwW','Dg9mB3DLCKnHC2u','zgvMyxvSDezHAwX1CMvZuM9VDa','mZi0mvDdAhDTsW','mJKWnhnrqNPutW','C2nYzwvUC2HVDfbHDgG','CNvUuhjLCgfYzuzPEa','cI0GkIPmB2nHDgLVBIOQoIbSAw5Lia','AM9PBG','DhjHy2u','icaGicaGC3vNz2vZDgvKqwn0Aw9Upq','zML4lxbYB21WDc5Tza','icbJB25MAwrLBMnLpq','CMvHzezHAwX1CMvcDw5KBgu','y2vPBa','BwfW','Dg9vChbLCKnHC2u','BgLZDezHAwX1CMvZ','ChjVBxb0twfYA2rVD24','vgLTzw91DevYCM9Y','DgvZDezU','DMLKzw9qyxrO','mMn6s252ua','iYmJifn0ywnRcMbGyaO','zgvMAw5LuhjVCgvYDhK','cMbGyaO','mZKYnZbOD0L0wMy','BMfTzq','Aw5JBhvKzxm','BwvZC2fNzq','qxnZzxj0Aw9UrxjYB3i','DxrMoa','C291CMnLCW','mZbSs214CNm','Bg9JywXLq29TCgfYzq','ls1MywLSAw5N','mtqZnJi5ogXttuXvzG','D3jPDgu','C2nLBMfYAw9qyxrO','cI0GkIPfCNjVCIOQoIbG','zMfPBhvYzs5QC29U','AgfYlMPZB24','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','mZaYmJi5nKXRBNrYrq','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','DgvZDa','ycdIGjqG','C3rKB3v0','BgvUz3rO','y29UzMLKzw5Jzq','ChjLCgfYzs1MAxG6ig5VigzHAwX1CMuGyNvUzgXLCYbMB3vUzcb1BMrLCIaUDw5VDgvZDc9MywLSDxjLCY8Uifj1BIbHigzHAwXPBMCGDgvZDcbMAxjZDdSGDgHLigj1BMrSzsbPCYb3CML0DgvUigf1Dg9TyxrPy2fSBhKUcG','DxjS','zxHPDa','yNvPBgrqCM9TChrnyxjRzg93BG','tg9JyxrVCKvYCM9Y','cI0GkIPtDwDNzxn0zwqGywn0Aw9UkIO6iga','CgfKu3rHCNq','rxjYB3i','icaGicaG'];_0x3ae9=function(){return _0x3d6198;};return _0x3ae9();}import{artifactsRootFrom,FAILURES_DIR_SEGMENTS,failuresRootFrom}from'@unotest/protocol';function readFailureBundle(_0x53a653){const _0x5e766c={_0x17d778:0x1f8,_0x14e025:0x1d3,_0x4dfdae:0x1cf,_0x511e34:0x1c9,_0x12b14b:0x1c2,_0x6a389d:0x18f,_0x9aaa81:0x1ee},_0x35111d=_0x54be84;if(!existsSync(_0x53a653))return null;const _0x2fb47a=join(_0x53a653,_0x35111d(0x18e));if(!existsSync(_0x2fb47a))return null;const _0x5382ae=JSON[_0x35111d(0x1d3)](readFileSync(_0x2fb47a,_0x35111d(_0x5e766c._0x17d778))),_0x1048ed=join(_0x53a653,'console.json'),_0x2e74bd=existsSync(_0x1048ed)?JSON[_0x35111d(_0x5e766c._0x14e025)](readFileSync(_0x1048ed,_0x35111d(0x1f8))):[],_0x248ca8=join(_0x53a653,_0x35111d(_0x5e766c._0x4dfdae)),_0x5bbeb5=existsSync(_0x248ca8)?JSON[_0x35111d(0x1d3)](readFileSync(_0x248ca8,'utf8')):void 0x0,_0x34182f={'trace':_0x5382ae,'console':_0x2e74bd},_0x5691f6=join(_0x53a653,_0x35111d(_0x5e766c._0x511e34));existsSync(_0x5691f6)&&(_0x34182f[_0x35111d(0x1a6)]=JSON[_0x35111d(_0x5e766c._0x14e025)](readFileSync(_0x5691f6,_0x35111d(0x1f8))));if(_0x5bbeb5!==void 0x0)_0x34182f[_0x35111d(_0x5e766c._0x12b14b)]=_0x5bbeb5;const _0x250568=join(_0x53a653,'screenshot.png');if(existsSync(_0x250568))_0x34182f[_0x35111d(0x1de)]=_0x250568;else{const _0xf06ed4=join(_0x53a653,'screenshot-error.txt');existsSync(_0xf06ed4)&&(_0x34182f[_0x35111d(0x1a4)]=readFileSync(_0xf06ed4,_0x35111d(0x1f8)));}const _0x1d98f5=join(_0x53a653,_0x35111d(_0x5e766c._0x6a389d));if(existsSync(_0x1d98f5))_0x34182f['harPath']=_0x1d98f5;const _0x88f06b=join(_0x53a653,_0x35111d(0x1c7));if(existsSync(_0x88f06b))_0x34182f[_0x35111d(_0x5e766c._0x9aaa81)]=_0x88f06b;return _0x34182f;}__name(readFailureBundle,_0x54be84(0x1e6));function listFailures(_0x367aad){const _0x2fc36f={_0x2ad1d3:0x18e,_0x5251c6:0x1d3,_0x35d12b:0x1f8,_0x284d54:0x1ab,_0x41cc1b:0x1a8},_0x7d337d=_0x54be84;if(!existsSync(_0x367aad))return[];const _0x4629e9=[];for(const _0x2399b5 of readdirSync(_0x367aad)){const _0x8eff3c=join(_0x367aad,_0x2399b5);if(!statSync(_0x8eff3c)['isDirectory']())continue;for(const _0x324d24 of readdirSync(_0x8eff3c)){const _0x1ed96d=join(_0x8eff3c,_0x324d24);if(!statSync(_0x1ed96d)['isDirectory']())continue;const _0x375643=join(_0x1ed96d,_0x7d337d(_0x2fc36f._0x2ad1d3));if(!existsSync(_0x375643))continue;try{const _0x2f9f92=JSON[_0x7d337d(_0x2fc36f._0x5251c6)](readFileSync(_0x375643,_0x7d337d(_0x2fc36f._0x35d12b)));_0x4629e9[_0x7d337d(_0x2fc36f._0x284d54)]({'runId':_0x2399b5,'testFn':_0x2f9f92[_0x7d337d(0x1ed)],'scenarioPath':_0x2f9f92['scenarioPath'],'dir':_0x1ed96d,'timestamp':_0x2f9f92[_0x7d337d(_0x2fc36f._0x41cc1b)]});}catch{}}}return _0x4629e9[_0x7d337d(0x1af)]((_0x28794b,_0x118ac9)=>_0x118ac9['timestamp'][_0x7d337d(0x1fb)](_0x28794b[_0x7d337d(0x1a8)])),_0x4629e9;}__name(listFailures,_0x54be84(0x1ea));function defaultFailuresRoot(_0x177bf6=artifactsRootFrom(process[_0x54be84(0x1c8)],process['cwd']()),_0x7293a1=process[_0x54be84(0x1c8)]){return failuresRootFrom(_0x7293a1,join(_0x177bf6,...FAILURES_DIR_SEGMENTS));}function _0x2a21(_0x5afec0,_0x3a802c){_0x5afec0=_0x5afec0-0x18c;const _0x3ae9f3=_0x3ae9();let _0x2a21e8=_0x3ae9f3[_0x5afec0];if(_0x2a21['TjJOrP']===undefined){var _0x2ae24c=function(_0x43692c){const _0x4db139='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ae88c='',_0x5953c0='';for(let _0xb6feda=0x0,_0x5a3c67,_0x2c0db0,_0x4b32ae=0x0;_0x2c0db0=_0x43692c['charAt'](_0x4b32ae++);~_0x2c0db0&&(_0x5a3c67=_0xb6feda%0x4?_0x5a3c67*0x40+_0x2c0db0:_0x2c0db0,_0xb6feda++%0x4)?_0x2ae88c+=String['fromCharCode'](0xff&_0x5a3c67>>(-0x2*_0xb6feda&0x6)):0x0){_0x2c0db0=_0x4db139['indexOf'](_0x2c0db0);}for(let _0x53a653=0x0,_0x2fb47a=_0x2ae88c['length'];_0x53a653<_0x2fb47a;_0x53a653++){_0x5953c0+='%'+('00'+_0x2ae88c['charCodeAt'](_0x53a653)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5953c0);};_0x2a21['iKPRZv']=_0x2ae24c,_0x2a21['ivGevo']={},_0x2a21['TjJOrP']=!![];}const _0x1d7958=_0x3ae9f3[0x0],_0x3b36aa=_0x5afec0+_0x1d7958,_0x34bccb=_0x2a21['ivGevo'][_0x3b36aa];return!_0x34bccb?(_0x2a21e8=_0x2a21['iKPRZv'](_0x2a21e8),_0x2a21['ivGevo'][_0x3b36aa]=_0x2a21e8):_0x2a21e8=_0x34bccb,_0x2a21e8;}__name(defaultFailuresRoot,_0x54be84(0x1db));function resolveBundleDir(_0x4672ab,_0x80a8a6){if(existsSync(_0x4672ab)&&statSync(_0x4672ab)['isDirectory']())return _0x4672ab;return join(_0x80a8a6,_0x4672ab);}__name(resolveBundleDir,_0x54be84(0x1b6));function composeFixPrompt(_0x3fe0e9,_0x53746f={}){const _0x55fd34={_0xf8d265:0x1cc,_0x50e588:0x1e2,_0x4dc7ae:0x18c,_0x9c4008:0x1e7,_0x2038b7:0x1e2},_0x5e16fc=_0x54be84,_0x326694=_0x53746f['failuresRoot']??defaultFailuresRoot(),_0x218907=resolveBundleDir(_0x3fe0e9,_0x326694),_0x5a18d7=readFailureBundle(_0x218907);if(!_0x5a18d7)throw new Error('failure\x20bundle\x20not\x20found\x20for\x20testId=\x22'+_0x3fe0e9+_0x5e16fc(0x1a1)+_0x218907+')');const _0x1f4ce6=_0x53746f[_0x5e16fc(0x1c5)]??process[_0x5e16fc(0x1c5)](),_0xf935f3=_0x5a3c67(_0x5a18d7[_0x5e16fc(0x1e2)]['scenarioPath'])?_0xb6feda(_0x5a18d7['trace'][_0x5e16fc(0x18c)],_0x5e16fc(0x1f8)):_0x5e16fc(0x192),_0x16c061=_0x53746f[_0x5e16fc(_0x55fd34._0xf8d265)]??0x19,_0x618540=_0x5a18d7[_0x5e16fc(0x1d4)][_0x5e16fc(0x1a3)](-_0x16c061),{suggestedAction:_0x50de83,confidence:_0x2b2546}=classify(_0x5a18d7),_0x343aef=buildPromptMarkdown({'bundle':_0x5a18d7,'scenarioSource':_0xf935f3,'scenarioRelative':relative(_0x1f4ce6,_0x5a18d7[_0x5e16fc(_0x55fd34._0x50e588)][_0x5e16fc(_0x55fd34._0x4dc7ae)]),'consoleTail':_0x618540,'suggestedAction':_0x50de83,'confidence':_0x2b2546}),_0x5a1c6d=Math[_0x5e16fc(_0x55fd34._0x9c4008)](_0x343aef[_0x5e16fc(0x196)]/0x4);return{'promptMarkdown':_0x343aef,'suggestedAction':_0x50de83,'confidence':_0x2b2546,'sources':{'bundleDir':_0x218907,'scenarioPath':_0x5a18d7[_0x5e16fc(_0x55fd34._0x2038b7)][_0x5e16fc(_0x55fd34._0x4dc7ae)],'consoleEntries':_0x5a18d7['console']['length'],'hasSnapshot':!!_0x5a18d7[_0x5e16fc(0x1c2)]},'approxTokens':_0x5a1c6d};}__name(composeFixPrompt,'composeFixPrompt');function classify(_0x4c60da){const _0x5b89f3={_0x3959a0:0x1f6,_0x37a92f:0x1da,_0x584b6b:0x1c0,_0x1ed906:0x19c,_0x47c369:0x1b8,_0x1a8127:0x1a2},_0x214dd4=_0x54be84,_0x8afc28=_0x4c60da[_0x214dd4(0x1e2)][_0x214dd4(0x1c1)][_0x214dd4(_0x5b89f3._0x3959a0)][_0x214dd4(_0x5b89f3._0x37a92f)](),_0x4db52c=_0x4c60da[_0x214dd4(0x1e2)]['error'][_0x214dd4(0x1f4)]??'';let _0x41903b=_0x214dd4(0x1ba),_0x17f0fb='low';if(_0x4db52c==='LocatorError'||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i['test'](_0x8afc28))_0x41903b=_0x214dd4(_0x5b89f3._0x584b6b),_0x17f0fb=_0x4db52c===_0x214dd4(_0x5b89f3._0x1ed906)?_0x214dd4(_0x5b89f3._0x47c369):'medium';else{if(_0x4db52c==='TimeoutError'||/timeout|waiting for/i['test'](_0x8afc28))_0x41903b=_0x214dd4(0x1bc),_0x17f0fb=_0x4db52c===_0x214dd4(0x1ec)?'high':_0x214dd4(_0x5b89f3._0x1a8127);else(_0x4db52c==='AssertionError'||/asserttext|assertvisible|expected.*got/i[_0x214dd4(0x193)](_0x8afc28))&&(_0x41903b=_0x214dd4(0x1ac),_0x17f0fb=_0x4db52c===_0x214dd4(0x1f7)?_0x214dd4(0x1b8):_0x214dd4(0x1a2));}return{'suggestedAction':_0x41903b,'confidence':_0x17f0fb};}__name(classify,_0x54be84(0x1d5));function buildPromptMarkdown(_0xead8fc){const _0xb8aa3e={_0x371b1a:0x196,_0xc61b1d:0x1e8,_0x29b406:0x1be,_0x464796:0x199,_0x25131e:0x1c2,_0x2fa761:0x1b4,_0x4cc84c:0x1d2,_0x564517:0x1e0,_0x36eaef:0x1e2,_0x401ee5:0x18d,_0x311c12:0x1f4,_0x219c65:0x1e2,_0xac485b:0x1c1,_0x40db03:0x1f6,_0x5f2273:0x1b0,_0xaafe1a:0x1b9,_0x3d3ba2:0x1f0,_0x5fbc8f:0x1bd},_0x3396f2=_0x54be84,{bundle:_0x551eed,scenarioSource:_0x145a7a,scenarioRelative:_0x2dfc75,consoleTail:_0x89fb43,suggestedAction:_0x37dcb4,confidence:_0x1686f2}=_0xead8fc,_0x167d38=_0x145a7a['split']('\x0a')['map']((_0x53b246,_0x1213fe)=>String(_0x1213fe+0x1)[_0x3396f2(0x19e)](0x3,'\x20')+'\x20\x20'+_0x53b246)[_0x3396f2(0x1e1)]('\x0a'),_0x180f4f=_0x89fb43[_0x3396f2(_0xb8aa3e._0x371b1a)]===0x0?_0x3396f2(0x1bb):_0x89fb43[_0x3396f2(_0xb8aa3e._0xc61b1d)](_0x56938a=>'['+_0x56938a[_0x3396f2(0x1a8)]+']\x20'+_0x56938a[_0x3396f2(0x1d9)][_0x3396f2(0x1e9)]()+':\x20'+_0x56938a[_0x3396f2(0x1a7)])['join']('\x0a'),_0x155785=_0x551eed[_0x3396f2(0x1c2)]?_0x3396f2(_0xb8aa3e._0x29b406)+_0x551eed[_0x3396f2(0x1c2)][_0x3396f2(_0xb8aa3e._0x464796)]+'\x0aCaptured:\x20'+_0x551eed[_0x3396f2(_0xb8aa3e._0x25131e)][_0x3396f2(_0xb8aa3e._0x2fa761)]+_0x3396f2(_0xb8aa3e._0x4cc84c):'_(no\x20semantic-dom\x20snapshot\x20captured\x20for\x20this\x20failure)_';return'#\x20Test\x20fix\x20request\x0a\x0a##\x20Failure\x20context\x0a\x0a-\x20**Test**:\x20`'+_0x551eed[_0x3396f2(0x1e2)]['testFn']+_0x3396f2(0x1d8)+_0x2dfc75+_0x3396f2(0x1b3)+(_0x551eed['trace'][_0x3396f2(0x1b1)]??'?')+_0x3396f2(_0xb8aa3e._0x564517)+_0x551eed[_0x3396f2(_0xb8aa3e._0x36eaef)][_0x3396f2(0x1b7)]+_0x3396f2(0x1c3)+_0x551eed[_0x3396f2(0x1e2)]['col']+_0x3396f2(_0xb8aa3e._0x401ee5)+(_0x551eed['trace'][_0x3396f2(0x1c1)][_0x3396f2(_0xb8aa3e._0x311c12)]??_0x3396f2(0x19f))+_0x3396f2(0x194)+_0x551eed[_0x3396f2(_0xb8aa3e._0x219c65)][_0x3396f2(_0xb8aa3e._0xac485b)][_0x3396f2(_0xb8aa3e._0x40db03)]+_0x3396f2(0x19d)+_0x37dcb4+_0x3396f2(_0xb8aa3e._0x5f2273)+_0x1686f2+_0x3396f2(0x1a9)+(_0x551eed['trace']['error'][_0x3396f2(_0xb8aa3e._0xaafe1a)]?_0x3396f2(_0xb8aa3e._0x3d3ba2)+_0x551eed['trace'][_0x3396f2(_0xb8aa3e._0xac485b)]['stack']+_0x3396f2(0x1f2):'')+'\x0a\x0a##\x20Scenario\x20source\x20(line-numbered)\x0a\x0a```js\x0a'+_0x167d38+'\x0a```\x0a\x0a##\x20Last\x20console\x20entries\x0a\x0a```\x0a'+_0x180f4f+_0x3396f2(_0xb8aa3e._0x5fbc8f)+_0x155785+_0x3396f2(0x190);}__name(buildPromptMarkdown,_0x54be84(0x19b));function runPrepareFix(_0x3b927f,_0x1be6b8={}){const _0x291bcc={_0x439c76:0x1b2,_0x6fea55:0x1c5,_0x3a3258:0x1f5,_0x3e706e:0x196,_0xd469e6:0x1fe,_0xb42ea0:0x196,_0x530d23:0x1ed,_0x5ec56c:0x1e8,_0x28d5b2:0x1c6,_0x11f211:0x1bf,_0x4635f2:0x1eb,_0x22ef8d:0x1fe,_0x12f9e4:0x1fe,_0x1a0f33:0x1a0,_0x25f9b0:0x1ad,_0x285104:0x197,_0x3ad8c3:0x1f6},_0x14c7a3=_0x54be84,_0x227b0e=_0x1be6b8[_0x14c7a3(0x1ca)]??process[_0x14c7a3(0x195)],_0x1eede8=_0x1be6b8[_0x14c7a3(0x1d7)]??process[_0x14c7a3(_0x291bcc._0x439c76)],_0x557e61=_0x1be6b8['cwd']??process[_0x14c7a3(_0x291bcc._0x6fea55)](),_0x5393a6=_0x3b927f[_0x14c7a3(_0x291bcc._0x3a3258)](_0x14c7a3(0x1fc));let _0x4a3271=_0x3b927f[_0x14c7a3(0x1cb)](_0x5c5214=>!_0x5c5214['startsWith']('-'));if(_0x5393a6||_0x4a3271[_0x14c7a3(0x196)]===0x0){const _0x412e25=listFailures(defaultFailuresRoot(_0x557e61));if(_0x412e25[_0x14c7a3(_0x291bcc._0x3e706e)]===0x0)return _0x1eede8[_0x14c7a3(_0x291bcc._0xd469e6)](_0x14c7a3(0x198)),0x1;if(_0x4a3271[_0x14c7a3(_0x291bcc._0xb42ea0)]===0x0){const _0x1a47eb=new Map();for(const _0x104bac of _0x412e25){if(!_0x1a47eb['has'](_0x104bac[_0x14c7a3(_0x291bcc._0x530d23)]))_0x1a47eb[_0x14c7a3(0x1d1)](_0x104bac[_0x14c7a3(_0x291bcc._0x530d23)],_0x104bac);}_0x4a3271=[..._0x1a47eb[_0x14c7a3(0x1b5)]()][_0x14c7a3(_0x291bcc._0x5ec56c)](_0x37773e=>_0x37773e['runId']+'/'+_0x37773e[_0x14c7a3(0x1ed)]);}}if(_0x4a3271['length']===0x0)return _0x1eede8[_0x14c7a3(_0x291bcc._0xd469e6)]('prepare-fix:\x20no\x20testId\x20provided\x20and\x20no\x20failing\x20tests\x20found.\x0a'),0x1;_0x227b0e['write']('prepare-fix:\x20composing\x20fix\x20prompts\x20for\x20'+_0x4a3271['length']+_0x14c7a3(_0x291bcc._0x28d5b2));const _0x1b4823=defaultFailuresRoot(_0x557e61);for(const _0xb98c7b of _0x4a3271){try{const _0x169a6a=composeFixPrompt(_0xb98c7b,{'cwd':_0x557e61,'failuresRoot':_0x1b4823}),_0x5e09f4=_0x5953c0(_0x169a6a[_0x14c7a3(0x1f9)][_0x14c7a3(_0x291bcc._0x11f211)],_0x14c7a3(0x1e4));_0x2ae88c(_0x5e09f4,_0x169a6a[_0x14c7a3(_0x291bcc._0x4635f2)]),_0x227b0e[_0x14c7a3(_0x291bcc._0x22ef8d)]('\x20\x20✓\x20'+_0xb98c7b+'\x0a'),_0x227b0e[_0x14c7a3(_0x291bcc._0x12f9e4)](_0x14c7a3(_0x291bcc._0x1a0f33)+_0x5e09f4+'\x0a'),_0x227b0e['write'](_0x14c7a3(0x1e3)+_0x169a6a[_0x14c7a3(_0x291bcc._0x25f9b0)]+_0x14c7a3(0x1e5)+_0x169a6a[_0x14c7a3(_0x291bcc._0x285104)]+'\x20\x20~'+_0x169a6a[_0x14c7a3(0x1d0)]+'t\x0a');}catch(_0x294a93){_0x1eede8[_0x14c7a3(_0x291bcc._0xd469e6)]('\x20\x20✗\x20'+_0xb98c7b+':\x20'+(_0x294a93 instanceof Error?_0x294a93[_0x14c7a3(_0x291bcc._0x3ad8c3)]:String(_0x294a93))+'\x0a');}}return _0x227b0e[_0x14c7a3(_0x291bcc._0x22ef8d)](_0x14c7a3(0x1a5)),0x0;}__name(runPrepareFix,_0x54be84(0x1df));var invokedDirectly=process[_0x54be84(0x1ce)][0x1]&&fileURLToPath(import.meta.url)===process['argv'][0x1];if(invokedDirectly){const code=runPrepareFix(process['argv'][_0x54be84(0x1a3)](0x2));process[_0x54be84(0x19a)](code);}export{runPrepareFix};
@@ -1 +1 @@
1
- const _0x668b4a=_0x2ae9;function _0x2ae9(_0x8a71cf,_0x47e680){_0x8a71cf=_0x8a71cf-0x93;const _0x4dc591=_0x4dc5();let _0x2ae9d8=_0x4dc591[_0x8a71cf];if(_0x2ae9['ZHxznJ']===undefined){var _0x2c3f0a=function(_0x5dcc7d){const _0x4926bb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5e893e='',_0x1d7caa='';for(let _0x43449e=0x0,_0x2d41f3,_0x14657b,_0x478a11=0x0;_0x14657b=_0x5dcc7d['charAt'](_0x478a11++);~_0x14657b&&(_0x2d41f3=_0x43449e%0x4?_0x2d41f3*0x40+_0x14657b:_0x14657b,_0x43449e++%0x4)?_0x5e893e+=String['fromCharCode'](0xff&_0x2d41f3>>(-0x2*_0x43449e&0x6)):0x0){_0x14657b=_0x4926bb['indexOf'](_0x14657b);}for(let _0x1b2595=0x0,_0x3df8d4=_0x5e893e['length'];_0x1b2595<_0x3df8d4;_0x1b2595++){_0x1d7caa+='%'+('00'+_0x5e893e['charCodeAt'](_0x1b2595)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1d7caa);};_0x2ae9['mXhUXz']=_0x2c3f0a,_0x2ae9['EZypMP']={},_0x2ae9['ZHxznJ']=!![];}const _0x1fd976=_0x4dc591[0x0],_0x125bd6=_0x8a71cf+_0x1fd976,_0x1594cd=_0x2ae9['EZypMP'][_0x125bd6];return!_0x1594cd?(_0x2ae9d8=_0x2ae9['mXhUXz'](_0x2ae9d8),_0x2ae9['EZypMP'][_0x125bd6]=_0x2ae9d8):_0x2ae9d8=_0x1594cd,_0x2ae9d8;}(function(_0x3a9c98,_0x32c2aa){const _0x4b7cd9={_0x751146:0xa0,_0x5ece00:0xad,_0x20eed6:0xaf,_0x481f98:0xb0,_0x29e4d6:0xab,_0x566f8b:0xac,_0x118092:0x9e,_0x1e7ccf:0xb5},_0x2f83fc=_0x2ae9,_0x491602=_0x3a9c98();while(!![]){try{const _0xc609d5=parseInt(_0x2f83fc(_0x4b7cd9._0x751146))/0x1*(parseInt(_0x2f83fc(_0x4b7cd9._0x5ece00))/0x2)+-parseInt(_0x2f83fc(_0x4b7cd9._0x20eed6))/0x3+-parseInt(_0x2f83fc(_0x4b7cd9._0x481f98))/0x4*(-parseInt(_0x2f83fc(_0x4b7cd9._0x29e4d6))/0x5)+-parseInt(_0x2f83fc(0x97))/0x6+-parseInt(_0x2f83fc(0xbc))/0x7*(-parseInt(_0x2f83fc(0x96))/0x8)+parseInt(_0x2f83fc(_0x4b7cd9._0x566f8b))/0x9*(parseInt(_0x2f83fc(_0x4b7cd9._0x118092))/0xa)+-parseInt(_0x2f83fc(_0x4b7cd9._0x1e7ccf))/0xb;if(_0xc609d5===_0x32c2aa)break;else _0x491602['push'](_0x491602['shift']());}catch(_0x5a12f2){_0x491602['push'](_0x491602['shift']());}}}(_0x4dc5,0xb0e5f));var __defProp=Object[_0x668b4a(0xba)],__name=(_0x5e893e,_0x1d7caa)=>__defProp(_0x5e893e,'name',{'value':_0x1d7caa,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';import{join}from'path';var templates={'jsconfigJson':_0x668b4a(0x9f),'scenarioTemplate':_0x668b4a(0xa1),'agentsMd':_0x668b4a(0xa6),'claudeMdBody':_0x668b4a(0x98),'examples':{'01-smoke.js':_0x668b4a(0xa4),'02-form-fill.js':_0x668b4a(0xa9)},'secretsExample':_0x668b4a(0xbd),'envExample':'#\x20unotest-web\x20—\x20copied\x20to\x20unotest/.env\x20by\x20`init`\x20if\x20not\x20present.\x0a#\x0a#\x20Fill\x20in\x20values\x20that\x20apply\x20to\x20your\x20project.\x20Variables\x20are\x20loaded\x20by\x20the\x0a#\x20runner\x20at\x20scenario\x20start.\x0a#\x0a#\x20Reference\x20any\x20variable\x20from\x20a\x20scenario\x20by\x20its\x20bare\x20UPPER_SNAKE\x20name\x20—\x0a#\x20no\x20env()/secret()\x20wrapper:\x0a#\x0a#\x20\x20\x20goto(\x27/login\x27);\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20relative\x20—\x20see\x20APP_BASE_URL\x0a#\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20TEST_USER_EMAIL);\x0a#\x0a#\x20Secret\x20values\x20(passwords,\x20tokens)\x20go\x20in\x20unotest/.secrets\x20instead\x20—\x20same\x0a#\x20format,\x20but\x20masked\x20in\x20every\x20log.\x20An\x20unknown\x20UPPER_SNAKE\x20name\x20fails\x20the\x0a#\x20run\x20with\x20a\x20clear\x20\x22add\x20it\x20to\x20unotest/.env\x22\x20message.\x0a#\x0a#\x20Environments:\x20override\x20any\x20value\x20per\x20environment\x20with\x20overlay\x20files\x20—\x0a#\x20unotest/.env.staging,\x20unotest/.env.production\x20(secrets:\x20.secrets.<env>).\x0a#\x20Select\x20one:\x20`npx\x20@unotest/web\x20e2e\x20<name>\x20--env\x20staging`.\x20The\x20overlay\x20layers\x0a#\x20over\x20this\x20base\x20file\x20(overlay\x20wins);\x20the\x20shell\x20environment\x20wins\x20over\x20both.\x0a\x0a#\x20---\x20App\x20under\x20test\x20--------------------------------------------------------\x0a#\x20The\x20app\x27s\x20base\x20URL.\x20Relative\x20goto(\x27/path\x27)\x20resolves\x20against\x20it\x20(wired\x20into\x0a#\x20Playwright\x27s\x20baseURL\x20automatically),\x20so\x20write\x20goto(\x27/login\x27)\x20—\x20never\x0a#\x20goto(APP_BASE_URL\x20+\x20\x27/login\x27).\x20Also\x20used\x20for\x20assertUrl\x20substring\x20matching.\x0a#\x20Defaults\x20to\x20the\x20unotest\x20playground\x20so\x20the\x20example\x20scenarios\x20run\x20out\x20of\x20the\x0a#\x20box;\x20point\x20it\x20at\x20your\x20own\x20app.\x0aAPP_BASE_URL=https://playground.unotest.com\x0a\x0a#\x20---\x20Database\x20--------------------------------------------------------------\x0a#\x20Used\x20by\x20dbQuery\x20/\x20dbExec.\x20Install\x20the\x20matching\x20driver\x20as\x20a\x20peer-dep:\x0a#\x20\x20\x20pnpm\x20add\x20-D\x20pg\x20@types/pg\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20for\x20postgresql://\x0a#\x20\x20\x20pnpm\x20add\x20-D\x20mysql2\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20for\x20mysql://\x0a#\x20(SQLite\x20via\x20better-sqlite3\x20—\x20install\x20only\x20if\x20needed.)\x0aDATABASE_URL=postgresql://postgres:postgres@localhost:5432/myapp_test\x0a\x0a#\x20---\x20Extra\x20API\x20hosts\x20-------------------------------------------------------\x0a#\x20apiCall(...)\x20goes\x20against\x20sandbox.apiBaseUrl\x20from\x20unotest.config.*\x20by\x0a#\x20default.\x20A\x20setup\x20that\x20talks\x20to\x20MORE\x20hosts\x20names\x20them\x20here\x20and\x20picks\x20one\x0a#\x20per\x20call\x20by\x20the\x20variable\x20NAME\x20(URLs\x20never\x20appear\x20in\x20scenarios):\x0a#\x20\x20\x20apiCall(\x27POST\x27,\x20\x27/things\x27,\x20body,\x20headers,\x20{base:\x20\x27API_BASE_CHAT\x27})\x0a#\x20API_BASE_CHAT=https://chatbackend.example.com\x0a\x0a#\x20---\x20Runner\x20--------------------------------------------------------------\x0a#\x20Show\x20the\x20browser\x20window\x20during\x20runs\x20(default:\x20headless).\x0a#\x20UNOTEST_HEADED=1\x0a#\x20Slow\x20each\x20Playwright\x20op\x20by\x20N\x20ms\x20(default:\x200).\x20Pairs\x20with\x20HEADED\x20for\x0a#\x20watching\x20the\x20agent\x20at\x20work.\x0a#\x20UNOTEST_SLOW_MO=100\x0a#\x20Browser\x20engine\x20for\x20this\x20run\x20(chromium\x20|\x20firefox\x20|\x20webkit).\x20Overrides\x20the\x0a#\x20first\x20entry\x20of\x20`browsers`\x20in\x20unotest.config.*.\x20Default:\x20the\x20config.\x0a#\x20UNOTEST_BROWSER=chromium\x0a#\x20Chromium\x20channel\x20for\x20this\x20run\x20(chrome\x20|\x20msedge\x20|\x20chrome-beta\x20|\x20bundled).\x0a#\x20Overrides\x20`channel`\x20in\x20unotest.config.*\x20—\x20the\x20config\x20travels\x20with\x20the\x0a#\x20suite,\x20this\x20stays\x20on\x20the\x20machine.\x20`bundled`\x20=\x20Playwright\x27s\x20own\x20Chromium.\x0a#\x20UNOTEST_BROWSER_CHANNEL=bundled\x0a#\x20Default\x20action\x20timeout\x20in\x20milliseconds\x20—\x20applied\x20to\x20every\x20click\x20/\x0a#\x20fill\x20/\x20waitFor\x20/\x20etc.\x20via\x20Playwright\x27s\x20setDefaultTimeout.\x20Default\x203000.\x0a#\x20Bump\x20if\x20your\x20app\x20is\x20slow;\x20per-action\x20override\x20via\x20the\x20action\x27s\x0a#\x20options.timeout.\x20Playwright\x27s\x20stock\x2030000\x20strands\x20interactive\x20agents.\x0a#\x20UNOTEST_DEFAULT_TIMEOUT_MS=3000\x0a#\x20Default\x20navigation\x20timeout\x20in\x20milliseconds\x20—\x20applied\x20to\x20goto\x20/\x20reload\x20/\x0a#\x20waitForUrl,\x20click\x27s\x20post-action\x20navigation\x20wait,\x20AND\x20setPage\x27s\x20wait\x20for\x20a\x0a#\x20newly\x20opened\x20tab\x20to\x20appear\x20+\x20load.\x20Real-world\x20pages\x20routinely\x20take\x205–15s\x0a#\x20to\x20fire\x20\x27load\x27;\x20keep\x20this\x20separate\x20from\x20the\x20action\x20timeout\x20above.\x0aUNOTEST_DEFAULT_NAVIGATION_TIMEOUT_MS=15000\x0a\x0a#\x20Per-run\x20wall-clock\x20budget\x20in\x20milliseconds\x20—\x20a\x20run\x20aborts\x20once\x20it\x20exceeds\x0a#\x20this.\x20Guards\x20against\x20a\x20stuck\x20scenario\x20hanging\x20the\x20agent\x20indefinitely.\x0a#\x20Invalid\x20or\x20non-positive\x20values\x20fall\x20back\x20to\x20the\x20default.\x20Default\x20300000.\x0a#\x20UNOTEST_MAX_DURATION_MS=300000\x0a\x0a#\x20---\x20Locale\x20+\x20timezone\x20---------------------------------------------------\x0a#\x20Pin\x20the\x20browser\x20context\x27s\x20Accept-Language\x20/\x20navigator.language.\x20Without\x0a#\x20these,\x20tests\x20inherit\x20the\x20OS\x20locale\x20—\x20accessible-name\x20selectors\x0a#\x20(`getByRole(name)`)\x20on\x20i18n\x27d\x20apps\x20will\x20break\x20across\x20machines.\x0a#\x20UNOTEST_LOCALE=en-US\x0a#\x20UNOTEST_TIMEZONE=UTC\x0a\x0a#\x20---\x20Recording\x20(explore_*)\x20----------------------------------------------\x0a#\x20Grace\x20window\x20in\x20ms\x20after\x20each\x20explore_step\x20action.\x20If\x20a\x20click\x20opens\x20a\x0a#\x20new\x20tab/popup,\x20the\x20MCP\x20server\x20auto-switches\x20the\x20active\x20page\x20to\x20it\x20AND\x0a#\x20inserts\x20setPage(N)\x20into\x20the\x20generated\x20DSL\x20trace.\x20Set\x20to\x200\x20to\x20disable\x0a#\x20(strict\x20mode).\x20Has\x20NO\x20effect\x20on\x20run_test\x20—\x20there\x20setPage\x20already\x20waits\x0a#\x20for\x20the\x20tab\x20to\x20appear\x20on\x20its\x20own.\x20Range:\x20[0,\x2010000].\x20Default:\x202000.\x0a#\x20UNOTEST_POPUP_GRACE_MS=2000\x0a\x0a#\x20---\x20Logging\x20-------------------------------------------------------------\x0a#\x20debug\x20|\x20info\x20|\x20warn\x20|\x20error.\x20Default:\x20info.\x0aUNOTEST_LOG_LEVEL=info\x0a\x0a#\x20---\x20Debug\x20diagnostics\x20---------------------------------------------------\x0a#\x20Off\x20by\x20default.\x20Set\x20to\x201\x20to\x20record\x20a\x20structured\x20JSONL\x20log\x20+\x20per-call\x0a#\x20folders\x20under\x20unotest/.debug/\x20—\x20then\x20restart\x20the\x20MCP\x20server.\x20Each\x20tool\x0a#\x20call\x20gets\x20a\x20folder\x20with\x20the\x20full\x20snapshot\x20JSON,\x20the\x20outerHTML\x20of\x20the\x0a#\x20element\x20a\x20locator\x20resolved\x20to,\x20and\x20(on\x20failure)\x20page.html\x20+\x20a\x20screenshot,\x0a#\x20so\x20you\x20(and\x20the\x20AI\x20agent,\x20via\x20get_last_mcp_log)\x20can\x20verify\x20the\x20snapshot\x0a#\x20didn\x27t\x20glitch\x20and\x20the\x20locator\x20hit\x20the\x20right\x20element\x20—\x20instead\x20of\x20guessing\x0a#\x20from\x20a\x20truncated\x20error.\x20audit_last_run\x20then\x20checks\x20the\x20run\x20against\x20the\x0a#\x20testing\x20rules.\x20Also\x20turns\x20on\x20full\x20CLI\x20stack\x20traces.\x20Use\x20\x27summary\x27\x20for\x20a\x0a#\x20lighter\x20log\x20(tool\x20+\x20snapshot\x20layers\x20only,\x20no\x20artifacts).\x20NOTE:\x20tool\x0a#\x20arguments\x20are\x20logged\x20verbatim,\x20so\x20a\x20fill()\x20with\x20a\x20password\x20lands\x20in\x20the\x0a#\x20local\x20(gitignored)\x20log\x20—\x20keep\x20this\x20off\x20unless\x20you\x27re\x20debugging.\x0a#\x20UNOTEST_DEBUG=1\x0a\x0a#\x20---\x20Capture\x20(viewer\x20inspector)\x20------------------------------------------\x0a#\x20Record\x20the\x20browser\x20console\x20+\x20network\x20requests\x20into\x20each\x20run\x27s\x20dir\x20so\x20the\x0a#\x20viewer\x27s\x20Console\x20/\x20Network\x20inspector\x20tabs\x20are\x20populated.\x20Set\x20to\x200\x20to\x20disable.\x0aUNOTEST_NETWORK=1\x0aUNOTEST_CONSOLE=1\x0a#\x20Set\x20to\x201\x20to\x20also\x20capture\x20a\x20screenshot\x20after\x20EVERY\x20executed\x20step\x20(into\x0a#\x20unotest/.runs/<runId>/screenshot/;\x20click\x20a\x20step\x20row\x20in\x20the\x20viewer\x20to\x20see\x0a#\x20it).\x20On\x20failure,\x20a\x20screenshot\x20+\x20page.html\x20always\x20land\x20in\x0a#\x20unotest/.runs/<runId>/failure/\x20—\x20no\x20flag\x20needed.\x0a#\x20UNOTEST_STEP_SCREENSHOTS=1\x0a'};function _0x4dc5(){const _0x27e02e=['lMvUDG','Dw5VDgvZDc1ZDwL0zq','mdeTC21VA2uUANm','zgvMAw5LuhjVCgvYDhK','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','nJnAzKPfwvq','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4GqsbZDwjWCM9JzxnZihrOyxqGz2vUDwLUzwX5ig5LzwrZig9UzsaOysbSAxn0zw5LCIb3AxrOigekiYb0B2TLBIKGz2v0CYbPDcb2AweGDgHLigv4CgXPy2L0igfSBg93BgLZDcbPBIb1BM90zxn0lMnVBMzPzY4QoGOJicaGC2fUzgjVEdOGEYbLEhbVCNrtzwnYzxrZoIbBj1rps0voj10GFqOJifb1DcbUB24TC2vJCMv0ihzHBhvLCYaOvvjmCYWGzw1HAwXZlcbPzhmPigLUihvUB3rLC3qVlMvUDI4kiWOJiezmruvux0vyqu1qteukte9hsu49cLbbu1nxt1jepqPut0TftJ0k','Dw5VDgvZDa','C3rYAw5NAwz5','DMvYC2LVBG','mta2nZCYmgLoBMnQzq','mJy1nti3meD4A0HHtG','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','ANnJB25MAwDkC29U','C2nHzMzVBgrxB3jRC3bHy2u','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','CgfJA2fNzs5QC29U','icbJAgfUBMvSoIa','mJa5oty1mgLKAunbza','EWOGicjJB21WAwXLCK9WDgLVBNmIoIb7cIaGicaIy2HLy2TkCYi6igzHBhnLlaOGicaGiNrHCMDLDci6icjLCZiWmJiIlaOGicaGiMXPyIi6ifSIzxmYmdiYiL0ScIaGicaIDhLWzxmIoIbBxqOGih0ScIaGiMLUy2X1zguIoIbBcIaGicaIkIOVkI5QCYiScIaGicaIlI4VlNvUB3rLC3qVDhLWzxmVzw52lMqUDhmIlaOGicaGiI4VBM9Kzv9TB2r1BgvZl0b1BM90zxn0l3DLyI90ExbLCY91BM90zxn0lwrZBc5KlNrZiGOGif0kFqO','nZu0wKHYrLb5','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHihn0zxaOiI4UlIiSicGPid0+ihSG4OcMih0PigjSB2nRlIbuAguklY8GDgL0BguGAxmGysbWBgfPBI1fBMDSAxnOigrLC2nYAxb0Aw9Uig9MihrOzsbNCM91CdSGDgHLihn0zxbZigLUC2LKzsbHCMuklY8GDgHLigLTCgXLBwvUDgf0Aw9UlIbhCM91CcbIEsbPBNrLBNqGkfnLDhvWic8Grw50zxiGlYbby3qGlYbbC3nLCNqGB3iklY8GD2HHDgv2zxiGCMvHzhmGD2vSBcKG4Ocuig9UzsbIBg9JAYbWzxiGBg9NAwnHBcbJAhvUAY4kcMz1BMn0Aw9UihrLC3rFEw91CL9Uyw1Lx2HLCMuOksb7cIaGC3rLCcGIu2vLzcbHigTUB3DUihvZzxiGDMLHiercic8GqvbjigzPEhr1CMvZigzYB20Gx2HLBhbLCNmViIWGkcKGpt4GEWOGicaGlY8GicaGD2LWzv9LmMvFDxnLCNmOktSkicaGic8VicaGihvZzxjFAwqGpsbZzwvKx3vZzxiOj2fSAwnLqgv4yw1WBguUy29TjYWGj3nLy3jLDcCPoWOGih0PoWOkicbZDgvWkcjtAwDUigLUigfZihrOzsbZzwvKzwqGDxnLCIiSicGPid0+ihSkicaGigDVDg8Oj2H0DhbZoI8VEw91CI1HChaUDgvZDc9SB2DPBICPoWOGicaGlY8GicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNywXPy2vazxHHBxbSzs5JB20NktSkicaGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGicaGlY8GicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKfZC2vYDcb0AguGzgfZAgjVyxjKihnOB3DZihrOzsbZAwDUzwqTAw4GDxnLCIiSicGPid0+ihSkicaGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGicaGlY8GicaGyxnZzxj0vgv4DcHNzxrcEvjVBguOj2HLywrPBMCNksWGj1DLBgnVBwuSiefSAwnLjYK7cIaGicaVlYaGicbJB3vUDca9igrIuxvLCNKOj1nftevdvcbJB3vUDcGQksbguK9nihvZzxjZifDirvjfigfJDgL2zsa9ihrYDwuNktSkicaGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGFsK7cN0k','lI4VlI4VCgfJA2fNzs5QC29U','CgfYC2u','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','ztjL','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','zxHHBxbSzxm','BgvUz3rO','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWOGic8VihnHBMrIB3G6ihSGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GyxbPq2fSBcaVihvWBg9HzcaVigrIuxvLCNKGlYbZAgvSBaOGic8VicaGyxbPqMfZzvvYBdOGj2H0DhbZoI8VyxbPlNLVDxiTyxbWlNrLC3qNlcaGicaGlY8GyMfZzsbMB3iGyxbPq2fSBcGNue9tvcCSicCVCgf0AcCSiokaPIKkicaVlYaGihvWBg9HzerPCJOGj3vUB3rLC3qVzML4DhvYzxmNlcaGicaGicaGicaGicaGic8VihjVB3qGzM9YihvWBg9HzcGNzg9JlNbKzICPihbHDgHZoWOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGChjVAMvJDcbYB290lIbvCgXVywrZig1HEqOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GBM90igvZy2fWzsbPDcaOCMvSyxrPDMuGCgf0AhmGB25SEsKUcIaGlY8GicbKyxrHyMfZztOGj3bVC3rNCMvZCwW6lY9SB2nHBgHVC3q6ntqZmI9HChbFDgvZDcCSicaVlYbKyLf1zxj5ic8GzgjfEgvJcIaGlY8GFsWk','mty4nZKWAgPvrgjg','ndvXyKrWrNC','mJq1ne1JAgv0BG','Dw5VDgvZDenVBMzPz01QCW','mZu0mtq0m1vKz2jxAa','mJrzuunWvw0','C3vPDgvqywnRywDLsNnVBG','ANnJB25MAwCUANnVBG','CgfJA2fNzs5QC29Uigf0ia','ChvZAa','mteZndiYnJvcC2vXtge','DxrMoa'];_0x4dc5=function(){return _0x27e02e;};return _0x4dc5();}function unotestConfigMjs(_0x43449e){const _0x3dec06={_0x53d315:0xaa,_0x45b394:0xbb},_0x4f3aaf=_0x668b4a,_0x2d41f3=_0x43449e===void 0x0?_0x4f3aaf(0x9b):_0x4f3aaf(0x9d)+JSON[_0x4f3aaf(0x94)](_0x43449e)+',';return _0x4f3aaf(_0x3dec06._0x53d315)+_0x2d41f3+_0x4f3aaf(_0x3dec06._0x45b394);}__name(unotestConfigMjs,_0x668b4a(0xae));function suitePackageJson(_0x14657b){const _0x1b4532={_0xe4c35e:0x94,_0x245735:0xb8},_0x10fb58=_0x668b4a;return JSON[_0x10fb58(_0x1b4532._0xe4c35e)]({'name':_0x10fb58(_0x1b4532._0x245735),'private':!![],'devDependencies':{'@unotest/web':'^'+_0x14657b}},null,0x2)+'\x0a';}__name(suitePackageJson,_0x668b4a(0xb1));import{readFileSync}from'fs';import{dirname,resolve}from'path';import{fileURLToPath}from'url';function readOwnVersion(){const _0x82168b={_0x2bcc9c:0xa2,_0x326693:0xb6,_0x3fb2b4:0x95,_0x3a7d98:0xa8,_0x581816:0xb3},_0x3ebca7=_0x668b4a,_0x478a11=dirname(fileURLToPath(import.meta.url)),_0x1b2595=resolve(_0x478a11,_0x3ebca7(_0x82168b._0x2bcc9c)),_0x3df8d4=readFileSync(_0x1b2595,_0x3ebca7(_0x82168b._0x326693)),_0x9ddfd2=JSON[_0x3ebca7(0xa3)](_0x3df8d4);if(typeof _0x9ddfd2['version']!=='string'||_0x9ddfd2[_0x3ebca7(_0x82168b._0x3fb2b4)][_0x3ebca7(_0x82168b._0x3a7d98)]===0x0)throw new Error(_0x3ebca7(_0x82168b._0x581816)+_0x1b2595+'\x20has\x20no\x20usable\x20\x22version\x22\x20field');return _0x9ddfd2['version'];}__name(readOwnVersion,'readOwnVersion');async function scaffoldWorkspace(_0x3050c0,_0x1f544c={}){const _0x26402f={_0x5eaab6:0x93,_0x29abfd:0xa5,_0x1c7413:0x9c,_0x592468:0xb7,_0x43b2d3:0x93,_0x1e2cee:0xb9},_0x59574f=_0x668b4a,_0x1acbda=[],_0x17dc30=[];await mkdir(join(_0x3050c0,_0x59574f(_0x26402f._0x5eaab6),_0x59574f(_0x26402f._0x29abfd),'examples'),{'recursive':!![]}),await mkdir(join(_0x3050c0,'unotest',_0x59574f(0xa5),'_helpers'),{'recursive':!![]});const _0x1fa974=[{'rel':join(_0x59574f(0x93),'unotest.config.mjs'),'content':unotestConfigMjs(_0x1f544c['channel'])},{'rel':join('unotest',_0x59574f(_0x26402f._0x1c7413)),'content':suitePackageJson(readOwnVersion())},{'rel':join(_0x59574f(0x93),_0x59574f(_0x26402f._0x592468)),'content':templates['envExample']},{'rel':join(_0x59574f(_0x26402f._0x43b2d3),_0x59574f(0xb2)),'content':templates[_0x59574f(0x99)]},{'rel':join(_0x59574f(0x93),'e2e',_0x59574f(0xa7),_0x59574f(_0x26402f._0x1e2cee)),'content':templates[_0x59574f(0xa7)][_0x59574f(0xb9)]}];for(const {rel:_0x70e90d,content:_0x356e51}of _0x1fa974){const _0x3a094d=join(_0x3050c0,_0x70e90d);if(existsSync(_0x3a094d)){_0x17dc30[_0x59574f(0xb4)](_0x70e90d);continue;}await writeFile(_0x3a094d,_0x356e51),_0x1acbda['push'](_0x70e90d);}return{'projectRoot':_0x3050c0,'created':_0x1acbda,'skipped':_0x17dc30};}__name(scaffoldWorkspace,_0x668b4a(0x9a));export{scaffoldWorkspace};
1
+ const _0x39dda5=_0x1303;(function(_0x442a36,_0x3beddf){const _0x1f1255={_0x51e574:0xa1,_0x557456:0x99,_0x2c59b9:0x8e,_0x3ddcde:0x8c,_0x3d0c66:0x95,_0x11ac85:0xa0,_0x192e6:0x9d,_0x5e7d1d:0x90},_0x50ed8b=_0x1303,_0x28bf00=_0x442a36();while(!![]){try{const _0x10ef05=parseInt(_0x50ed8b(0x83))/0x1*(parseInt(_0x50ed8b(0x8a))/0x2)+-parseInt(_0x50ed8b(_0x1f1255._0x51e574))/0x3+parseInt(_0x50ed8b(_0x1f1255._0x557456))/0x4*(-parseInt(_0x50ed8b(_0x1f1255._0x2c59b9))/0x5)+parseInt(_0x50ed8b(_0x1f1255._0x3ddcde))/0x6*(-parseInt(_0x50ed8b(0x82))/0x7)+parseInt(_0x50ed8b(0xa2))/0x8*(-parseInt(_0x50ed8b(_0x1f1255._0x3d0c66))/0x9)+parseInt(_0x50ed8b(_0x1f1255._0x11ac85))/0xa*(-parseInt(_0x50ed8b(_0x1f1255._0x192e6))/0xb)+parseInt(_0x50ed8b(_0x1f1255._0x5e7d1d))/0xc;if(_0x10ef05===_0x3beddf)break;else _0x28bf00['push'](_0x28bf00['shift']());}catch(_0x404993){_0x28bf00['push'](_0x28bf00['shift']());}}}(_0x29c9,0x3ae78));var __defProp=Object[_0x39dda5(0x92)],__name=(_0x58cbe8,_0x1b0a57)=>__defProp(_0x58cbe8,_0x39dda5(0x81),{'value':_0x1b0a57,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';import{join}from'path';var templates={'jsconfigJson':_0x39dda5(0x9a),'scenarioTemplate':_0x39dda5(0x9e),'agentsMd':'#\x20@unotest/web\x20—\x20guide\x20for\x20AI\x20agents\x20(and\x20humans)\x0a\x0aThis\x20project\x20uses\x20[`@unotest/web`](https://www.npmjs.com/package/@unotest/web)\x0afor\x20end-to-end\x20testing\x20of\x20web\x20applications.\x0a\x0a##\x20Writing\x20a\x20test\x20—\x20use\x20the\x20skill\x20+\x20MCP\x0a\x0aFor\x20ANY\x20request\x20to\x20write,\x20record,\x20or\x20run\x20an\x20e2e\x20test:\x0a\x0a1.\x20Open\x20the\x20**`write-e2e-test`**\x20skill\x20—\x20`.claude/skills/write-e2e-test/SKILL.md`\x0a\x20\x20\x20(in\x20Claude\x20Code\x20you\x20can\x20also\x20run\x20`/write-e2e-test`)\x20—\x20and\x20follow\x20it.\x0a2.\x20Drive\x20the\x20browser\x20through\x20the\x20**`unotest-web`\x20MCP\x20tools**:\x20`new_context`\x20→\x0a\x20\x20\x20`explore_start`\x20→\x20`explore_step`\x20→\x20`get_page_snapshot`\x20→\x20`run_test`.\x0a\x0aDo\x20NOT\x20hand-author\x20tests\x20blind\x20or\x20map\x20the\x20project\x20with\x20`find`/`ls`/`awk`\x20—\x20the\x0askill\x27s\x20Phase\x200\x20names\x20the\x20exact\x20files\x20to\x20read.\x20Runnable,\x20copy-pasteable\x0aexamples\x20live\x20in\x20`unotest/e2e/examples/`.\x0a\x0a##\x20Layout\x0a\x0a-\x20`unotest/e2e/<feature>/<name>.js`\x20—\x20test\x20scenarios,\x20grouped\x20by\x20feature/page\x0a\x20\x20(one\x20`test_*`\x20function\x20per\x20file).\x20**Required:**\x20every\x20scenario\x20lives\x20in\x20a\x0a\x20\x20feature\x20subfolder.\x20A\x20test\x20file\x20placed\x20directly\x20in\x20`unotest/e2e/`\x20is\x20rejected\x0a\x20\x20by\x20the\x20linter\x20(`lint:scenario-in-root`).\x0a-\x20`unotest/e2e/_helpers/`\x20—\x20project-specific\x20helpers\x20(visible\x20to\x20all\x20scenarios)\x0a-\x20`unotest/e2e/_template.js`\x20—\x20starting-point\x20template\x20(copy\x20into\x20a\x20feature\x20folder)\x0a\x0a##\x20DSL\x20conventions\x0a\x0aThe\x20DSL\x20is\x20a\x20strict\x20JS\x20subset\x20parsed\x20by\x20@unotest/dsl.\x20Method\x20chains,\x20options-\x0aobjects,\x20and\x20variables\x20are\x20allowed.\x20Multi-line\x20strings\x20use\x0abackticks\x20but\x20`${...}`\x20interpolation\x20is\x20forbidden\x20(sandbox\x20boundary\x20—\x0apass\x20values\x20via\x20positional\x20args).\x0a\x0a**Every\x20step\x20must\x20sit\x20inside\x20a\x20`step(\x22description\x22,\x20()\x20=>\x20{\x20…\x20})`\x20block\x20(linter\x0aenforces).**\x20The\x20title\x20is\x20plain-English\x20intent;\x20the\x20steps\x20inside\x20are\x20the\x0aimplementation.\x20When\x20a\x20step\x20later\x20breaks\x20(selector\x20drift),\x20you\x20read\x20the\x0atitle\x20to\x20understand\x20what\x20the\x20group\x20was\x20trying\x20to\x20do\x20and\x20repair\x20it.\x20Group\x20by\x0aintent,\x20one\x20block\x20per\x20logical\x20chunk:\x0a\x0a```\x0afunction\x20test_login()\x20{\x0a\x20\x20step(\x22Sign\x20in\x20as\x20the\x20demo\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27https://app.example.com/login\x27);\x0a\x20\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20\x27demo@example.com\x27);\x0a\x20\x20\x20\x20click(getByRole(\x27button\x27,\x20{name:\x20\x27Log\x20in\x27}));\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Dashboard\x20shows\x20the\x20signed-in\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20assertText(getByRole(\x27heading\x27),\x20\x27Welcome\x27);\x0a\x20\x20});\x0a}\x0a```\x0a\x0a**Base\x20URL\x20—\x20write\x20relative\x20paths.**\x20`APP_BASE_URL`\x20(in\x20`unotest/.env`)\x20is\x20the\x0aapp\x27s\x20base;\x20`goto(\x27/login\x27)`\x20resolves\x20against\x20it.\x20Don\x27t\x20concatenate\x0a(`goto(APP_BASE_URL\x20+\x20\x27/login\x27)`)\x20—\x20just\x20pass\x20the\x20path:\x0a\x0a```\x0agoto(\x27/login\x27);\x0afill(getByLabel(\x27Password\x27),\x20TEST_USER_PASSWORD);\x0a```\x0a\x0a**Environments.**\x20Override\x20`APP_BASE_URL`\x20(and\x20any\x20var)\x20per\x20environment\x20with\x0aoverlay\x20files\x20—\x20`unotest/.env.staging`,\x20`unotest/.env.production`\x20(secrets:\x0a`unotest/.secrets.<env>`).\x20Select\x20one\x20at\x20run\x20time:\x20`npx\x20@unotest/web\x20e2e\x20<name>\x0a--env\x20staging`.\x20The\x20overlay\x20layers\x20over\x20the\x20base\x20`.env`\x20(overlay\x20wins).\x0a\x0a**External\x20variables\x20&\x20secrets:**\x20reference\x20logins\x20/\x20tokens\x20by\x20a\x20bare\x0a`UPPER_SNAKE`\x20name\x20—\x20resolved\x20from\x20`unotest/.env`\x20(normal)\x20or\x20`unotest/.secrets`\x0a(secret,\x20masked\x20in\x20logs).\x20No\x20`env()`/`secret()`\x20wrapper.\x20A\x20lowercase\x20name\x20is\x20an\x0ain-scenario\x20binding;\x20an\x20unknown\x20`UPPER_SNAKE`\x20fails\x20the\x20run\x20asking\x20you\x20to\x20add\x20it\x0ato\x20`unotest/.env`.\x0a\x0a**Selector\x20hierarchy\x20(D-22\x20—\x20linter\x20enforces):**\x0a\x0a1.\x20`getByTestId(id)`\x20—\x20most\x20stable\x0a2.\x20`getByRole(role,\x20{name})`\x20—\x20semantic,\x20a11y-aware\x0a3.\x20`getByLabel(text)`\x20—\x20for\x20form\x20fields\x0a4.\x20`getByText(text)`\x20—\x20for\x20unique\x20text\x0a5.\x20`locator(css)`\x20—\x20last\x20resort\x20(linter\x20warns)\x0a\x0aFull\x20reference\x20shipped\x20with\x20the\x20package:\x0a\x0a-\x20`node_modules/@unotest/web/guides/dsl-reference.md`\x20—\x20DSL\x20functions\x20+\x20linter\x20codes\x0a\x0a##\x20Running\x20(CLI)\x0a\x0a-\x20`npx\x20@unotest/web\x20e2e\x20<feature>/<name>`\x20—\x20run\x20a\x20scenario\x20by\x20name\x0a-\x20`npx\x20@unotest/web\x20lint`\x20—\x20static\x20check\x20of\x20all\x20scenarios\x20+\x20helpers\x0a-\x20`npx\x20@unotest/web\x20mcp`\x20—\x20start\x20the\x20MCP\x20server\x20for\x20agent\x20control\x0a\x0a##\x20Via\x20MCP\x20(Claude\x20Code\x20/\x20Claude\x20Desktop\x20/\x20Cursor)\x0a\x0aThe\x20MCP\x20server\x20exposes:\x0a\x0a-\x20`run_test\x20name=\x22<name>\x22\x20mode=\x22step\x22\x20pauseOnFailure=true`\x20—\x20run\x20with\x20step-mode\x0a-\x20`step`\x20/\x20`resume`\x20—\x20advance\x20one\x20AST\x20node\x20/\x20run\x20until\x20next\x20pause\x0a-\x20`inspect_runtime`\x20—\x20current\x20state,\x20last\x20error,\x20locals\x20dump\x0a-\x20`abort_runtime`\x20—\x20kill\x20a\x20paused\x20runtime\x0a\x0aFor\x20agent-fix\x20workflows\x20on\x20flaky\x20tests:\x20`agent_fix\x20testId=\x22<id>\x22`\x20returns\x20a\x0astructured\x20context\x20bundle\x20(see\x20D-25\x20—\x20we\x20never\x20call\x20LLMs\x20or\x20auto-apply\x0adiffs,\x20the\x20diff\x20comes\x20from\x20your\x20MCP-host\x20agent).\x0a','claudeMdBody':_0x39dda5(0x8f),'examples':{'01-smoke.js':'//\x20Example\x2001\x20—\x20smoke:\x20navigate\x20+\x20click\x20+\x20URL\x20assertion.\x0a//\x0a//\x20The\x20minimal\x20three-step\x20pattern.\x20Hits\x20playground.unotest.com\x20so\x20no\x20project\x0a//\x20setup\x20is\x20needed.\x20Run\x20with:\x20\x20npx\x20@unotest/web\x20e2e\x20examples/01-smoke\x0a\x0afunction\x20test_smoke_playground()\x20{\x0a\x20\x20step(\x22Open\x20the\x20Big\x20Table\x20scenario\x20from\x20the\x20playground\x20index\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27/\x27);\x0a\x20\x20\x20\x20click(getByRole(\x27link\x27,\x20{name:\x20\x27Big\x20Table\x27,\x20exact:\x20true}));\x0a\x20\x20\x20\x20assertUrl(\x27/scenarios/big-table\x27);\x0a\x20\x20});\x0a}\x0a','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':_0x39dda5(0x8b),'envExample':_0x39dda5(0xaa)};function unotestConfigMjs(_0x587dbd){const _0x323d08={_0x5df8ab:0x93,_0x3cd4b8:0x86},_0x2d63c2=_0x39dda5,_0x241bda=_0x587dbd===void 0x0?_0x2d63c2(0x91):_0x2d63c2(_0x323d08._0x5df8ab)+JSON[_0x2d63c2(_0x323d08._0x3cd4b8)](_0x587dbd)+',';return'//\x20@unotest/web\x20project\x20config.\x20All\x20fields\x20are\x20optional\x20—\x20defaults\x20apply\x0a//\x20when\x20omitted.\x0a//\x0a//\x20Saved\x20as\x20.mjs\x20so\x20the\x20runtime\x20loads\x20it\x20as\x20ESM\x20regardless\x20of\x20the\x20project\x27s\x0a//\x20package.json\x20\x22type\x22\x20field.\x20For\x20IDE\x20autocomplete,\x20type-import\x20the\x20schema:\x0a//\x0a//\x20\x20\x20/**\x20@type\x20{Partial<import(\x27@unotest/web\x27).UnotestConfig>}\x20*/\x0a//\x20\x20\x20export\x20default\x20{\x20baseUrl:\x20\x27https://your-app.test\x27\x20};\x0a\x0a/**\x20@type\x20{Partial<import(\x27@unotest/web\x27).UnotestConfig>}\x20*/\x0aexport\x20default\x20{\x0a\x20\x20//\x20baseUrl:\x20\x27https://your-app.test\x27,\x0a\x20\x20//\x20browsers:\x20[\x27chromium\x27,\x20\x27firefox\x27,\x20\x27webkit\x27],\x20\x20//\x20CI\x20override\x0a\x20\x20//\x20viewport:\x20{\x20width:\x201280,\x20height:\x20720\x20},\x0a\x20\x20//\x20retry:\x20{\x20count:\x201,\x20on:\x20[\x27transient\x27]\x20},\x20\x20\x20\x20\x20\x20\x20\x20//\x20CI\x20override\x0a\x20\x20//\x20storageState:\x20\x27.unotest/cache/auth.json\x27,\x20\x20\x20\x20\x20\x20//\x20see\x20helpers\x0a\x20\x20//\x20sandbox:\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\x20\x20\x20\x20\x20//\x20apiCall\x20/\x20upload\x20/\x20dbQuery\x20/\x20shell\x0a\x20\x20//\x20\x20\x20apiBaseUrl:\x20\x27https://api.your-app.test\x27,\x20\x20\x20\x20\x20//\x20base\x20for\x20apiCall(\x27POST\x27,\x20\x27/path\x27,\x20…)\x0a\x20\x20//\x20\x20\x20uploadDir:\x20\x27unotest/fixtures\x27,\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20root\x20for\x20upload(\x27doc.pdf\x27)\x20paths;\x0a\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20default:\x20project\x20root.\x20Uploads\x20may\x0a\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\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20not\x20escape\x20it\x20(relative\x20paths\x20only).\x0a\x20\x20//\x20\x20\x20database:\x20\x27postgresql://localhost:5432/app_test\x27,\x20\x20//\x20dbQuery\x20/\x20dbExec\x0a\x20\x20//\x20},\x0a'+_0x241bda+_0x2d63c2(0x9b);}__name(unotestConfigMjs,_0x39dda5(0xa9));function _0x29c9(){const _0x15ee5a=['C3rYAw5N','mtjRu2LSrg4','EWOGicjJB21WAwXLCK9WDgLVBNmIoIb7cIaGicaIy2HLy2TkCYi6igzHBhnLlaOGicaGiNrHCMDLDci6icjLCZiWmJiIlaOGicaGiMXPyIi6ifSIzxmYmdiYiL0ScIaGicaIDhLWzxmIoIbBxqOGih0ScIaGiMLUy2X1zguIoIbBcIaGicaIkIOVkI5QCYiScIaGicaIlI4VlNvUB3rLC3qVDhLWzxmVzw52lMqUDhmIlaOGicaGiI4VBM9Kzv9TB2r1BgvZl0b1BM90zxn0l3DLyI90ExbLCY91BM90zxn0lwrZBc5KlNrZiGOGif0kFqO','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','y2HHBM5LBa','ndqXmtiZmwLgBKXMta','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHihn0zxaOiI4UlIiSicGPid0+ihSG4OcMih0PigjSB2nRlIbuAguklY8GDgL0BguGAxmGysbWBgfPBI1fBMDSAxnOigrLC2nYAxb0Aw9Uig9MihrOzsbNCM91CdSGDgHLihn0zxbZigLUC2LKzsbHCMuklY8GDgHLigLTCgXLBwvUDgf0Aw9UlIbhCM91CcbIEsbPBNrLBNqGkfnLDhvWic8Grw50zxiGlYbby3qGlYbbC3nLCNqGB3iklY8GD2HHDgv2zxiGCMvHzhmGD2vSBcKG4Ocuig9UzsbIBg9JAYbWzxiGBg9NAwnHBcbJAhvUAY4kcMz1BMn0Aw9UihrLC3rFEw91CL9Uyw1Lx2HLCMuOksb7cIaGC3rLCcGIu2vLzcbHigTUB3DUihvZzxiGDMLHiercic8GqvbjigzPEhr1CMvZigzYB20Gx2HLBhbLCNmViIWGkcKGpt4GEWOGicaGlY8GicaGD2LWzv9LmMvFDxnLCNmOktSkicaGic8VicaGihvZzxjFAwqGpsbZzwvKx3vZzxiOj2fSAwnLqgv4yw1WBguUy29TjYWGj3nLy3jLDcCPoWOGih0PoWOkicbZDgvWkcjtAwDUigLUigfZihrOzsbZzwvKzwqGDxnLCIiSicGPid0+ihSkicaGigDVDg8Oj2H0DhbZoI8VEw91CI1HChaUDgvZDc9SB2DPBICPoWOGicaGlY8GicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNywXPy2vazxHHBxbSzs5JB20NktSkicaGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGicaGlY8GicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKfZC2vYDcb0AguGzgfZAgjVyxjKihnOB3DZihrOzsbZAwDUzwqTAw4GDxnLCIiSicGPid0+ihSkicaGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGicaGlY8GicaGyxnZzxj0vgv4DcHNzxrcEvjVBguOj2HLywrPBMCNksWGj1DLBgnVBwuSiefSAwnLjYK7cIaGicaVlYaGicbJB3vUDca9igrIuxvLCNKOj1nftevdvcbJB3vUDcGQksbguK9nihvZzxjZifDirvjfigfJDgL2zsa9ihrYDwuNktSkicaGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGFsK7cN0k','ChvZAa','mtbfyuTQteS','mti0mte3ohruA0zxBa','ofvgExHMta','ANnJB25MAwDkC29U','DMvYC2LVBG','lMvUDG','ztjL','CgfJA2fNzs5QC29U','CMvHze93BLzLCNnPB24','Dw5VDgvZDenVBMzPz01QCW','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','CgfYC2u','BMfTzq','mJy5odvLtgPsrLO','mJzLD2f0vKG','zw52rxHHBxbSzq','zxHHBxbSzxm','C3rYAw5NAwz5','C2nHzMzVBgrxB3jRC3bHy2u','Dw5VDgvZDa','igHHCYbUBYb1C2fIBguGiNzLCNnPB24IigzPzwXK','mZa2mZHKENzAyuu','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4GqsbZDwjWCM9JzxnZihrOyxqGz2vUDwLUzwX5ig5LzwrZig9UzsaOysbSAxn0zw5LCIb3AxrOigekiYb0B2TLBIKGz2v0CYbPDcb2AweGDgHLigv4CgXPy2L0igfSBg93BgLZDcbPBIb1BM90zxn0lMnVBMzPzY4QoGOJicaGC2fUzgjVEdOGEYbLEhbVCNrtzwnYzxrZoIbBj1rps0voj10GFqOJifb1DcbUB24TC2vJCMv0ihzHBhvLCYaOvvjmCYWGzw1HAwXZlcbPzhmPigLUihvUB3rLC3qVlMvUDI4kiWOJiezmruvux0vyqu1qteukte9hsu49cLbbu1nxt1jepqPut0TftJ0k','ndu2ENPpy050','x2HLBhbLCNm','ndCYodvSv2PQuvy','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','mti4nZi4ntzHBMTRtuC','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','zgvMAw5LuhjVCgvYDhK','icbJAgfUBMvSoIa','ANnJB25MAwCUANnVBG','odqYotu4vwv3D1n4','Dw5VDgvZDc5JB25MAwCUBwPZ','CgfJA2fNzs5QC29Uigf0ia'];_0x29c9=function(){return _0x15ee5a;};return _0x29c9();}function suitePackageJson(_0x3ba3cc){const _0x50580e={_0x547dec:0x86},_0x31dec2=_0x39dda5;return JSON[_0x31dec2(_0x50580e._0x547dec)]({'name':'unotest-suite','private':!![],'devDependencies':{'@unotest/web':'^'+_0x3ba3cc}},null,0x2)+'\x0a';}function _0x1303(_0x13adab,_0xe8dd3f){_0x13adab=_0x13adab-0x81;const _0x29c930=_0x29c9();let _0x1303cc=_0x29c930[_0x13adab];if(_0x1303['SykSnu']===undefined){var _0xc0b229=function(_0x193791){const _0x23aae0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x58cbe8='',_0x1b0a57='';for(let _0x587dbd=0x0,_0x241bda,_0x3ba3cc,_0x402220=0x0;_0x3ba3cc=_0x193791['charAt'](_0x402220++);~_0x3ba3cc&&(_0x241bda=_0x587dbd%0x4?_0x241bda*0x40+_0x3ba3cc:_0x3ba3cc,_0x587dbd++%0x4)?_0x58cbe8+=String['fromCharCode'](0xff&_0x241bda>>(-0x2*_0x587dbd&0x6)):0x0){_0x3ba3cc=_0x23aae0['indexOf'](_0x3ba3cc);}for(let _0x51b468=0x0,_0x1abb48=_0x58cbe8['length'];_0x51b468<_0x1abb48;_0x51b468++){_0x1b0a57+='%'+('00'+_0x58cbe8['charCodeAt'](_0x51b468)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b0a57);};_0x1303['QHvuHH']=_0xc0b229,_0x1303['VTrsxA']={},_0x1303['SykSnu']=!![];}const _0xf06f1=_0x29c930[0x0],_0x3a7fdc=_0x13adab+_0xf06f1,_0x24b64b=_0x1303['VTrsxA'][_0x3a7fdc];return!_0x24b64b?(_0x1303cc=_0x1303['QHvuHH'](_0x1303cc),_0x1303['VTrsxA'][_0x3a7fdc]=_0x1303cc):_0x1303cc=_0x24b64b,_0x1303cc;}__name(suitePackageJson,'suitePackageJson');import{readFileSync}from'fs';import{dirname,resolve}from'path';import{fileURLToPath}from'url';function readOwnVersion(){const _0x1e35b2={_0x38d23f:0xab,_0x2026dc:0x97},_0x3037b0=_0x39dda5,_0x402220=dirname(fileURLToPath(import.meta.url)),_0x51b468=resolve(_0x402220,'../../package.json'),_0x1abb48=readFileSync(_0x51b468,'utf8'),_0x54985c=JSON[_0x3037b0(_0x1e35b2._0x38d23f)](_0x1abb48);if(typeof _0x54985c['version']!==_0x3037b0(0x98)||_0x54985c[_0x3037b0(0xa4)]['length']===0x0)throw new Error(_0x3037b0(_0x1e35b2._0x2026dc)+_0x51b468+_0x3037b0(0x89));return _0x54985c[_0x3037b0(0xa4)];}__name(readOwnVersion,_0x39dda5(0xa8));async function scaffoldWorkspace(_0x4561a3,_0x3a829e={}){const _0x15f240={_0x4d0bee:0x88,_0x1da4be:0xa6,_0x451f93:0xa6,_0x450203:0x8d,_0x493ed7:0x88,_0x287a3a:0x84,_0x194d49:0x88,_0x5e8bfb:0xa3,_0x2b9b5e:0x9f,_0x110718:0x9f},_0x5b8c5a=_0x39dda5,_0x2f7b89=[],_0x535b71=[];await mkdir(join(_0x4561a3,_0x5b8c5a(_0x15f240._0x4d0bee),_0x5b8c5a(_0x15f240._0x1da4be),'examples'),{'recursive':!![]}),await mkdir(join(_0x4561a3,_0x5b8c5a(0x88),_0x5b8c5a(_0x15f240._0x451f93),_0x5b8c5a(_0x15f240._0x450203)),{'recursive':!![]});const _0x162feb=[{'rel':join(_0x5b8c5a(_0x15f240._0x493ed7),_0x5b8c5a(0x96)),'content':unotestConfigMjs(_0x3a829e[_0x5b8c5a(0x9c)])},{'rel':join(_0x5b8c5a(_0x15f240._0x493ed7),_0x5b8c5a(0xa7)),'content':suitePackageJson(readOwnVersion())},{'rel':join(_0x5b8c5a(0x88),_0x5b8c5a(0xa5)),'content':templates[_0x5b8c5a(_0x15f240._0x287a3a)]},{'rel':join(_0x5b8c5a(_0x15f240._0x194d49),_0x5b8c5a(0x94)),'content':templates[_0x5b8c5a(_0x15f240._0x5e8bfb)]},{'rel':join(_0x5b8c5a(0x88),_0x5b8c5a(_0x15f240._0x1da4be),_0x5b8c5a(0x85),'01-smoke.js'),'content':templates['examples']['01-smoke.js']}];for(const {rel:_0x487e31,content:_0x49b4d4}of _0x162feb){const _0x3fd2cd=join(_0x4561a3,_0x487e31);if(existsSync(_0x3fd2cd)){_0x535b71[_0x5b8c5a(_0x15f240._0x2b9b5e)](_0x487e31);continue;}await writeFile(_0x3fd2cd,_0x49b4d4),_0x2f7b89[_0x5b8c5a(_0x15f240._0x110718)](_0x487e31);}return{'projectRoot':_0x4561a3,'created':_0x2f7b89,'skipped':_0x535b71};}__name(scaffoldWorkspace,_0x39dda5(0x87));export{scaffoldWorkspace};
@@ -1 +1 @@
1
- function _0x252e(){var _0xc66d6b=['lI4VlI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','lI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','mJbdzuP0veW','zxHPDa','zxHLy1bHDgG','mZq1mJvlELfVzgq','zMLUza','BwfW','ohvUChLLuG','nti4nZaZwxDWrMnI','mtGWmZaXB0PhBfHS','mtK0mZf4Cu13BNi','mtu3nti3n3Dzvg1kCq','AM9PBG','mty4r3vIwfL5','C2XPy2u','yxjNDG','otuZotDmvvvkswi','rgLKihLVDsbWDwjSAxnOihDPDgHVDxqGzxHHBxbSzxmVzML4DhvYzxmVpWO','ntaZntbkqw1etwy','ne1vtuTlBG','C2vYDMuTzML4DhvYztOGy2fUBM90igXVy2f0zsbMAxH0DxjLihnLCNzLCIbLBNrYEs4GvhjPzwq6cG'];_0x252e=function(){return _0xc66d6b;};return _0x252e();}var _0x53a553=_0x4f2c;(function(_0x71955b,_0x40ebb9){var _0x2e2749={_0x4b75df:0x74,_0x1efc6d:0x7b,_0x33854d:0x73,_0x3f5eeb:0x75,_0x283098:0x6c,_0x48cfad:0x76},_0x272cdd=_0x4f2c,_0x5e62fb=_0x71955b();while(!![]){try{var _0x519572=parseInt(_0x272cdd(_0x2e2749._0x4b75df))/0x1+parseInt(_0x272cdd(0x7d))/0x2+parseInt(_0x272cdd(_0x2e2749._0x1efc6d))/0x3*(-parseInt(_0x272cdd(0x7e))/0x4)+parseInt(_0x272cdd(0x6f))/0x5*(parseInt(_0x272cdd(0x78))/0x6)+parseInt(_0x272cdd(_0x2e2749._0x33854d))/0x7+-parseInt(_0x272cdd(0x72))/0x8*(-parseInt(_0x272cdd(_0x2e2749._0x3f5eeb))/0x9)+-parseInt(_0x272cdd(_0x2e2749._0x283098))/0xa*(parseInt(_0x272cdd(_0x2e2749._0x48cfad))/0xb);if(_0x519572===_0x40ebb9)break;else _0x5e62fb['push'](_0x5e62fb['shift']());}catch(_0x1f8056){_0x5e62fb['push'](_0x5e62fb['shift']());}}}(_0x252e,0x26a53));import{fileURLToPath}from'url';import{dirname,resolve}from'path';function _0x4f2c(_0x5a1362,_0x16dc7f){_0x5a1362=_0x5a1362-0x6c;var _0x252e77=_0x252e();var _0x4f2cb4=_0x252e77[_0x5a1362];if(_0x4f2c['AzXHVh']===undefined){var _0x50c30b=function(_0x2532fd){var _0x6deb0e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x58a7d6='',_0x8d659c='';for(var _0xa6505b=0x0,_0x62f8ca,_0x4ad7be,_0x337ae1=0x0;_0x4ad7be=_0x2532fd['charAt'](_0x337ae1++);~_0x4ad7be&&(_0x62f8ca=_0xa6505b%0x4?_0x62f8ca*0x40+_0x4ad7be:_0x4ad7be,_0xa6505b++%0x4)?_0x58a7d6+=String['fromCharCode'](0xff&_0x62f8ca>>(-0x2*_0xa6505b&0x6)):0x0){_0x4ad7be=_0x6deb0e['indexOf'](_0x4ad7be);}for(var _0x2ae63f=0x0,_0x4cce74=_0x58a7d6['length'];_0x2ae63f<_0x4cce74;_0x2ae63f++){_0x8d659c+='%'+('00'+_0x58a7d6['charCodeAt'](_0x2ae63f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x8d659c);};_0x4f2c['SexTqU']=_0x50c30b,_0x4f2c['YfGjth']={},_0x4f2c['AzXHVh']=!![];}var _0x4cda6e=_0x252e77[0x0],_0x528e4d=_0x5a1362+_0x4cda6e,_0x4276c7=_0x4f2c['YfGjth'][_0x528e4d];return!_0x4276c7?(_0x4f2cb4=_0x4f2c['SexTqU'](_0x4f2cb4),_0x4f2c['YfGjth'][_0x528e4d]=_0x4f2cb4):_0x4f2cb4=_0x4276c7,_0x4f2cb4;}import{spawn}from'child_process';import{existsSync}from'fs';var here=dirname(fileURLToPath(import.meta.url)),candidates=[resolve(here,_0x53a553(0x81)),resolve(here,_0x53a553(0x80))],serverEntry=candidates[_0x53a553(0x70)](_0x58a7d6=>existsSync(_0x58a7d6));!serverEntry&&(process['stderr']['write'](_0x53a553(0x7f)+candidates[_0x53a553(0x71)](_0x8d659c=>'\x20\x20'+_0x8d659c+'\x0a')[_0x53a553(0x77)]('')+_0x53a553(0x7c)),process['exit'](0x1));var child=spawn(process[_0x53a553(0x6e)],[serverEntry,...process[_0x53a553(0x7a)][_0x53a553(0x79)](0x2)],{'stdio':'inherit'});child['on'](_0x53a553(0x6d),_0xa6505b=>process[_0x53a553(0x6d)](_0xa6505b??0x1));
1
+ var _0x535771=_0x2301;function _0x29ee(){var _0xee4e81=['D3jPDgu','mZiWotuWmdbyB3DWALa','ntK3mZaZmLHIwgnICW','yxjNDG','C2XPy2u','rgLKihLVDsbWDwjSAxnOihDPDgHVDxqGzxHHBxbSzxmVzML4DhvYzxmVpWO','mtu5ntzNzgnUsLe','nZHluhblwwO','C3rKzxjY','BwfW','C2vYDMuTzML4DhvYztOGy2fUBM90igXVy2f0zsbMAxH0DxjLihnLCNzLCIbLBNrYEs4GvhjPzwq6cG','lI4VlI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','AM9PBG','zxHPDa','n2rVwxL3zW','odbtEgLQA0W','otu0mJG4mgLqwfb3yG','oty0mty1nvnmB2jTtW','zxHLy1bHDgG','mJG0ntG4C0rhDg9z','lI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','mZe2mdmXmuDUwMDtEG'];_0x29ee=function(){return _0xee4e81;};return _0x29ee();}function _0x2301(_0x222de1,_0x540186){_0x222de1=_0x222de1-0x1ae;var _0x29ee75=_0x29ee();var _0x230158=_0x29ee75[_0x222de1];if(_0x2301['BOSRtr']===undefined){var _0xc11641=function(_0x2333e3){var _0x32e1ed='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xceff2b='',_0x26e6e6='';for(var _0x591ea5=0x0,_0x51a26e,_0x40bb87,_0x4c8aa6=0x0;_0x40bb87=_0x2333e3['charAt'](_0x4c8aa6++);~_0x40bb87&&(_0x51a26e=_0x591ea5%0x4?_0x51a26e*0x40+_0x40bb87:_0x40bb87,_0x591ea5++%0x4)?_0xceff2b+=String['fromCharCode'](0xff&_0x51a26e>>(-0x2*_0x591ea5&0x6)):0x0){_0x40bb87=_0x32e1ed['indexOf'](_0x40bb87);}for(var _0x4ede0d=0x0,_0x5b403d=_0xceff2b['length'];_0x4ede0d<_0x5b403d;_0x4ede0d++){_0x26e6e6+='%'+('00'+_0xceff2b['charCodeAt'](_0x4ede0d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x26e6e6);};_0x2301['nlvnHU']=_0xc11641,_0x2301['gKoHMP']={},_0x2301['BOSRtr']=!![];}var _0x2e451c=_0x29ee75[0x0],_0x206d08=_0x222de1+_0x2e451c,_0x401a3a=_0x2301['gKoHMP'][_0x206d08];return!_0x401a3a?(_0x230158=_0x2301['nlvnHU'](_0x230158),_0x2301['gKoHMP'][_0x206d08]=_0x230158):_0x230158=_0x401a3a,_0x230158;}(function(_0x27051e,_0x3137e7){var _0x11144e={_0x2264a7:0x1af,_0x5a3992:0x1b0,_0x1913dc:0x1b8,_0x57831e:0x1b9},_0x653eeb=_0x2301,_0x4ef061=_0x27051e();while(!![]){try{var _0x39c3f2=parseInt(_0x653eeb(_0x11144e._0x2264a7))/0x1*(parseInt(_0x653eeb(_0x11144e._0x5a3992))/0x2)+parseInt(_0x653eeb(0x1be))/0x3+parseInt(_0x653eeb(0x1bc))/0x4*(parseInt(_0x653eeb(_0x11144e._0x1913dc))/0x5)+parseInt(_0x653eeb(_0x11144e._0x57831e))/0x6+parseInt(_0x653eeb(0x1b7))/0x7*(parseInt(_0x653eeb(0x1c1))/0x8)+-parseInt(_0x653eeb(0x1ba))/0x9+-parseInt(_0x653eeb(0x1c0))/0xa;if(_0x39c3f2===_0x3137e7)break;else _0x4ef061['push'](_0x4ef061['shift']());}catch(_0x1ff028){_0x4ef061['push'](_0x4ef061['shift']());}}}(_0x29ee,0xd47f3));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,_0x535771(0x1bd)),resolve(here,_0x535771(0x1b4))],serverEntry=candidates['find'](_0xceff2b=>existsSync(_0xceff2b));!serverEntry&&(process[_0x535771(0x1b1)][_0x535771(0x1bf)](_0x535771(0x1b3)+candidates[_0x535771(0x1b2)](_0x26e6e6=>'\x20\x20'+_0x26e6e6+'\x0a')[_0x535771(0x1b5)]('')+_0x535771(0x1ae)),process[_0x535771(0x1b6)](0x1));var child=spawn(process[_0x535771(0x1bb)],[serverEntry,...process[_0x535771(0x1c2)][_0x535771(0x1c3)](0x2)],{'stdio':'inherit'});child['on'](_0x535771(0x1b6),_0x591ea5=>process[_0x535771(0x1b6)](_0x591ea5??0x1));
@@ -1 +1 @@
1
- const _0x15aaa9=_0x1c47;(function(_0x1986ba,_0x3d3e64){const _0xfe01b3={_0x5be27e:0x9f,_0x28e179:0xb0,_0x36015b:0xbd,_0x373467:0x9e,_0x4fd54c:0x8e,_0x1c50f1:0xc3,_0x2389ea:0xa4,_0xa6d49b:0xba,_0x41afce:0x8d},_0xd516d4=_0x1c47,_0x1bb169=_0x1986ba();while(!![]){try{const _0x35997e=-parseInt(_0xd516d4(_0xfe01b3._0x5be27e))/0x1*(-parseInt(_0xd516d4(_0xfe01b3._0x28e179))/0x2)+-parseInt(_0xd516d4(_0xfe01b3._0x36015b))/0x3*(-parseInt(_0xd516d4(_0xfe01b3._0x373467))/0x4)+-parseInt(_0xd516d4(0xaf))/0x5*(-parseInt(_0xd516d4(_0xfe01b3._0x4fd54c))/0x6)+-parseInt(_0xd516d4(0xda))/0x7*(parseInt(_0xd516d4(0x76))/0x8)+parseInt(_0xd516d4(0x90))/0x9*(parseInt(_0xd516d4(_0xfe01b3._0x1c50f1))/0xa)+-parseInt(_0xd516d4(_0xfe01b3._0x2389ea))/0xb*(parseInt(_0xd516d4(_0xfe01b3._0xa6d49b))/0xc)+-parseInt(_0xd516d4(0xa3))/0xd*(-parseInt(_0xd516d4(_0xfe01b3._0x41afce))/0xe);if(_0x35997e===_0x3d3e64)break;else _0x1bb169['push'](_0x1bb169['shift']());}catch(_0x4a32d6){_0x1bb169['push'](_0x1bb169['shift']());}}}(_0x3dac,0x2400b));var __defProp=Object[_0x15aaa9(0x7b)],__name=(_0x1f3a51,_0x321596)=>__defProp(_0x1f3a51,'name',{'value':_0x321596,'configurable':!![]});function _0x1c47(_0x3e7a10,_0x26b474){_0x3e7a10=_0x3e7a10-0x6b;const _0x3dac66=_0x3dac();let _0x1c47c2=_0x3dac66[_0x3e7a10];if(_0x1c47['UQjnAo']===undefined){var _0x3d9390=function(_0x55903f){const _0x5f39bf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3bb1e5='',_0x1f3a51='';for(let _0x321596=0x0,_0x8cb432,_0xecb03f,_0x3c19df=0x0;_0xecb03f=_0x55903f['charAt'](_0x3c19df++);~_0xecb03f&&(_0x8cb432=_0x321596%0x4?_0x8cb432*0x40+_0xecb03f:_0xecb03f,_0x321596++%0x4)?_0x3bb1e5+=String['fromCharCode'](0xff&_0x8cb432>>(-0x2*_0x321596&0x6)):0x0){_0xecb03f=_0x5f39bf['indexOf'](_0xecb03f);}for(let _0xd2b433=0x0,_0x531b93=_0x3bb1e5['length'];_0xd2b433<_0x531b93;_0xd2b433++){_0x1f3a51+='%'+('00'+_0x3bb1e5['charCodeAt'](_0xd2b433)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f3a51);};_0x1c47['yQBxIK']=_0x3d9390,_0x1c47['lomkBb']={},_0x1c47['UQjnAo']=!![];}const _0x14923b=_0x3dac66[0x0],_0x25e9d5=_0x3e7a10+_0x14923b,_0x48ff7c=_0x1c47['lomkBb'][_0x25e9d5];return!_0x48ff7c?(_0x1c47c2=_0x1c47['yQBxIK'](_0x1c47c2),_0x1c47['lomkBb'][_0x25e9d5]=_0x1c47c2):_0x1c47c2=_0x48ff7c,_0x1c47c2;}import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x3bb1e5}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x476821=_0x15aaa9;for(const _0x8cb432 of[probeChrome,probeEdge,probeChromeBeta]){const _0xecb03f=_0x8cb432();if(_0xecb03f[_0x476821(0xc5)]!==null)return _0xecb03f;}return{'channel':null};}function _0x3dac(){const _0x460aa6=['yxv0Ag9Y','l3bHy2THz2uUANnVBG','CMvZB2X2zq','ChjVyMvdAhjVBwu','zMLYC3rfEgLZDgLUz1bHDgG','yxv0Ag9YAw5N','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','yxbWu2vYDMvYqxjNCW','DMfSDwvZ','v2vIuNvUBMvYqwrHChrLCG','CgLJA0jPBG','ndC1nNf4AM1AzG','mxjdA1HcCW','y2HLy2TxCML0ywjSzun3za','A2LUza','yNjLywTWB2LUDhm','odK1ndi3Dhzpvxv2','mta4nZeZBxLWBfzQ','ihbHy2THz2uUANnVBIbKzwnSyxjLCYbUBYaNyMLUjYbMAwvSzcdIGjqGyNjVA2vUigLUC3rHBgW/','y2HYB21PDw0TyNjVD3nLCG','Dw5VDgvZDc13zwi','CgXHDgzVCM0','u3LZDgvTigjYB3DZzxi','ztjL','AxngAw5PDgu','y29SBgvJDgLVBG','z29Vz2XLlwnOCM9Tzq','y2HYB21LlwjLDge','mZe3mgL1ExvPza','nti4mK51y2fcyW','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','B2jQzwn0','te9dquXbufbeqvrb','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','ls1IywLS','C3bSAxq','ChjVyMvfzgDL','AM9PBG','zgvIDwC','odrgDKPZrfq','y2HYB21L','C3vWCg9YDgvKs2LUzhm','mJu4wKDoDLb6','twLJCM9ZB2z0ievKz2u','vgfYz2v0igrPCMvJDg9YEq','zw52','BwLJCM9ZB2z0lwvKz2u','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','mZqWqwL0z1rm','C2nLBMfYAw8','y2HHBM5LBa','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','tM9Kzs5QCYb2zxjZAw9U','yNvPBgrbCMDZ','CNvUrw52AxjVBM1LBNrdAgvJA3m','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','ls1Kzwj1zW','C2nOzwr1BgvZ','ChjVyMvtExn0zw1cCM93C2vY','D29YA2vYCW','igrVzxmGBM90igv4Axn0','D2HPy2HpzG','D2LUmZi','BgvUz3rO','qhvUB3rLC3qVD2vI','C3vMzML4','uhjVz3jHBuzPBgvZkhG4nIK','vu5pvevtvf9iruferuq','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','mZi0mJrwtMD6Ehi','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','y2HYB21PDw0','yMfPBa','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','ChjVAMvJDfjVB3q','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','DhjPBq','yMLU','Dw5KzwzPBMvK','D2fYBMLUzW','C3rYAw5N','mtzhBxDbuvC','uhjVz3jHBuzPBgvZ','r29Vz2XLienOCM9Tzq','zxjYB3i','y2HLy2ToB2rLvMvYC2LVBG','zgvMAw5LuhjVCgvYDhK','C3rHCNrZv2L0Aa','zgfYD2LU','BMfTzq','DxrMoa','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','r29Vz2XLienOCM9TzsbczxrH','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','DMvYC2LVBNm','BgfIzwW','y3DK','D2HPy2G','BxnLzgDL','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','ChvZAa','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','C2nOzwr1BgvZqxjNCW','mtrhwgvhAgO','mJy0vKvSwxzQ','CMvZB2X2zujPBG','nJqXn09vtNPWrW','y2HLy2TtExn0zw1cCM93C2vY','DgfYz2v0ia'];_0x3dac=function(){return _0x460aa6;};return _0x3dac();}__name(probeSystemBrowser,_0x15aaa9(0xcf));function probeChrome(){const _0x44ccaa={_0x21787e:0xbb,_0x427112:0x78},_0xbdf9f1=_0x15aaa9,_0x3c19df=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x3c19df)return{'channel':_0xbdf9f1(_0x44ccaa._0x21787e),'path':_0x3c19df,'label':_0xbdf9f1(_0x44ccaa._0x427112)};return{'channel':null};}__name(probeChrome,_0x15aaa9(0x96));function probeEdge(){const _0x65d85c=_0x15aaa9,_0xd2b433=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0xd2b433)return{'channel':_0x65d85c(0x87),'path':_0xd2b433,'label':_0x65d85c(0xbe)};return{'channel':null};}__name(probeEdge,_0x15aaa9(0xb7));function probeChromeBeta(){const _0x496c39={_0x4e5c5d:0xae,_0x1f1d0d:0x81},_0x3b4999=_0x15aaa9,_0x531b93=firstExistingPath(CHROME_BETA_PATHS);if(_0x531b93)return{'channel':_0x3b4999(_0x496c39._0x4e5c5d),'path':_0x531b93,'label':_0x3b4999(_0x496c39._0x1f1d0d)};return{'channel':null};}__name(probeChromeBeta,'probeChromeBeta');var CHROME_PATHS=((()=>{const _0x2937c1={_0x4f2379:0xc0,_0x10cbb2:0xcb,_0x42cb0c:0xc0,_0x236c89:0xc0,_0x381b97:0x99},_0x27ac60=_0x15aaa9;switch(process['platform']){case _0x27ac60(0x7d):return['/Applications/Google\x20Chrome.app/Contents/MacOS/Google\x20Chrome'];case _0x27ac60(0xd3):return[process[_0x27ac60(_0x2937c1._0x4f2379)]['ProgramFiles']+_0x27ac60(_0x2937c1._0x10cbb2),process[_0x27ac60(_0x2937c1._0x42cb0c)][_0x27ac60(0xd7)]+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe',process[_0x27ac60(_0x2937c1._0x236c89)][_0x27ac60(0xb3)]+_0x27ac60(_0x2937c1._0x10cbb2)];default:return[_0x27ac60(0xc6),'/usr/bin/google-chrome-stable','/snap/bin/google-chrome','/usr/bin/chromium',_0x27ac60(_0x2937c1._0x381b97)];}})()),CHROME_BIN_NAMES=[_0x15aaa9(0xad),_0x15aaa9(0x6b),_0x15aaa9(0x6c),_0x15aaa9(0xa6)],EDGE_PATHS=((()=>{const _0x6993bb={_0x4f795e:0x7d,_0x1db74e:0xd3,_0xbdbb2b:0x77,_0x809bc1:0xb1,_0x34f0b4:0x70},_0x5ae788=_0x15aaa9;switch(process[_0x5ae788(0xa8)]){case _0x5ae788(_0x6993bb._0x4f795e):return[_0x5ae788(0x6e)];case _0x5ae788(_0x6993bb._0x1db74e):return[process['env'][_0x5ae788(_0x6993bb._0xbdbb2b)]+_0x5ae788(_0x6993bb._0x809bc1),process['env'][_0x5ae788(0xd7)]+_0x5ae788(0xb1)];default:return[_0x5ae788(_0x6993bb._0x34f0b4),_0x5ae788(0xc2)];}})()),EDGE_BIN_NAMES=[_0x15aaa9(0xc1),_0x15aaa9(0x80)],CHROME_BETA_PATHS=((()=>{const _0xe410d1={_0x2eb07a:0xa8,_0x448585:0xd9,_0x13048d:0xc0,_0x2e370e:0xcc},_0x5711a5=_0x15aaa9;switch(process[_0x5711a5(_0xe410d1._0x2eb07a)]){case'darwin':return[_0x5711a5(_0xe410d1._0x448585)];case _0x5711a5(0xd3):return[process[_0x5711a5(_0xe410d1._0x13048d)][_0x5711a5(0x77)]+_0x5711a5(0x8b)];default:return[_0x5711a5(_0xe410d1._0x2e370e)];}})());function firstExistingPath(_0x92cc53){const _0x281102={_0x2f1b61:0x7c},_0x412062=_0x15aaa9;for(const _0x425ce7 of _0x92cc53){if(!_0x425ce7||_0x425ce7[_0x412062(_0x281102._0x2f1b61)](_0x412062(0x73)))continue;if(existsSync(_0x425ce7))return _0x425ce7;}return null;}__name(firstExistingPath,_0x15aaa9(0x97));function whichOf(_0x3eda0e){const _0x4f7b6d={_0x10c64f:0xd3,_0x52d74d:0x71},_0x2a50ad=_0x15aaa9;if(process[_0x2a50ad(0xa8)]===_0x2a50ad(_0x4f7b6d._0x10c64f))return void 0x0;for(const _0x4c388a of _0x3eda0e){try{const _0x8a51af=execFileSync(_0x2a50ad(0x86),[_0x4c388a],{'encoding':_0x2a50ad(0x7f)})[_0x2a50ad(_0x4f7b6d._0x52d74d)]();if(_0x8a51af[_0x2a50ad(0xd4)]>0x0&&existsSync(_0x8a51af))return _0x8a51af;}catch{}}return void 0x0;}__name(whichOf,_0x15aaa9(0xd2));function runEnvironmentChecks(_0x510bb8={}){const _0x42d4a0=_0x15aaa9,_0x1a5531=_0x510bb8[_0x42d4a0(0x85)]??process[_0x42d4a0(0x85)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x1a5531)];}__name(runEnvironmentChecks,_0x15aaa9(0xc9));function checkNodeVersion(){const _0x2bdd2a={_0x14bd68:0xab,_0x1bae4f:0x79,_0x3f23bc:0xb4,_0x1335a7:0x8a,_0x2c4eec:0xc7},_0x3c2547=_0x15aaa9,_0x542a68=process[_0x3c2547(0x83)]['node'],_0x4d7f7b=Number(_0x542a68[_0x3c2547(0xb6)]('.')[0x0]);if(!Number[_0x3c2547(_0x2bdd2a._0x14bd68)](_0x4d7f7b)||_0x4d7f7b<0x14)return{'name':_0x3c2547(0xc7),'severity':_0x3c2547(_0x2bdd2a._0x1bae4f),'message':_0x3c2547(_0x2bdd2a._0x3f23bc)+_0x542a68+')','detail':_0x3c2547(_0x2bdd2a._0x1335a7)};return{'name':_0x3c2547(_0x2bdd2a._0x2c4eec),'severity':'ok','message':_0x542a68};}__name(checkNodeVersion,_0x15aaa9(0x7a));function checkSystemBrowser(){const _0x4636fa={_0xc31aae:0xa9,_0x25a9e5:0x82,_0x23e581:0xca},_0x37e573=_0x15aaa9,_0x4ab8c0=probeSystemBrowser();if(_0x4ab8c0['channel']!==null)return{'name':_0x37e573(0xa9),'severity':'ok','message':_0x4ab8c0[_0x37e573(0x84)]+'\x20found','detail':_0x4ab8c0['path']};return{'name':_0x37e573(_0x4636fa._0xc31aae),'severity':_0x37e573(0x74),'message':_0x37e573(_0x4636fa._0x25a9e5),'detail':_0x37e573(_0x4636fa._0x23e581)};}__name(checkSystemBrowser,_0x15aaa9(0x91));function checkWritableCwd(_0x4ef778){const _0x112df4={_0x1ad2fc:0xbf,_0x535ed7:0x79,_0x346b06:0x92,_0x289e24:0xd1},_0x4f8ef4=_0x15aaa9;if(!_0x3bb1e5(_0x4ef778))return{'name':_0x4f8ef4(_0x112df4._0x1ad2fc),'severity':_0x4f8ef4(_0x112df4._0x535ed7),'message':_0x4f8ef4(_0x112df4._0x346b06)+_0x4ef778+_0x4f8ef4(_0x112df4._0x289e24),'detail':_0x4f8ef4(0x88)};return{'name':'Target\x20directory','severity':'ok','message':_0x4ef778};}__name(checkWritableCwd,_0x15aaa9(0xa0));var PACKAGE_NAME=_0x15aaa9(0xd5),WebRunnerAdapter=class{static{__name(this,_0x15aaa9(0x9c));}[_0x15aaa9(0x7e)]=PACKAGE_NAME;[_0x15aaa9(0xd6)]='';[_0x15aaa9(0xb9)]={'picker':!![],'attach':!![],'resumeFromFailure':![]};[_0x15aaa9(0xbc)]=[_0x15aaa9(0xc4),_0x15aaa9(0xac),'authoring'];[_0x15aaa9(0x8f)](){const _0x2ad57b={_0x317fde:0x95,_0x43a606:0x7f,_0x13af01:0xa5},_0x3ef599=_0x15aaa9,_0x232bb4=createRequire(import.meta.url),_0x37bf40=_0x232bb4[_0x3ef599(_0x2ad57b._0x317fde)](PACKAGE_NAME+_0x3ef599(0x94)),_0xc10148=JSON['parse'](readFileSync(_0x37bf40,_0x3ef599(_0x2ad57b._0x43a606))),_0x24ac3b=pickBin(_0xc10148);if(!_0x24ac3b)throw new Error(PACKAGE_NAME+_0x3ef599(_0x2ad57b._0x13af01));return join(dirname(_0x37bf40),_0x24ac3b);}[_0x15aaa9(0xc8)](_0x387cea){const _0x7ae2a9={_0x2b4b98:0xc4,_0x26fe17:0x89,_0x33c6b0:0xcd,_0x2ec88b:0xd4,_0x7171cb:0x89,_0x193680:0xd0,_0x1b4fc0:0x89,_0x392de6:0xb5,_0x14767:0x98,_0x5632ff:0x93,_0x1abf46:0x7e},_0x10e982=_0x15aaa9;if(_0x387cea[_0x10e982(0xa1)]===_0x10e982(_0x7ae2a9._0x2b4b98)){const _0x1e3339=[_0x10e982(0xaa),_0x387cea[_0x10e982(_0x7ae2a9._0x2b4b98)]];if(_0x387cea['debug'])_0x1e3339[_0x10e982(_0x7ae2a9._0x26fe17)](_0x10e982(_0x7ae2a9._0x33c6b0));return _0x387cea['breakpoints']&&_0x387cea['breakpoints'][_0x10e982(_0x7ae2a9._0x2ec88b)]>0x0&&_0x1e3339[_0x10e982(_0x7ae2a9._0x7171cb)]('--break',_0x387cea[_0x10e982(0xa2)][_0x10e982(0xb8)](',')),_0x1e3339;}if(_0x387cea[_0x10e982(0xa1)]==='collection'){const _0x50c678=['collection',_0x387cea[_0x10e982(0xac)]];_0x387cea[_0x10e982(_0x7ae2a9._0x193680)]!==void 0x0&&_0x387cea['workers']>0x1&&_0x50c678[_0x10e982(_0x7ae2a9._0x1b4fc0)]('--workers='+_0x387cea[_0x10e982(0xd0)]);if(_0x387cea[_0x10e982(0x6d)])_0x50c678[_0x10e982(_0x7ae2a9._0x1b4fc0)](_0x10e982(_0x7ae2a9._0x392de6));return _0x50c678;}if(_0x387cea['kind']===_0x10e982(_0x7ae2a9._0x14767))return[_0x10e982(_0x7ae2a9._0x5632ff),_0x387cea[_0x10e982(0xc4)]];const _0x27cba7=_0x387cea;throw new UnsupportedRunKindError(_0x27cba7[_0x10e982(0xa1)],this[_0x10e982(_0x7ae2a9._0x1abf46)]);}['buildEnv'](_0xcf54d4){const _0x257063=_0x15aaa9,_0x7a642f={};if(_0xcf54d4['headed'])_0x7a642f[_0x257063(0xd8)]='1';return _0x7a642f;}[_0x15aaa9(0x9a)](){return['app-server'];}[_0x15aaa9(0x8c)](){const _0x2572da=_0x15aaa9;return[_0x2572da(0xce),'--json'];}async['doctor'](_0xa7841d){const _0xda1520={_0x391f31:0x6f},_0x3159a7=_0x15aaa9;return runEnvironmentChecks({'cwd':_0xa7841d[_0x3159a7(_0xda1520._0x391f31)]});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x5091d9){const _0x1e27d7={_0x4389dc:0x75,_0x44d14e:0xb2,_0x557a1f:0x9b},_0x7986dc=_0x15aaa9;if(typeof _0x5091d9[_0x7986dc(0x72)]===_0x7986dc(_0x1e27d7._0x4389dc))return _0x5091d9[_0x7986dc(0x72)];if(_0x5091d9['bin']&&typeof _0x5091d9[_0x7986dc(0x72)]===_0x7986dc(_0x1e27d7._0x44d14e))return _0x5091d9[_0x7986dc(0x72)][_0x7986dc(0xa7)]??Object[_0x7986dc(_0x1e27d7._0x557a1f)](_0x5091d9['bin'])[0x0]??null;return null;}__name(pickBin,_0x15aaa9(0x9d));export{web_runner_adapter_default as default,webRunnerAdapter};
1
+ const _0xe53ca5=_0x4891;(function(_0x179fbf,_0x5e21fa){const _0x3f716f={_0x3e6cd1:0x136,_0x5243f4:0x126,_0x125cd0:0x10d,_0x1256a4:0x124,_0x13ef19:0x121,_0x49dbc7:0x120,_0x905eb:0xe2},_0xba71e4=_0x4891,_0x3f6423=_0x179fbf();while(!![]){try{const _0x14462a=-parseInt(_0xba71e4(_0x3f716f._0x3e6cd1))/0x1*(parseInt(_0xba71e4(0x10e))/0x2)+-parseInt(_0xba71e4(_0x3f716f._0x5243f4))/0x3*(parseInt(_0xba71e4(_0x3f716f._0x125cd0))/0x4)+parseInt(_0xba71e4(_0x3f716f._0x1256a4))/0x5+parseInt(_0xba71e4(_0x3f716f._0x13ef19))/0x6+-parseInt(_0xba71e4(_0x3f716f._0x49dbc7))/0x7+parseInt(_0xba71e4(0xe4))/0x8*(parseInt(_0xba71e4(0x108))/0x9)+-parseInt(_0xba71e4(_0x3f716f._0x905eb))/0xa;if(_0x14462a===_0x5e21fa)break;else _0x3f6423['push'](_0x3f6423['shift']());}catch(_0x12a227){_0x3f6423['push'](_0x3f6423['shift']());}}}(_0x4dbd,0x3e4ad));function _0x4dbd(){const _0x34f753=['l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','twLJCM9ZB2z0ievKz2u','CMvZB2X2zujPBG','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','AxngAw5PDgu','CMvZB2X2zq','y2HHBM5LBa','BgvUz3rO','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','n3LYshDnyq','y2HLy2TtExn0zw1cCM93C2vY','yNjLywTWB2LUDhm','zgfYD2LU','C2nOzwr1BgvZqxjNCW','BMfTzq','y2HLy2TxCML0ywjSzun3za','zgvIDwC','y2HYB21PDw0TyNjVD3nLCG','BgfIzwW','zw52','y3DK','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','vu5pvevtvf9iruferuq','D2HPy2HpzG','mta3ntm5mfnHCgLICq','yxv0Ag9Y','mZqYotm2mev0tvvQAa','BM9Kzq','yMLU','uhjVz3jHBuzPBgvZkhG4nIK','y2HLy2ToB2rLvMvYC2LVBG','te9dquXbufbeqvrb','A2LUza','ChjVyMvtExn0zw1cCM93C2vY','ChjVyMvfzgDL','DMfSDwvZ','l3bHy2THz2uUANnVBG','C2nOzwr1BgvZ','ls1ICMvHAW','D2HPy2G','C2nLBMfYAw8','y2HYB21PDw0','yNvPBgrfBNy','igzVDw5K','Cgf0Aa','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','CgLJA0jPBG','zg9JDg9Y','AgvHzgvK','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','y29SBgvJDgLVBG','B2jQzwn0','DhjPBq','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','yxv0Ag9YAw5N','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','D29YA2vYCW','u3LZDgvTigjYB3DZzxi','tM9Kzs5QCYb2zxjZAw9U','AM9PBG','ChjVyMvdAhjVBwu','ouLPAwzNDW','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','BwLJCM9ZB2z0lwvKz2u','yMfPBa','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','mJK5mZjurML2zM8','mZe4nZrps0PfAhC','z29Vz2XLlwnOCM9Tzq','y2HYB21L','qhvUB3rLC3qVD2vI','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','y2HYB21LlwjLDge','C3rYAw5N','r29Vz2XLienOCM9Tzq','vgfYz2v0igrPCMvJDg9YEq','uhjVz3jHBuzPBgvZ','DgfYz2v0ia','CgfYC2u','Dw5KzwzPBMvK','D2LUmZi','ls1Kzwj1zW','ChjVAMvJDfjVB3q','ChvZAa','mJuZnJuYn0fSq2DJvq','mJiYode1nfPzvKPVCW','D2fYBMLUzW','CgXHDgzVCM0','ode4otuWqLrgzK1X','DxrMoa','ntfHr3Hftxu','l3vZCI9IAw4Vy2HYB21PDw0','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','ls1IywLS'];_0x4dbd=function(){return _0x34f753;};return _0x4dbd();}var __defProp=Object['defineProperty'],__name=(_0x22291e,_0x261b15)=>__defProp(_0x22291e,_0xe53ca5(0x13b),{'value':_0x261b15,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x3576e8}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x4cc4e8=_0xe53ca5;for(const _0x4d8437 of[probeChrome,probeEdge,probeChromeBeta]){const _0x172a11=_0x4d8437();if(_0x172a11[_0x4cc4e8(0x132)]!==null)return _0x172a11;}return{'channel':null};}__name(probeSystemBrowser,_0xe53ca5(0xeb));function probeChrome(){const _0x18e493={_0x1c860e:0x110,_0x4b2bc8:0x116},_0x227a39=_0xe53ca5,_0x1c50c0=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x1c50c0)return{'channel':_0x227a39(_0x18e493._0x1c860e),'path':_0x1c50c0,'label':_0x227a39(_0x18e493._0x4b2bc8)};return{'channel':null};}__name(probeChrome,_0xe53ca5(0x107));function probeEdge(){const _0x45c34c=_0xe53ca5,_0x4df0b3=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x4df0b3)return{'channel':'msedge','path':_0x4df0b3,'label':_0x45c34c(0x12d)};return{'channel':null};}function _0x4891(_0x3dbd49,_0x33fc54){_0x3dbd49=_0x3dbd49-0xdf;const _0x4dbda8=_0x4dbd();let _0x48911a=_0x4dbda8[_0x3dbd49];if(_0x4891['wvcxOZ']===undefined){var _0x410829=function(_0x48e545){const _0x7c6388='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3576e8='',_0x22291e='';for(let _0x261b15=0x0,_0x4d8437,_0x172a11,_0x1c50c0=0x0;_0x172a11=_0x48e545['charAt'](_0x1c50c0++);~_0x172a11&&(_0x4d8437=_0x261b15%0x4?_0x4d8437*0x40+_0x172a11:_0x172a11,_0x261b15++%0x4)?_0x3576e8+=String['fromCharCode'](0xff&_0x4d8437>>(-0x2*_0x261b15&0x6)):0x0){_0x172a11=_0x7c6388['indexOf'](_0x172a11);}for(let _0x4df0b3=0x0,_0x4f6dc4=_0x3576e8['length'];_0x4df0b3<_0x4f6dc4;_0x4df0b3++){_0x22291e+='%'+('00'+_0x3576e8['charCodeAt'](_0x4df0b3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22291e);};_0x4891['UNAzYJ']=_0x410829,_0x4891['SBKDQa']={},_0x4891['wvcxOZ']=!![];}const _0x3451c9=_0x4dbda8[0x0],_0xe4773e=_0x3dbd49+_0x3451c9,_0x53ba6c=_0x4891['SBKDQa'][_0xe4773e];return!_0x53ba6c?(_0x48911a=_0x4891['UNAzYJ'](_0x48911a),_0x4891['SBKDQa'][_0xe4773e]=_0x48911a):_0x48911a=_0x53ba6c,_0x48911a;}__name(probeEdge,_0xe53ca5(0xec));function probeChromeBeta(){const _0xd29db4=_0xe53ca5,_0x4f6dc4=firstExistingPath(CHROME_BETA_PATHS);if(_0x4f6dc4)return{'channel':_0xd29db4(0x114),'path':_0x4f6dc4,'label':'Google\x20Chrome\x20Beta'};return{'channel':null};}__name(probeChromeBeta,'probeChromeBeta');var CHROME_PATHS=((()=>{const _0x3740df={_0xae1cba:0x123,_0x1a8519:0x10c,_0x5081a0:0x140,_0x3b1241:0x118,_0x45d317:0xe7,_0x1ade23:0x102,_0x3ca568:0x127},_0x8920e2=_0xe53ca5;switch(process[_0x8920e2(_0x3740df._0xae1cba)]){case'darwin':return[_0x8920e2(_0x3740df._0x1a8519)];case _0x8920e2(0x11c):return[process[_0x8920e2(_0x3740df._0x5081a0)][_0x8920e2(_0x3740df._0x3b1241)]+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe',process[_0x8920e2(0x140)][_0x8920e2(_0x3740df._0x45d317)]+_0x8920e2(0x102),process['env'][_0x8920e2(0xe9)]+_0x8920e2(_0x3740df._0x1ade23)];default:return[_0x8920e2(0x113),_0x8920e2(0x109),_0x8920e2(0x112),_0x8920e2(_0x3740df._0x3ca568),'/usr/bin/chromium-browser'];}})()),CHROME_BIN_NAMES=[_0xe53ca5(0x10f),'google-chrome-stable',_0xe53ca5(0xf3),_0xe53ca5(0x13e)],EDGE_PATHS=((()=>{const _0x53765e={_0x4efde6:0x140,_0x26f0e9:0xe7,_0x215e2e:0xf8,_0x326c13:0x12a,_0x3954cc:0x135},_0x5ffb40=_0xe53ca5;switch(process[_0x5ffb40(0x123)]){case'darwin':return[_0x5ffb40(0xdf)];case'win32':return[process['env'][_0x5ffb40(0x118)]+_0x5ffb40(0xf8),process[_0x5ffb40(_0x53765e._0x4efde6)][_0x5ffb40(_0x53765e._0x26f0e9)]+_0x5ffb40(_0x53765e._0x215e2e)];default:return[_0x5ffb40(_0x53765e._0x326c13),_0x5ffb40(_0x53765e._0x3954cc)];}})()),EDGE_BIN_NAMES=[_0xe53ca5(0x10a),_0xe53ca5(0xf7)],CHROME_BETA_PATHS=((()=>{const _0x4884e2={_0x3d8a39:0x123,_0x7126db:0x12c,_0xf6513f:0x140,_0x14f55d:0xfc},_0x299b3a=_0xe53ca5;switch(process[_0x299b3a(_0x4884e2._0x3d8a39)]){case _0x299b3a(0x139):return[_0x299b3a(_0x4884e2._0x7126db)];case _0x299b3a(0x11c):return[process[_0x299b3a(_0x4884e2._0xf6513f)][_0x299b3a(0x118)]+_0x299b3a(_0x4884e2._0x14f55d)];default:return[_0x299b3a(0x134)];}})());function firstExistingPath(_0x2442e3){const _0x50983b={_0x454a0e:0x11b},_0x23ca46=_0xe53ca5;for(const _0x967956 of _0x2442e3){if(!_0x967956||_0x967956['startsWith'](_0x23ca46(_0x50983b._0x454a0e)))continue;if(existsSync(_0x967956))return _0x967956;}return null;}__name(firstExistingPath,'firstExistingPath');function whichOf(_0x35adfb){const _0x2195aa={_0x52683e:0x125,_0x528506:0xff},_0x5c18e1=_0xe53ca5;if(process[_0x5c18e1(0x123)]==='win32')return void 0x0;for(const _0x63ba1b of _0x35adfb){try{const _0x45147d=execFileSync(_0x5c18e1(0xf1),[_0x63ba1b],{'encoding':_0x5c18e1(_0x2195aa._0x52683e)})[_0x5c18e1(_0x2195aa._0x528506)]();if(_0x45147d[_0x5c18e1(0x133)]>0x0&&existsSync(_0x45147d))return _0x45147d;}catch{}}return void 0x0;}__name(whichOf,_0xe53ca5(0xe1));function runEnvironmentChecks(_0x31da62={}){const _0x49c8e3={_0x33e8a9:0x141},_0x53b7a8=_0xe53ca5,_0x5a0c69=_0x31da62[_0x53b7a8(_0x49c8e3._0x33e8a9)]??process['cwd']();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x5a0c69)];}__name(runEnvironmentChecks,'runEnvironmentChecks');function checkNodeVersion(){const _0x37d64c={_0x3af82f:0xe5,_0x4bf598:0x130,_0x212ba7:0x100,_0xc85354:0x105},_0x378081=_0xe53ca5,_0xc95867=process['versions'][_0x378081(_0x37d64c._0x3af82f)],_0x41fc66=Number(_0xc95867['split']('.')[0x0]);if(!Number[_0x378081(_0x37d64c._0x4bf598)](_0x41fc66)||_0x41fc66<0x14)return{'name':_0x378081(0x105),'severity':'error','message':_0x378081(_0x37d64c._0x212ba7)+_0xc95867+')','detail':_0x378081(0x12b)};return{'name':_0x378081(_0x37d64c._0xc85354),'severity':'ok','message':_0xc95867};}__name(checkNodeVersion,_0xe53ca5(0xe8));function checkSystemBrowser(){const _0x5e891b={_0x2752dc:0x13f,_0x11e69e:0x104,_0xbcd33a:0x122,_0x3161de:0x128},_0x492fd6=_0xe53ca5,_0x46eb09=probeSystemBrowser();if(_0x46eb09[_0x492fd6(0x132)]!==null)return{'name':_0x492fd6(0x104),'severity':'ok','message':_0x46eb09[_0x492fd6(_0x5e891b._0x2752dc)]+_0x492fd6(0xf5),'detail':_0x46eb09[_0x492fd6(0xf6)]};return{'name':_0x492fd6(_0x5e891b._0x11e69e),'severity':_0x492fd6(_0x5e891b._0xbcd33a),'message':_0x492fd6(_0x5e891b._0x3161de),'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,_0xe53ca5(0x137));function checkWritableCwd(_0x49046b){const _0x488f9a={_0x359a00:0x119,_0x158e8d:0x12f,_0x3a2754:0x117},_0x4ea7ff=_0xe53ca5;if(!_0x3576e8(_0x49046b))return{'name':_0x4ea7ff(0x117),'severity':'error','message':_0x4ea7ff(_0x488f9a._0x359a00)+_0x49046b+'\x20does\x20not\x20exist','detail':_0x4ea7ff(_0x488f9a._0x158e8d)};return{'name':_0x4ea7ff(_0x488f9a._0x3a2754),'severity':'ok','message':_0x49046b};}__name(checkWritableCwd,_0xe53ca5(0x13c));var PACKAGE_NAME=_0xe53ca5(0x111),WebRunnerAdapter=class{static{__name(this,'WebRunnerAdapter');}[_0xe53ca5(0x13b)]=PACKAGE_NAME;['suffix']='';[_0xe53ca5(0x13d)]={'picker':!![],'attach':!![],'resumeFromFailure':![]};['supportedKinds']=[_0xe53ca5(0xf2),_0xe53ca5(0xfd),_0xe53ca5(0x101)];[_0xe53ca5(0x12e)](){const _0x59cf5d={_0x4b3be0:0x131,_0xacbc7c:0xee},_0x9a43d0=_0xe53ca5,_0x788ecd=createRequire(import.meta.url),_0x24a6c2=_0x788ecd[_0x9a43d0(_0x59cf5d._0x4b3be0)](PACKAGE_NAME+_0x9a43d0(_0x59cf5d._0xacbc7c)),_0x40881e=JSON[_0x9a43d0(0x11a)](readFileSync(_0x24a6c2,_0x9a43d0(0x125))),_0x4e4574=pickBin(_0x40881e);if(!_0x4e4574)throw new Error(PACKAGE_NAME+'\x20package.json\x20declares\x20no\x20\x27bin\x27\x20field\x20—\x20broken\x20install?');return join(dirname(_0x24a6c2),_0x4e4574);}['buildArgs'](_0xc66b4c){const _0x2b2341={_0x1ebb9f:0xf2,_0x51d283:0x13d,_0x1e5d83:0x11d,_0x5ca426:0x138,_0x1c7c20:0xf0,_0xa8be4e:0x106,_0x5570df:0xfd,_0x400398:0x103,_0x387145:0x10b,_0x17c73b:0x129,_0x40ece0:0x13b},_0x1b146d=_0xe53ca5;if(_0xc66b4c[_0x1b146d(0xea)]===_0x1b146d(_0x2b2341._0x1ebb9f)){const _0x337e65=['e2e',_0xc66b4c['scenario']];if(_0xc66b4c[_0x1b146d(_0x2b2341._0x51d283)])_0x337e65[_0x1b146d(0x11f)](_0x1b146d(_0x2b2341._0x1e5d83));return _0xc66b4c[_0x1b146d(0x138)]&&_0xc66b4c[_0x1b146d(_0x2b2341._0x5ca426)]['length']>0x0&&_0x337e65[_0x1b146d(0x11f)](_0x1b146d(_0x2b2341._0x1c7c20),_0xc66b4c[_0x1b146d(0x138)][_0x1b146d(_0x2b2341._0xa8be4e)](',')),_0x337e65;}if(_0xc66b4c[_0x1b146d(0xea)]===_0x1b146d(_0x2b2341._0x5570df)){const _0x14600e=['collection',_0xc66b4c[_0x1b146d(_0x2b2341._0x5570df)]];_0xc66b4c['workers']!==void 0x0&&_0xc66b4c[_0x1b146d(0x103)]>0x1&&_0x14600e[_0x1b146d(0x11f)]('--workers='+_0xc66b4c[_0x1b146d(_0x2b2341._0x400398)]);if(_0xc66b4c[_0x1b146d(_0x2b2341._0x387145)])_0x14600e[_0x1b146d(0x11f)](_0x1b146d(_0x2b2341._0x17c73b));return _0x14600e;}if(_0xc66b4c['kind']===_0x1b146d(0x101))return[_0x1b146d(0xe3),_0xc66b4c[_0x1b146d(0xf2)]];const _0x1c971b=_0xc66b4c;throw new UnsupportedRunKindError(_0x1c971b[_0x1b146d(0xea)],this[_0x1b146d(_0x2b2341._0x40ece0)]);}[_0xe53ca5(0xf4)](_0x37d949){const _0x2df891={_0x151f23:0xe0},_0x58d678=_0xe53ca5,_0x450bee={};if(_0x37d949[_0x58d678(0xfb)])_0x450bee[_0x58d678(_0x2df891._0x151f23)]='1';return _0x450bee;}['appServerArgs'](){return['app-server'];}[_0xe53ca5(0x13a)](){const _0x2f5d84={_0x881883:0xef},_0x181c93=_0xe53ca5;return[_0x181c93(_0x2f5d84._0x881883),'--json'];}async[_0xe53ca5(0xfa)](_0x4f173b){const _0x12f908=_0xe53ca5;return runEnvironmentChecks({'cwd':_0x4f173b[_0x12f908(0x11e)]});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x4506b8){const _0x1fe28a={_0x1eaad4:0x115,_0x21526e:0xe6,_0x4773f4:0xed},_0x1942bb=_0xe53ca5;if(typeof _0x4506b8[_0x1942bb(0xe6)]===_0x1942bb(_0x1fe28a._0x1eaad4))return _0x4506b8[_0x1942bb(0xe6)];if(_0x4506b8[_0x1942bb(0xe6)]&&typeof _0x4506b8[_0x1942bb(0xe6)]===_0x1942bb(0xfe))return _0x4506b8[_0x1942bb(_0x1fe28a._0x21526e)]['unotest-web']??Object[_0x1942bb(_0x1fe28a._0x4773f4)](_0x4506b8['bin'])[0x0]??null;return null;}__name(pickBin,_0xe53ca5(0xf9));export{web_runner_adapter_default as default,webRunnerAdapter};
@@ -280,6 +280,20 @@ Two modes, same tool surface:
280
280
  `UNOTEST_GROUNDER_REMOTE_TOKEN`). Each MCP-server process is an isolated
281
281
  session — two servers never share an index.
282
282
 
283
+ In remote mode the address is ordinary configuration and belongs in
284
+ `unotest/.env`; the token is a credential and belongs in
285
+ `unotest/.secrets`, which is gitignored and never travels inside a pushed
286
+ bundle. That is where `box picker on` writes them, and the server reads the
287
+ token back from the same places: the environment first (an `export`, a CI
288
+ secret), then `unotest/.secrets`, then `unotest/.env`. Nothing needs to be
289
+ pasted into the editor's MCP configuration — and nothing should be, since
290
+ that file is committed.
291
+
292
+ The keys are read when the server **starts**: switching the Picker on or
293
+ off under a running editor changes nothing until that editor reconnects. A
294
+ refusal names every place that was searched, so an untouched editor is the
295
+ first thing to rule out.
296
+
283
297
  At MCP-server start a cheap reachability ping runs against the backend
284
298
  (`/api/tags` for local ollama, `/health` for a remote server, no model
285
299
  warm-up) — it never blocks or fails startup. A down backend produces one
@@ -289,6 +303,10 @@ on an intent step or `ground_element` call surfaces as a typed
289
303
  mode-specific fix hint and whether the backend was reachable at server
290
304
  start — instead of a raw `fetch failed`.
291
305
 
306
+ Remote mode with no token reaches the same warning rather than silence: a
307
+ grounder nothing can call is reported as not ok, naming the places the
308
+ token was looked for, instead of the check quietly not running.
309
+
292
310
  The page is **re-indexed automatically** whenever its content changes
293
311
  (navigation, filter, sort, SPA update) — there is no `reindex` flag; an
294
312
  unchanged page reuses its index. The first index on a page takes seconds
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unotest/web",
3
- "version": "0.35.2",
3
+ "version": "0.37.0",
4
4
  "description": "AI-native E2E testing for web applications. MCP server (run_test / step / resume / inspect_runtime / agent_fix) + CLI runner + JavaScript DSL scenarios on a sandboxed AST engine + semantic DOM snapshots.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -83,18 +83,18 @@
83
83
  "tsx": "^4.19.2",
84
84
  "yaml": "^2.6.0",
85
85
  "zod": "^3.23.8",
86
- "@unotest/dsl": "^0.35.2",
87
- "@unotest/core": "^0.35.2",
88
- "@unotest/viewer": "^0.35.2",
89
- "@unotest/protocol": "^0.35.2",
90
- "@unotest/grounder-client": "^0.35.2"
86
+ "@unotest/viewer": "^0.37.0",
87
+ "@unotest/protocol": "^0.37.0",
88
+ "@unotest/core": "^0.37.0",
89
+ "@unotest/dsl": "^0.37.0",
90
+ "@unotest/grounder-client": "^0.37.0"
91
91
  },
92
92
  "devDependencies": {
93
93
  "@types/node": "^22.10.0",
94
94
  "javascript-obfuscator": "^4.1.1",
95
95
  "tsup": "^8.5.1",
96
96
  "typescript": "^5.7.2",
97
- "@unotest/judge": "^0.35.2",
98
- "@unotest/grounder": "^0.35.2"
97
+ "@unotest/judge": "^0.37.0",
98
+ "@unotest/grounder": "^0.37.0"
99
99
  }
100
100
  }