@unotest/web 0.41.0 → 0.43.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.
- package/CHANGELOG.md +590 -3
- package/README.md +68 -6
- package/dist/config/schema.d.ts +111 -55
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.d.ts +2 -2
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.d.ts +68 -4
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.d.ts +1 -1
- package/dist/dsl/web-dsl-language-service.js +1 -1
- package/dist/inspection/page-inject.d.ts +1 -1
- package/dist/{interfaces-B34N4rfI.d.ts → interfaces-7nMNCr2h.d.ts} +6 -0
- package/dist/{linter-Yf4gPe5J.d.ts → linter-BWSAYBQy.d.ts} +24 -0
- package/dist/mcp/server.js +1 -1
- package/dist/runner/cli.d.ts +1 -1
- package/dist/runner/cli.js +1 -1
- package/dist/runner/init/chrome-probe.js +1 -1
- package/dist/runner/init.js +1 -1
- package/dist/runner/install-chromium.js +1 -1
- package/dist/runner/prepare-fix.js +1 -1
- package/dist/runner/scaffold-workspace.js +1 -1
- package/dist/runner/serve-fixture.js +1 -1
- package/dist/runner/web-runner-adapter.js +1 -1
- package/guides/agent-integration.md +109 -7
- package/guides/dsl-reference.md +19 -0
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x1505ea=_0x3a11;(function(_0x3b7c02,_0x4ec801){const _0x5342f6={_0x4d4ea2:0x16f,_0x30e261:0x181,_0x31bac1:0x18a,_0x356fc3:0x1a7,_0x267f54:0x196,_0x363527:0x179},_0x4718c9=_0x3a11,_0x4ea8ef=_0x3b7c02();while(!![]){try{const _0x52972f=parseInt(_0x4718c9(_0x5342f6._0x4d4ea2))/0x1*(parseInt(_0x4718c9(_0x5342f6._0x30e261))/0x2)+parseInt(_0x4718c9(_0x5342f6._0x31bac1))/0x3*(-parseInt(_0x4718c9(0x182))/0x4)+parseInt(_0x4718c9(0x188))/0x5+parseInt(_0x4718c9(_0x5342f6._0x356fc3))/0x6+parseInt(_0x4718c9(_0x5342f6._0x267f54))/0x7+parseInt(_0x4718c9(_0x5342f6._0x363527))/0x8+-parseInt(_0x4718c9(0x17d))/0x9;if(_0x52972f===_0x4ec801)break;else _0x4ea8ef['push'](_0x4ea8ef['shift']());}catch(_0x4e3df1){_0x4ea8ef['push'](_0x4ea8ef['shift']());}}}(_0x3561,0xa15f6));var __defProp=Object['defineProperty'],__name=(_0x4c0a91,_0x10a0c4)=>__defProp(_0x4c0a91,_0x1505ea(0x195),{'value':_0x10a0c4,'configurable':!![]});import{writeFileSync as _0x566f67}from'fs';import{join as _0xeb2688}from'path';import{fileURLToPath}from'url';function _0x3a11(_0x143807,_0x46360b){_0x143807=_0x143807-0x156;const _0x3561e5=_0x3561();let _0x3a1197=_0x3561e5[_0x143807];if(_0x3a11['ZQxiFy']===undefined){var _0xfea515=function(_0x3d5acd){const _0x43ec66='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x566f67='',_0xeb2688='';for(let _0x4ec62f=0x0,_0x10ebb1,_0x4c0a91,_0x10a0c4=0x0;_0x4c0a91=_0x3d5acd['charAt'](_0x10a0c4++);~_0x4c0a91&&(_0x10ebb1=_0x4ec62f%0x4?_0x10ebb1*0x40+_0x4c0a91:_0x4c0a91,_0x4ec62f++%0x4)?_0x566f67+=String['fromCharCode'](0xff&_0x10ebb1>>(-0x2*_0x4ec62f&0x6)):0x0){_0x4c0a91=_0x43ec66['indexOf'](_0x4c0a91);}for(let _0x4255fd=0x0,_0x275512=_0x566f67['length'];_0x4255fd<_0x275512;_0x4255fd++){_0xeb2688+='%'+('00'+_0x566f67['charCodeAt'](_0x4255fd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xeb2688);};_0x3a11['vWsTIY']=_0xfea515,_0x3a11['cGPKDn']={},_0x3a11['ZQxiFy']=!![];}const _0x11f23e=_0x3561e5[0x0],_0x428064=_0x143807+_0x11f23e,_0x483875=_0x3a11['cGPKDn'][_0x428064];return!_0x483875?(_0x3a1197=_0x3a11['vWsTIY'](_0x3a1197),_0x3a11['cGPKDn'][_0x428064]=_0x3a1197):_0x3a1197=_0x483875,_0x3a1197;}import{readFileSync as _0x4ec62f,existsSync as _0x10ebb1}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(_0x4255fd){const _0x535d4f={_0x1d0f90:0x1a1,_0x41cc8d:0x1b1,_0x417d34:0x1b4,_0x4cf823:0x1b1,_0x1c6f90:0x1bb,_0x5bc035:0x1b6,_0xac9b9e:0x1b6,_0x5843f7:0x15b,_0x12c417:0x166},_0x4f21d6=_0x1505ea;if(!existsSync(_0x4255fd))return null;const _0x275512=join(_0x4255fd,_0x4f21d6(_0x535d4f._0x1d0f90));if(!existsSync(_0x275512))return null;const _0x3db8a1=JSON['parse'](readFileSync(_0x275512,_0x4f21d6(_0x535d4f._0x41cc8d))),_0x2ee5f8=join(_0x4255fd,_0x4f21d6(_0x535d4f._0x417d34)),_0x52727a=existsSync(_0x2ee5f8)?JSON[_0x4f21d6(0x1b6)](readFileSync(_0x2ee5f8,_0x4f21d6(_0x535d4f._0x4cf823))):[],_0x2ce803=join(_0x4255fd,_0x4f21d6(_0x535d4f._0x1c6f90)),_0x13136d=existsSync(_0x2ce803)?JSON[_0x4f21d6(_0x535d4f._0x5bc035)](readFileSync(_0x2ce803,_0x4f21d6(0x1b1))):void 0x0,_0x2cedbc={'trace':_0x3db8a1,'console':_0x52727a},_0x45f26f=join(_0x4255fd,_0x4f21d6(0x1af));existsSync(_0x45f26f)&&(_0x2cedbc[_0x4f21d6(0x18b)]=JSON[_0x4f21d6(_0x535d4f._0xac9b9e)](readFileSync(_0x45f26f,'utf8')));if(_0x13136d!==void 0x0)_0x2cedbc['snapshot']=_0x13136d;const _0x1f0ff8=join(_0x4255fd,_0x4f21d6(0x180));if(existsSync(_0x1f0ff8))_0x2cedbc[_0x4f21d6(0x169)]=_0x1f0ff8;else{const _0xbf0fa4=join(_0x4255fd,_0x4f21d6(0x16c));existsSync(_0xbf0fa4)&&(_0x2cedbc[_0x4f21d6(_0x535d4f._0x5843f7)]=readFileSync(_0xbf0fa4,_0x4f21d6(_0x535d4f._0x4cf823)));}const _0x9a3812=join(_0x4255fd,_0x4f21d6(0x194));if(existsSync(_0x9a3812))_0x2cedbc[_0x4f21d6(_0x535d4f._0x12c417)]=_0x9a3812;const _0x35d63e=join(_0x4255fd,'video.webm');if(existsSync(_0x35d63e))_0x2cedbc['videoPath']=_0x35d63e;return _0x2cedbc;}__name(readFailureBundle,_0x1505ea(0x1b8));function _0x3561(){const _0xe5b52=['C2nYzwvUC2HVDfbHDgG','DxjS','ls1MywLSAw5N','C2nYzwvUC2HVDc1LCNjVCI50Ehq','DgvZDezU','ChjLCgfYzs1MAxG6ignVBxbVC2LUzYbMAxGGChjVBxb0CYbMB3iG','mtaWnZfuAMfWtKe','C25HChnOB3q','icaGicaG','cI0GkIPfCNjVCIOQoIbG','tg9JyxrVCKvYCM9Y','BgvUz3rO','kqOk','zw52','ywrKlxDHAxrMB3i','C3vNz2vZDgvKqwn0Aw9U','mJa5ntK3nNLzBMzbsa','AgfZ','C291CMnLCW','yaOTicOQu3rLCcbPBMrLEcOQoIa','otCWnde2oxbPDuPJra','C3rHy2S','icdINjCG','C2nYzwvUC2HVDc5WBMC','mJm2C0nUwMHz','odK0ogz1BM9HBa','cKnHChr1CMvKoIa','C3rLCeLUzgv4','DgLTzxn0yw1W','C3rHCNrZv2L0Aa','lcbJB2WG','mtaZntG0nvDkvwn6qq','icdINjmG','mtm2nuvQrxDZAW','BMv0D29YAW','y29TCg9ZzuzPEfbYB21WDa','C3bSAxq','C3rKB3v0','zML4lxbYB21WDc5Tza','Dgv4Da','ycbPBIbG','Bg9JywXLq29TCgfYzq','yxbWCM94vg9Rzw5Z','AgfYlMPZB24','BMfTzq','ndmZnZqXz0fUz2jV','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','BwvZC2fNzq','CNvUswq','iYmJifn0ywnRcMbGyaO','ChvZAa','ChjLCgfYzs1MAxG6ig5VigzHAwX1CMuGyNvUzgXLCYbMB3vUzcb1BMrLCIaUDw5VDgvZDc9MywLSDxjLCY8Uifj1BIbHigzHAwXPBMCGDgvZDcbMAxjZDdSGDgHLigj1BMrSzsbPCYb3CML0DgvUigf1Dg9TyxrPy2fSBhKUcG','AgLNAa','y3DK','zMfPBhvYzxnsB290','cK5LEhq6ihbHC3rLigvHy2GGzML4lxbYB21WDc5TzcbPBNrVihLVDxiGteXnignSAwvUDcaOq2XHDwrLienVzguGlWPdDxjZB3iGlYbLDgmUks4GvgHLieXmtsbYzxr1CM5ZigeGDw5PzMLLzcbKAwzMoYbYzxzPzxCGAxqGyw5KigfWCgX5cM1HBNvHBgX5lIbxzsbUzxzLCIbHDxrVlwfWCgX5icHelti1ks4k','zMfPBhvYzs5QC29U','zxjY','C2XPy2u','B3v0','qxnZzxj0Aw9UrxjYB3i','Bg93','nJiYntmWnNLxsezWtq','AM9PBG','C2v0','cI0GkIPmB2nHDgLVBIOQoIbSAw5Lia','xYHUBYbJB25ZB2XLigvUDhjPzxmGy2fWDhvYzwqPxW','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','zgvMyxvSDezHAwX1CMvZuM9VDa','vgLTzw91DevYCM9Y','BMv0D29YAY5QC29U','Dw5RBM93BG','DxrMoa','y2XHC3nPzNK','ycdIGjqG','y29UC29Szs5QC29U','ycaOy29UzMLKzw5JztOG','CgfYC2u','DgvZDa','CMvHzezHAwX1CMvcDw5KBgu','C29YDa','y2HHBMDLlwfZC2vYDgLVBG','C25HChnOB3qUANnVBG','ChjLCgfYzs1MAxG6ig5VihrLC3rjzcbWCM92AwrLzcbHBMqGBM8GzMfPBgLUzYb0zxn0CYbMB3vUzc4k','y29UC29Szq','BgLZDezHAwX1CMvZ','ihrLC3qOCYKGkeqTmJuPcGO','zxjYB3i','y29UzMLKzw5Jzq','y2vPBa','zMfPBhvYzsbIDw5KBguGBM90igzVDw5KigzVCIb0zxn0swq9iG','iIaOBg9VA2vKigLUia','CNvUuhjLCgfYzuzPEa','y29UC29SzuXPBwL0','BwvKAxvT','C2nYzwvUC2HVDevYCM9Y','yxjNDG','BgLUzq','D3jPDgu','rxjYB3i','C2nLBMfYAw9qyxrO','ChjVBxb0twfYA2rVD24','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','cI0GkIPtDwDNzxn0zwqGywn0Aw9UkIO6iga','DhjHy2u','AxneAxjLy3rVCNK','AgfYugf0Aa','yNvUzgXLrgLY','C3rKzxjY'];_0x3561=function(){return _0xe5b52;};return _0x3561();}function listFailures(_0x5bfdfc){const _0x176836={_0xd74ac1:0x1a1,_0x4a6364:0x1b1,_0x8191d1:0x19b},_0xe815e9=_0x1505ea;if(!existsSync(_0x5bfdfc))return[];const _0x5f54b9=[];for(const _0x31b88e of readdirSync(_0x5bfdfc)){const _0x56c78d=join(_0x5bfdfc,_0x31b88e);if(!statSync(_0x56c78d)[_0xe815e9(0x165)]())continue;for(const _0x5c9201 of readdirSync(_0x56c78d)){const _0x2b75a6=join(_0x56c78d,_0x5c9201);if(!statSync(_0x2b75a6)['isDirectory']())continue;const _0x3ad192=join(_0x2b75a6,_0xe815e9(_0x176836._0xd74ac1));if(!existsSync(_0x3ad192))continue;try{const _0x4be19d=JSON[_0xe815e9(0x1b6)](readFileSync(_0x3ad192,_0xe815e9(_0x176836._0x4a6364)));_0x5f54b9[_0xe815e9(_0x176836._0x8191d1)]({'runId':_0x31b88e,'testFn':_0x4be19d[_0xe815e9(0x16d)],'scenarioPath':_0x4be19d['scenarioPath'],'dir':_0x2b75a6,'timestamp':_0x4be19d[_0xe815e9(0x185)]});}catch{}}}return _0x5f54b9[_0xe815e9(0x1b9)]((_0x13dcc6,_0x2baef4)=>_0x2baef4[_0xe815e9(0x185)][_0xe815e9(0x192)](_0x13dcc6['timestamp'])),_0x5f54b9;}__name(listFailures,_0x1505ea(0x1be));function defaultFailuresRoot(_0x928aed=artifactsRootFrom(process[_0x1505ea(0x176)],process[_0x1505ea(0x19e)]()),_0x5ab519=process[_0x1505ea(0x176)]){return failuresRootFrom(_0x5ab519,join(_0x928aed,...FAILURES_DIR_SEGMENTS));}__name(defaultFailuresRoot,_0x1505ea(0x1ad));function resolveBundleDir(_0x597cd2,_0x33ea92){const _0xe8651d={_0x11e68a:0x165},_0x1d336a=_0x1505ea;if(existsSync(_0x597cd2)&&statSync(_0x597cd2)[_0x1d336a(_0xe8651d._0x11e68a)]())return _0x597cd2;return join(_0x33ea92,_0x597cd2);}__name(resolveBundleDir,'resolveBundleDir');function composeFixPrompt(_0x6a5d1b,_0x15ee9c={}){const _0x47f23e={_0x44183a:0x156,_0x1888e6:0x164,_0x161f86:0x159,_0x2f81ac:0x1bd,_0x14d895:0x160},_0x55bb08=_0x1505ea,_0x43eb13=_0x15ee9c[_0x55bb08(0x19f)]??defaultFailuresRoot(),_0x8f876f=resolveBundleDir(_0x6a5d1b,_0x43eb13),_0x5bfc8f=readFailureBundle(_0x8f876f);if(!_0x5bfc8f)throw new Error(_0x55bb08(_0x47f23e._0x44183a)+_0x6a5d1b+_0x55bb08(0x157)+_0x8f876f+')');const _0x8919f7=_0x15ee9c['cwd']??process[_0x55bb08(0x19e)](),_0x570b92=_0x10ebb1(_0x5bfc8f[_0x55bb08(0x164)][_0x55bb08(0x160)])?_0x4ec62f(_0x5bfc8f[_0x55bb08(_0x47f23e._0x1888e6)][_0x55bb08(0x160)],_0x55bb08(0x1b1)):_0x55bb08(0x1ac),_0x3e7ad0=_0x15ee9c[_0x55bb08(_0x47f23e._0x161f86)]??0x19,_0xf82d37=_0x5bfc8f[_0x55bb08(_0x47f23e._0x2f81ac)]['slice'](-_0x3e7ad0),{suggestedAction:_0x2f910f,confidence:_0x4167e4}=classify(_0x5bfc8f),_0x354ca8=buildPromptMarkdown({'bundle':_0x5bfc8f,'scenarioSource':_0x570b92,'scenarioRelative':relative(_0x8919f7,_0x5bfc8f['trace'][_0x55bb08(_0x47f23e._0x14d895)]),'consoleTail':_0xf82d37,'suggestedAction':_0x2f910f,'confidence':_0x4167e4}),_0x1da610=Math[_0x55bb08(0x1c2)](_0x354ca8[_0x55bb08(0x174)]/0x4);return{'promptMarkdown':_0x354ca8,'suggestedAction':_0x2f910f,'confidence':_0x4167e4,'sources':{'bundleDir':_0x8f876f,'scenarioPath':_0x5bfc8f[_0x55bb08(_0x47f23e._0x1888e6)]['scenarioPath'],'consoleEntries':_0x5bfc8f['console'][_0x55bb08(0x174)],'hasSnapshot':!!_0x5bfc8f[_0x55bb08(0x170)]},'approxTokens':_0x1da610};}__name(composeFixPrompt,_0x1505ea(0x18c));function classify(_0x47a06c){const _0x3c012c={_0xc633e4:0x1c0,_0x1a83bc:0x164,_0x64b72d:0x195,_0x2979c9:0x173,_0x83cc71:0x19d,_0x232e8a:0x15a,_0x23810f:0x177,_0x4a6d80:0x1a5,_0x213bee:0x1ba},_0x318828=_0x1505ea,_0xd35add=_0x47a06c['trace'][_0x318828(_0x3c012c._0xc633e4)][_0x318828(0x198)]['toLowerCase'](),_0x12e9b4=_0x47a06c[_0x318828(_0x3c012c._0x1a83bc)]['error'][_0x318828(_0x3c012c._0x64b72d)]??'';let _0xaf62b0=_0x318828(0x1b0),_0x324f38=_0x318828(0x1a6);if(_0x12e9b4===_0x318828(0x173)||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i[_0x318828(0x1b7)](_0xd35add))_0xaf62b0='rewrite-selector',_0x324f38=_0x12e9b4===_0x318828(_0x3c012c._0x2979c9)?_0x318828(_0x3c012c._0x83cc71):_0x318828(_0x3c012c._0x232e8a);else{if(_0x12e9b4==='TimeoutError'||/timeout|waiting for/i['test'](_0xd35add))_0xaf62b0=_0x318828(_0x3c012c._0x23810f),_0x324f38=_0x12e9b4===_0x318828(0x1ae)?_0x318828(0x19d):_0x318828(_0x3c012c._0x232e8a);else(_0x12e9b4===_0x318828(_0x3c012c._0x4a6d80)||/asserttext|assertvisible|expected.*got/i[_0x318828(0x1b7)](_0xd35add))&&(_0xaf62b0=_0x318828(_0x3c012c._0x213bee),_0x324f38=_0x12e9b4===_0x318828(0x1a5)?_0x318828(_0x3c012c._0x83cc71):_0x318828(_0x3c012c._0x232e8a));}return{'suggestedAction':_0xaf62b0,'confidence':_0x324f38};}__name(classify,_0x1505ea(0x1b2));function buildPromptMarkdown(_0x283a85){const _0x3a57c3={_0x27c2c2:0x1ab,_0x5f0221:0x1a8,_0x286115:0x170,_0x3cf1fa:0x162,_0x5d7e68:0x164,_0x147f0a:0x184,_0x3161e4:0x187,_0xb50bd:0x172,_0x2e71b7:0x1c0,_0x370ee0:0x15f,_0x962b82:0x1c0,_0x35bc29:0x163,_0x4de454:0x175,_0x38e8d4:0x17e,_0x1d3324:0x17e},_0x4910d2=_0x1505ea,{bundle:_0x3bd9fe,scenarioSource:_0x51d828,scenarioRelative:_0x258e8c,consoleTail:_0x181674,suggestedAction:_0x1badef,confidence:_0x10b998}=_0x283a85,_0x59a1ef=_0x51d828[_0x4910d2(0x18d)]('\x0a')['map']((_0x264c8c,_0x381412)=>String(_0x381412+0x1)['padStart'](0x3,'\x20')+'\x20\x20'+_0x264c8c)[_0x4910d2(0x1a8)]('\x0a'),_0x4d72c5=_0x181674[_0x4910d2(0x174)]===0x0?_0x4910d2(_0x3a57c3._0x27c2c2):_0x181674['map'](_0x4fe2e6=>'['+_0x4fe2e6['timestamp']+']\x20'+_0x4fe2e6['level']['toUpperCase']()+':\x20'+_0x4fe2e6[_0x4910d2(0x190)])[_0x4910d2(_0x3a57c3._0x5f0221)]('\x0a'),_0x2a058d=_0x3bd9fe[_0x4910d2(_0x3a57c3._0x286115)]?'URL:\x20'+_0x3bd9fe['snapshot'][_0x4910d2(0x16a)]+_0x4910d2(0x183)+_0x3bd9fe['snapshot']['capturedAt']+_0x4910d2(_0x3a57c3._0x3cf1fa):'_(no\x20semantic-dom\x20snapshot\x20captured\x20for\x20this\x20failure)_';return'#\x20Test\x20fix\x20request\x0a\x0a##\x20Failure\x20context\x0a\x0a-\x20**Test**:\x20`'+_0x3bd9fe[_0x4910d2(0x164)][_0x4910d2(0x16d)]+_0x4910d2(0x191)+_0x258e8c+_0x4910d2(0x17c)+(_0x3bd9fe[_0x4910d2(_0x3a57c3._0x5d7e68)][_0x4910d2(_0x3a57c3._0x147f0a)]??'?')+_0x4910d2(0x1aa)+_0x3bd9fe[_0x4910d2(0x164)][_0x4910d2(0x15d)]+_0x4910d2(_0x3a57c3._0x3161e4)+_0x3bd9fe[_0x4910d2(0x164)]['col']+_0x4910d2(_0x3a57c3._0xb50bd)+(_0x3bd9fe['trace'][_0x4910d2(_0x3a57c3._0x2e71b7)]['name']??_0x4910d2(_0x3a57c3._0x370ee0))+_0x4910d2(0x1b3)+_0x3bd9fe[_0x4910d2(_0x3a57c3._0x5d7e68)][_0x4910d2(_0x3a57c3._0x962b82)]['message']+_0x4910d2(_0x3a57c3._0x35bc29)+_0x1badef+_0x4910d2(0x1b5)+_0x10b998+_0x4910d2(_0x3a57c3._0x4de454)+(_0x3bd9fe['trace'][_0x4910d2(0x1c0)][_0x4910d2(_0x3a57c3._0x38e8d4)]?_0x4910d2(0x19a)+_0x3bd9fe[_0x4910d2(0x164)]['error'][_0x4910d2(_0x3a57c3._0x1d3324)]+'\x0a```\x0a':'')+'\x0a\x0a##\x20Scenario\x20source\x20(line-numbered)\x0a\x0a```js\x0a'+_0x59a1ef+'\x0a```\x0a\x0a##\x20Last\x20console\x20entries\x0a\x0a```\x0a'+_0x4d72c5+'\x0a```\x0a\x0a##\x20Semantic-DOM\x20snapshot\x0a\x0a'+_0x2a058d+_0x4910d2(0x197);}__name(buildPromptMarkdown,'buildPromptMarkdown');function runPrepareFix(_0xcf4bb8,_0x46fcf6={}){const _0x119c66={_0x862057:0x18e,_0x2c2c4f:0x1a2,_0x22b264:0x168,_0x476d86:0x19e,_0x295ec4:0x15e,_0x15a902:0x16d,_0x811421:0x1a9,_0xa67ac7:0x15e,_0x14a2fc:0x16e,_0x118ccf:0x174,_0x4f8d10:0x1bf,_0x2ec267:0x18f,_0x58fe2f:0x178,_0x58e838:0x17f},_0x1dd7fb=_0x1505ea,_0x12d7f7=_0x46fcf6[_0x1dd7fb(0x1a4)]??process[_0x1dd7fb(_0x119c66._0x862057)],_0x366ca5=_0x46fcf6[_0x1dd7fb(_0x119c66._0x2c2c4f)]??process[_0x1dd7fb(_0x119c66._0x22b264)],_0x4320a1=_0x46fcf6['cwd']??process[_0x1dd7fb(_0x119c66._0x476d86)](),_0x12685c=_0xcf4bb8['includes'](_0x1dd7fb(0x16b));let _0x593e43=_0xcf4bb8['filter'](_0x2e2bd4=>!_0x2e2bd4[_0x1dd7fb(0x186)]('-'));if(_0x12685c||_0x593e43[_0x1dd7fb(0x174)]===0x0){const _0xecf755=listFailures(defaultFailuresRoot(_0x4320a1));if(_0xecf755[_0x1dd7fb(0x174)]===0x0)return _0x366ca5[_0x1dd7fb(_0x119c66._0x295ec4)](_0x1dd7fb(0x19c)),0x1;if(_0x593e43['length']===0x0){const _0x34d7d0=new Map();for(const _0x4f8c85 of _0xecf755){if(!_0x34d7d0[_0x1dd7fb(0x17a)](_0x4f8c85[_0x1dd7fb(_0x119c66._0x15a902)]))_0x34d7d0[_0x1dd7fb(_0x119c66._0x811421)](_0x4f8c85[_0x1dd7fb(_0x119c66._0x15a902)],_0x4f8c85);}_0x593e43=[..._0x34d7d0['values']()]['map'](_0x3866ec=>_0x3866ec[_0x1dd7fb(0x199)]+'/'+_0x3866ec[_0x1dd7fb(0x16d)]);}}if(_0x593e43[_0x1dd7fb(0x174)]===0x0)return _0x366ca5[_0x1dd7fb(_0x119c66._0xa67ac7)](_0x1dd7fb(0x1bc)),0x1;_0x12d7f7[_0x1dd7fb(0x15e)](_0x1dd7fb(_0x119c66._0x14a2fc)+_0x593e43[_0x1dd7fb(_0x119c66._0x118ccf)]+_0x1dd7fb(_0x119c66._0x4f8d10));const _0x11b2f4=defaultFailuresRoot(_0x4320a1);for(const _0x398d54 of _0x593e43){try{const _0x214e09=composeFixPrompt(_0x398d54,{'cwd':_0x4320a1,'failuresRoot':_0x11b2f4}),_0xa2e237=_0xeb2688(_0x214e09[_0x1dd7fb(0x17b)][_0x1dd7fb(0x167)],_0x1dd7fb(_0x119c66._0x2ec267));_0x566f67(_0xa2e237,_0x214e09[_0x1dd7fb(0x161)]),_0x12d7f7[_0x1dd7fb(0x15e)](_0x1dd7fb(0x189)+_0x398d54+'\x0a'),_0x12d7f7[_0x1dd7fb(_0x119c66._0xa67ac7)](_0x1dd7fb(0x171)+_0xa2e237+'\x0a'),_0x12d7f7[_0x1dd7fb(0x15e)]('\x20\x20\x20\x20\x20\x20suggestedAction='+_0x214e09[_0x1dd7fb(_0x119c66._0x58fe2f)]+'\x20\x20confidence='+_0x214e09[_0x1dd7fb(0x1c1)]+'\x20\x20~'+_0x214e09[_0x1dd7fb(0x193)]+'t\x0a');}catch(_0x5ccd32){_0x366ca5[_0x1dd7fb(0x15e)](_0x1dd7fb(_0x119c66._0x58e838)+_0x398d54+':\x20'+(_0x5ccd32 instanceof Error?_0x5ccd32[_0x1dd7fb(0x198)]:String(_0x5ccd32))+'\x0a');}}return _0x12d7f7['write'](_0x1dd7fb(0x1a0)),0x0;}__name(runPrepareFix,_0x1505ea(0x158));var invokedDirectly=process[_0x1505ea(0x15c)][0x1]&&fileURLToPath(import.meta.url)===process['argv'][0x1];if(invokedDirectly){const code=runPrepareFix(process[_0x1505ea(0x15c)][_0x1505ea(0x1a3)](0x2));process['exit'](code);}export{runPrepareFix};
|
|
1
|
+
const _0x29c6af=_0x4dd0;(function(_0x2f5b89,_0x14f37d){const _0x4d1731={_0x468b86:0x20a,_0x22f5a7:0x1ba,_0x4223ff:0x215,_0x5a0338:0x1c8,_0x367fde:0x1ae},_0x1d2942=_0x4dd0,_0x34310e=_0x2f5b89();while(!![]){try{const _0x4e7a06=-parseInt(_0x1d2942(0x1ea))/0x1+parseInt(_0x1d2942(_0x4d1731._0x468b86))/0x2*(parseInt(_0x1d2942(_0x4d1731._0x22f5a7))/0x3)+-parseInt(_0x1d2942(_0x4d1731._0x4223ff))/0x4*(parseInt(_0x1d2942(0x1df))/0x5)+parseInt(_0x1d2942(_0x4d1731._0x5a0338))/0x6+parseInt(_0x1d2942(0x1ed))/0x7+-parseInt(_0x1d2942(0x1dd))/0x8+parseInt(_0x1d2942(_0x4d1731._0x367fde))/0x9;if(_0x4e7a06===_0x14f37d)break;else _0x34310e['push'](_0x34310e['shift']());}catch(_0x5c94b1){_0x34310e['push'](_0x34310e['shift']());}}}(_0x3d85,0x743e8));var __defProp=Object[_0x29c6af(0x203)],__name=(_0x3278e8,_0xb7aee)=>__defProp(_0x3278e8,_0x29c6af(0x212),{'value':_0xb7aee,'configurable':!![]});import{writeFileSync as _0x31c05f}from'fs';import{join as _0x5eb4f3}from'path';import{fileURLToPath}from'url';import{readFileSync as _0x334240,existsSync as _0xaa13ad}from'fs';function _0x3d85(){const _0x2f3118=['D3jPDgu','y29S','B3v0','cI0GkIPfCNjVCIOQoIbG','C2nLBMfYAw9qyxrO','ihrLC3qOCYKGkeqTmJuPcGO','m01qwLfoyG','ycdIGjqG','CMv3CML0zs1ZzwXLy3rVCG','cGOJiYbty2vUyxjPBYbZB3vYy2uGkgXPBMuTBNvTyMvYzwqPcGPGygbQCWO','iIaOBg9VA2vKigLUia','Dg9mB3DLCKnHC2u','icdINjmG','y29UC29Szq','C25HChnOB3qUANnVBG','AgfZ','y2vPBa','xYHUBYbZzw1HBNrPyY1KB20GC25HChnOB3qGy2fWDhvYzwqGzM9YihrOAxmGzMfPBhvYzsLF','zML4lxbYB21WDc5Tza','yxjNDG','mJqXody5nKnfD29HDG','AgLNAa','y29UzMLKzw5Jzq','BMv0D29YAW','iYmJifn0ywnRcMbGyaO','vgLTzw91DevYCM9Y','cMbGyaOkiYmGu2vTyw50AwmTre9nihnUyxbZAg90cGO','y29UC29Szs5QC29U','Dgv4Da','C2nYzwvUC2HVDc1LCNjVCI50Ehq','cK5LEhq6ihbHC3rLigvHy2GGzML4lxbYB21WDc5TzcbPBNrVihLVDxiGteXnignSAwvUDcaOq2XHDwrLienVzguGlWPdDxjZB3iGlYbLDgmUks4GvgHLieXmtsbYzxr1CM5ZigeGDw5PzMLLzcbKAwzMoYbYzxzPzxCGAxqGyw5KigfWCgX5cM1HBNvHBgX5lIbxzsbUzxzLCIbHDxrVlwfWCgX5icHelti1ks4k','cMbGyaO','C2nYzwvUC2HVDc5WBMC','zMfPBhvYzxnsB290','C29YDa','yxbWCM94vg9Rzw5Z','tg9JyxrVCKvYCM9Y','rxjYB3i','CNvUu3rHDgu','CNvUuhjLCgfYzuzPEa','icaGicaGC3vNz2vZDgvKqwn0Aw9Upq','mJC5nJKXmMvlvxPuyW','zMfPBhvYzsbIDw5KBguGBM90igzVDw5KigzVCIb0zxn0swq9iG','mtvNywDfzKW','zxjYB3i','AgfYlMPZB24','vvjmoIa','ChjLCgfYzs1MAxG6ig5VihrLC3rjzcbWCM92AwrLzcbHBMqGBM8GzMfPBgLUzYb0zxn0CYbMB3vUzc4k','BwfW','C3rKB3v0','zw52','y2HHBMDLlwfZC2vYDgLVBG','y2fWDhvYzwrbDa','C3bSAxq','mJG5nJCWuM1Oq3rg','Bg93','C2nYzwvUC2HVDfbHDgG','mtKYmZu4nMv5vKD6wq','yNvUzgXLrgLY','ycaOy29UzMLKzw5JztOG','zMLUAxnOzwq','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','cI0GkIPtDwDNzxn0zwqGywn0Aw9UkIO6iga','DxrMoa','CMvHzezHAwX1CMvcDw5KBgu','C3rHy2S','zMfPBhvYzs5QC29U','ChvZAa','icaGicaG','zxHPDa','AgfYugf0Aa','zMLSDgvY','C2XPy2u','yNvPBgrqCM9TChrnyxjRzg93BG','DMLKzw9qyxrO','C3rLCeLUzgv4','BwvZC2fNzq','C25HChnOB3q','C3rHCNrZv2L0Aa','zgvMAw5LuhjVCgvYDhK','AxneAxjLy3rVCNK','ywrKlxDHAxrMB3i','qxnZzxj0Aw9UrxjYB3i','ChjLCgfYzs1MAxG6ignVBxbVC2LUzYbMAxGGChjVBxb0CYbMB3iG','DgvZDa','icbJB25MAwrLBMnLpq','mteWmta2neffDunpsG','icdINjCG','C3rKzxjY','ChjLCgfYzs1MAxG6ig5VigzHAwX1CMuGyNvUzgXLCYbMB3vUzcb1BMrLCIaUDw5VDgvZDc9MywLSDxjLCY8Uifj1BIbHigzHAwXPBMCGDgvZDcbMAxjZDdSGDgHLigj1BMrSzsbPCYb3CML0DgvUigf1Dg9TyxrPy2fSBhKUcG','Bgv2zwW','DgLTzxn0yw1W','Dg9vChbLCKnHC2u','cMbGyaOkiYmGtgfZDcbJB25ZB2XLigvUDhjPzxmkcMbGyaO','BMfTzq','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','mtCYnZK2zKfmzNLW','C2nYzwvUC2HVDevYCM9Y','xYHUBYbJB25ZB2XLigvUDhjPzxmGy2fWDhvYzwqPxW','CgfKu3rHCNq','DhjHy2u','zgvMyxvSDezHAwX1CMvZuM9VDa','DMfSDwvZ','y3DK','DgvZDezU','iYbuzxn0igzPEcbYzxf1zxn0cGOJiYbgywLSDxjLignVBNrLEhqkcI0GkIPuzxn0kIO6iga','BwvKAxvT','mtq5mtm5ywjbzNbA','Dw5RBM93BG','BgvUz3rO','C3vNz2vZDgvKqwn0Aw9U','CgfYC2u','Bg9JywXLq29TCgfYzq'];_0x3d85=function(){return _0x2f3118;};return _0x3d85();}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(_0x441ce1){const _0x52d87f={_0x15dab4:0x1f6,_0x187f35:0x1b2,_0x2abb49:0x1c2,_0x595a8e:0x1f3,_0x1b7d70:0x201,_0x4be5a4:0x1d4,_0x5b9baa:0x1d1,_0x5cbe6e:0x216,_0x2859ac:0x1e1,_0x5cc812:0x1fa},_0x34bfa2=_0x29c6af;if(!existsSync(_0x441ce1))return null;const _0x124c6c=join(_0x441ce1,_0x34bfa2(_0x52d87f._0x15dab4));if(!existsSync(_0x124c6c))return null;const _0x531e04=JSON[_0x34bfa2(0x1b2)](readFileSync(_0x124c6c,_0x34bfa2(0x1f3))),_0x292642=join(_0x441ce1,_0x34bfa2(0x1cf)),_0x164e08=existsSync(_0x292642)?JSON[_0x34bfa2(_0x52d87f._0x187f35)](readFileSync(_0x292642,_0x34bfa2(0x1f3))):[],_0x5530bc=join(_0x441ce1,_0x34bfa2(_0x52d87f._0x2abb49)),_0x352e69=existsSync(_0x5530bc)?JSON[_0x34bfa2(0x1b2)](readFileSync(_0x5530bc,_0x34bfa2(0x1f3))):void 0x0,_0x38e83a={'trace':_0x531e04,'console':_0x164e08},_0x3a5ed3=join(_0x441ce1,'network.json');existsSync(_0x3a5ed3)&&(_0x38e83a[_0x34bfa2(0x1cb)]=JSON['parse'](readFileSync(_0x3a5ed3,_0x34bfa2(_0x52d87f._0x595a8e))));if(_0x352e69!==void 0x0)_0x38e83a[_0x34bfa2(_0x52d87f._0x1b7d70)]=_0x352e69;const _0x2c02e2=join(_0x441ce1,_0x34bfa2(_0x52d87f._0x4be5a4));if(existsSync(_0x2c02e2))_0x38e83a[_0x34bfa2(0x1ec)]=_0x2c02e2;else{const _0x53f95e=join(_0x441ce1,_0x34bfa2(_0x52d87f._0x5b9baa));existsSync(_0x53f95e)&&(_0x38e83a[_0x34bfa2(_0x52d87f._0x5cbe6e)]=readFileSync(_0x53f95e,_0x34bfa2(_0x52d87f._0x595a8e)));}const _0x21c07e=join(_0x441ce1,_0x34bfa2(_0x52d87f._0x2859ac));if(existsSync(_0x21c07e))_0x38e83a[_0x34bfa2(_0x52d87f._0x5cc812)]=_0x21c07e;const _0x461f8a=join(_0x441ce1,'video.webm');if(existsSync(_0x461f8a))_0x38e83a[_0x34bfa2(0x1fe)]=_0x461f8a;return _0x38e83a;}__name(readFailureBundle,_0x29c6af(0x1f4));function listFailures(_0x4079bb){const _0x485711={_0x42c34c:0x1f7,_0x3d4c33:0x21d,_0x2a5ddf:0x1b8,_0x188e05:0x20f,_0x272aa8:0x1da},_0xcebc96=_0x29c6af;if(!existsSync(_0x4079bb))return[];const _0x5d0388=[];for(const _0x38ce11 of readdirSync(_0x4079bb)){const _0x34a4ca=join(_0x4079bb,_0x38ce11);if(!statSync(_0x34a4ca)[_0xcebc96(0x204)]())continue;for(const _0x5c9d93 of readdirSync(_0x34a4ca)){const _0x5f545e=join(_0x34a4ca,_0x5c9d93);if(!statSync(_0x5f545e)['isDirectory']())continue;const _0x5024b0=join(_0x5f545e,'failure.json');if(!existsSync(_0x5024b0))continue;try{const _0x353032=JSON['parse'](readFileSync(_0x5024b0,'utf8'));_0x5d0388[_0xcebc96(_0x485711._0x42c34c)]({'runId':_0x38ce11,'testFn':_0x353032[_0xcebc96(_0x485711._0x3d4c33)],'scenarioPath':_0x353032[_0xcebc96(_0x485711._0x2a5ddf)],'dir':_0x5f545e,'timestamp':_0x353032[_0xcebc96(_0x485711._0x188e05)],'runState':_0x353032[_0xcebc96(_0x485711._0x272aa8)]??_0xcebc96(0x1f0)});}catch{}}}return _0x5d0388[_0xcebc96(0x1d6)]((_0x4b29fc,_0xac24c7)=>_0xac24c7[_0xcebc96(0x20f)][_0xcebc96(0x1b3)](_0x4b29fc[_0xcebc96(0x20f)])),_0x5d0388;}__name(listFailures,'listFailures');function defaultFailuresRoot(_0x5bfa7d=artifactsRootFrom(process[_0x29c6af(0x1e6)],process['cwd']()),_0x29f5fa=process[_0x29c6af(0x1e6)]){return failuresRootFrom(_0x29f5fa,join(_0x5bfa7d,...FAILURES_DIR_SEGMENTS));}function _0x4dd0(_0x42c248,_0x2f1086){_0x42c248=_0x42c248-0x1ae;const _0x3d8587=_0x3d85();let _0x4dd00e=_0x3d8587[_0x42c248];if(_0x4dd0['UOTRIa']===undefined){var _0x2e2e97=function(_0x492d58){const _0x458f56='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x31c05f='',_0x5eb4f3='';for(let _0x334240=0x0,_0xaa13ad,_0x3278e8,_0xb7aee=0x0;_0x3278e8=_0x492d58['charAt'](_0xb7aee++);~_0x3278e8&&(_0xaa13ad=_0x334240%0x4?_0xaa13ad*0x40+_0x3278e8:_0x3278e8,_0x334240++%0x4)?_0x31c05f+=String['fromCharCode'](0xff&_0xaa13ad>>(-0x2*_0x334240&0x6)):0x0){_0x3278e8=_0x458f56['indexOf'](_0x3278e8);}for(let _0x441ce1=0x0,_0x124c6c=_0x31c05f['length'];_0x441ce1<_0x124c6c;_0x441ce1++){_0x5eb4f3+='%'+('00'+_0x31c05f['charCodeAt'](_0x441ce1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5eb4f3);};_0x4dd0['ELPckd']=_0x2e2e97,_0x4dd0['fLEoSM']={},_0x4dd0['UOTRIa']=!![];}const _0x5d0eff=_0x3d8587[0x0],_0x32260b=_0x42c248+_0x5d0eff,_0xb996d5=_0x4dd0['fLEoSM'][_0x32260b];return!_0xb996d5?(_0x4dd00e=_0x4dd0['ELPckd'](_0x4dd00e),_0x4dd0['fLEoSM'][_0x32260b]=_0x4dd00e):_0x4dd00e=_0xb996d5,_0x4dd00e;}__name(defaultFailuresRoot,_0x29c6af(0x21a));function resolveBundleDir(_0x4dca09,_0x36a002){const _0x37699b={_0x3688d4:0x204},_0x415919=_0x29c6af;if(existsSync(_0x4dca09)&&statSync(_0x4dca09)[_0x415919(_0x37699b._0x3688d4)]())return _0x4dca09;return join(_0x36a002,_0x4dca09);}__name(resolveBundleDir,'resolveBundleDir');function composeFixPrompt(_0xd9e325,_0x74d5ae={}){const _0x13f150={_0x529553:0x1d5,_0x2dfbad:0x1de,_0x122222:0x1be,_0x305194:0x21c,_0x33875e:0x21c,_0x46146e:0x1b8,_0x508f7a:0x1f1,_0x108798:0x1c1,_0x47660b:0x1fc,_0x5d49b6:0x1b0,_0x59f493:0x1c1,_0x14de9e:0x201},_0x4e0f89=_0x29c6af,_0x155805=_0x74d5ae[_0x4e0f89(_0x13f150._0x529553)]??defaultFailuresRoot(),_0x5b03c9=resolveBundleDir(_0xd9e325,_0x155805),_0x1598f1=readFailureBundle(_0x5b03c9);if(!_0x1598f1)throw new Error(_0x4e0f89(_0x13f150._0x2dfbad)+_0xd9e325+_0x4e0f89(_0x13f150._0x122222)+_0x5b03c9+')');const _0x2d54c2=_0x74d5ae[_0x4e0f89(_0x13f150._0x305194)]??process[_0x4e0f89(_0x13f150._0x33875e)](),_0x222334=_0xaa13ad(_0x1598f1[_0x4e0f89(0x219)][_0x4e0f89(_0x13f150._0x46146e)])?_0x334240(_0x1598f1[_0x4e0f89(0x219)][_0x4e0f89(0x1b8)],'utf8'):_0x4e0f89(_0x13f150._0x508f7a),_0xf5bc1=_0x74d5ae['consoleLimit']??0x19,_0x49e362=_0x1598f1[_0x4e0f89(_0x13f150._0x108798)][_0x4e0f89(_0x13f150._0x47660b)](-_0xf5bc1),{suggestedAction:_0x2bb571,confidence:_0x9f7796}=classify(_0x1598f1),_0x5b7ce5=buildPromptMarkdown({'bundle':_0x1598f1,'scenarioSource':_0x222334,'scenarioRelative':relative(_0x2d54c2,_0x1598f1['trace']['scenarioPath']),'consoleTail':_0x49e362,'suggestedAction':_0x2bb571,'confidence':_0x9f7796}),_0x2024da=Math[_0x4e0f89(0x1c4)](_0x5b7ce5[_0x4e0f89(_0x13f150._0x5d49b6)]/0x4);return{'promptMarkdown':_0x5b7ce5,'suggestedAction':_0x2bb571,'confidence':_0x9f7796,'sources':{'bundleDir':_0x5b03c9,'scenarioPath':_0x1598f1[_0x4e0f89(0x219)][_0x4e0f89(0x1b8)],'consoleEntries':_0x1598f1[_0x4e0f89(_0x13f150._0x59f493)][_0x4e0f89(0x1b0)],'hasSnapshot':!!_0x1598f1[_0x4e0f89(_0x13f150._0x14de9e)]},'approxTokens':_0x2024da};}__name(composeFixPrompt,'composeFixPrompt');function classify(_0x772810){const _0x3074c9={_0x3bf63c:0x212,_0x294b16:0x1d8,_0x2bd950:0x1bc,_0x5f1a22:0x1cd,_0x1f4fae:0x205,_0x51a83a:0x21f,_0x28a28f:0x206,_0xb9cc3c:0x206,_0x466342:0x1c9},_0x104a10=_0x29c6af,_0x3866d8=_0x772810[_0x104a10(0x219)][_0x104a10(0x1e0)]['message'][_0x104a10(0x1bf)](),_0x5ece2d=_0x772810[_0x104a10(0x219)][_0x104a10(0x1e0)][_0x104a10(_0x3074c9._0x3bf63c)]??'';let _0x4ea4cc=_0x104a10(0x1af),_0x37c429=_0x104a10(0x1eb);if(_0x5ece2d===_0x104a10(_0x3074c9._0x294b16)||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i['test'](_0x3866d8))_0x4ea4cc=_0x104a10(_0x3074c9._0x2bd950),_0x37c429=_0x5ece2d==='LocatorError'?'high':'medium';else{if(_0x5ece2d===_0x104a10(_0x3074c9._0x5f1a22)||/timeout|waiting for/i['test'](_0x3866d8))_0x4ea4cc=_0x104a10(_0x3074c9._0x1f4fae),_0x37c429=_0x5ece2d===_0x104a10(0x1cd)?_0x104a10(0x1c9):_0x104a10(_0x3074c9._0x51a83a);else(_0x5ece2d===_0x104a10(_0x3074c9._0x28a28f)||/asserttext|assertvisible|expected.*got/i[_0x104a10(0x208)](_0x3866d8))&&(_0x4ea4cc=_0x104a10(0x1e7),_0x37c429=_0x5ece2d===_0x104a10(_0x3074c9._0xb9cc3c)?_0x104a10(_0x3074c9._0x466342):_0x104a10(0x21f));}return{'suggestedAction':_0x4ea4cc,'confidence':_0x37c429};}__name(classify,'classify');function buildPromptMarkdown(_0x15cf2b){const _0x300892={_0x27be20:0x1e9,_0x136dec:0x1b0,_0xa13375:0x217,_0x1df7e6:0x1e4,_0x1e5b0c:0x201,_0x36ab0e:0x1e8,_0x15351d:0x214,_0x31a102:0x21e,_0x407118:0x219,_0x3217b1:0x1b5,_0x1de0b2:0x1b7,_0x77a770:0x1e0,_0x556554:0x219,_0x194982:0x1ef,_0x20fd59:0x1cc,_0x23e187:0x1e0,_0x16cf47:0x1bd},_0x9f5756=_0x29c6af,{bundle:_0x579c6a,scenarioSource:_0x2f4fa4,scenarioRelative:_0x5dd6cd,consoleTail:_0x3d4839,suggestedAction:_0x411b35,confidence:_0x58d737}=_0x15cf2b,_0x18ebb9=_0x2f4fa4[_0x9f5756(_0x300892._0x27be20)]('\x0a')[_0x9f5756(0x1e4)]((_0x387d59,_0xec2f5a)=>String(_0xec2f5a+0x1)[_0x9f5756(0x218)](0x3,'\x20')+'\x20\x20'+_0x387d59)['join']('\x0a'),_0x1d9987=_0x3d4839[_0x9f5756(_0x300892._0x136dec)]===0x0?_0x9f5756(_0x300892._0xa13375):_0x3d4839[_0x9f5756(_0x300892._0x1df7e6)](_0x247e9a=>'['+_0x247e9a[_0x9f5756(0x20f)]+']\x20'+_0x247e9a[_0x9f5756(0x20e)][_0x9f5756(0x210)]()+':\x20'+_0x247e9a[_0x9f5756(0x1d0)])['join']('\x0a'),_0xee8ec6=_0x579c6a[_0x9f5756(_0x300892._0x1e5b0c)]?_0x9f5756(0x1e2)+_0x579c6a[_0x9f5756(0x201)]['url']+'\x0aCaptured:\x20'+_0x579c6a[_0x9f5756(0x201)][_0x9f5756(_0x300892._0x36ab0e)]+_0x9f5756(_0x300892._0x15351d):_0x9f5756(0x1c5);return _0x9f5756(_0x300892._0x31a102)+_0x579c6a['trace']['testFn']+'`\x20in\x20`'+_0x5dd6cd+'`\x0a-\x20**Step\x20index**:\x20'+(_0x579c6a[_0x9f5756(_0x300892._0x407118)][_0x9f5756(0x1ff)]??'?')+'\x0a-\x20**Location**:\x20line\x20'+_0x579c6a[_0x9f5756(_0x300892._0x407118)]['line']+',\x20col\x20'+_0x579c6a['trace'][_0x9f5756(_0x300892._0x3217b1)]+_0x9f5756(_0x300892._0x1de0b2)+(_0x579c6a[_0x9f5756(0x219)][_0x9f5756(_0x300892._0x77a770)][_0x9f5756(0x212)]??_0x9f5756(0x1d9))+_0x9f5756(0x1bb)+_0x579c6a[_0x9f5756(_0x300892._0x556554)][_0x9f5756(0x1e0)][_0x9f5756(0x200)]+_0x9f5756(0x1f2)+_0x411b35+_0x9f5756(_0x300892._0x194982)+_0x58d737+')\x0a\x0a'+(_0x579c6a['trace'][_0x9f5756(0x1e0)][_0x9f5756(0x1f5)]?_0x9f5756(_0x300892._0x20fd59)+_0x579c6a[_0x9f5756(0x219)][_0x9f5756(_0x300892._0x23e187)]['stack']+_0x9f5756(0x1d3):'')+_0x9f5756(_0x300892._0x16cf47)+_0x18ebb9+_0x9f5756(0x211)+_0x1d9987+_0x9f5756(0x1ce)+_0xee8ec6+_0x9f5756(0x213);}__name(buildPromptMarkdown,_0x29c6af(0x1fd));function runPrepareFix(_0x54b1a6,_0x9867a2={}){const _0x73d804={_0xb2267:0x20c,_0x3fa43e:0x21c,_0x40c7f3:0x21c,_0x5c0314:0x1fb,_0x1de9ee:0x1c3,_0xef0314:0x21d,_0x299513:0x1e4,_0x74fa22:0x1e3,_0x56a0ac:0x1b0,_0x4264ad:0x1b9,_0x4e2930:0x1c6,_0x136737:0x1c0,_0x1f96bb:0x1dc,_0x27b6ac:0x1b1,_0x390877:0x209,_0x142232:0x1d7,_0x2f3e4a:0x1b4,_0x220d05:0x200},_0x5d8153=_0x29c6af,_0x2f8864=_0x9867a2[_0x5d8153(0x1b6)]??process[_0x5d8153(0x1e5)],_0x29e6d4=_0x9867a2['err']??process[_0x5d8153(_0x73d804._0xb2267)],_0x195fe4=_0x9867a2[_0x5d8153(_0x73d804._0x3fa43e)]??process[_0x5d8153(_0x73d804._0x40c7f3)](),_0xec152a=_0x54b1a6['includes']('--failing');let _0x106679=_0x54b1a6[_0x5d8153(_0x73d804._0x5c0314)](_0x315a3c=>!_0x315a3c[_0x5d8153(0x202)]('-'));if(_0xec152a||_0x106679[_0x5d8153(0x1b0)]===0x0){const _0x2fcfd7=listFailures(defaultFailuresRoot(_0x195fe4));if(_0x2fcfd7['length']===0x0)return _0x29e6d4[_0x5d8153(0x1b4)](_0x5d8153(0x20d)),0x1;if(_0x106679[_0x5d8153(0x1b0)]===0x0){const _0x15480e=new Map();for(const _0x40499f of _0x2fcfd7){if(!_0x15480e[_0x5d8153(_0x73d804._0x1de9ee)](_0x40499f[_0x5d8153(_0x73d804._0xef0314)]))_0x15480e['set'](_0x40499f[_0x5d8153(0x21d)],_0x40499f);}_0x106679=[..._0x15480e[_0x5d8153(0x21b)]()][_0x5d8153(_0x73d804._0x299513)](_0x4140a5=>_0x4140a5['runId']+'/'+_0x4140a5[_0x5d8153(0x21d)]);}}if(_0x106679['length']===0x0)return _0x29e6d4[_0x5d8153(0x1b4)](_0x5d8153(_0x73d804._0x74fa22)),0x1;_0x2f8864[_0x5d8153(0x1b4)](_0x5d8153(0x207)+_0x106679[_0x5d8153(_0x73d804._0x56a0ac)]+_0x5d8153(_0x73d804._0x4264ad));const _0x242bc5=defaultFailuresRoot(_0x195fe4);for(const _0x561054 of _0x106679){try{const _0x1e2d73=composeFixPrompt(_0x561054,{'cwd':_0x195fe4,'failuresRoot':_0x242bc5}),_0x14ac9c=_0x5eb4f3(_0x1e2d73['sources'][_0x5d8153(0x1ee)],_0x5d8153(_0x73d804._0x4e2930));_0x31c05f(_0x14ac9c,_0x1e2d73['promptMarkdown']),_0x2f8864[_0x5d8153(0x1b4)](_0x5d8153(_0x73d804._0x136737)+_0x561054+'\x0a'),_0x2f8864[_0x5d8153(0x1b4)](_0x5d8153(0x1f8)+_0x14ac9c+'\x0a'),_0x2f8864['write'](_0x5d8153(_0x73d804._0x1f96bb)+_0x1e2d73[_0x5d8153(_0x73d804._0x27b6ac)]+_0x5d8153(_0x73d804._0x390877)+_0x1e2d73[_0x5d8153(0x1ca)]+'\x20\x20~'+_0x1e2d73[_0x5d8153(_0x73d804._0x142232)]+'t\x0a');}catch(_0x433ff1){_0x29e6d4[_0x5d8153(_0x73d804._0x2f3e4a)](_0x5d8153(0x20b)+_0x561054+':\x20'+(_0x433ff1 instanceof Error?_0x433ff1[_0x5d8153(_0x73d804._0x220d05)]:String(_0x433ff1))+'\x0a');}}return _0x2f8864[_0x5d8153(0x1b4)](_0x5d8153(0x1d2)),0x0;}__name(runPrepareFix,_0x29c6af(0x1db));var invokedDirectly=process['argv'][0x1]&&fileURLToPath(import.meta.url)===process[_0x29c6af(0x1c7)][0x1];if(invokedDirectly){const code=runPrepareFix(process['argv'][_0x29c6af(0x1fc)](0x2));process[_0x29c6af(0x1f9)](code);}export{runPrepareFix};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0xc64b80=_0x4372;(function(_0x496587,_0x4718eb){const _0x5179f2={_0x3ef3a:0x1cb,_0x27dce6:0x1da,_0x56d44e:0x1e1,_0x596264:0x1df,_0x573874:0x1cd,_0xe2db3b:0x1ea,_0x3de1f7:0x1e9},_0x105a7a=_0x4372,_0x23ecd4=_0x496587();while(!![]){try{const _0x7a2a43=parseInt(_0x105a7a(_0x5179f2._0x3ef3a))/0x1*(parseInt(_0x105a7a(_0x5179f2._0x27dce6))/0x2)+parseInt(_0x105a7a(_0x5179f2._0x56d44e))/0x3+parseInt(_0x105a7a(_0x5179f2._0x596264))/0x4*(-parseInt(_0x105a7a(0x1d0))/0x5)+parseInt(_0x105a7a(_0x5179f2._0x573874))/0x6+-parseInt(_0x105a7a(0x1d7))/0x7+parseInt(_0x105a7a(_0x5179f2._0xe2db3b))/0x8+-parseInt(_0x105a7a(_0x5179f2._0x3de1f7))/0x9*(parseInt(_0x105a7a(0x1de))/0xa);if(_0x7a2a43===_0x4718eb)break;else _0x23ecd4['push'](_0x23ecd4['shift']());}catch(_0x5875a4){_0x23ecd4['push'](_0x23ecd4['shift']());}}}(_0x441f,0xe2ffc));var __defProp=Object[_0xc64b80(0x1d5)],__name=(_0x1826ad,_0x33e8c4)=>__defProp(_0x1826ad,'name',{'value':_0x33e8c4,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';import{join}from'path';var templates={'jsconfigJson':_0xc64b80(0x1ef),'scenarioTemplate':_0xc64b80(0x1cf),'agentsMd':_0xc64b80(0x1d4),'claudeMdBody':_0xc64b80(0x1e5),'exampleCollection':_0xc64b80(0x1d1),'examples':{'01-smoke.js':_0xc64b80(0x1ed),'02-form-fill.js':_0xc64b80(0x1d9)},'secretsExample':'#\x20unotest-web\x20—\x20secret\x20scenario\x20variables.\x20Created\x20by\x20`init`,\x20gitignored.\x0a#\x0a#\x20Same\x20KEY=VALUE\x20format\x20as\x20unotest/.env,\x20but\x20values\x20here\x20are\x20treated\x20as\x0a#\x20SECRET:\x20they\x20are\x20masked\x20(shown\x20as\x20`‹secret:KEY›`)\x20anywhere\x20the\x20runner\x20or\x0a#\x20MCP\x20debug\x20log\x20would\x20otherwise\x20write\x20them\x20—\x20fill()\x20values,\x20URLs,\x20evaluate\x0a#\x20strings.\x20Reference\x20them\x20in\x20a\x20scenario\x20by\x20their\x20bare\x20UPPER_SNAKE\x20name,\x20the\x0a#\x20same\x20way\x20as\x20.env\x20variables:\x0a#\x0a#\x20\x20\x20fill(getByLabel(\x27Password\x27),\x20PASSWORD);\x0a#\x0a#\x20Secrets\x20are\x20NOT\x20exported\x20to\x20subprocesses\x20(shell())\x20—\x20they\x20stay\x20in\x20the\x0a#\x20variable\x20store.\x20A\x20subprocess\x20that\x20genuinely\x20needs\x20one\x20(a\x20listener\x20with\x20a\x0a#\x20token)\x20gets\x20it\x20via\x20the\x20explicit\x20allowlist\x20in\x20unotest.config.*:\x0a#\x20\x20\x20sandbox:\x20{\x20exportSecrets:\x20[\x27TOKEN\x27]\x20}\x0a#\x20Put\x20non-secret\x20values\x20(URLs,\x20emails,\x20ids)\x20in\x20unotest/.env.\x0a#\x0a#\x20FLEET_EXAMPLE\x0aLOGIN=\x0aPASSWORD=\x0aTOKEN=\x0a','envExample':_0xc64b80(0x1d2)};function _0x441f(){const _0x4c639d=['cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','nZKYodeZn3j0r2PWrG','CgfJA2fNzs5QC29Uigf0ia','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','mNrxBfvAwq','y2HHBM5LBa','Dw5VDgvZDc1ZDwL0zq','C2nHzMzVBgrxB3jRC3bHy2u','mtb5CgvMzLe','nda0Ae5gtwnc','ztjL','ndm2mtyYmLPZsuLntq','C3vPDgvqywnRywDLsNnVBG','BgvUz3rO','C3rYAw5N','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','Dw5VDgvZDc5JB25MAwCUBwPZ','DxrMoa','C3rYAw5NAwz5','mtCWmZC4ntvYq2rJAgG','mtq4mteXndr3Cu1rAu8','zw52rxHHBxbSzq','ChvZAa','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','Dw5VDgvZDa','EWOGicjJB21WAwXLCK9WDgLVBNmIoIb7cIaGicaIy2HLy2TkCYi6igzHBhnLlaOGicaGiNrHCMDLDci6icjLCZiWmJiIlaOGicaGiMXPyIi6ifSIzxmYmdiYiL0ScIaGicaIDhLWzxmIoIbBxqOGih0ScIaGiMLUy2X1zguIoIbBcIaGicaIkIOVkI5QCYiScIaGicaIlI4VlNvUB3rLC3qVDhLWzxmVzw52lMqUDhmIlaOGicaGiI4VBM9Kzv9TB2r1BgvZl0b1BM90zxn0l3DLyI90ExbLCY91BM90zxn0lwrZBc5KlNrZiGOGif0kFqO','ANnJB25MAwCUANnVBG','icbJAgfUBMvSoIa','DMvYC2LVBG','Dw5VDgvZDenVBMzPz01QCW','mdeTC21VA2uUANm','zxHHBxbSzxm','nZG2nJu5AfHuyMH4','x2HLBhbLCNm','mtG1nJe3mMTwwxbOyG','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','mJiWnZblDvrtqMu','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','CgfJA2fNzs5QC29U','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','zgvMAw5LuhjVCgvYDhK'];_0x441f=function(){return _0x4c639d;};return _0x441f();}function unotestConfigMjs(_0x29e1ef){const _0x5786aa=_0xc64b80,_0x50a958=_0x29e1ef===void 0x0?'\x20\x20//\x20channel:\x20\x27chrome\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\x20\x20//\x20\x27chrome\x27\x20/\x20\x27msedge\x27\x20/\x20null\x20(bundled)':_0x5786aa(0x1c6)+JSON[_0x5786aa(0x1e8)](_0x29e1ef)+',';return _0x5786aa(0x1ce)+_0x50a958+_0x5786aa(0x1d6);}__name(unotestConfigMjs,_0xc64b80(0x1c8));function suitePackageJson(_0x41a451){const _0x179b28={_0x4c9606:0x1e8,_0x2f1745:0x1dc},_0x542bc1=_0xc64b80;return JSON[_0x542bc1(_0x179b28._0x4c9606)]({'name':_0x542bc1(_0x179b28._0x2f1745),'private':!![],'devDependencies':{'@unotest/web':'^'+_0x41a451}},null,0x2)+'\x0a';}__name(suitePackageJson,_0xc64b80(0x1e2));function _0x4372(_0x422a01,_0x8838c7){_0x422a01=_0x422a01-0x1c6;const _0x441f1c=_0x441f();let _0x437289=_0x441f1c[_0x422a01];if(_0x4372['WXVWby']===undefined){var _0x30bc9a=function(_0x41ba6c){const _0xa6d42a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1826ad='',_0x33e8c4='';for(let _0x29e1ef=0x0,_0x50a958,_0x41a451,_0x28f983=0x0;_0x41a451=_0x41ba6c['charAt'](_0x28f983++);~_0x41a451&&(_0x50a958=_0x29e1ef%0x4?_0x50a958*0x40+_0x41a451:_0x41a451,_0x29e1ef++%0x4)?_0x1826ad+=String['fromCharCode'](0xff&_0x50a958>>(-0x2*_0x29e1ef&0x6)):0x0){_0x41a451=_0xa6d42a['indexOf'](_0x41a451);}for(let _0xd238e5=0x0,_0x57e0f3=_0x1826ad['length'];_0xd238e5<_0x57e0f3;_0xd238e5++){_0x33e8c4+='%'+('00'+_0x1826ad['charCodeAt'](_0xd238e5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x33e8c4);};_0x4372['HkFqie']=_0x30bc9a,_0x4372['kiHtto']={},_0x4372['WXVWby']=!![];}const _0x50fe59=_0x441f1c[0x0],_0x40f1be=_0x422a01+_0x50fe59,_0x250013=_0x4372['kiHtto'][_0x40f1be];return!_0x250013?(_0x437289=_0x4372['HkFqie'](_0x437289),_0x4372['kiHtto'][_0x40f1be]=_0x437289):_0x437289=_0x250013,_0x437289;}import{readFileSync}from'fs';import{dirname,resolve}from'path';import{fileURLToPath}from'url';function readOwnVersion(){const _0x40acb7={_0x138bbb:0x1e7,_0x5d168d:0x1c7,_0x5e4c4f:0x1c7},_0x3eb764=_0xc64b80,_0x28f983=dirname(fileURLToPath(import.meta.url)),_0xd238e5=resolve(_0x28f983,'../../package.json'),_0x57e0f3=readFileSync(_0xd238e5,_0x3eb764(_0x40acb7._0x138bbb)),_0xc9ff35=JSON['parse'](_0x57e0f3);if(typeof _0xc9ff35[_0x3eb764(_0x40acb7._0x5d168d)]!==_0x3eb764(0x1e4)||_0xc9ff35[_0x3eb764(_0x40acb7._0x5d168d)][_0x3eb764(0x1e3)]===0x0)throw new Error(_0x3eb764(0x1d8)+_0xd238e5+'\x20has\x20no\x20usable\x20\x22version\x22\x20field');return _0xc9ff35[_0x3eb764(_0x40acb7._0x5e4c4f)];}__name(readOwnVersion,'readOwnVersion');async function scaffoldWorkspace(_0x16e61a,_0x1dbb35={}){const _0x4a131d={_0x45aca3:0x1e0,_0x3ebf20:0x1ca,_0x3d83b8:0x1cc,_0x44cea8:0x1e6,_0x1ea27b:0x1ee,_0x335d56:0x1d3,_0x2b02f6:0x1ee,_0x4b774b:0x1eb,_0x33b86f:0x1ee,_0x20fde8:0x1c9,_0x5a45cf:0x1ec},_0x15d25a=_0xc64b80,_0x2ceb13=[],_0x249f88=[];await mkdir(join(_0x16e61a,_0x15d25a(0x1ee),_0x15d25a(_0x4a131d._0x45aca3),_0x15d25a(_0x4a131d._0x3ebf20)),{'recursive':!![]}),await mkdir(join(_0x16e61a,'unotest',_0x15d25a(_0x4a131d._0x45aca3),_0x15d25a(_0x4a131d._0x3d83b8)),{'recursive':!![]});const _0x782fac=[{'rel':join(_0x15d25a(0x1ee),_0x15d25a(_0x4a131d._0x44cea8)),'content':unotestConfigMjs(_0x1dbb35[_0x15d25a(0x1db)])},{'rel':join(_0x15d25a(_0x4a131d._0x1ea27b),_0x15d25a(_0x4a131d._0x335d56)),'content':suitePackageJson(readOwnVersion())},{'rel':join(_0x15d25a(_0x4a131d._0x2b02f6),'.env'),'content':templates[_0x15d25a(_0x4a131d._0x4b774b)]},{'rel':join(_0x15d25a(_0x4a131d._0x33b86f),_0x15d25a(0x1f0)),'content':templates['jsconfigJson']},{'rel':join(_0x15d25a(_0x4a131d._0x2b02f6),_0x15d25a(0x1e0),'examples',_0x15d25a(_0x4a131d._0x20fde8)),'content':templates['examples'][_0x15d25a(_0x4a131d._0x20fde8)]}];for(const {rel:_0x4e7f5a,content:_0x53ebdf}of _0x782fac){const _0x557cdb=join(_0x16e61a,_0x4e7f5a);if(existsSync(_0x557cdb)){_0x249f88[_0x15d25a(_0x4a131d._0x5a45cf)](_0x4e7f5a);continue;}await writeFile(_0x557cdb,_0x53ebdf),_0x2ceb13[_0x15d25a(0x1ec)](_0x4e7f5a);}return{'projectRoot':_0x16e61a,'created':_0x2ceb13,'skipped':_0x249f88};}__name(scaffoldWorkspace,_0xc64b80(0x1dd));export{scaffoldWorkspace};
|
|
1
|
+
const _0x347630=_0x2b34;(function(_0x2d1685,_0x8bbd83){const _0x429c1b={_0x135a61:0x1b6,_0x2bf413:0x1a4,_0x309de2:0x1ae,_0x232f01:0x194,_0x26af77:0x1a2,_0x218bd3:0x1ba,_0x5708f0:0x19b},_0x180f41=_0x2b34,_0x247aa8=_0x2d1685();while(!![]){try{const _0x2e5e0c=-parseInt(_0x180f41(_0x429c1b._0x135a61))/0x1*(parseInt(_0x180f41(0x1b2))/0x2)+parseInt(_0x180f41(_0x429c1b._0x2bf413))/0x3+-parseInt(_0x180f41(_0x429c1b._0x309de2))/0x4*(-parseInt(_0x180f41(_0x429c1b._0x232f01))/0x5)+-parseInt(_0x180f41(0x19f))/0x6+-parseInt(_0x180f41(0x1b3))/0x7+parseInt(_0x180f41(_0x429c1b._0x26af77))/0x8*(-parseInt(_0x180f41(_0x429c1b._0x218bd3))/0x9)+parseInt(_0x180f41(_0x429c1b._0x5708f0))/0xa;if(_0x2e5e0c===_0x8bbd83)break;else _0x247aa8['push'](_0x247aa8['shift']());}catch(_0x17663f){_0x247aa8['push'](_0x247aa8['shift']());}}}(_0xea72,0x4b18a));var __defProp=Object[_0x347630(0x1a5)],__name=(_0x26edf2,_0x251091)=>__defProp(_0x26edf2,_0x347630(0x1b5),{'value':_0x251091,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';function _0x2b34(_0x44f929,_0x2f2547){_0x44f929=_0x44f929-0x191;const _0xea728=_0xea72();let _0x2b3480=_0xea728[_0x44f929];if(_0x2b34['UWcDJv']===undefined){var _0x5ae9b3=function(_0xe8fd41){const _0x5df1bb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x26edf2='',_0x251091='';for(let _0x10d7f4=0x0,_0x2e2cf4,_0x28a3bd,_0x2d11ae=0x0;_0x28a3bd=_0xe8fd41['charAt'](_0x2d11ae++);~_0x28a3bd&&(_0x2e2cf4=_0x10d7f4%0x4?_0x2e2cf4*0x40+_0x28a3bd:_0x28a3bd,_0x10d7f4++%0x4)?_0x26edf2+=String['fromCharCode'](0xff&_0x2e2cf4>>(-0x2*_0x10d7f4&0x6)):0x0){_0x28a3bd=_0x5df1bb['indexOf'](_0x28a3bd);}for(let _0x4f98e4=0x0,_0x54ff7a=_0x26edf2['length'];_0x4f98e4<_0x54ff7a;_0x4f98e4++){_0x251091+='%'+('00'+_0x26edf2['charCodeAt'](_0x4f98e4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x251091);};_0x2b34['wTnfFm']=_0x5ae9b3,_0x2b34['twBukc']={},_0x2b34['UWcDJv']=!![];}const _0x1ab1ff=_0xea728[0x0],_0x317632=_0x44f929+_0x1ab1ff,_0x5141f9=_0x2b34['twBukc'][_0x317632];return!_0x5141f9?(_0x2b3480=_0x2b34['wTnfFm'](_0x2b3480),_0x2b34['twBukc'][_0x317632]=_0x2b3480):_0x2b3480=_0x5141f9,_0x2b3480;}function _0xea72(){const _0x39fe6f=['EWOGicjJB21WAwXLCK9WDgLVBNmIoIb7cIaGicaIy2HLy2TkCYi6igzHBhnLlaOGicaGiNrHCMDLDci6icjLCZiWmJiIlaOGicaGiMXPyIi6ifSIzxmYmdiYiL0ScIaGicaIDhLWzxmIoIbBxqOGih0ScIaGiMLUy2X1zguIoIbBcIaGicaIkIOVkI5QCYiScIaGicaIlI4VlNvUB3rLC3qVDhLWzxmVzw52lMqUDhmIlaOGicaGiI4VBM9Kzv9TB2r1BgvZl0b1BM90zxn0l3DLyI90ExbLCY91BM90zxn0lwrZBc5KlNrZiGOGif0kFqO','ztjL','BgvUz3rO','C3rYAw5NAwz5','odrUyuTtCeG','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4GqsbZDwjWCM9JzxnZihrOyxqGz2vUDwLUzwX5ig5LzwrZig9UzsaOysbSAxn0zw5LCIb3AxrOigekiYb0B2TLBIKGz2v0CYbPDcb2AweGDgHLigv4CgXPy2L0igfSBg93BgLZDcbPBIb1BM90zxn0lMnVBMzPzY4QoGOJicaGC2fUzgjVEdOGEYbLEhbVCNrtzwnYzxrZoIbBj1rps0voj10GFqOJifb1DcbUB24TC2vJCMv0ihzHBhvLCYaOvvjmCYWGzw1HAwXZlcbPzhmPigLUihvUB3rLC3qVlMvUDI4kiWOJiezmruvux0vyqu1qteukte9hsu49cLbbu1nxt1jepqPut0TftJ0k','ANnJB25MAwDkC29U','C3vPDgvqywnRywDLsNnVBG','otj3B0HTBfu','mZC1nJy0ofLurvDZvq','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','BMfTzq','otK1ohHvBvrquW','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','Dw5VDgvZDa','ANnJB25MAwCUANnVBG','nte4otaZmxnlAg1zvG','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWOGic8VihnHBMrIB3G6ihSGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GyxbPq2fSBcaVihvWBg9HzcaVigrIuxvLCNKGlYbZAgvSBaOGic8VicaGyxbPqMfZzvvYBdOGj2H0DhbZoI8VyxbPlNLVDxiTyxbWlNrLC3qNlcaGicaGlY8GyMfZzsbMB3iGyxbPq2fSBcGNue9tvcCSicCVCgf0AcCSiokaPIKkicaVlYaGihvWBg9HzerPCJOGj3vUB3rLC3qVzML4DhvYzxmNlcaGicaGicaGicaGicaGic8VihjVB3qGzM9YihvWBg9HzcGNzg9JlNbKzICPihbHDgHZoWOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGChjVAMvJDcbYB290lIbvCgXVywrZig1HEqOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GBM90igvZy2fWzsbPDcaOCMvSyxrPDMuGCgf0AhmGB25SEsKUcIaGlY8GicbKyxrHyMfZztOGj3bVC3rNCMvZCwW6lY9SB2nHBgHVC3q6ntqZmI9HChbFDgvZDcCSicaVlYbKyLf1zxj5ic8GzgjfEgvJcIaGlY8GFsWk','y2HHBM5LBa','Dw5VDgvZDc5JB25MAwCUBwPZ','lMvUDG','DMvYC2LVBG','ChvZAa','odqXnZbLsKvKB2G','CgfYC2u','Dw5VDgvZDc1ZDwL0zq','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','igHHCYbUBYb1C2fIBguGiNzLCNnPB24IigzPzwXK','C3rYAw5N','cN07cG','mtmYndmWmtbVsNfmq1O','CgfJA2fNzs5QC29U','x2HLBhbLCNm','zxHHBxbSzxm','mtK0odCYoffXBMnTvG','zw52rxHHBxbSzq','CgfJA2fNzs5QC29Uigf0ia','ofPmwfr3qG','icbJAgfUBMvSoIa','mtu3nZu3ngfMsgjryG','zgvMAw5LuhjVCgvYDhK','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','mdeTC21VA2uUANm','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','CMvHze93BLzLCNnPB24'];_0xea72=function(){return _0x39fe6f;};return _0xea72();}import{join}from'path';var templates={'jsconfigJson':_0x347630(0x1aa),'scenarioTemplate':'//\x20Move\x20+\x20rename\x20this\x20file\x20to\x20<feature>/<your_name>.js\x20(e.g.\x0a//\x20auth/login.js)\x20and\x20the\x20function\x20below\x20to\x20test_<your_name>().\x20Scenarios\x20live\x0a//\x20in\x20feature\x20subfolders,\x20NOT\x20the\x20e2e\x20root\x20—\x20the\x20linter\x20(lint:scenario-in-root)\x0a//\x20rejects\x20a\x20test\x20file\x20placed\x20directly\x20in\x20unotest/e2e/.\x20The\x20loader\x20derives\x20the\x0a//\x20entry\x20name\x20from\x20the\x20file\x20basename\x20—\x20kebab-case\x20dashes\x20become\x20underscores.\x0a\x0a//\x20Every\x20executable\x20step\x20must\x20sit\x20inside\x20a\x20step(\x22...\x22,\x20()\x20=>\x20{\x20…\x20})\x20block.\x20The\x0a//\x20title\x20is\x20a\x20plain-English\x20description\x20of\x20the\x20group;\x20the\x20steps\x20inside\x20are\x0a//\x20the\x20implementation.\x20Group\x20by\x20intent\x20(Setup\x20/\x20Enter\x20/\x20Act\x20/\x20Assert\x20or\x0a//\x20whatever\x20reads\x20well)\x20—\x20one\x20block\x20per\x20logical\x20chunk.\x0a\x0afunction\x20test_your_name_here()\x20{\x0a\x20\x20step(\x22Seed\x20a\x20known\x20user\x20via\x20DB\x20/\x20API\x20fixtures\x20from\x20_helpers/\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20//\x20\x20\x20\x20wipe_e2e_users();\x0a\x20\x20\x20\x20//\x20\x20\x20\x20user_id\x20=\x20seed_user(\x27alice@example.com\x27,\x20\x27secret\x27);\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Sign\x20in\x20as\x20the\x20seeded\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27https://your-app.test/login\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20\x27alice@example.com\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20fill(getByLabel(\x27Password\x27),\x20\x27secret\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20click(getByRole(\x27button\x27,\x20{name:\x20\x27Log\x20in\x27}));\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Assert\x20the\x20dashboard\x20shows\x20the\x20signed-in\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20//\x20\x20\x20\x20assertUrl(\x27/dashboard\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20assertText(getByRole(\x27heading\x27),\x20\x27Welcome,\x20Alice\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20count\x20=\x20dbQuery(\x27SELECT\x20count(*)\x20FROM\x20users\x20WHERE\x20active\x20=\x20true\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20assertTrue(count\x20>\x200,\x20\x27expected\x20at\x20least\x20one\x20active\x20user\x27);\x0a\x20\x20});\x0a}\x0a','agentsMd':_0x347630(0x1b4),'claudeMdBody':_0x347630(0x1a8),'exampleCollection':'#\x20The\x20collection\x20a\x20remote\x20run\x20starts\x20with.\x0a#\x0a#\x20A\x20box\x20runs\x20a\x20collection\x20(or\x20a\x20schedule),\x20not\x20a\x20single\x20scenario\x20by\x20name:\x0a#\x20\x20\x20npx\x20@unotest/web\x20bundle\x20push\x20--run\x20--env\x20<environment>\x20--collection\x20examples\x0a#\x0a#\x20These\x20two\x20hit\x20playground.unotest.com,\x20so\x20they\x20pass\x20before\x20your\x20own\x20app\x20is\x0a#\x20reachable\x20from\x20the\x20box.\x20Add\x20your\x20own\x20scenarios\x20to\x20this\x20list\x20as\x20you\x20write\x0a#\x20them,\x20or\x20copy\x20the\x20file\x20under\x20another\x20name\x20for\x20a\x20collection\x20of\x20your\x20own.\x0ascenarios:\x0a\x20\x20-\x20examples/01-smoke\x0a\x20\x20-\x20examples/02-form-fill\x0a','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':_0x347630(0x1b7)},'secretsExample':_0x347630(0x1af),'envExample':_0x347630(0x1a6)};function unotestConfigMjs(_0x10d7f4){const _0x548587={_0x264085:0x19a},_0x191b23=_0x347630,_0x2e2cf4=_0x10d7f4===void 0x0?_0x191b23(0x197):_0x191b23(0x1a3)+JSON['stringify'](_0x10d7f4)+',';return _0x191b23(0x1bb)+_0x2e2cf4+_0x191b23(_0x548587._0x264085);}__name(unotestConfigMjs,'unotestConfigMjs');function suitePackageJson(_0x28a3bd){const _0x48cbdd={_0x19fcac:0x1ad,_0x670668:0x196},_0x1eac36=_0x347630;return JSON[_0x1eac36(_0x48cbdd._0x19fcac)]({'name':_0x1eac36(_0x48cbdd._0x670668),'private':!![],'devDependencies':{'@unotest/web':'^'+_0x28a3bd}},null,0x2)+'\x0a';}__name(suitePackageJson,_0x347630(0x1b1));import{readFileSync}from'fs';import{dirname,resolve}from'path';import{fileURLToPath}from'url';function readOwnVersion(){const _0x390822={_0x3c955c:0x199,_0x57f48c:0x1ac,_0x3e4d4d:0x1a1,_0x5064e1:0x198,_0x17d1ba:0x192},_0x20d5c1=_0x347630,_0x2d11ae=dirname(fileURLToPath(import.meta.url)),_0x4f98e4=resolve(_0x2d11ae,'../../package.json'),_0x54ff7a=readFileSync(_0x4f98e4,'utf8'),_0x558986=JSON[_0x20d5c1(0x195)](_0x54ff7a);if(typeof _0x558986[_0x20d5c1(0x192)]!==_0x20d5c1(_0x390822._0x3c955c)||_0x558986['version'][_0x20d5c1(_0x390822._0x57f48c)]===0x0)throw new Error(_0x20d5c1(_0x390822._0x3e4d4d)+_0x4f98e4+_0x20d5c1(_0x390822._0x5064e1));return _0x558986[_0x20d5c1(_0x390822._0x17d1ba)];}__name(readOwnVersion,_0x347630(0x1a9));async function scaffoldWorkspace(_0x5f1f1a,_0x4d8b9d={}){const _0x47f9d9={_0x43395c:0x1ab,_0x41fd14:0x19e,_0x11f4fd:0x1ab,_0x20050a:0x19d,_0x38e606:0x1b8,_0x8d8f77:0x1bc,_0x182731:0x19c,_0x15082e:0x191,_0x56f1af:0x1a0,_0x5d9dc5:0x1b0,_0x389634:0x1b8,_0x8f8e7b:0x1a7,_0x57727a:0x1a7},_0x5d4189=_0x347630,_0x2c3494=[],_0x8a31a8=[];await mkdir(join(_0x5f1f1a,'unotest',_0x5d4189(_0x47f9d9._0x43395c),_0x5d4189(_0x47f9d9._0x41fd14)),{'recursive':!![]}),await mkdir(join(_0x5f1f1a,_0x5d4189(0x1b8),_0x5d4189(_0x47f9d9._0x11f4fd),_0x5d4189(_0x47f9d9._0x20050a)),{'recursive':!![]});const _0x3b9a4a=[{'rel':join(_0x5d4189(_0x47f9d9._0x38e606),_0x5d4189(0x1bd)),'content':unotestConfigMjs(_0x4d8b9d[_0x5d4189(_0x47f9d9._0x8d8f77)])},{'rel':join(_0x5d4189(0x1b8),_0x5d4189(_0x47f9d9._0x182731)),'content':suitePackageJson(readOwnVersion())},{'rel':join('unotest',_0x5d4189(_0x47f9d9._0x15082e)),'content':templates[_0x5d4189(_0x47f9d9._0x56f1af)]},{'rel':join('unotest',_0x5d4189(0x1b9)),'content':templates[_0x5d4189(_0x47f9d9._0x5d9dc5)]},{'rel':join(_0x5d4189(_0x47f9d9._0x389634),_0x5d4189(_0x47f9d9._0x43395c),'examples',_0x5d4189(_0x47f9d9._0x8f8e7b)),'content':templates[_0x5d4189(0x19e)][_0x5d4189(_0x47f9d9._0x57727a)]}];for(const {rel:_0x2b37b5,content:_0x52c7b7}of _0x3b9a4a){const _0x2d16dc=join(_0x5f1f1a,_0x2b37b5);if(existsSync(_0x2d16dc)){_0x8a31a8['push'](_0x2b37b5);continue;}await writeFile(_0x2d16dc,_0x52c7b7),_0x2c3494[_0x5d4189(0x193)](_0x2b37b5);}return{'projectRoot':_0x5f1f1a,'created':_0x2c3494,'skipped':_0x8a31a8};}__name(scaffoldWorkspace,'scaffoldWorkspace');export{scaffoldWorkspace};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var _0x57437a=_0x13bf;(function(_0xdb1ddd,_0x14f97a){var _0xc14bc6={_0x5c2475:0x16e,_0x5b4ba6:0x16a,_0x478024:0x169,_0x2a904d:0x160,_0x23ec44:0x170,_0x4e68ad:0x172,_0x404868:0x165,_0x1a0641:0x163},_0x47342c=_0x13bf,_0x2af8aa=_0xdb1ddd();while(!![]){try{var _0x5f0d5d=-parseInt(_0x47342c(0x168))/0x1+parseInt(_0x47342c(_0xc14bc6._0x5c2475))/0x2+parseInt(_0x47342c(_0xc14bc6._0x5b4ba6))/0x3*(parseInt(_0x47342c(_0xc14bc6._0x478024))/0x4)+parseInt(_0x47342c(_0xc14bc6._0x2a904d))/0x5+parseInt(_0x47342c(_0xc14bc6._0x23ec44))/0x6+parseInt(_0x47342c(_0xc14bc6._0x4e68ad))/0x7*(-parseInt(_0x47342c(_0xc14bc6._0x404868))/0x8)+parseInt(_0x47342c(0x171))/0x9*(-parseInt(_0x47342c(_0xc14bc6._0x1a0641))/0xa);if(_0x5f0d5d===_0x14f97a)break;else _0x2af8aa['push'](_0x2af8aa['shift']());}catch(_0x52b160){_0x2af8aa['push'](_0x2af8aa['shift']());}}}(_0x4ad6,0x7a04e));function _0x4ad6(){var _0x3fc68c=['yxjNDG','BwfW','mty0ndi0mMrSDgHREq','C3rKzxjY','mJu3odm4mhDQtMf4vG','mtKZnZiXneTgChDpqG','mte2ndC4nLbmCwLSqG','Aw5OzxjPDa','zMLUza','C2vYDMuTzML4DhvYztOGy2fUBM90igXVy2f0zsbMAxH0DxjLihnLCNzLCIbLBNrYEs4GvhjPzwq6cG','mJyXmdq1t2XTvNDh','D3jPDgu','zxHLy1bHDgG','mtbfEu1XvuK','lI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','ndHLDgDlA2e','lI4VlI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','C2XPy2u','mJuZndeZDffethn6','ngjYzwLuCW','mtK4odmZmxDozLjAra','zxHPDa'];_0x4ad6=function(){return _0x3fc68c;};return _0x4ad6();}import{fileURLToPath}from'url';function _0x13bf(_0x5ea71a,_0x41fa64){_0x5ea71a=_0x5ea71a-0x15e;var _0x4ad624=_0x4ad6();var _0x13bf6a=_0x4ad624[_0x5ea71a];if(_0x13bf['dWEyhI']===undefined){var _0x4401a8=function(_0x337bc0){var _0xdec28a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x47635a='',_0x14ec5e='';for(var _0x45a067=0x0,_0x2a5e5b,_0x2399d8,_0x56e71e=0x0;_0x2399d8=_0x337bc0['charAt'](_0x56e71e++);~_0x2399d8&&(_0x2a5e5b=_0x45a067%0x4?_0x2a5e5b*0x40+_0x2399d8:_0x2399d8,_0x45a067++%0x4)?_0x47635a+=String['fromCharCode'](0xff&_0x2a5e5b>>(-0x2*_0x45a067&0x6)):0x0){_0x2399d8=_0xdec28a['indexOf'](_0x2399d8);}for(var _0x4f4d62=0x0,_0x322dc6=_0x47635a['length'];_0x4f4d62<_0x322dc6;_0x4f4d62++){_0x14ec5e+='%'+('00'+_0x47635a['charCodeAt'](_0x4f4d62)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x14ec5e);};_0x13bf['IQBvbY']=_0x4401a8,_0x13bf['HfXVXz']={},_0x13bf['dWEyhI']=!![];}var _0x527b1b=_0x4ad624[0x0],_0x4ab3ba=_0x5ea71a+_0x527b1b,_0x5f5a09=_0x13bf['HfXVXz'][_0x4ab3ba];return!_0x5f5a09?(_0x13bf6a=_0x13bf['IQBvbY'](_0x13bf6a),_0x13bf['HfXVXz'][_0x4ab3ba]=_0x13bf6a):_0x13bf6a=_0x5f5a09,_0x13bf6a;}import{dirname,resolve}from'path';import{spawn}from'child_process';import{existsSync}from'fs';var here=dirname(fileURLToPath(import.meta.url)),candidates=[resolve(here,_0x57437a(0x164)),resolve(here,_0x57437a(0x166))],serverEntry=candidates[_0x57437a(0x15e)](_0x47635a=>existsSync(_0x47635a));!serverEntry&&(process[_0x57437a(0x16f)][_0x57437a(0x161)](_0x57437a(0x15f)+candidates[_0x57437a(0x16d)](_0x14ec5e=>'\x20\x20'+_0x14ec5e+'\x0a')['join']('')+'Did\x20you\x20publish\x20without\x20examples/fixtures/?\x0a'),process['exit'](0x1));var child=spawn(process[_0x57437a(0x162)],[serverEntry,...process[_0x57437a(0x16c)][_0x57437a(0x167)](0x2)],{'stdio':_0x57437a(0x173)});child['on']('exit',_0x45a067=>process[_0x57437a(0x16b)](_0x45a067??0x1));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x56784f=_0x28d4;(function(_0x519db0,_0x111376){const _0x51cc90={_0x49a188:0x1e8,_0x48bcb2:0x229,_0x4ac99b:0x22c,_0x63df17:0x20a},_0x1e9561=_0x28d4,_0x394be8=_0x519db0();while(!![]){try{const _0x3de2c6=-parseInt(_0x1e9561(0x1f3))/0x1+-parseInt(_0x1e9561(_0x51cc90._0x49a188))/0x2*(parseInt(_0x1e9561(0x1f8))/0x3)+parseInt(_0x1e9561(_0x51cc90._0x48bcb2))/0x4+-parseInt(_0x1e9561(0x1e1))/0x5+-parseInt(_0x1e9561(0x1de))/0x6+parseInt(_0x1e9561(_0x51cc90._0x4ac99b))/0x7*(parseInt(_0x1e9561(_0x51cc90._0x63df17))/0x8)+-parseInt(_0x1e9561(0x224))/0x9*(-parseInt(_0x1e9561(0x1eb))/0xa);if(_0x3de2c6===_0x111376)break;else _0x394be8['push'](_0x394be8['shift']());}catch(_0x4f7020){_0x394be8['push'](_0x394be8['shift']());}}}(_0x261b,0xeb80f));var __defProp=Object[_0x56784f(0x231)],__name=(_0x534f82,_0x4cbaf5)=>__defProp(_0x534f82,_0x56784f(0x209),{'value':_0x4cbaf5,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x4185c3}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x109b39={_0x57bbe7:0x215},_0x530bbc=_0x56784f;for(const _0x871b7b of[probeChrome,probeEdge,probeChromeBeta]){const _0x298d32=_0x871b7b();if(_0x298d32[_0x530bbc(_0x109b39._0x57bbe7)]!==null)return _0x298d32;}return{'channel':null};}__name(probeSystemBrowser,_0x56784f(0x21a));function _0x28d4(_0x41f874,_0x1cd41b){_0x41f874=_0x41f874-0x1d5;const _0x261b66=_0x261b();let _0x28d437=_0x261b66[_0x41f874];if(_0x28d4['hDyATC']===undefined){var _0x38abdc=function(_0x3c4658){const _0x162b27='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4185c3='',_0x534f82='';for(let _0x4cbaf5=0x0,_0x871b7b,_0x298d32,_0xf37512=0x0;_0x298d32=_0x3c4658['charAt'](_0xf37512++);~_0x298d32&&(_0x871b7b=_0x4cbaf5%0x4?_0x871b7b*0x40+_0x298d32:_0x298d32,_0x4cbaf5++%0x4)?_0x4185c3+=String['fromCharCode'](0xff&_0x871b7b>>(-0x2*_0x4cbaf5&0x6)):0x0){_0x298d32=_0x162b27['indexOf'](_0x298d32);}for(let _0x1550bc=0x0,_0x43d023=_0x4185c3['length'];_0x1550bc<_0x43d023;_0x1550bc++){_0x534f82+='%'+('00'+_0x4185c3['charCodeAt'](_0x1550bc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x534f82);};_0x28d4['AXAMmG']=_0x38abdc,_0x28d4['VaKLQw']={},_0x28d4['hDyATC']=!![];}const _0x16b455=_0x261b66[0x0],_0x294708=_0x41f874+_0x16b455,_0x210a7a=_0x28d4['VaKLQw'][_0x294708];return!_0x210a7a?(_0x28d437=_0x28d4['AXAMmG'](_0x28d437),_0x28d4['VaKLQw'][_0x294708]=_0x28d437):_0x28d437=_0x210a7a,_0x28d437;}function probeChrome(){const _0x336dbb={_0x4244b5:0x21c},_0xa8af3d=_0x56784f,_0xf37512=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0xf37512)return{'channel':'chrome','path':_0xf37512,'label':_0xa8af3d(_0x336dbb._0x4244b5)};return{'channel':null};}__name(probeChrome,_0x56784f(0x1e5));function probeEdge(){const _0x503828={_0x264ec8:0x1fd,_0x26513c:0x232},_0x46b327=_0x56784f,_0x1550bc=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x1550bc)return{'channel':_0x46b327(_0x503828._0x264ec8),'path':_0x1550bc,'label':_0x46b327(_0x503828._0x26513c)};return{'channel':null};}__name(probeEdge,_0x56784f(0x1f0));function probeChromeBeta(){const _0xea2f67={_0x176628:0x21f},_0x4c377b=_0x56784f,_0x43d023=firstExistingPath(CHROME_BETA_PATHS);if(_0x43d023)return{'channel':_0x4c377b(0x1f4),'path':_0x43d023,'label':_0x4c377b(_0xea2f67._0x176628)};return{'channel':null};}__name(probeChromeBeta,_0x56784f(0x1d6));var CHROME_PATHS=((()=>{const _0x5a833b={_0x543ece:0x208,_0x45410d:0x21e},_0xc1de65=_0x56784f;switch(process[_0xc1de65(0x22f)]){case _0xc1de65(0x1f1):return[_0xc1de65(0x21b)];case'win32':return[process[_0xc1de65(0x1dc)][_0xc1de65(0x204)]+_0xc1de65(0x200),process['env']['ProgramFiles(x86)']+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe',process['env']['LOCALAPPDATA']+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe'];default:return['/usr/bin/google-chrome',_0xc1de65(_0x5a833b._0x543ece),_0xc1de65(_0x5a833b._0x45410d),_0xc1de65(0x1d8),_0xc1de65(0x226)];}})()),CHROME_BIN_NAMES=[_0x56784f(0x228),_0x56784f(0x1e7),'chromium',_0x56784f(0x219)],EDGE_PATHS=((()=>{const _0x20deda={_0x3b1e5d:0x1f1,_0x1347e3:0x1dc,_0x318f09:0x203,_0x46e80c:0x1dd},_0x9fecd1=_0x56784f;switch(process[_0x9fecd1(0x22f)]){case _0x9fecd1(_0x20deda._0x3b1e5d):return['/Applications/Microsoft\x20Edge.app/Contents/MacOS/Microsoft\x20Edge'];case _0x9fecd1(0x1f5):return[process[_0x9fecd1(_0x20deda._0x1347e3)]['ProgramFiles']+_0x9fecd1(_0x20deda._0x318f09),process[_0x9fecd1(0x1dc)]['ProgramFiles(x86)']+'\x5cMicrosoft\x5cEdge\x5cApplication\x5cmsedge.exe'];default:return['/usr/bin/microsoft-edge',_0x9fecd1(_0x20deda._0x46e80c)];}})()),EDGE_BIN_NAMES=['microsoft-edge',_0x56784f(0x22e)],CHROME_BETA_PATHS=((()=>{const _0x511a39={_0x23e720:0x204},_0x1acf26=_0x56784f;switch(process['platform']){case'darwin':return[_0x1acf26(0x1df)];case _0x1acf26(0x1f5):return[process[_0x1acf26(0x1dc)][_0x1acf26(_0x511a39._0x23e720)]+_0x1acf26(0x225)];default:return[_0x1acf26(0x1ea)];}})());function firstExistingPath(_0x4eddd3){const _0x5ddacb=_0x56784f;for(const _0x5ab377 of _0x4eddd3){if(!_0x5ab377||_0x5ab377['startsWith'](_0x5ddacb(0x1d5)))continue;if(existsSync(_0x5ab377))return _0x5ab377;}return null;}__name(firstExistingPath,_0x56784f(0x205));function whichOf(_0xb7f873){const _0x243053={_0x961d4f:0x1ec,_0x14f2f5:0x218},_0xd6f211=_0x56784f;if(process['platform']==='win32')return void 0x0;for(const _0x271a9c of _0xb7f873){try{const _0xc8c13=execFileSync(_0xd6f211(0x1fc),[_0x271a9c],{'encoding':_0xd6f211(_0x243053._0x961d4f)})[_0xd6f211(0x1f2)]();if(_0xc8c13[_0xd6f211(_0x243053._0x14f2f5)]>0x0&&existsSync(_0xc8c13))return _0xc8c13;}catch{}}return void 0x0;}__name(whichOf,_0x56784f(0x1e4));function runEnvironmentChecks(_0x1e2904={}){const _0x4d0cd5={_0x2f4bdf:0x210},_0x4e5652=_0x56784f,_0x29ed25=_0x1e2904['cwd']??process[_0x4e5652(_0x4d0cd5._0x2f4bdf)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x29ed25)];}__name(runEnvironmentChecks,_0x56784f(0x1e9));function checkNodeVersion(){const _0x2be2a1={_0x524e2c:0x211,_0x42a98e:0x22d,_0x4e6d0c:0x206},_0x405d02=_0x56784f,_0x524225=process[_0x405d02(_0x2be2a1._0x524e2c)][_0x405d02(0x202)],_0x184b06=Number(_0x524225[_0x405d02(_0x2be2a1._0x42a98e)]('.')[0x0]);if(!Number[_0x405d02(0x22b)](_0x184b06)||_0x184b06<0x14)return{'name':'Node.js\x20version','severity':_0x405d02(_0x2be2a1._0x4e6d0c),'message':'requires\x20Node\x20≥20\x20(running\x20'+_0x524225+')','detail':'Install\x20Node\x2020+\x20via\x20nvm\x20/\x20fnm\x20/\x20volta\x20and\x20re-run.'};return{'name':'Node.js\x20version','severity':'ok','message':_0x524225};}__name(checkNodeVersion,_0x56784f(0x1da));function checkSystemBrowser(){const _0x246394={_0xe8c0d0:0x201},_0x3caa9d=_0x56784f,_0x15e97e=probeSystemBrowser();if(_0x15e97e[_0x3caa9d(0x215)]!==null)return{'name':_0x3caa9d(0x1e3),'severity':'ok','message':_0x15e97e[_0x3caa9d(_0x246394._0xe8c0d0)]+_0x3caa9d(0x21d),'detail':_0x15e97e[_0x3caa9d(0x1d7)]};return{'name':_0x3caa9d(0x1e3),'severity':'warning','message':_0x3caa9d(0x1d9),'detail':_0x3caa9d(0x1e6)};}__name(checkSystemBrowser,_0x56784f(0x220));function _0x261b(){const _0x418a10=['mte3nJK2mMXgthLPuG','y2HYB21LlwjLDge','D2LUmZi','C2nOzwr1BgvZ','yxbWu2vYDMvYqxjNCW','nJu2nJfesLH5t1i','yxv0Ag9Y','igrVzxmGBM90igv4Axn0','A2LUza','D2HPy2G','BxnLzgDL','DgfYz2v0ia','C2nLBMfYAw8','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','BgfIzwW','BM9Kzq','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','uhjVz3jHBuzPBgvZ','zMLYC3rfEgLZDgLUz1bHDgG','zxjYB3i','Dw5VDgvZDc13zwi','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','BMfTzq','mJy2mJy0r0Dosvnz','ls1ICMvHAW','ChjVAMvJDfjVB3q','y29SBgvJDgLVBG','yxv0Ag9YAw5N','yMfPBa','y3DK','DMvYC2LVBNm','C2nOzwr1BgvZqxjNCW','ls1IywLS','CMvZB2X2zujPBG','y2HHBM5LBa','ls1QC29U','yNvPBgrbCMDZ','BgvUz3rO','y2HYB21PDw0TyNjVD3nLCG','ChjVyMvtExn0zw1cCM93C2vY','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','r29Vz2XLienOCM9Tzq','igzVDw5K','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','r29Vz2XLienOCM9TzsbczxrH','y2HLy2TtExn0zw1cCM93C2vY','yxbWlxnLCNzLCG','yNvPBgrfBNy','CgLJA0jPBG','mJmXndH4rxbrD0G','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','ChvZAa','z29Vz2XLlwnOCM9Tzq','nJK4odaYmfD3yKPxqW','D29YA2vYCW','AxngAw5PDgu','mJG3Bfn5sNLx','C3bSAxq','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','CgXHDgzVCM0','ls13B3jRzxjZpq','zgvMAw5LuhjVCgvYDhK','twLJCM9ZB2z0ievKz2u','CgfYC2u','Dw5KzwzPBMvK','ChjVyMvdAhjVBwvczxrH','Cgf0Aa','l3vZCI9IAw4Vy2HYB21PDw0','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','y2HLy2ToB2rLvMvYC2LVBG','vgfYz2v0igrPCMvJDg9YEq','zw52','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','mtaXmJy1mtjpBeD2zvy','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','yMLU','ntiZndm3mg5XB2TkvW','vu5pvevtvf9iruferuq','u3LZDgvTigjYB3DZzxi','D2HPy2HpzG','ChjVyMvdAhjVBwu','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','odzjvvfSzvq','CNvUrw52AxjVBM1LBNrdAgvJA3m','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','mta1mJb3rw9MD1i','DxrMoa','yNjLywTWB2LUDhm','zgvIDwC','DMfSDwvZ','ChjVyMvfzgDL','zgfYD2LU','DhjPBq'];_0x261b=function(){return _0x418a10;};return _0x261b();}function checkWritableCwd(_0x4a7482){const _0x3f8d98={_0x25c8bc:0x206,_0x1f3fc9:0x1fa,_0x54b79a:0x1db},_0x1381f9=_0x56784f;if(!_0x4185c3(_0x4a7482))return{'name':'Target\x20directory','severity':_0x1381f9(_0x3f8d98._0x25c8bc),'message':_0x1381f9(0x1fe)+_0x4a7482+_0x1381f9(_0x3f8d98._0x1f3fc9),'detail':'Create\x20the\x20directory\x20or\x20run\x20init\x20in\x20an\x20existing\x20project\x20root.'};return{'name':_0x1381f9(_0x3f8d98._0x54b79a),'severity':'ok','message':_0x4a7482};}__name(checkWritableCwd,'checkWritableCwd');var PACKAGE_NAME='@unotest/web',WebRunnerAdapter=class{static{__name(this,'WebRunnerAdapter');}['name']=PACKAGE_NAME;['suffix']='';[_0x56784f(0x1ee)]={'picker':!![],'attach':!![],'resumeFromFailure':![]};['supportedKinds']=[_0x56784f(0x1ff),_0x56784f(0x20d),_0x56784f(0x20e)];[_0x56784f(0x214)](){const _0x29c66b={_0xc91668:0x233,_0x58c4ff:0x1ec},_0x4cb7d0=_0x56784f,_0x5419e1=createRequire(import.meta.url),_0x2d1c29=_0x5419e1['resolve'](PACKAGE_NAME+'/package.json'),_0x3f2bc8=JSON[_0x4cb7d0(_0x29c66b._0xc91668)](readFileSync(_0x2d1c29,_0x4cb7d0(_0x29c66b._0x58c4ff))),_0x491e6a=pickBin(_0x3f2bc8);if(!_0x491e6a)throw new Error(PACKAGE_NAME+'\x20package.json\x20declares\x20no\x20\x27bin\x27\x20field\x20—\x20broken\x20install?');return join(dirname(_0x2d1c29),_0x491e6a);}[_0x56784f(0x217)](_0x384bc6){const _0x5854db={_0x4d9a6c:0x1fb,_0x35c6b1:0x227,_0x2a0171:0x20b,_0x5f109f:0x1fb,_0x24ff31:0x20d,_0x2037c6:0x22a,_0xafcbee:0x213},_0x55ad28=_0x56784f;if(_0x384bc6[_0x55ad28(_0x5854db._0x4d9a6c)]===_0x55ad28(0x1ff)){const _0x564d0b=['e2e',_0x384bc6[_0x55ad28(0x1ff)]];if(_0x384bc6[_0x55ad28(0x1ee)])_0x564d0b[_0x55ad28(0x227)]('--debug');return _0x384bc6['breakpoints']&&_0x384bc6['breakpoints'][_0x55ad28(0x218)]>0x0&&_0x564d0b[_0x55ad28(_0x5854db._0x35c6b1)](_0x55ad28(_0x5854db._0x2a0171),_0x384bc6[_0x55ad28(0x1ed)]['join'](',')),_0x564d0b;}if(_0x384bc6[_0x55ad28(_0x5854db._0x5f109f)]===_0x55ad28(0x20d)){const _0x1440d5=[_0x55ad28(0x20d),_0x384bc6[_0x55ad28(_0x5854db._0x24ff31)]];_0x384bc6['workers']!==void 0x0&&_0x384bc6[_0x55ad28(_0x5854db._0x2037c6)]>0x1&&_0x1440d5[_0x55ad28(_0x5854db._0x35c6b1)](_0x55ad28(0x230)+_0x384bc6[_0x55ad28(0x22a)]);if(_0x384bc6[_0x55ad28(0x20f)])_0x1440d5['push'](_0x55ad28(_0x5854db._0xafcbee));return _0x1440d5;}if(_0x384bc6['kind']===_0x55ad28(0x20e))return[_0x55ad28(0x1f9),_0x384bc6[_0x55ad28(0x1ff)]];const _0x5c79e6=_0x384bc6;throw new UnsupportedRunKindError(_0x5c79e6[_0x55ad28(0x1fb)],this[_0x55ad28(0x209)]);}[_0x56784f(0x222)](_0x5e1bef){const _0x1fea34={_0xf4f887:0x1e2},_0x232186=_0x56784f,_0x50efd5={};if(_0x5e1bef['headed'])_0x50efd5[_0x232186(_0x1fea34._0xf4f887)]='1';return _0x50efd5;}[_0x56784f(0x1f7)](){const _0x1a02e8={_0x15ebdf:0x221},_0x362bdf=_0x56784f;return[_0x362bdf(_0x1a02e8._0x15ebdf)];}[_0x56784f(0x212)](){const _0x4dcc9b=_0x56784f;return[_0x4dcc9b(0x1f6),_0x4dcc9b(0x216)];}async['doctor'](_0x4ce12e){const _0xe9a8f4=_0x56784f;return runEnvironmentChecks({'cwd':_0x4ce12e[_0xe9a8f4(0x20c)]});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x5d62ef){const _0x132de2={_0x264b13:0x1e0,_0x3cdd67:0x207},_0x593424=_0x56784f;if(typeof _0x5d62ef['bin']==='string')return _0x5d62ef[_0x593424(0x1e0)];if(_0x5d62ef[_0x593424(_0x132de2._0x264b13)]&&typeof _0x5d62ef[_0x593424(_0x132de2._0x264b13)]==='object')return _0x5d62ef[_0x593424(_0x132de2._0x264b13)][_0x593424(_0x132de2._0x3cdd67)]??Object[_0x593424(0x1ef)](_0x5d62ef['bin'])[0x0]??null;return null;}__name(pickBin,_0x56784f(0x223));export{web_runner_adapter_default as default,webRunnerAdapter};
|
|
1
|
+
const _0x329235=_0x4484;(function(_0x23ce44,_0x19c714){const _0x2df816={_0x1120d7:0x165,_0x2d00eb:0x160,_0x1bfe2a:0x190,_0x2cbcac:0x185,_0x2e9ee2:0x15c,_0x442285:0x17e,_0x3e73eb:0x180},_0x5f86d7=_0x4484,_0x273b87=_0x23ce44();while(!![]){try{const _0x435dd1=-parseInt(_0x5f86d7(_0x2df816._0x1120d7))/0x1+-parseInt(_0x5f86d7(0x16d))/0x2*(-parseInt(_0x5f86d7(_0x2df816._0x2d00eb))/0x3)+-parseInt(_0x5f86d7(_0x2df816._0x1bfe2a))/0x4*(parseInt(_0x5f86d7(_0x2df816._0x2cbcac))/0x5)+-parseInt(_0x5f86d7(0x193))/0x6*(-parseInt(_0x5f86d7(_0x2df816._0x2e9ee2))/0x7)+-parseInt(_0x5f86d7(_0x2df816._0x442285))/0x8*(parseInt(_0x5f86d7(0x181))/0x9)+parseInt(_0x5f86d7(0x163))/0xa+-parseInt(_0x5f86d7(_0x2df816._0x3e73eb))/0xb*(parseInt(_0x5f86d7(0x19e))/0xc);if(_0x435dd1===_0x19c714)break;else _0x273b87['push'](_0x273b87['shift']());}catch(_0x9a4d1d){_0x273b87['push'](_0x273b87['shift']());}}}(_0x55f9,0x8d0b1));var __defProp=Object[_0x329235(0x1b2)],__name=(_0x24b8b6,_0x514ca5)=>__defProp(_0x24b8b6,_0x329235(0x1ac),{'value':_0x514ca5,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x29a0e1}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x3e18f8=_0x329235;for(const _0xe7d544 of[probeChrome,probeEdge,probeChromeBeta]){const _0x77aa24=_0xe7d544();if(_0x77aa24[_0x3e18f8(0x18f)]!==null)return _0x77aa24;}return{'channel':null};}__name(probeSystemBrowser,_0x329235(0x1a5));function probeChrome(){const _0x261d1c={_0x112ca6:0x1c0,_0x493737:0x164},_0x2b4dce=_0x329235,_0x24a29d=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x24a29d)return{'channel':_0x2b4dce(_0x261d1c._0x112ca6),'path':_0x24a29d,'label':_0x2b4dce(_0x261d1c._0x493737)};return{'channel':null};}__name(probeChrome,_0x329235(0x19d));function probeEdge(){const _0x4a345d=_0x329235,_0x61672a=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x61672a)return{'channel':_0x4a345d(0x16e),'path':_0x61672a,'label':_0x4a345d(0x19b)};return{'channel':null};}__name(probeEdge,_0x329235(0x1b0));function probeChromeBeta(){const _0x563517={_0x2298c5:0x15b},_0x14a6c0=_0x329235,_0x37a41b=firstExistingPath(CHROME_BETA_PATHS);if(_0x37a41b)return{'channel':_0x14a6c0(_0x563517._0x2298c5),'path':_0x37a41b,'label':_0x14a6c0(0x1aa)};return{'channel':null};}function _0x55f9(){const _0x2e1f29=['vu5pvevtvf9iruferuq','BwLJCM9ZB2z0lwvKz2u','C3bSAxq','y2HLy2TxCML0ywjSzun3za','yNvPBgrfBNy','DMvYC2LVBNm','yxbWlxnLCNzLCG','mZeXmNzoyxflra','AgvHzgvK','mJmXwfnPCgXW','mJG2mKvnqxLxvG','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','yNjLywTWB2LUDhm','qhvUB3rLC3qVD2vI','nJCZntbesvbpzuS','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','v2vIuNvUBMvYqwrHChrLCG','C2nOzwr1BgvZ','te9dquXbufbeqvrb','ztjL','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','yMfPBa','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','y2HHBM5LBa','mJr1Cvzts3m','yxv0Ag9Y','y2HYB21PDw0','ndiXnJH1ALPpte4','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','igzVDw5K','ls1QC29U','ls1IywLS','C2nLBMfYAw8','ChvZAa','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','twLJCM9ZB2z0ievKz2u','uhjVz3jHBuzPBgvZkhG4nIK','ChjVyMvdAhjVBwu','ndq5ntjhr3zouNm','C2nOzwr1BgvZqxjNCW','ChjVAMvJDfjVB3q','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','ls13B3jRzxjZpq','ihbHy2THz2uUANnVBIbKzwnSyxjLCYbUBYaNyMLUjYbMAwvSzcdIGjqGyNjVA2vUigLUC3rHBgW/','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','ChjVyMvtExn0zw1cCM93C2vY','l3vZCI9IAw4Vy2HYB21PDw0','zMLYC3rfEgLZDgLUz1bHDgG','DxrMoa','DMfSDwvZ','r29Vz2XLienOCM9TzsbczxrH','yMLU','BMfTzq','Cgf0Aa','AM9PBG','CgfYC2u','ChjVyMvfzgDL','zgvIDwC','zgvMAw5LuhjVCgvYDhK','zxjYB3i','CNvUrw52AxjVBM1LBNrdAgvJA3m','yxbWu2vYDMvYqxjNCW','CMvZB2X2zujPBG','D29YA2vYCW','CMvZB2X2zq','C3rHCNrZv2L0Aa','B2jQzwn0','z29Vz2XLlwnOCM9Tzq','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','yxv0Ag9YAw5N','C3vMzML4','DgfYz2v0ia','y2HYB21L','BM9Kzq','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','D2HPy2G','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','y3DK','y2HYB21PDw0TyNjVD3nLCG','zw52','y2HYB21LlwjLDge','mZaXqLD3tfLA','uhjVz3jHBuzPBgvZ','CgXHDgzVCM0','D2LUmZi','nde4ndiYCK1rq3H4','tM9Kzs5QCYb2zxjZAw9U','y29SBgvJDgLVBG','nZaZndCYmhPeyMz0za','r29Vz2XLienOCM9Tzq','mJG0mJq5r2XwvMLY','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','A2LUza','ChjVyMvdAhjVBwvczxrH','vgfYz2v0igrPCMvJDg9YEq','igrVzxmGBM90igv4Axn0','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','D2fYBMLUzW','mNnVC0ztwq','BxnLzgDL','l3bHy2THz2uUANnVBG','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','zgfYD2LU','DhjPBq','D2HPy2HpzG','C3rYAw5N','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','zg9JDg9Y'];_0x55f9=function(){return _0x2e1f29;};return _0x55f9();}__name(probeChromeBeta,_0x329235(0x168));var CHROME_PATHS=((()=>{const _0x443300={_0x5a5500:0x171,_0x27f36e:0x15f,_0x82cb4c:0x15a,_0x5e2d11:0x175,_0x2a572c:0x189,_0x4aea0c:0x175,_0x4b9928:0x1a6,_0x155077:0x166},_0x5e38b=_0x329235;switch(process['platform']){case _0x5e38b(_0x443300._0x5a5500):return['/Applications/Google\x20Chrome.app/Contents/MacOS/Google\x20Chrome'];case _0x5e38b(_0x443300._0x27f36e):return[process['env'][_0x5e38b(0x15d)]+_0x5e38b(0x175),process[_0x5e38b(_0x443300._0x82cb4c)][_0x5e38b(0x19c)]+_0x5e38b(_0x443300._0x5e2d11),process['env'][_0x5e38b(_0x443300._0x2a572c)]+_0x5e38b(_0x443300._0x4aea0c)];default:return[_0x5e38b(0x194),'/usr/bin/google-chrome-stable',_0x5e38b(0x182),_0x5e38b(_0x443300._0x4b9928),_0x5e38b(_0x443300._0x155077)];}})()),CHROME_BIN_NAMES=[_0x329235(0x1bb),_0x329235(0x18e),_0x329235(0x192),_0x329235(0x159)],EDGE_PATHS=((()=>{const _0xbd3c72={_0x269913:0x171,_0x144859:0x18b,_0x4932ca:0x15a,_0x3ea6a4:0x19c,_0x34a818:0x18b,_0x72058b:0x1a4},_0x144925=_0x329235;switch(process['platform']){case _0x144925(_0xbd3c72._0x269913):return[_0x144925(0x170)];case _0x144925(0x15f):return[process['env']['ProgramFiles']+_0x144925(_0xbd3c72._0x144859),process[_0x144925(_0xbd3c72._0x4932ca)][_0x144925(_0xbd3c72._0x3ea6a4)]+_0x144925(_0xbd3c72._0x34a818)];default:return[_0x144925(0x18d),_0x144925(_0xbd3c72._0x72058b)];}})()),EDGE_BIN_NAMES=[_0x329235(0x178),_0x329235(0x1c2)],CHROME_BETA_PATHS=((()=>{const _0x4e9a0e={_0x3d6626:0x15e,_0x1fba36:0x15a,_0x1b9be8:0x15d,_0x483413:0x1c4},_0x5173d6=_0x329235;switch(process[_0x5173d6(_0x4e9a0e._0x3d6626)]){case'darwin':return['/Applications/Google\x20Chrome\x20Beta.app/Contents/MacOS/Google\x20Chrome\x20Beta'];case'win32':return[process[_0x5173d6(_0x4e9a0e._0x1fba36)][_0x5173d6(_0x4e9a0e._0x1b9be8)]+_0x5173d6(0x1bc)];default:return[_0x5173d6(_0x4e9a0e._0x483413)];}})());function firstExistingPath(_0x42e76c){const _0x4be375=_0x329235;for(const _0x5b8d07 of _0x42e76c){if(!_0x5b8d07||_0x5b8d07[_0x4be375(0x1b9)]('undefined'))continue;if(existsSync(_0x5b8d07))return _0x5b8d07;}return null;}__name(firstExistingPath,_0x329235(0x1a7));function whichOf(_0x515f7c){const _0x93ad7a={_0x1038a7:0x15e},_0x55ab7c=_0x329235;if(process[_0x55ab7c(_0x93ad7a._0x1038a7)]==='win32')return void 0x0;for(const _0x3231fc of _0x515f7c){try{const _0x4a1abe=execFileSync(_0x55ab7c(0x1c3),[_0x3231fc],{'encoding':'utf8'})[_0x55ab7c(0x172)]();if(_0x4a1abe['length']>0x0&&existsSync(_0x4a1abe))return _0x4a1abe;}catch{}}return void 0x0;}__name(whichOf,_0x329235(0x173));function runEnvironmentChecks(_0x158fcf={}){const _0x37a503={_0x24614f:0x158},_0x3878ed=_0x329235,_0x2d4351=_0x158fcf[_0x3878ed(_0x37a503._0x24614f)]??process[_0x3878ed(_0x37a503._0x24614f)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x2d4351)];}__name(runEnvironmentChecks,_0x329235(0x1b4));function checkNodeVersion(){const _0x153670={_0x41f19b:0x17c,_0xa7532e:0x161,_0x57eb7b:0x1b3,_0x3426b8:0x19a,_0x39b1a5:0x161},_0x4c5393=_0x329235,_0x175073=process[_0x4c5393(_0x153670._0x41f19b)][_0x4c5393(0x1c1)],_0x346f2b=Number(_0x175073[_0x4c5393(0x179)]('.')[0x0]);if(!Number['isFinite'](_0x346f2b)||_0x346f2b<0x14)return{'name':_0x4c5393(_0x153670._0xa7532e),'severity':_0x4c5393(_0x153670._0x57eb7b),'message':_0x4c5393(_0x153670._0x3426b8)+_0x175073+')','detail':_0x4c5393(0x16b)};return{'name':_0x4c5393(_0x153670._0x39b1a5),'severity':'ok','message':_0x175073};}__name(checkNodeVersion,'checkNodeVersion');function checkSystemBrowser(){const _0x34b38f={_0x5ab5ba:0x1ad,_0x678c94:0x186,_0x136dc6:0x157},_0x2d78cb=_0x329235,_0x40f3e2=probeSystemBrowser();if(_0x40f3e2[_0x2d78cb(0x18f)]!==null)return{'name':'System\x20browser','severity':'ok','message':_0x40f3e2['label']+_0x2d78cb(0x195),'detail':_0x40f3e2[_0x2d78cb(_0x34b38f._0x5ab5ba)]};return{'name':'System\x20browser','severity':_0x2d78cb(0x16c),'message':_0x2d78cb(_0x34b38f._0x678c94),'detail':_0x2d78cb(_0x34b38f._0x136dc6)};}__name(checkSystemBrowser,'checkSystemBrowser');function checkWritableCwd(_0x299415){const _0x50de6d={_0x36c8d3:0x1b3,_0x3bb47e:0x1bf,_0x5beb31:0x1a1},_0x410f76=_0x329235;if(!_0x29a0e1(_0x299415))return{'name':_0x410f76(0x169),'severity':_0x410f76(_0x50de6d._0x36c8d3),'message':_0x410f76(_0x50de6d._0x3bb47e)+_0x299415+_0x410f76(0x16a),'detail':_0x410f76(_0x50de6d._0x5beb31)};return{'name':_0x410f76(0x169),'severity':'ok','message':_0x299415};}function _0x4484(_0x3ff6e8,_0x4d140f){_0x3ff6e8=_0x3ff6e8-0x157;const _0x55f992=_0x55f9();let _0x448476=_0x55f992[_0x3ff6e8];if(_0x4484['bHnHMe']===undefined){var _0x2859d7=function(_0x56a38c){const _0x4828cf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29a0e1='',_0x24b8b6='';for(let _0x514ca5=0x0,_0xe7d544,_0x77aa24,_0x24a29d=0x0;_0x77aa24=_0x56a38c['charAt'](_0x24a29d++);~_0x77aa24&&(_0xe7d544=_0x514ca5%0x4?_0xe7d544*0x40+_0x77aa24:_0x77aa24,_0x514ca5++%0x4)?_0x29a0e1+=String['fromCharCode'](0xff&_0xe7d544>>(-0x2*_0x514ca5&0x6)):0x0){_0x77aa24=_0x4828cf['indexOf'](_0x77aa24);}for(let _0x61672a=0x0,_0x37a41b=_0x29a0e1['length'];_0x61672a<_0x37a41b;_0x61672a++){_0x24b8b6+='%'+('00'+_0x29a0e1['charCodeAt'](_0x61672a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x24b8b6);};_0x4484['wsOxbd']=_0x2859d7,_0x4484['MOcnRO']={},_0x4484['bHnHMe']=!![];}const _0x367359=_0x55f992[0x0],_0x252d31=_0x3ff6e8+_0x367359,_0x49ce1d=_0x4484['MOcnRO'][_0x252d31];return!_0x49ce1d?(_0x448476=_0x4484['wsOxbd'](_0x448476),_0x4484['MOcnRO'][_0x252d31]=_0x448476):_0x448476=_0x49ce1d,_0x448476;}__name(checkWritableCwd,_0x329235(0x17a));var PACKAGE_NAME=_0x329235(0x184),WebRunnerAdapter=class{static{__name(this,_0x329235(0x187));}[_0x329235(0x1ac)]=PACKAGE_NAME;[_0x329235(0x1be)]='';['debug']={'picker':!![],'attach':!![],'resumeFromFailure':![]};['supportedKinds']=['scenario',_0x329235(0x162),_0x329235(0x1bd)];[_0x329235(0x1b6)](){const _0x40aab7={_0x194042:0x16f,_0x4f5d74:0x1a8,_0x366f20:0x1a3},_0x2d097a=_0x329235,_0x33d343=createRequire(import.meta.url),_0x5e4a42=_0x33d343[_0x2d097a(0x1b8)](PACKAGE_NAME+_0x2d097a(_0x40aab7._0x194042)),_0x2a8e00=JSON[_0x2d097a(0x1af)](readFileSync(_0x5e4a42,_0x2d097a(_0x40aab7._0x4f5d74))),_0xc9b0bf=pickBin(_0x2a8e00);if(!_0xc9b0bf)throw new Error(PACKAGE_NAME+_0x2d097a(_0x40aab7._0x366f20));return join(dirname(_0x5e4a42),_0xc9b0bf);}['buildArgs'](_0x17aa74){const _0x2ad116={_0x2d43a3:0x18a,_0x5b5606:0x198,_0x4189be:0x183,_0x172360:0x183,_0x233f29:0x1ae,_0x2b59ea:0x1b7,_0xa456a7:0x1a2,_0x127100:0x18c,_0x1365a8:0x191},_0x2c6c4c=_0x329235;if(_0x17aa74[_0x2c6c4c(0x167)]==='scenario'){const _0x3785b1=[_0x2c6c4c(_0x2ad116._0x2d43a3),_0x17aa74[_0x2c6c4c(_0x2ad116._0x5b5606)]];if(_0x17aa74[_0x2c6c4c(0x1b1)])_0x3785b1['push']('--debug');return _0x17aa74[_0x2c6c4c(_0x2ad116._0x4189be)]&&_0x17aa74[_0x2c6c4c(_0x2ad116._0x172360)]['length']>0x0&&_0x3785b1['push']('--break',_0x17aa74[_0x2c6c4c(0x183)][_0x2c6c4c(_0x2ad116._0x233f29)](',')),_0x3785b1;}if(_0x17aa74['kind']==='collection'){const _0x3ad045=['collection',_0x17aa74['collection']];_0x17aa74[_0x2c6c4c(0x1b7)]!==void 0x0&&_0x17aa74[_0x2c6c4c(_0x2ad116._0x2b59ea)]>0x1&&_0x3ad045[_0x2c6c4c(0x199)](_0x2c6c4c(_0x2ad116._0xa456a7)+_0x17aa74[_0x2c6c4c(0x1b7)]);if(_0x17aa74[_0x2c6c4c(_0x2ad116._0x127100)])_0x3ad045['push'](_0x2c6c4c(0x197));return _0x3ad045;}if(_0x17aa74[_0x2c6c4c(0x167)]===_0x2c6c4c(0x1bd))return[_0x2c6c4c(_0x2ad116._0x1365a8),_0x17aa74[_0x2c6c4c(_0x2ad116._0x5b5606)]];const _0x48a217=_0x17aa74;throw new UnsupportedRunKindError(_0x48a217['kind'],this['name']);}[_0x329235(0x17b)](_0x4d8391){const _0x15347b={_0x5201fd:0x17f,_0x124018:0x177},_0x34227a=_0x329235,_0x2a75c0={};if(_0x4d8391[_0x34227a(_0x15347b._0x5201fd)])_0x2a75c0[_0x34227a(_0x15347b._0x124018)]='1';return _0x2a75c0;}[_0x329235(0x1b5)](){const _0x534a11=_0x329235;return[_0x534a11(0x17d)];}[_0x329235(0x19f)](){const _0x4a52b3={_0x4bd66f:0x196},_0x6b533a=_0x329235;return[_0x6b533a(0x188),_0x6b533a(_0x4a52b3._0x4bd66f)];}async[_0x329235(0x176)](_0x581ffd){const _0x32716e=_0x329235;return runEnvironmentChecks({'cwd':_0x581ffd[_0x32716e(0x1a0)]});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x3979f8){const _0x2f08f2={_0x18648d:0x174,_0x3972b0:0x1ba},_0x1e470d=_0x329235;if(typeof _0x3979f8[_0x1e470d(0x1ab)]===_0x1e470d(_0x2f08f2._0x18648d))return _0x3979f8[_0x1e470d(0x1ab)];if(_0x3979f8[_0x1e470d(0x1ab)]&&typeof _0x3979f8['bin']===_0x1e470d(_0x2f08f2._0x3972b0))return _0x3979f8['bin']['unotest-web']??Object[_0x1e470d(0x1a9)](_0x3979f8[_0x1e470d(0x1ab)])[0x0]??null;return null;}__name(pickBin,'pickBin');export{web_runner_adapter_default as default,webRunnerAdapter};
|
|
@@ -105,9 +105,12 @@ snapshot tools switch to snapshot-free wording.
|
|
|
105
105
|
|
|
106
106
|
`UNOTEST_TOOLSET=core` narrows the whole surface to the minimal
|
|
107
107
|
explore-first loop for small local models: `new_context`,
|
|
108
|
-
`explore_start` / `explore_step` / `explore_steps` / `
|
|
109
|
-
`ground_element` (still needs `UNOTEST_GROUNDER_MODE`),
|
|
110
|
-
`save_exploration_as_test`, `run_test`.
|
|
108
|
+
`explore_start` / `explore_step` / `explore_steps` / `explore_step_result`
|
|
109
|
+
/ `explore_stop`, `ground_element` (still needs `UNOTEST_GROUNDER_MODE`),
|
|
110
|
+
`save_exploration_as_test`, `run_test`. `explore_step_result` is in the
|
|
111
|
+
core set for the same reason it exists at all: a step that outruns the
|
|
112
|
+
client's patience answers with a task id, and a set that can hand out
|
|
113
|
+
ids but not redeem them is worse than one with no background at all. assert_* actions and the
|
|
111
114
|
`autoRun` flag live inside `explore_steps` (actions are not tools), so
|
|
112
115
|
the core happy-path is `explore_start` (it opens the context itself) →
|
|
113
116
|
`explore_steps {…, autoRun: true}`; save/run stay registered as the
|
|
@@ -122,7 +125,36 @@ driver runs `core` from the same code. Typical matrices:
|
|
|
122
125
|
# local-model driver: UNOTEST_TOOLSET=core UNOTEST_SNAPSHOT=0 UNOTEST_GROUNDER_MODE=local
|
|
123
126
|
```
|
|
124
127
|
|
|
125
|
-
###
|
|
128
|
+
### A step that takes minutes
|
|
129
|
+
|
|
130
|
+
An MCP client stops waiting for a tool call at about two minutes and
|
|
131
|
+
carries on in the background; whatever the call answers after that is
|
|
132
|
+
lost. Waiting four minutes for a slow page is an ordinary thing to ask,
|
|
133
|
+
so `explore_step` and `explore_steps` hand the work a task id instead of
|
|
134
|
+
holding the channel:
|
|
135
|
+
|
|
136
|
+
- under 90 seconds — the ordinary reply, exactly as before, no task id
|
|
137
|
+
and no second call;
|
|
138
|
+
- over it — `{ status: "accepted", taskId, hint }`. The step is **not**
|
|
139
|
+
cut short: it keeps its own `options.timeout` and records into the
|
|
140
|
+
session as usual. A batch goes to the background whole, under one id —
|
|
141
|
+
its steps run one after another on one page, so there is no half of it
|
|
142
|
+
to hand back;
|
|
143
|
+
- collect it with `explore_step_result({ taskId })`: `running` (with
|
|
144
|
+
`elapsedMs`), `done` (with the reply the step would have given and
|
|
145
|
+
`durationMs`, the whole step from its start — not just the part after
|
|
146
|
+
the threshold), `failed`, or `unknown` — an id this server does not have, because it
|
|
147
|
+
restarted or because the result was collected more than ten minutes
|
|
148
|
+
ago.
|
|
149
|
+
|
|
150
|
+
While a step is out there the browser context is busy, and the tools say
|
|
151
|
+
so rather than damaging it: a second `explore_step`, `explore_stop` and
|
|
152
|
+
`close_context` answer `{ status: "busy", pendingTaskId, hint }`. Two
|
|
153
|
+
actions on one page fight each other, and stopping or closing would cut
|
|
154
|
+
the step off mid-way. `explore_state` lists what is pending, so an agent
|
|
155
|
+
that lost a task id does not simply run the same step again.
|
|
156
|
+
|
|
157
|
+
### Exploration (11)
|
|
126
158
|
|
|
127
159
|
The recording loop: every action is performed and written down in one
|
|
128
160
|
call, so the exploration is a draft scenario from the first step.
|
|
@@ -132,6 +164,8 @@ call, so the exploration is a draft scenario from the first step.
|
|
|
132
164
|
resolved here
|
|
133
165
|
- `explore_steps` — several actions in one call, `autoRun` to run the
|
|
134
166
|
result immediately
|
|
167
|
+
- `explore_step_result` — collect a step or batch that went to the
|
|
168
|
+
background (see above)
|
|
135
169
|
- `explore_state` / `explore_steps` — what has been recorded so far
|
|
136
170
|
- `explore_record` — add a step without performing it
|
|
137
171
|
- `explore_remove_step` — drop a recorded step
|
|
@@ -167,7 +201,17 @@ directly. Detailed workflow in `debugger-tools.md`.
|
|
|
167
201
|
- `attach_debug_session` / `detach_debug_session` — join the run a human
|
|
168
202
|
is already driving in the viewer, instead of opening a second browser.
|
|
169
203
|
- `take_wheel` / `release_wheel` — take control of that shared session,
|
|
170
|
-
and hand it back.
|
|
204
|
+
and hand it back. `take_wheel` also points this session's browser at the
|
|
205
|
+
run, so the next screenshot is of the page being debugged; when it
|
|
206
|
+
cannot (a recording is open, the run has no browser or no page yet) it
|
|
207
|
+
says so with a status and what to do, instead of answering `ok`.
|
|
208
|
+
`release_wheel` leaves the browser on the run.
|
|
209
|
+
|
|
210
|
+
Every `explore_step` reply carries `context` — `{kind: "run", runtimeId}`
|
|
211
|
+
when the step ran on a run's browser, `{kind: "own"}` when it ran on one
|
|
212
|
+
this session opened. A session has exactly one context: `take_wheel` /
|
|
213
|
+
`attach_debug_session` point it at a run, `explore_start` / `new_context`
|
|
214
|
+
at your own, and `explorationId` never chooses a browser.
|
|
171
215
|
|
|
172
216
|
### Multi-context (4)
|
|
173
217
|
|
|
@@ -209,7 +253,9 @@ Auto-switch runs **only** under `explore_step` (recording / ad-hoc).
|
|
|
209
253
|
|
|
210
254
|
### Failure bundle introspection (6)
|
|
211
255
|
|
|
212
|
-
- `list_failures` — bundles on disk, newest first
|
|
256
|
+
- `list_failures` — bundles on disk, newest first, each with `runState`
|
|
257
|
+
(`paused` while the run is still held at that failure, else `finished`
|
|
258
|
+
/ `aborted`)
|
|
213
259
|
- `get_failure_trace` — `failure.json` + error + line/col
|
|
214
260
|
- `get_failure_console` — captured console entries (last 100)
|
|
215
261
|
- `get_failure_a11y` — semantic-DOM snapshot at failure moment
|
|
@@ -218,6 +264,12 @@ Auto-switch runs **only** under `explore_step` (recording / ad-hoc).
|
|
|
218
264
|
- `get_failure_network` — HAR (tier 3 — not yet wired, see
|
|
219
265
|
`KNOWN_ISSUES.md`)
|
|
220
266
|
|
|
267
|
+
A run paused on its failure has a bundle too — written at the pause, from
|
|
268
|
+
the page the failure happened on — so these six answer while the browser
|
|
269
|
+
is still standing there, which is when the answer is worth most. See
|
|
270
|
+
`debugger-tools.md` for what `runState` means and
|
|
271
|
+
how the frame behaves across `resume` and `abort_runtime`.
|
|
272
|
+
|
|
221
273
|
### Reading a box (6)
|
|
222
274
|
|
|
223
275
|
The route these belong to is above, under
|
|
@@ -233,6 +285,50 @@ this is the list.
|
|
|
233
285
|
- `box_queue` — who is waiting, who is running
|
|
234
286
|
- `box_screenshot` — one frame the run captured, as an image
|
|
235
287
|
|
|
288
|
+
### Cloud account (9)
|
|
289
|
+
|
|
290
|
+
The account that rents boxes, as tools: the same operations as the
|
|
291
|
+
`box` commands and `approvals`, through the same code, so a box reads the
|
|
292
|
+
same whether an agent or a person asked. They act with the key
|
|
293
|
+
`npx @unotest/web login` stored on this machine (or
|
|
294
|
+
`UNOTEST_CLOUD_TOKEN`).
|
|
295
|
+
|
|
296
|
+
- `cloud_boxes_list` — every box on the account, with its state
|
|
297
|
+
- `cloud_box_status` — one box: state, address, paid-until, projects,
|
|
298
|
+
Picker
|
|
299
|
+
- `cloud_box_create` — rent a box (`name`, `envs`, `size?`, `picker?`)
|
|
300
|
+
- `cloud_box_destroy` — delete a box and everything on it
|
|
301
|
+
- `cloud_box_access` — a fresh push + read token pair, written into
|
|
302
|
+
`unotest/.env` and `unotest/.secrets` the way `box access` does. No
|
|
303
|
+
token is ever typed or copied: the answer names what was written where,
|
|
304
|
+
never a value
|
|
305
|
+
- `cloud_box_update` — move a box to the version the cloud offers it
|
|
306
|
+
- `cloud_box_logs` — the end of the box's `bootstrap` or `updater` log
|
|
307
|
+
- `cloud_balance` — what is left on the account
|
|
308
|
+
- `cloud_approval_wait` — wait for a person to answer a request; without
|
|
309
|
+
an `id`, list what is waiting
|
|
310
|
+
|
|
311
|
+
What they answer instead of failing, so an agent can act on it:
|
|
312
|
+
|
|
313
|
+
| answer | when | what to do |
|
|
314
|
+
|---|---|---|
|
|
315
|
+
| `{state: "not-logged-in", next}` | no cloud login on this machine | ask your person to run `next` |
|
|
316
|
+
| `{state: "approval-pending", approval, next}` | a create or a delete by a key that may not spend or delete by itself | call `cloud_approval_wait` with `approval.id`; a person answers in the cabinet |
|
|
317
|
+
| `{state: "top-up-needed", firstHourCents, balanceCents, missingCents, url}` | `cloud_box_create` with a balance short of the first hour; a figure the key may not read is `null` | ask your person to add credit on the cabinet page at `url`, then create again — there is no top-up an agent can make |
|
|
318
|
+
| `{state: "still-waiting"}` | nobody answered within `timeoutSeconds` | call `cloud_approval_wait` again |
|
|
319
|
+
| `{state: "declined"}` / `{state: "expired"}` | a person said no, or nobody answered in ten minutes | nothing was created and nothing was charged |
|
|
320
|
+
| `{state: "insufficient-scope"}` | the key lacks the permission the tool needs | ask the account's owner for a key that has it |
|
|
321
|
+
| `{kind: "requested"}` from `cloud_box_logs` | the box sends its log on its next five-minute check | call again after that |
|
|
322
|
+
|
|
323
|
+
Only the CI key of an operator account, one that unotest runs itself, acts
|
|
324
|
+
with nobody watching. Every key a customer holds — one an agent got through
|
|
325
|
+
`login`, and a CI key issued before keys for agents existed — waits for a
|
|
326
|
+
person on renting, deleting and turning the Picker on, and no tool can
|
|
327
|
+
approve its own request.
|
|
328
|
+
|
|
329
|
+
They are not in `UNOTEST_TOOLSET=core`: a recording agent has no use for
|
|
330
|
+
them.
|
|
331
|
+
|
|
236
332
|
### `ground_element` (1, experimental, off by default)
|
|
237
333
|
|
|
238
334
|
Registered when `UNOTEST_GROUNDER_MODE` is `local` or `remote` for the
|
|
@@ -457,7 +553,10 @@ Where the route starts differently:
|
|
|
457
553
|
failing streak — the answer a single status cannot give. `{ running:
|
|
458
554
|
true }` shows what is in flight.
|
|
459
555
|
- **No environment name?** `box_envs` lists them as
|
|
460
|
-
`<project>/<environment>`, with the bundle each is serving.
|
|
556
|
+
`<project>/<environment>`, with the bundle each is serving. An empty
|
|
557
|
+
list is an answer: the box names no environments, and every `box_*`
|
|
558
|
+
tool that takes one says so instead of asking the box — do not retry
|
|
559
|
+
with another spelling, there is nothing on that box to spell.
|
|
461
560
|
- **The run never started?** `box_queue { environment }` — it is probably
|
|
462
561
|
behind someone else's.
|
|
463
562
|
- **You want to see the page**, not read about it: `box_screenshot
|
|
@@ -621,6 +720,9 @@ What the server **cannot** do (by design — D-25):
|
|
|
621
720
|
What it **can** do (with your approval):
|
|
622
721
|
|
|
623
722
|
- Run your scenarios + drive browsers
|
|
723
|
+
- Act on your unotest cloud account through the `cloud_*` tools, with the
|
|
724
|
+
key `login` stored — renting, deleting and turning the Picker on wait
|
|
725
|
+
for a person in the cabinet
|
|
624
726
|
- Read failure artifacts from `.unotest/failures/`
|
|
625
727
|
- Execute sandbox primitives — `shell(cmd, …args)` (execFile, not
|
|
626
728
|
shell), `dbQuery` / `dbExec` (against `sandbox.database`), `apiCall`
|
package/guides/dsl-reference.md
CHANGED
|
@@ -1056,6 +1056,25 @@ The variable must hold an http(s) URL; an unknown name fails with the
|
|
|
1056
1056
|
usual "add it to unotest/.env" message. URLs never appear in the
|
|
1057
1057
|
scenario — hosts are controlled by project env files only.
|
|
1058
1058
|
|
|
1059
|
+
**With an environment overlay active, the base must come from it.**
|
|
1060
|
+
Running `--env dev` while `API_BASE_CHAT` is set only in the base
|
|
1061
|
+
`unotest/.env` is refused — before the browser, by `lint`, by the run
|
|
1062
|
+
and by the MCP tools alike — because the call would otherwise go to the
|
|
1063
|
+
base host while everything else in the run resolves against `dev`. Set
|
|
1064
|
+
the name in `unotest/.env.dev`, or, when the base value really is meant
|
|
1065
|
+
for every environment, list the name in the config:
|
|
1066
|
+
|
|
1067
|
+
```js
|
|
1068
|
+
// unotest/unotest.config.mjs
|
|
1069
|
+
export default { env: { shared: ['API_BASE_CHAT'] } };
|
|
1070
|
+
```
|
|
1071
|
+
|
|
1072
|
+
A value supplied by the process environment (a shell variable, a box)
|
|
1073
|
+
is never affected: the rule is about a value silently inherited from a
|
|
1074
|
+
file the overlay was supposed to replace. The same rule covers
|
|
1075
|
+
`APP_BASE_URL` (the base every relative `goto` resolves against) and a
|
|
1076
|
+
variable used as the URL in `goto(NAME)`.
|
|
1077
|
+
|
|
1059
1078
|
**Multipart file upload — `upload(path, options?)`.** Passing the
|
|
1060
1079
|
result of `upload(...)` as the body posts `multipart/form-data`:
|
|
1061
1080
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unotest/web",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.43.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/
|
|
87
|
-
"@unotest/
|
|
88
|
-
"@unotest/
|
|
89
|
-
"@unotest/
|
|
90
|
-
"@unotest/
|
|
86
|
+
"@unotest/core": "^0.43.0",
|
|
87
|
+
"@unotest/grounder-client": "^0.43.0",
|
|
88
|
+
"@unotest/viewer": "^0.43.0",
|
|
89
|
+
"@unotest/protocol": "^0.43.0",
|
|
90
|
+
"@unotest/dsl": "^0.43.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/
|
|
98
|
-
"@unotest/
|
|
97
|
+
"@unotest/grounder": "^0.43.0",
|
|
98
|
+
"@unotest/judge": "^0.43.0"
|
|
99
99
|
}
|
|
100
100
|
}
|