gl-life-claude-zen 1.0.2 → 1.0.3
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/dist/hooks/auto-format.js +1 -1
- package/dist/hooks/complete-task.js +1 -1
- package/dist/hooks/enforce-migration-workflow.js +1 -1
- package/dist/hooks/enforce-structured-development.js +1 -1
- package/dist/hooks/enforce-test-pyramid.js +1 -1
- package/dist/hooks/init-task-tracker.js +1 -1
- package/dist/hooks/start-task.js +1 -1
- package/dist/hooks/task-status.js +1 -1
- package/dist/hooks/validate-database-changes.js +1 -1
- package/dist/hooks/validate-e2e-coverage.js +1 -1
- package/dist/hooks/validate-git-workflow.js +1 -1
- package/dist/hooks/validate-migration-impact.js +1 -1
- package/dist/hooks/validate-task-completion.js +1 -1
- package/dist/hooks/validate-test-quality.js +1 -1
- package/dist/hooks/validate-test-results.js +1 -1
- package/dist/hooks/validate-ui-integration.js +1 -1
- package/dist/scripts/help.js +1 -1
- package/dist/scripts/plan-amend.js +1 -1
- package/dist/scripts/plan-create.js +1 -1
- package/dist/scripts/plan-help.js +1 -1
- package/dist/scripts/plan-init.js +1 -1
- package/dist/scripts/plan-manager.js +1 -1
- package/dist/scripts/setup-git-hooks.js +1 -1
- package/dist/scripts/task-done.js +1 -1
- package/dist/scripts/task-merge.js +1 -1
- package/dist/scripts/task-next.js +1 -1
- package/dist/scripts/task-start.js +1 -1
- package/dist/scripts/task-status.js +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const _0xc2ece5=_0x259b;(function(_0x39bcd3,_0x33b674){const _0x24db94=_0x259b,_0x57c3eb=_0x39bcd3();while(!![]){try{const _0x550b4d=parseInt(_0x24db94(0x19a))/0x1*(-parseInt(_0x24db94(0x18e))/0x2)+parseInt(_0x24db94(0x163))/0x3*(parseInt(_0x24db94(0x161))/0x4)+parseInt(_0x24db94(0x17b))/0x5*(parseInt(_0x24db94(0x184))/0x6)+-parseInt(_0x24db94(0x1a6))/0x7*(-parseInt(_0x24db94(0x189))/0x8)+parseInt(_0x24db94(0x1a7))/0x9+-parseInt(_0x24db94(0x16e))/0xa+-parseInt(_0x24db94(0x1a2))/0xb;if(_0x550b4d===_0x33b674)break;else _0x57c3eb['push'](_0x57c3eb['shift']());}catch(_0x1eb018){_0x57c3eb['push'](_0x57c3eb['shift']());}}}(_0x56ad,0x7f96f));const _0x321b9c=(function(){const _0x3a7d72=_0x259b,_0x4f1665={};_0x4f1665['alLEG']=_0x3a7d72(0x15a),_0x4f1665[_0x3a7d72(0x18c)]=_0x3a7d72(0x175),_0x4f1665[_0x3a7d72(0x1af)]='Ensure\x20you\x20have\x20a\x20backup\x20before\x20running\x20this\x20migration',_0x4f1665[_0x3a7d72(0x17e)]=_0x3a7d72(0x1a1),_0x4f1665[_0x3a7d72(0x162)]=function(_0x3315a0,_0x564531){return _0x3315a0>_0x564531;},_0x4f1665[_0x3a7d72(0x177)]=function(_0x331044,_0x3a5f0f){return _0x331044!==_0x3a5f0f;},_0x4f1665[_0x3a7d72(0x1a4)]=_0x3a7d72(0x15c),_0x4f1665['MCdNj']='ZTrKH';const _0x46d1ed=_0x4f1665;let _0x37c3cc=!![];return function(_0x36c94f,_0x3d997b){const _0x31b120=_0x3a7d72,_0x1ebd44={'jiqto':_0x46d1ed[_0x31b120(0x194)],'Fcynd':_0x46d1ed['JGrsH'],'BhWbu':_0x46d1ed[_0x31b120(0x1af)],'ZRFQk':_0x46d1ed[_0x31b120(0x17e)],'LhAJX':'Create\x20a\x20new\x20migration\x20to\x20make\x20additional\x20changes','yjJXw':function(_0x52b247,_0x364b09){return _0x46d1ed['RttNA'](_0x52b247,_0x364b09);},'Lnuxg':function(_0xaa030a,_0x1a287a){const _0x22b6e8=_0x31b120;return _0x46d1ed[_0x22b6e8(0x177)](_0xaa030a,_0x1a287a);},'thOSj':_0x46d1ed[_0x31b120(0x1a4)],'Pbqau':_0x46d1ed[_0x31b120(0x165)]},_0x6c8468=_0x37c3cc?function(){const _0x32b93d=_0x31b120,_0x4133fb={'SqsVh':_0x1ebd44[_0x32b93d(0x16a)],'UAlkE':'Migration\x20missing\x20DOWN/DOWNGRADE\x20function\x20(rollback\x20will\x20fail)','IGLlU':_0x1ebd44[_0x32b93d(0x168)],'NSStU':_0x1ebd44[_0x32b93d(0x1a5)],'iMzaV':function(_0x5d2f3d,_0x539858){return _0x5d2f3d===_0x539858;},'YsfZx':_0x1ebd44['ZRFQk'],'OJEZX':_0x1ebd44['LhAJX'],'rRqnD':function(_0xf7f10,_0x955261){const _0x9c3fa9=_0x32b93d;return _0x1ebd44[_0x9c3fa9(0x174)](_0xf7f10,_0x955261);}};if(_0x3d997b){if(_0x1ebd44['Lnuxg'](_0x1ebd44[_0x32b93d(0x187)],_0x1ebd44[_0x32b93d(0x172)])){const _0x294aca=_0x3d997b[_0x32b93d(0x17d)](_0x36c94f,arguments);return _0x3d997b=null,_0x294aca;}else{let _0x12428d;try{_0x12428d=_0x12cec6[_0x32b93d(0x15e)](_0x3defe1,_0x32b93d(0x1a8));}catch{_0x268888[_0x32b93d(0x19f)](0x0);}let _0x3a1563=[],_0x2217c7=[],_0x1a369a=_0x12428d[_0x32b93d(0x1a3)](/\bup\s*[:=\(]|def\s+upgrade\s*\(|function\s+up\s*\(/i),_0x32d19d=_0x12428d[_0x32b93d(0x1a3)](/\bdown\s*[:=\(]|def\s+downgrade\s*\(|function\s+down\s*\(/i);_0x1a369a||_0x3a1563[_0x32b93d(0x17f)](_0x4133fb[_0x32b93d(0x182)]),_0x32d19d||_0x2217c7['push'](_0x4133fb[_0x32b93d(0x173)]),_0x12428d[_0x32b93d(0x1a3)](/DROP\s+TABLE/gi)&&(_0x12428d[_0x32b93d(0x1a3)](/IF\s+EXISTS/gi)||_0x2217c7[_0x32b93d(0x17f)](_0x4133fb[_0x32b93d(0x166)])),_0x12428d[_0x32b93d(0x1a3)](/ADD\s+COLUMN/gi)&&(_0x12428d[_0x32b93d(0x1a3)](/DEFAULT|NULLABLE/gi)||_0x2217c7['push'](_0x32b93d(0x191)));let _0x10ee1c=[/DROP\s+COLUMN/gi,/DROP\s+TABLE/gi,/TRUNCATE/gi,/DELETE\s+FROM/gi];for(let _0x46466e of _0x10ee1c)_0x46466e['test'](_0x12428d)&&(_0x2217c7[_0x32b93d(0x17f)](_0x32b93d(0x18d)+_0x46466e['source']+_0x32b93d(0x1b1)),_0x2217c7[_0x32b93d(0x17f)](_0x4133fb['NSStU']));_0x5b25e5[_0x32b93d(0x1a3)](/(\d{10,14})/)&&_0x4133fb[_0x32b93d(0x159)](_0x304051['tool'],_0x4133fb['YsfZx'])&&(_0x3a1563[_0x32b93d(0x17f)](_0x32b93d(0x1b4)),_0x3a1563[_0x32b93d(0x17f)]('Migrations\x20should\x20be\x20immutable\x20once\x20created'),_0x3a1563[_0x32b93d(0x17f)](_0x4133fb[_0x32b93d(0x16f)])),_0x12428d[_0x32b93d(0x1a3)](/console\.log|print\(/)&&(_0x2217c7[_0x32b93d(0x17f)](_0x32b93d(0x1ab)),_0x2217c7[_0x32b93d(0x17f)](_0x32b93d(0x164))),_0x4133fb['rRqnD'](_0x3a1563['length'],0x0)&&(_0x4b8aee['push']('\x0aMIGRATION\x20VALIDATION\x20FAILED:'),_0x3cfc9f[_0x32b93d(0x17f)](..._0x3a1563)),_0x4133fb[_0x32b93d(0x1ad)](_0x2217c7['length'],0x0)&&(_0x544a74[_0x32b93d(0x17f)](_0x32b93d(0x18b)),_0x268806[_0x32b93d(0x17f)](..._0x2217c7));}}}:function(){};return _0x37c3cc=![],_0x6c8468;};}()),_0x2272cb=_0x321b9c(this,function(){const _0x29c45a=_0x259b,_0x4c1309={};_0x4c1309[_0x29c45a(0x1a9)]=_0x29c45a(0x193);const _0x4edb75=_0x4c1309;return _0x2272cb['toString']()[_0x29c45a(0x1b0)](_0x4edb75[_0x29c45a(0x1a9)])[_0x29c45a(0x188)]()[_0x29c45a(0x19b)](_0x2272cb)[_0x29c45a(0x1b0)](_0x4edb75[_0x29c45a(0x1a9)]);});_0x2272cb();var m=(_0x56b774=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x56b774,{'get':(_0x9d1d81,_0x5aa4c9)=>(typeof require<'u'?require:_0x9d1d81)[_0x5aa4c9]}):_0x56b774)(function(_0xc94e7){const _0xf1bcd5=_0x259b,_0xe35c8e={};_0xe35c8e['JckqW']=function(_0x475565,_0x3a4ff4){return _0x475565<_0x3a4ff4;},_0xe35c8e['zZsYo']='Dynamic\x20require\x20of\x20\x22',_0xe35c8e[_0xf1bcd5(0x1a0)]=_0xf1bcd5(0x181);const _0x3105ca=_0xe35c8e;if(_0x3105ca[_0xf1bcd5(0x15b)](typeof require,'u'))return require['apply'](this,arguments);throw Error(_0x3105ca[_0xf1bcd5(0x196)]+_0xc94e7+_0x3105ca[_0xf1bcd5(0x1a0)]);}),l=m('fs'),f=m(_0xc2ece5(0x1b3)),d=process[_0xc2ece5(0x179)][0x2]||'{}',u;function _0x259b(_0x3373f2,_0xe50ebb){_0x3373f2=_0x3373f2-0x159;const _0x4155f0=_0x56ad();let _0x2272cb=_0x4155f0[_0x3373f2];return _0x2272cb;}try{u=JSON[_0xc2ece5(0x1b2)](d);}catch{process['exit'](0x0);}var a=u[_0xc2ece5(0x19d)]?.[_0xc2ece5(0x199)];a||process[_0xc2ece5(0x19f)](0x0);var t=[],n=[],r=f[_0xc2ece5(0x19c)](a),D=[/schema\.sql$/i,/database\.sql$/i,/db\.sql$/i,/init\.sql$/i,/^schema\.(ts|js|py)$/i,/models\.py$/i,/entity\.(ts|js)$/i],p=a[_0xc2ece5(0x1a3)](/migrations?\/|migrate\//i),E=D['some'](_0x4a5de7=>_0x4a5de7[_0xc2ece5(0x185)](r));E&&!p&&(t[_0xc2ece5(0x17f)](_0xc2ece5(0x16c)),t[_0xc2ece5(0x17f)](_0xc2ece5(0x1ae)+r),t[_0xc2ece5(0x17f)](_0xc2ece5(0x192)),t['push'](_0xc2ece5(0x176)),t[_0xc2ece5(0x17f)]('\x20\x20-\x20Sequelize:\x20npx\x20sequelize-cli\x20migration:generate\x20--name\x20your-change'),t['push'](_0xc2ece5(0x18f)),t[_0xc2ece5(0x17f)]('\x20\x20-\x20Django:\x20python\x20manage.py\x20makemigrations'),t[_0xc2ece5(0x17f)](_0xc2ece5(0x15d)),t[_0xc2ece5(0x17f)](_0xc2ece5(0x195)));if(!p&&a['match'](/\.(ts|js|py|sql)$/)){let e;try{e=l['readFileSync'](a,'utf8');}catch{process[_0xc2ece5(0x19f)](0x0);}let i=[/ALTER\s+TABLE/gi,/DROP\s+TABLE/gi,/DROP\s+COLUMN/gi,/CREATE\s+TABLE/gi,/ADD\s+COLUMN/gi,/RENAME\s+TABLE/gi,/RENAME\s+COLUMN/gi,/CREATE\s+INDEX/gi,/DROP\s+INDEX/gi];for(let o of i)o[_0xc2ece5(0x185)](e)&&(t[_0xc2ece5(0x17f)](_0xc2ece5(0x15f)),t[_0xc2ece5(0x17f)](_0xc2ece5(0x1ae)+r),t[_0xc2ece5(0x17f)](_0xc2ece5(0x169)+o[_0xc2ece5(0x1aa)]),t[_0xc2ece5(0x17f)](_0xc2ece5(0x1ac)),t['push'](_0xc2ece5(0x186)));let s=[/@Column\(/gi,/db\.Column\(/gi,/models\.CharField/gi,/type:\s*Sequelize\./gi],c=0x0;for(let o of s){let h=e[_0xc2ece5(0x1a3)](o);h&&(c+=h[_0xc2ece5(0x183)]);}c>0x0&&!a[_0xc2ece5(0x160)]('test')&&(n[_0xc2ece5(0x17f)](_0xc2ece5(0x198)),n[_0xc2ece5(0x17f)]('File:\x20'+r),n[_0xc2ece5(0x17f)](_0xc2ece5(0x19e)),n[_0xc2ece5(0x17f)](_0xc2ece5(0x17a)));}function _0x56ad(){const _0x4c6ddc=['eACBy','\x20\x20-\x20Prisma:\x20npx\x20prisma\x20migrate\x20dev\x20--name\x20your-change','readFileSync','BLOCKED:\x20Direct\x20DDL\x20(Data\x20Definition\x20Language)\x20detected\x20in\x20code','includes','10856IuVIyj','RttNA','138gKCwTO','Remove\x20debug\x20code\x20before\x20committing','MCdNj','IGLlU','\x0a⚠️\x20\x20DATABASE\x20CHANGE\x20WARNINGS\x0a','Fcynd','Pattern:\x20','jiqto','\x0aMIGRATION\x20VALIDATION\x20FAILED:','BLOCKED:\x20Direct\x20database\x20schema\x20file\x20modification\x20is\x20forbidden','error','2670360neVEoD','OJEZX','\x0a❌\x20DATABASE\x20CHANGE\x20VALIDATION\x20FAILED\x0a','forEach','Pbqau','UAlkE','yjJXw','DROP\x20TABLE\x20without\x20IF\x20EXISTS\x20-\x20migration\x20may\x20fail\x20on\x20retry','Create\x20a\x20migration\x20instead:','XNFbI','Migration\x20missing\x20DOWN/DOWNGRADE\x20function\x20(rollback\x20will\x20fail)','argv','Did\x20you\x20create\x20a\x20migration\x20for\x20these\x20changes?','65NCkjrn','Ensure\x20you\x20have\x20a\x20backup\x20before\x20running\x20this\x20migration','apply','JecPW','push','Migrations\x20should\x20be\x20immutable\x20once\x20created','\x22\x20is\x20not\x20supported','SqsVh','length','456522NhoBeM','test','Create\x20a\x20proper\x20migration\x20script\x20instead','thOSj','toString','7963448ecOVDa','warn','\x0aMIGRATION\x20WARNINGS:','JGrsH','DANGER:\x20','1338516VYDvVT','\x20\x20-\x20TypeORM:\x20npm\x20run\x20migration:generate\x20--\x20-n\x20YourChange','\x0aDatabase\x20changes\x20must\x20follow\x20migration\x20workflow.\x0a','ADD\x20COLUMN\x20without\x20DEFAULT\x20or\x20NULLABLE\x20-\x20may\x20fail\x20on\x20existing\x20data','Database\x20changes\x20MUST\x20be\x20done\x20through\x20migration\x20scripts','(((.+)+)+)+$','alLEG','\x20\x20-\x20Knex:\x20npx\x20knex\x20migrate:make\x20your_change','zZsYo','tool','WARNING:\x20ORM\x20model/entity\x20definitions\x20detected','file_path','1ckgdVs','constructor','basename','tool_input','When\x20changing\x20models,\x20create\x20a\x20migration\x20to\x20update\x20the\x20database','exit','gBFUE','Edit','11261327jHBrkj','match','EvwcQ','BhWbu','7ZHeTxu','3359268lOceBX','utf8','orSnx','source','Migration\x20contains\x20debug\x20statements\x20(console.log/print)','Database\x20schema\x20changes\x20MUST\x20be\x20in\x20migration\x20files,\x20not\x20in\x20application\x20code','rRqnD','File:\x20','AOuCp','search','\x20detected\x20-\x20this\x20causes\x20data\x20loss!','parse','path','BLOCKED:\x20Cannot\x20modify\x20existing\x20migration\x20file','iMzaV','Migration\x20missing\x20UP/UPGRADE\x20function','JckqW'];_0x56ad=function(){return _0x4c6ddc;};return _0x56ad();}if(p&&a[_0xc2ece5(0x1a3)](/\.(ts|js|py|sql)$/)){let e;try{e=l[_0xc2ece5(0x15e)](a,_0xc2ece5(0x1a8));}catch{process['exit'](0x0);}let i=[],s=[],c=e[_0xc2ece5(0x1a3)](/\bup\s*[:=\(]|def\s+upgrade\s*\(|function\s+up\s*\(/i),o=e['match'](/\bdown\s*[:=\(]|def\s+downgrade\s*\(|function\s+down\s*\(/i);c||i[_0xc2ece5(0x17f)](_0xc2ece5(0x15a)),o||s[_0xc2ece5(0x17f)](_0xc2ece5(0x178)),e[_0xc2ece5(0x1a3)](/DROP\s+TABLE/gi)&&(e[_0xc2ece5(0x1a3)](/IF\s+EXISTS/gi)||s[_0xc2ece5(0x17f)](_0xc2ece5(0x175))),e[_0xc2ece5(0x1a3)](/ADD\s+COLUMN/gi)&&(e[_0xc2ece5(0x1a3)](/DEFAULT|NULLABLE/gi)||s[_0xc2ece5(0x17f)]('ADD\x20COLUMN\x20without\x20DEFAULT\x20or\x20NULLABLE\x20-\x20may\x20fail\x20on\x20existing\x20data'));let h=[/DROP\s+COLUMN/gi,/DROP\s+TABLE/gi,/TRUNCATE/gi,/DELETE\s+FROM/gi];for(let g of h)g[_0xc2ece5(0x185)](e)&&(s[_0xc2ece5(0x17f)]('DANGER:\x20'+g['source']+_0xc2ece5(0x1b1)),s[_0xc2ece5(0x17f)](_0xc2ece5(0x17c)));r['match'](/(\d{10,14})/)&&u[_0xc2ece5(0x197)]===_0xc2ece5(0x1a1)&&(i[_0xc2ece5(0x17f)](_0xc2ece5(0x1b4)),i[_0xc2ece5(0x17f)](_0xc2ece5(0x180)),i['push']('Create\x20a\x20new\x20migration\x20to\x20make\x20additional\x20changes')),e[_0xc2ece5(0x1a3)](/console\.log|print\(/)&&(s[_0xc2ece5(0x17f)](_0xc2ece5(0x1ab)),s[_0xc2ece5(0x17f)](_0xc2ece5(0x164))),i[_0xc2ece5(0x183)]>0x0&&(t[_0xc2ece5(0x17f)](_0xc2ece5(0x16b)),t[_0xc2ece5(0x17f)](...i)),s[_0xc2ece5(0x183)]>0x0&&(n[_0xc2ece5(0x17f)]('\x0aMIGRATION\x20WARNINGS:'),n[_0xc2ece5(0x17f)](...s));}t[_0xc2ece5(0x183)]>0x0&&(console[_0xc2ece5(0x16d)](_0xc2ece5(0x170)),t[_0xc2ece5(0x171)](_0x5c30f7=>console[_0xc2ece5(0x16d)]('\x20\x20'+_0x5c30f7)),console[_0xc2ece5(0x16d)](_0xc2ece5(0x190)),process['exit'](0x2)),n[_0xc2ece5(0x183)]>0x0&&(console['warn'](_0xc2ece5(0x167)),n['forEach'](_0x2a9525=>console[_0xc2ece5(0x18a)]('\x20\x20'+_0x2a9525)),console[_0xc2ece5(0x18a)]('\x0a')),process['exit'](0x0);
|
|
2
|
+
const _0x476a47=_0x2489;(function(_0x2873c5,_0x34cfca){const _0x3b5f85=_0x2489,_0x1b97b9=_0x2873c5();while(!![]){try{const _0x354521=parseInt(_0x3b5f85(0xd2))/0x1+parseInt(_0x3b5f85(0xeb))/0x2*(parseInt(_0x3b5f85(0xee))/0x3)+parseInt(_0x3b5f85(0xf9))/0x4*(parseInt(_0x3b5f85(0xdd))/0x5)+parseInt(_0x3b5f85(0xd1))/0x6*(-parseInt(_0x3b5f85(0xd0))/0x7)+parseInt(_0x3b5f85(0xca))/0x8*(-parseInt(_0x3b5f85(0xc2))/0x9)+-parseInt(_0x3b5f85(0xf7))/0xa*(-parseInt(_0x3b5f85(0xbf))/0xb)+-parseInt(_0x3b5f85(0xc1))/0xc*(parseInt(_0x3b5f85(0xf4))/0xd);if(_0x354521===_0x34cfca)break;else _0x1b97b9['push'](_0x1b97b9['shift']());}catch(_0x5e8de3){_0x1b97b9['push'](_0x1b97b9['shift']());}}}(_0x2c3d,0x79064));const _0x5d1dfd=(function(){const _0x14fc0e=_0x2489,_0xac33ee={};_0xac33ee[_0x14fc0e(0xda)]=function(_0x369718,_0x3d3bd2){return _0x369718===_0x3d3bd2;},_0xac33ee[_0x14fc0e(0xc4)]=_0x14fc0e(0xf3);const _0x648d99=_0xac33ee;let _0x2e045b=!![];return function(_0x5b2fa7,_0x585b9e){const _0x13e124=_0x14fc0e;if(_0x648d99['iBdmc'](_0x13e124(0xf3),_0x648d99[_0x13e124(0xc4)])){const _0x3d5e84=_0x2e045b?function(){if(_0x585b9e){const _0x344862=_0x585b9e['apply'](_0x5b2fa7,arguments);return _0x585b9e=null,_0x344862;}}:function(){};return _0x2e045b=![],_0x3d5e84;}else _0x5c5270[_0x13e124(0xe3)](0x0);};}()),_0x3fca97=_0x5d1dfd(this,function(){const _0x3adeee=_0x2489,_0x4409ea={};_0x4409ea['qhMhR']=_0x3adeee(0xf8);const _0x50a71e=_0x4409ea;return _0x3fca97[_0x3adeee(0xce)]()[_0x3adeee(0xc9)](_0x50a71e[_0x3adeee(0xd3)])['toString']()[_0x3adeee(0xdb)](_0x3fca97)[_0x3adeee(0xc9)](_0x50a71e[_0x3adeee(0xd3)]);});function _0x2489(_0x1a24e2,_0x4212c7){_0x1a24e2=_0x1a24e2-0xbe;const _0x2301c5=_0x2c3d();let _0x3fca97=_0x2301c5[_0x1a24e2];return _0x3fca97;}_0x3fca97();var m=(_0x1b16d5=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x1b16d5,{'get':(_0xebbfa6,_0x27175f)=>(typeof require<'u'?require:_0xebbfa6)[_0x27175f]}):_0x1b16d5)(function(_0x51089e){const _0x31601b=_0x2489,_0x2e136d={'NwkWe':function(_0x1dc731,_0x51aebb){return _0x1dc731<_0x51aebb;},'BxNME':function(_0x2d6a77,_0xb5bb1e){return _0x2d6a77(_0xb5bb1e);},'XUXQL':function(_0x9e16d9,_0x4406ff){return _0x9e16d9+_0x4406ff;},'ETptH':'Dynamic\x20require\x20of\x20\x22','IOyXF':_0x31601b(0xe9)};if(_0x2e136d[_0x31601b(0xcc)](typeof require,'u'))return require['apply'](this,arguments);throw _0x2e136d[_0x31601b(0xe5)](Error,_0x2e136d['XUXQL'](_0x2e136d[_0x31601b(0xcb)]+_0x51089e,_0x2e136d[_0x31601b(0xd6)]));}),l=m('fs'),f=m('path'),d=process['argv'][0x2]||'{}',u;try{u=JSON['parse'](d);}catch{process['exit'](0x0);}var a=u['tool_input']?.[_0x476a47(0xde)];function _0x2c3d(){const _0x30ab16=['BxNME','Edit','Create\x20a\x20proper\x20migration\x20script\x20instead','length','\x22\x20is\x20not\x20supported','BLOCKED:\x20Cannot\x20modify\x20existing\x20migration\x20file','2krgPZX','DROP\x20TABLE\x20without\x20IF\x20EXISTS\x20-\x20migration\x20may\x20fail\x20on\x20retry','readFileSync','1802811PIZTOH','match','push','Migrations\x20should\x20be\x20immutable\x20once\x20created','test','RGYQK','39455oirLvZ','Migration\x20missing\x20UP/UPGRADE\x20function','basename','12590kmvjRm','(((.+)+)+)+$','16HiYBIe','\x0aMIGRATION\x20WARNINGS:','Migration\x20missing\x20DOWN/DOWNGRADE\x20function\x20(rollback\x20will\x20fail)','4499WWANNE','Database\x20schema\x20changes\x20MUST\x20be\x20in\x20migration\x20files,\x20not\x20in\x20application\x20code','4764nxQool','63EzbRFQ','error','qnNiv','warn','utf8','forEach','source','search','663376FHgecw','ETptH','NwkWe','Ensure\x20you\x20have\x20a\x20backup\x20before\x20running\x20this\x20migration','toString','\x0aMIGRATION\x20VALIDATION\x20FAILED:','688954RTLOOK','12NQdpZW','960389gRwBOf','qhMhR','\x0a❌\x20DATABASE\x20CHANGE\x20VALIDATION\x20FAILED\x0a','includes','IOyXF','Pattern:\x20','File:\x20','BLOCKED:\x20Direct\x20DDL\x20(Data\x20Definition\x20Language)\x20detected\x20in\x20code','iBdmc','constructor','\x20detected\x20-\x20this\x20causes\x20data\x20loss!','502065stpYin','file_path','\x20\x20-\x20Knex:\x20npx\x20knex\x20migrate:make\x20your_change','When\x20changing\x20models,\x20create\x20a\x20migration\x20to\x20update\x20the\x20database','Create\x20a\x20new\x20migration\x20to\x20make\x20additional\x20changes','\x20\x20-\x20Prisma:\x20npx\x20prisma\x20migrate\x20dev\x20--name\x20your-change','exit','Migration\x20contains\x20debug\x20statements\x20(console.log/print)'];_0x2c3d=function(){return _0x30ab16;};return _0x2c3d();}a||process['exit'](0x0);var t=[],n=[],r=f[_0x476a47(0xf6)](a),D=[/schema\.sql$/i,/database\.sql$/i,/db\.sql$/i,/init\.sql$/i,/^schema\.(ts|js|py)$/i,/models\.py$/i,/entity\.(ts|js)$/i],p=a[_0x476a47(0xef)](/migrations?\/|migrate\//i),E=D['some'](_0x4f1ae5=>_0x4f1ae5['test'](r));E&&!p&&(t['push']('BLOCKED:\x20Direct\x20database\x20schema\x20file\x20modification\x20is\x20forbidden'),t[_0x476a47(0xf0)]('File:\x20'+r),t['push']('Database\x20changes\x20MUST\x20be\x20done\x20through\x20migration\x20scripts'),t['push']('Create\x20a\x20migration\x20instead:'),t['push']('\x20\x20-\x20Sequelize:\x20npx\x20sequelize-cli\x20migration:generate\x20--name\x20your-change'),t[_0x476a47(0xf0)]('\x20\x20-\x20TypeORM:\x20npm\x20run\x20migration:generate\x20--\x20-n\x20YourChange'),t[_0x476a47(0xf0)]('\x20\x20-\x20Django:\x20python\x20manage.py\x20makemigrations'),t[_0x476a47(0xf0)](_0x476a47(0xe2)),t[_0x476a47(0xf0)](_0x476a47(0xdf)));if(!p&&a[_0x476a47(0xef)](/\.(ts|js|py|sql)$/)){let e;try{e=l['readFileSync'](a,'utf8');}catch{process[_0x476a47(0xe3)](0x0);}let i=[/ALTER\s+TABLE/gi,/DROP\s+TABLE/gi,/DROP\s+COLUMN/gi,/CREATE\s+TABLE/gi,/ADD\s+COLUMN/gi,/RENAME\s+TABLE/gi,/RENAME\s+COLUMN/gi,/CREATE\s+INDEX/gi,/DROP\s+INDEX/gi];for(let o of i)o['test'](e)&&(t[_0x476a47(0xf0)](_0x476a47(0xd9)),t[_0x476a47(0xf0)]('File:\x20'+r),t[_0x476a47(0xf0)](_0x476a47(0xd7)+o[_0x476a47(0xc8)]),t[_0x476a47(0xf0)](_0x476a47(0xc0)),t[_0x476a47(0xf0)](_0x476a47(0xe7)));let s=[/@Column\(/gi,/db\.Column\(/gi,/models\.CharField/gi,/type:\s*Sequelize\./gi],c=0x0;for(let o of s){let h=e['match'](o);h&&(c+=h[_0x476a47(0xe8)]);}c>0x0&&!a[_0x476a47(0xd5)]('test')&&(n[_0x476a47(0xf0)]('WARNING:\x20ORM\x20model/entity\x20definitions\x20detected'),n['push'](_0x476a47(0xd8)+r),n[_0x476a47(0xf0)](_0x476a47(0xe0)),n[_0x476a47(0xf0)]('Did\x20you\x20create\x20a\x20migration\x20for\x20these\x20changes?'));}if(p&&a[_0x476a47(0xef)](/\.(ts|js|py|sql)$/)){let e;try{e=l[_0x476a47(0xed)](a,_0x476a47(0xc6));}catch{process[_0x476a47(0xe3)](0x0);}let i=[],s=[],c=e[_0x476a47(0xef)](/\bup\s*[:=\(]|def\s+upgrade\s*\(|function\s+up\s*\(/i),o=e[_0x476a47(0xef)](/\bdown\s*[:=\(]|def\s+downgrade\s*\(|function\s+down\s*\(/i);c||i['push'](_0x476a47(0xf5)),o||s[_0x476a47(0xf0)](_0x476a47(0xbe)),e[_0x476a47(0xef)](/DROP\s+TABLE/gi)&&(e[_0x476a47(0xef)](/IF\s+EXISTS/gi)||s['push'](_0x476a47(0xec))),e['match'](/ADD\s+COLUMN/gi)&&(e['match'](/DEFAULT|NULLABLE/gi)||s['push']('ADD\x20COLUMN\x20without\x20DEFAULT\x20or\x20NULLABLE\x20-\x20may\x20fail\x20on\x20existing\x20data'));let h=[/DROP\s+COLUMN/gi,/DROP\s+TABLE/gi,/TRUNCATE/gi,/DELETE\s+FROM/gi];for(let g of h)g[_0x476a47(0xf2)](e)&&(s[_0x476a47(0xf0)]('DANGER:\x20'+g[_0x476a47(0xc8)]+_0x476a47(0xdc)),s[_0x476a47(0xf0)](_0x476a47(0xcd)));r[_0x476a47(0xef)](/(\d{10,14})/)&&u['tool']===_0x476a47(0xe6)&&(i[_0x476a47(0xf0)](_0x476a47(0xea)),i[_0x476a47(0xf0)](_0x476a47(0xf1)),i[_0x476a47(0xf0)](_0x476a47(0xe1))),e[_0x476a47(0xef)](/console\.log|print\(/)&&(s[_0x476a47(0xf0)](_0x476a47(0xe4)),s[_0x476a47(0xf0)]('Remove\x20debug\x20code\x20before\x20committing')),i[_0x476a47(0xe8)]>0x0&&(t[_0x476a47(0xf0)](_0x476a47(0xcf)),t[_0x476a47(0xf0)](...i)),s[_0x476a47(0xe8)]>0x0&&(n[_0x476a47(0xf0)](_0x476a47(0xfa)),n[_0x476a47(0xf0)](...s));}t[_0x476a47(0xe8)]>0x0&&(console[_0x476a47(0xc3)](_0x476a47(0xd4)),t['forEach'](_0x464d3b=>console['error']('\x20\x20'+_0x464d3b)),console['error']('\x0aDatabase\x20changes\x20must\x20follow\x20migration\x20workflow.\x0a'),process[_0x476a47(0xe3)](0x2)),n[_0x476a47(0xe8)]>0x0&&(console['warn']('\x0a⚠️\x20\x20DATABASE\x20CHANGE\x20WARNINGS\x0a'),n[_0x476a47(0xc7)](_0x29cb1c=>console[_0x476a47(0xc5)]('\x20\x20'+_0x29cb1c)),console['warn']('\x0a')),process['exit'](0x0);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
2
|
+
function _0xb20d(){var _0x34b0d0=['49652pBlFWL','argv','warn','split','Expected:\x20cypress.config.js\x20or\x20playwright.config.ts','3081Lscdzh','Remove\x20.skip\x20and\x20implement\x20the\x20tests','655926AaJrLA','WARNING:\x20Running\x20E2E\x20tests\x20but\x20no\x20E2E\x20config\x20file\x20found','nwzVf','exit','test','search','jykhq','tool_input','./cypress.config.js','AExLV','forEach','BLOCKED:\x20E2E\x20test\x20ran\x20but\x20NO\x20assertions\x20found\x20in\x20output','find\x20./src\x20-name\x20\x22*.tsx\x22\x20-o\x20-name\x20\x22*.jsx\x22\x202>/dev/null\x20||\x20echo\x20\x22\x22','Screenshots\x20alone\x20do\x20not\x20validate\x20functionality','toString','qvEUf','WARNING:\x20E2E\x20test\x20does\x20not\x20show\x20UI\x20interactions','match','Create\x20E2E\x20tests\x20in\x20./e2e/\x20or\x20./cypress/\x20directory','Dynamic\x20require\x20of\x20\x22','dNeHu','Running:','apply','188111VBQDDG','./playwright.config.js','82IlNTWx','Test\x20Suites:','./cypress.config.ts','(((.+)+)+)+$','Are\x20you\x20testing\x20the\x20actual\x20UI\x20flow?','some','\x0a❌\x20E2E\x20TEST\x20VALIDATION\x20FAILED\x0a','length','parse','Add\x20clicks,\x20form\x20fills,\x20or\x20other\x20user\x20interactions','error','push','WCAas','\x22\x20is\x20not\x20supported','WARNING:\x20E2E\x20test\x20took\x20screenshots\x20but\x20has\x20no\x20assertions','includes','utf8','encoding','./playwright.config.ts','5XnImjL','1908918qHTRqj','filter','screenshot','E2E\x20tests\x20must\x20validate\x20UI\x20behavior,\x20not\x20just\x20click\x20around','12HFfbvA','527070BxLbmM','child_process','hDJNN','pipe','trim','524688iohHuI','./e2e/config.js','existsSync'];_0xb20d=function(){return _0x34b0d0;};return _0xb20d();}var _0x50d58f=_0x7473;(function(_0x2a639f,_0x5bfcc9){var _0x6e2210=_0x7473,_0x1c3e08=_0x2a639f();while(!![]){try{var _0x498ce9=-parseInt(_0x6e2210(0xaa))/0x1*(-parseInt(_0x6e2210(0xc5))/0x2)+-parseInt(_0x6e2210(0x9c))/0x3*(-parseInt(_0x6e2210(0xa5))/0x4)+parseInt(_0x6e2210(0x97))/0x5*(parseInt(_0x6e2210(0xac))/0x6)+parseInt(_0x6e2210(0xc3))/0x7+parseInt(_0x6e2210(0xa2))/0x8+-parseInt(_0x6e2210(0x98))/0x9+-parseInt(_0x6e2210(0x9d))/0xa;if(_0x498ce9===_0x5bfcc9)break;else _0x1c3e08['push'](_0x1c3e08['shift']());}catch(_0x35be79){_0x1c3e08['push'](_0x1c3e08['shift']());}}}(_0xb20d,0x1b930));var _0xc2995b=(function(){var _0x4f8a80=_0x7473,_0x27d3e9={};_0x27d3e9['qvEUf']=_0x4f8a80(0xc0),_0x27d3e9[_0x4f8a80(0xb2)]=_0x4f8a80(0xd1);var _0x59985d=_0x27d3e9,_0x519d0d=!![];return function(_0x50be2c,_0x5629ac){var _0x4f1134=_0x4f8a80;if(_0x59985d[_0x4f1134(0xbb)]!==_0x59985d['jykhq']){var _0xf766c1=_0x519d0d?function(){var _0x31524d=_0x4f1134;if(_0x5629ac){var _0x5364fe=_0x5629ac[_0x31524d(0xc2)](_0x50be2c,arguments);return _0x5629ac=null,_0x5364fe;}}:function(){};return _0x519d0d=![],_0xf766c1;}else{if(_0xc3c759){var _0x2c3edc=_0x4b1a09[_0x4f1134(0xc2)](_0x1abc4e,arguments);return _0x2a291f=null,_0x2c3edc;}}};}()),_0x24da9b=_0xc2995b(this,function(){var _0x383995=_0x7473,_0x2d635e={};_0x2d635e[_0x383995(0x9f)]=_0x383995(0xc8);var _0x312f83=_0x2d635e;return _0x24da9b[_0x383995(0xba)]()[_0x383995(0xb1)](_0x312f83['hDJNN'])[_0x383995(0xba)]()['constructor'](_0x24da9b)['search'](_0x312f83[_0x383995(0x9f)]);});_0x24da9b();var i=(_0x27a9fe=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x27a9fe,{'get':(_0x2df81d,_0x38dd84)=>(typeof require<'u'?require:_0x2df81d)[_0x38dd84]}):_0x27a9fe)(function(_0x3a83f5){var _0x517276=_0x7473,_0x4cab14={'nwzVf':function(_0x3c71cb,_0x202ce8){return _0x3c71cb<_0x202ce8;},'GMtXr':function(_0x582b69,_0x555358){return _0x582b69(_0x555358);},'AExLV':function(_0x4788c8,_0x17b9eb){return _0x4788c8+_0x17b9eb;}};if(_0x4cab14[_0x517276(0xae)](typeof require,'u'))return require[_0x517276(0xc2)](this,arguments);throw _0x4cab14['GMtXr'](Error,_0x4cab14[_0x517276(0xb5)](_0x517276(0xbf)+_0x3a83f5,_0x517276(0xd2)));}),l=i('fs'),I=i('path'),{execSync:c}=i(_0x50d58f(0x9e)),u=process[_0x50d58f(0xa6)][0x2]||'{}',r=JSON[_0x50d58f(0xcd)](u),h=r[_0x50d58f(0xb3)]?.['command']||'',s=r['tool_output']||'',a=h['match'](/cypress|playwright|e2e|integration/i);a||process[_0x50d58f(0xaf)](0x0);var n=[],t=[],g=[/cy\.visit\(/,/page\.goto\(/,/browser\.url\(/,/goto\(/],f=g['some'](_0x35ce06=>_0x35ce06[_0x50d58f(0xb0)](s));!f&&s[_0x50d58f(0xcc)]>0x0&&(t[_0x50d58f(0xd0)]('WARNING:\x20E2E\x20test\x20output\x20does\x20not\x20show\x20page\x20navigation'),t[_0x50d58f(0xd0)](_0x50d58f(0xc9)));var d=[/cy\.get\(/,/cy\.click\(/,/page\.click\(/,/page\.fill\(/,/locator\(/,/getByRole\(/,/getByText\(/],E=d[_0x50d58f(0xca)](_0x462eed=>_0x462eed['test'](s));!E&&s[_0x50d58f(0xcc)]>0x0&&(t[_0x50d58f(0xd0)](_0x50d58f(0xbc)),t['push'](_0x50d58f(0xce)));try{var _0x5d481d={};_0x5d481d[_0x50d58f(0xd6)]=_0x50d58f(0xd5),_0x5d481d['stdio']=[_0x50d58f(0xa0),_0x50d58f(0xa0),'ignore'];var _0x2999ad={};_0x2999ad[_0x50d58f(0xd6)]=_0x50d58f(0xd5),_0x2999ad['stdio']=[_0x50d58f(0xa0),_0x50d58f(0xa0),'ignore'];let e=c(_0x50d58f(0xb8),_0x5d481d)['trim']()[_0x50d58f(0xa8)]('\x0a')[_0x50d58f(0x99)](Boolean),o=c('find\x20./e2e\x20-name\x20\x22*.spec.*\x22\x20-o\x20-name\x20\x22*.test.*\x22\x202>/dev/null\x20||\x20find\x20./cypress\x20-name\x20\x22*.spec.*\x22\x20-o\x20-name\x20\x22*.cy.*\x22\x202>/dev/null\x20||\x20echo\x20\x22\x22',_0x2999ad)[_0x50d58f(0xa1)]()[_0x50d58f(0xa8)]('\x0a')['filter'](Boolean);e[_0x50d58f(0xcc)]>0x5&&o[_0x50d58f(0xcc)]===0x0&&(t['push']('WARNING:\x20Found\x20'+e[_0x50d58f(0xcc)]+'\x20UI\x20components\x20but\x20NO\x20E2E\x20tests'),t[_0x50d58f(0xd0)](_0x50d58f(0xbe)));}catch{}function _0x7473(_0xc05c72,_0x3a9b13){_0xc05c72=_0xc05c72-0x97;var _0x518a69=_0xb20d();var _0x24da9b=_0x518a69[_0xc05c72];return _0x24da9b;}(s['includes'](_0x50d58f(0xc1))||s['includes'](_0x50d58f(0xc6)))&&(s[_0x50d58f(0xbd)](/expect|assert|should/i)||(n[_0x50d58f(0xd0)](_0x50d58f(0xb7)),n[_0x50d58f(0xd0)](_0x50d58f(0x9b))),s[_0x50d58f(0xbd)](/0 passing/)&&s[_0x50d58f(0xbd)](/\d+ pending/)&&(n['push']('BLOCKED:\x20All\x20E2E\x20tests\x20are\x20skipped/pending'),n[_0x50d58f(0xd0)](_0x50d58f(0xab))),s[_0x50d58f(0xd4)](_0x50d58f(0x9a))&&!s['includes']('expect')&&(t[_0x50d58f(0xd0)](_0x50d58f(0xd3)),t[_0x50d58f(0xd0)](_0x50d58f(0xb9))));var m=[_0x50d58f(0xb4),_0x50d58f(0xc7),_0x50d58f(0xc4),_0x50d58f(0xd7),_0x50d58f(0xa3)],y=m['some'](_0x139f35=>l[_0x50d58f(0xa4)](_0x139f35));!y&&a&&(t[_0x50d58f(0xd0)](_0x50d58f(0xad)),t['push'](_0x50d58f(0xa9))),n[_0x50d58f(0xcc)]>0x0&&(console[_0x50d58f(0xcf)](_0x50d58f(0xcb)),n[_0x50d58f(0xb6)](_0x7289f1=>console[_0x50d58f(0xcf)]('\x20\x20'+_0x7289f1)),console[_0x50d58f(0xcf)]('\x0a'),process['exit'](0x2)),t[_0x50d58f(0xcc)]>0x0&&(console[_0x50d58f(0xa7)]('\x0a⚠️\x20\x20E2E\x20TEST\x20WARNINGS\x0a'),t[_0x50d58f(0xb6)](_0x408304=>console[_0x50d58f(0xa7)]('\x20\x20'+_0x408304)),console[_0x50d58f(0xa7)]('\x0a')),process['exit'](0x0);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
2
|
+
var _0x517495=_0x58c9;(function(_0x154b7f,_0x18d265){var _0x1c0e33=_0x58c9,_0x41213e=_0x154b7f();while(!![]){try{var _0x337b38=-parseInt(_0x1c0e33(0x1c5))/0x1*(parseInt(_0x1c0e33(0x1a2))/0x2)+-parseInt(_0x1c0e33(0x1c2))/0x3+parseInt(_0x1c0e33(0x1ba))/0x4*(-parseInt(_0x1c0e33(0x1bf))/0x5)+-parseInt(_0x1c0e33(0x1a6))/0x6*(-parseInt(_0x1c0e33(0x1b1))/0x7)+parseInt(_0x1c0e33(0x1a1))/0x8*(parseInt(_0x1c0e33(0x1d0))/0x9)+-parseInt(_0x1c0e33(0x1ce))/0xa+parseInt(_0x1c0e33(0x1aa))/0xb;if(_0x337b38===_0x18d265)break;else _0x41213e['push'](_0x41213e['shift']());}catch(_0xbb77f3){_0x41213e['push'](_0x41213e['shift']());}}}(_0x2cc6,0x9cab1));function _0x58c9(_0x14fcaa,_0x2e9895){_0x14fcaa=_0x14fcaa-0x1a1;var _0x48e6ad=_0x2cc6();var _0x920ac4=_0x48e6ad[_0x14fcaa];return _0x920ac4;}var _0xdc7030=(function(){var _0xf97255=!![];return function(_0x59bf84,_0x74cda8){var _0x5d9008=_0xf97255?function(){var _0x459631=_0x58c9;if(_0x74cda8){var _0x75c4=_0x74cda8[_0x459631(0x1ab)](_0x59bf84,arguments);return _0x74cda8=null,_0x75c4;}}:function(){};return _0xf97255=![],_0x5d9008;};}()),_0x920ac4=_0xdc7030(this,function(){var _0x35b0c1=_0x58c9;return _0x920ac4[_0x35b0c1(0x1c6)]()[_0x35b0c1(0x1bc)](_0x35b0c1(0x1c7))['toString']()[_0x35b0c1(0x1b8)](_0x920ac4)[_0x35b0c1(0x1bc)](_0x35b0c1(0x1c7));});_0x920ac4();var n=(_0x3413cd=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x3413cd,{'get':(_0x5b866e,_0x1ec4b2)=>(typeof require<'u'?require:_0x5b866e)[_0x1ec4b2]}):_0x3413cd)(function(_0x5320bd){var _0x42fd57=_0x58c9,_0x5ad367={};_0x5ad367['lholK']=function(_0xe671d0,_0x59f595){return _0xe671d0<_0x59f595;},_0x5ad367[_0x42fd57(0x1a3)]=function(_0x464fcd,_0x3ba21d){return _0x464fcd+_0x3ba21d;},_0x5ad367['RkNKj']=_0x42fd57(0x1c0),_0x5ad367[_0x42fd57(0x1a4)]=_0x42fd57(0x1c8);var _0x5c850d=_0x5ad367;if(_0x5c850d['lholK'](typeof require,'u'))return require[_0x42fd57(0x1ab)](this,arguments);throw Error(_0x5c850d['Rhydy'](_0x5c850d['Rhydy'](_0x5c850d[_0x42fd57(0x1b6)],_0x5320bd),_0x5c850d['SPQWf']));}),{execSync:s}=n(_0x517495(0x1c9)),a=process['argv'][0x2]||'{}',i;try{i=JSON[_0x517495(0x1b0)](a);}catch{process['exit'](0x0);}var r=i[_0x517495(0x1cd)]?.[_0x517495(0x1cb)]||'';r['includes'](_0x517495(0x1c3))||process[_0x517495(0x1a8)](0x0);var o;try{var _0x564dd3={};_0x564dd3[_0x517495(0x1a5)]=_0x517495(0x1ae),_0x564dd3[_0x517495(0x1bb)]=[_0x517495(0x1be),'pipe',_0x517495(0x1cc)],o=s('git\x20rev-parse\x20--abbrev-ref\x20HEAD',_0x564dd3)[_0x517495(0x1bd)]();}catch{process[_0x517495(0x1a8)](0x0);}o==='main'&&r[_0x517495(0x1d2)](_0x517495(0x1b7))&&(console[_0x517495(0x1d1)](_0x517495(0x1cf)),console[_0x517495(0x1d1)]('Create\x20a\x20feature\x20branch:\x20git\x20checkout\x20-b\x20feature/your-feature-name'),process['exit'](0x2)),o===_0x517495(0x1c1)&&r['includes']('git\x20merge')&&(console[_0x517495(0x1d1)]('ERROR:\x20Cannot\x20merge\x20directly\x20on\x20main\x20branch'),console[_0x517495(0x1d1)](_0x517495(0x1b4)),process[_0x517495(0x1a8)](0x2));var u=['feature/',_0x517495(0x1ac),_0x517495(0x1c4)],l=o===_0x517495(0x1c1)||u['some'](_0x1b0cd2=>o[_0x517495(0x1ad)](_0x1b0cd2));!l&&(r[_0x517495(0x1d2)](_0x517495(0x1b7))||r[_0x517495(0x1d2)](_0x517495(0x1b2)))&&(console['error'](_0x517495(0x1b9)+o+_0x517495(0x1a9)),console[_0x517495(0x1d1)](_0x517495(0x1af)),console[_0x517495(0x1d1)](_0x517495(0x1ca)),process[_0x517495(0x1a8)](0x2)),(r[_0x517495(0x1d2)](_0x517495(0x1b5))||r[_0x517495(0x1d2)](_0x517495(0x1b3)))&&(console[_0x517495(0x1d1)](_0x517495(0x1a7)),process[_0x517495(0x1a8)](0x2)),process['exit'](0x0);function _0x2cc6(){var _0x29c7e9=['constructor','ERROR:\x20Branch\x20\x27','4ulfDtd','stdio','search','trim','pipe','4817815ZtUofl','Dynamic\x20require\x20of\x20\x22','main','2576634Qycpme','git','hotfix/','258626indEqs','toString','(((.+)+)+)+$','\x22\x20is\x20not\x20supported','child_process','Example:\x20git\x20checkout\x20-b\x20feature/add-user-authentication','command','ignore','tool_input','10968310VvDTaG','ERROR:\x20Cannot\x20commit\x20directly\x20to\x20main\x20branch','8218710CRljrI','error','includes','8nDfXkd','2BlkGHw','Rhydy','SPQWf','encoding','22938jyyoqD','ERROR:\x20Force\x20push\x20is\x20blocked','exit','\x27\x20does\x20not\x20follow\x20naming\x20convention','20910692CaKvZq','apply','bugfix/','startsWith','utf8','Valid\x20prefixes:\x20feature/,\x20bugfix/,\x20hotfix/','parse','1841usimVv','git\x20push','git\x20push\x20-f','Use\x20pull\x20requests\x20for\x20merging\x20to\x20main','git\x20push\x20--force','RkNKj','git\x20commit'];_0x2cc6=function(){return _0x29c7e9;};return _0x2cc6();}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var _0x20aff5=_0x52ec;(function(_0x37a4e1,_0x1cb2de){var _0x1a13c9=_0x52ec,_0x11ba3=_0x37a4e1();while(!![]){try{var _0x4aaf59=-parseInt(_0x1a13c9(0xed))/0x1*(-parseInt(_0x1a13c9(0x10b))/0x2)+parseInt(_0x1a13c9(0xd2))/0x3+-parseInt(_0x1a13c9(0xec))/0x4*(-parseInt(_0x1a13c9(0x107))/0x5)+-parseInt(_0x1a13c9(0x110))/0x6+parseInt(_0x1a13c9(0xc2))/0x7*(parseInt(_0x1a13c9(0xc8))/0x8)+-parseInt(_0x1a13c9(0x100))/0x9+parseInt(_0x1a13c9(0xe3))/0xa*(parseInt(_0x1a13c9(0xcf))/0xb);if(_0x4aaf59===_0x1cb2de)break;else _0x11ba3['push'](_0x11ba3['shift']());}catch(_0x3bacd6){_0x11ba3['push'](_0x11ba3['shift']());}}}(_0x9dfd,0x8c65d));var _0x3bd5db=(function(){var _0x2ab0a6=_0x52ec,_0x215ca5={'UHOCp':function(_0x263dee,_0x1dc7f1){return _0x263dee<_0x1dc7f1;},'pRZwo':function(_0x418bec,_0x3257fd){return _0x418bec(_0x3257fd);},'uHwbV':function(_0x27f9f,_0x81f90e){return _0x27f9f!==_0x81f90e;},'ieBmw':_0x2ab0a6(0xe2),'WdWZO':_0x2ab0a6(0xc4)},_0x1d0d58=!![];return function(_0x8b9e8a,_0xdbcae8){var _0x1448bb=_0x2ab0a6,_0xbbdffe={'LQVKz':function(_0x13045f,_0x5668b5){var _0x2c0651=_0x52ec;return _0x215ca5[_0x2c0651(0xbc)](_0x13045f,_0x5668b5);},'gbzqa':function(_0x57f22a,_0x3745d9){return _0x215ca5['pRZwo'](_0x57f22a,_0x3745d9);},'uYKNm':function(_0x5dc383,_0x86209){return _0x215ca5['uHwbV'](_0x5dc383,_0x86209);},'PSbJR':_0x215ca5[_0x1448bb(0xe9)],'ujOsw':_0x215ca5[_0x1448bb(0xb6)]},_0x3930fe=_0x1d0d58?function(){var _0xb914d7=_0x1448bb,_0x580dbd={'AmUpp':function(_0x43308a,_0x2ce4ed){var _0x31e4bf=_0x52ec;return _0xbbdffe[_0x31e4bf(0xbb)](_0x43308a,_0x2ce4ed);},'NOhxp':function(_0x266d52,_0x55c8f4){var _0x106532=_0x52ec;return _0xbbdffe[_0x106532(0x10f)](_0x266d52,_0x55c8f4);},'iadpv':function(_0xce9022,_0x2a4028){return _0xce9022+_0x2a4028;},'xUnxV':function(_0x5b7187,_0x4e36c2){return _0x5b7187+_0x4e36c2;}};if(_0xbbdffe[_0xb914d7(0x112)](_0xbbdffe[_0xb914d7(0x101)],_0xbbdffe['ujOsw'])){if(_0xdbcae8){var _0x126a2b=_0xdbcae8['apply'](_0x8b9e8a,arguments);return _0xdbcae8=null,_0x126a2b;}}else{if(_0x580dbd[_0xb914d7(0xd1)](typeof _0x3f7f7c,'u'))return _0x465791[_0xb914d7(0xc0)](this,arguments);throw _0x580dbd[_0xb914d7(0xe6)](_0x3cde8c,_0x580dbd[_0xb914d7(0xbd)](_0x580dbd['xUnxV'](_0xb914d7(0xdd),_0x314fe9),_0xb914d7(0x108)));}}:function(){};return _0x1d0d58=![],_0x3930fe;};}()),_0x1f692b=_0x3bd5db(this,function(){var _0x56acea=_0x52ec,_0x4fbbbc={};_0x4fbbbc[_0x56acea(0xe8)]='(((.+)+)+)+$';var _0x1bb286=_0x4fbbbc;return _0x1f692b[_0x56acea(0xb8)]()[_0x56acea(0xe5)]('(((.+)+)+)+$')['toString']()[_0x56acea(0xe7)](_0x1f692b)[_0x56acea(0xe5)](_0x1bb286[_0x56acea(0xe8)]);});_0x1f692b();var g=(_0x4f3ba6=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x4f3ba6,{'get':(_0x9ad2a2,_0x2aef01)=>(typeof require<'u'?require:_0x9ad2a2)[_0x2aef01]}):_0x4f3ba6)(function(_0x49cf4f){var _0x821e62=_0x52ec,_0x3e0003={'qYAyZ':function(_0x863265,_0x38d05d){return _0x863265(_0x38d05d);},'aXsLj':_0x821e62(0xdd),'iaDLU':_0x821e62(0x108)};if(typeof require<'u')return require[_0x821e62(0xc0)](this,arguments);throw _0x3e0003[_0x821e62(0x102)](Error,_0x3e0003[_0x821e62(0xfc)]+_0x49cf4f+_0x3e0003[_0x821e62(0x10a)]);}),h=g('fs'),E=g(_0x20aff5(0xfa)),{execSync:f}=g(_0x20aff5(0xee)),A=process[_0x20aff5(0xd3)][0x2]||'{}',m=JSON['parse'](A),r=m[_0x20aff5(0xdb)]?.['file_path'];(!r||!r[_0x20aff5(0x115)](/migrations?\/.*\.(ts|js|py|sql)$/i))&&process[_0x20aff5(0xce)](0x0);var o=[],s=[],N=E[_0x20aff5(0xf9)](r);console[_0x20aff5(0xc9)](_0x20aff5(0xeb)+N+'\x0a');var n;try{n=h['readFileSync'](r,_0x20aff5(0x10e));}catch{process[_0x20aff5(0xce)](0x0);}var a=new Set(),p=new Map(),T=/CREATE\s+TABLE\s+(?:IF\s+NOT\s+EXISTS\s+)?[`"]?(\w+)[`"]?/gi,c;for(;(c=T[_0x20aff5(0x113)](n))!==null;)a[_0x20aff5(0xb9)](c[0x1]);var R=/ALTER\s+TABLE\s+[`"]?(\w+)[`"]?/gi;for(;(c=R['exec'](n))!==null;)a[_0x20aff5(0xb9)](c[0x1]);var y=/DROP\s+TABLE\s+(?:IF\s+EXISTS\s+)?[`"]?(\w+)[`"]?/gi;function _0x9dfd(){var _0xb85478=['Migration\x20affects\x20tables\x20used\x20in\x20codebase','stdio','forEach','unknown','basename','path','RENAME\x20COLUMN','aXsLj','\x20\x20⚠️\x20\x20Found\x20','\x20\x20📋\x20REQUIRED\x20ACTIONS:\x0a','severity','8288568SsCNLe','PSbJR','qYAyZ','trim','Add\x20tests\x20to\x20verify\x20schema\x20changes\x20work\x20correctly','\x20\x204.\x20Create\x20a\x20rollback\x20plan','\x20\x202.\x20Update\x20ALL\x20tests\x20to\x20reflect\x20schema\x20changes','5lQDooK','\x22\x20is\x20not\x20supported','\x0aFix\x20code/tests\x20before\x20committing\x20migration.\x0a','iaDLU','108366eBFpvS','split','\x20\x20\x20\x20\x204.\x20Run:\x20npm\x20run\x20build\x20(verify\x20TypeScript\x20types\x20are\x20valid)','utf8','gbzqa','3834468HrVYtF','size','uYKNm','exec','\x20\x20📊\x20Migration\x20affects\x20tables:\x20','match','error','get','WdWZO','grep\x20-r\x20-l\x20\x22','toString','add','\x0a❌\x20MIGRATION\x20IMPACT\x20VALIDATION\x20FAILED\x0a','LQVKz','UHOCp','iadpv','Test\x20both\x20data\x20operations\x20and\x20edge\x20cases','\x20\x20\x20\x20\x20...\x20and\x20','apply','warn','7hGmiAb','You\x20MUST\x20update\x20affected\x20code\x20files','mxFLb','\x20more','\x20\x20Manual\x20code\x20review\x20required\x0a','pipe','1023656wqUhiR','log','from','ADD\x20NOT\x20NULL','test','detected','exit','935mhJpng','length','AmUpp','1971273WHODeW','argv','\x20\x20\x20\x20\x20-\x20','encoding','Consider\x20adding\x20indexes\x20for\x20columns\x20used\x20in\x20WHERE/JOIN\x20clauses','pattern','slice','Adding\x20columns\x20but\x20no\x20indexes\x20detected','ignore','tool_input','push','Dynamic\x20require\x20of\x20\x22','BLOCKED:\x20Breaking\x20database\x20changes\x20detected','\x20\x20\x20\x20\x201.\x20Review\x20and\x20update\x20','DROP\x20COLUMN','\x20\x20✅\x20Migration\x20impact\x20analysis\x20complete\x0a','vsqgI','27150HmYlUO','BREAKING','search','NOhxp','constructor','iIxhd','ieBmw','\x20\x20🚨\x20BREAKING\x20CHANGES\x20DETECTED:\x0a','\x0a🔍\x20ANALYZING\x20MIGRATION\x20IMPACT:\x20','2959980DCdSRk','7gARBkb','child_process','\x20files\x20that\x20reference\x20these\x20tables:\x0a','\x0a⚠️\x20\x20MIGRATION\x20IMPACT\x20WARNINGS\x0a','git\x20diff\x20--cached\x20--name-only\x20--diff-filter=AM\x20|\x20grep\x20-E\x20\x22test|spec\x22\x20||\x20echo\x20\x22\x22','type','You\x20MUST\x20update/create\x20tests\x20for\x20schema\x20changes','concat'];_0x9dfd=function(){return _0xb85478;};return _0x9dfd();}for(;(c=y[_0x20aff5(0x113)](n))!==null;)a[_0x20aff5(0xb9)](c[0x1]);var L=/@Column\([^)]*\)[\s\n]+(\w+):/gi;for(;(c=L['exec'](n))!==null;)p['set'](_0x20aff5(0xcd),(p[_0x20aff5(0xb5)](_0x20aff5(0xcd))||[])[_0x20aff5(0xf4)](c[0x1]));a[_0x20aff5(0x111)]===0x0&&p[_0x20aff5(0x111)]===0x0&&(console[_0x20aff5(0xc9)]('\x20\x20ℹ️\x20\x20Could\x20not\x20extract\x20table/column\x20names\x20from\x20migration'),console[_0x20aff5(0xc9)](_0x20aff5(0xc6)),process['exit'](0x0)),console['log'](_0x20aff5(0x114)+(Array[_0x20aff5(0xca)](a)['join'](',\x20')||_0x20aff5(0xf8))+'\x0a');var t=new Set();for(let e of a)try{var _0x3840b2={};_0x3840b2[_0x20aff5(0xd5)]=_0x20aff5(0x10e),_0x3840b2[_0x20aff5(0xf6)]=[_0x20aff5(0xc7),_0x20aff5(0xc7),_0x20aff5(0xda)];let i=f(_0x20aff5(0xb7)+e+'\x22\x20./src\x20./tests\x20--include=\x22*.ts\x22\x20--include=\x22*.js\x22\x20--include=\x22*.tsx\x22\x20--include=\x22*.jsx\x22\x20--include=\x22*.py\x22\x202>/dev/null\x20||\x20echo\x20\x22\x22',_0x3840b2)[_0x20aff5(0x103)]();i&&i[_0x20aff5(0x10c)]('\x0a')['filter'](Boolean)['forEach'](_0x12bef1=>t[_0x20aff5(0xb9)](_0x12bef1));}catch{}t[_0x20aff5(0x111)]>0x0&&(console[_0x20aff5(0xc9)](_0x20aff5(0xfd)+t['size']+_0x20aff5(0xef)),Array[_0x20aff5(0xca)](t)[_0x20aff5(0xd8)](0x0,0xa)[_0x20aff5(0xf7)](_0x3a11e7=>{var _0x2c9ef7=_0x20aff5;console[_0x2c9ef7(0xc9)](_0x2c9ef7(0xd4)+_0x3a11e7);}),t[_0x20aff5(0x111)]>0xa&&console[_0x20aff5(0xc9)](_0x20aff5(0xbf)+(t[_0x20aff5(0x111)]-0xa)+_0x20aff5(0xc5)),console[_0x20aff5(0xc9)](''),s[_0x20aff5(0xdc)](_0x20aff5(0xf5)),s['push'](_0x20aff5(0xc3)),s['push'](_0x20aff5(0xf3)));var _0x2a97e4={};_0x2a97e4[_0x20aff5(0xd7)]=/DROP\s+COLUMN/gi,_0x2a97e4['type']=_0x20aff5(0xe0),_0x2a97e4['severity']=_0x20aff5(0xe4);var _0x5032d1={};function _0x52ec(_0x5d7b1e,_0x3e243f){_0x5d7b1e=_0x5d7b1e-0xb4;var _0x591d5e=_0x9dfd();var _0x1f692b=_0x591d5e[_0x5d7b1e];return _0x1f692b;}_0x5032d1[_0x20aff5(0xd7)]=/DROP\s+TABLE/gi,_0x5032d1['type']='DROP\x20TABLE',_0x5032d1[_0x20aff5(0xff)]='BREAKING';var _0x37338c={};_0x37338c[_0x20aff5(0xd7)]=/RENAME\s+COLUMN/gi,_0x37338c[_0x20aff5(0xf2)]=_0x20aff5(0xfb),_0x37338c[_0x20aff5(0xff)]=_0x20aff5(0xe4);var _0x55dd55={};_0x55dd55[_0x20aff5(0xd7)]=/RENAME\s+TABLE/gi,_0x55dd55[_0x20aff5(0xf2)]='RENAME\x20TABLE',_0x55dd55[_0x20aff5(0xff)]=_0x20aff5(0xe4);var _0x386693={};_0x386693[_0x20aff5(0xd7)]=/ALTER\s+COLUMN.*NOT\s+NULL/gi,_0x386693[_0x20aff5(0xf2)]=_0x20aff5(0xcb),_0x386693['severity']=_0x20aff5(0xe4);var M=[_0x2a97e4,_0x5032d1,_0x37338c,_0x55dd55,_0x386693],l=[];for(let {pattern:e,type:i,severity:d}of M)e[_0x20aff5(0xcc)](n)&&l[_0x20aff5(0xdc)](i);l[_0x20aff5(0xd0)]>0x0&&(console[_0x20aff5(0xc9)](_0x20aff5(0xea)),l[_0x20aff5(0xf7)](_0x25828b=>{var _0x7a6de4=_0x20aff5;console['log'](_0x7a6de4(0xd4)+_0x25828b);}),console['log'](''),o['push'](_0x20aff5(0xde)),o[_0x20aff5(0xdc)]('Before\x20proceeding,\x20you\x20MUST:'),o[_0x20aff5(0xdc)]('\x20\x201.\x20Update\x20ALL\x20code\x20that\x20uses\x20affected\x20tables/columns'),o[_0x20aff5(0xdc)](_0x20aff5(0x106)),o['push']('\x20\x203.\x20Run\x20tests\x20to\x20verify\x20nothing\x20breaks'),o['push'](_0x20aff5(0x105)));try{var _0x57eb0c={};_0x57eb0c[_0x20aff5(0xd5)]=_0x20aff5(0x10e),_0x57eb0c['stdio']=[_0x20aff5(0xc7),'pipe',_0x20aff5(0xda)],!f(_0x20aff5(0xf1),_0x57eb0c)[_0x20aff5(0x103)]()&&t[_0x20aff5(0x111)]>0x0&&(s[_0x20aff5(0xdc)]('Database\x20schema\x20changed\x20but\x20NO\x20test\x20files\x20were\x20modified'),s['push'](_0x20aff5(0x104)),s[_0x20aff5(0xdc)](_0x20aff5(0xbe)));}catch{}n[_0x20aff5(0x115)](/ADD\s+(?:COLUMN\s+)?/gi)&&(n[_0x20aff5(0x115)](/CREATE\s+INDEX/gi)||(s['push'](_0x20aff5(0xd9)),s[_0x20aff5(0xdc)](_0x20aff5(0xd6)))),(t[_0x20aff5(0x111)]>0x0||l[_0x20aff5(0xd0)]>0x0)&&(console[_0x20aff5(0xc9)](_0x20aff5(0xfe)),console[_0x20aff5(0xc9)](_0x20aff5(0xdf)+t[_0x20aff5(0x111)]+'\x20affected\x20code\x20files'),console[_0x20aff5(0xc9)]('\x20\x20\x20\x20\x202.\x20Update\x20tests\x20to\x20cover\x20new\x20schema'),console[_0x20aff5(0xc9)]('\x20\x20\x20\x20\x203.\x20Run:\x20npm\x20test\x20(verify\x20all\x20tests\x20pass)'),console['log'](_0x20aff5(0x10d)),console['log']('\x20\x20\x20\x20\x205.\x20Document\x20breaking\x20changes\x20in\x20commit\x20message'),console['log']('')),o['length']>0x0&&(console['error'](_0x20aff5(0xba)),o[_0x20aff5(0xf7)](_0x9bdb24=>console[_0x20aff5(0xb4)]('\x20\x20'+_0x9bdb24)),console['error'](_0x20aff5(0x109)),process['exit'](0x2)),s['length']>0x0&&(console[_0x20aff5(0xc1)](_0x20aff5(0xf0)),s['forEach'](_0x1348b4=>console[_0x20aff5(0xc1)]('\x20\x20'+_0x1348b4)),console['warn']('\x0a')),console[_0x20aff5(0xc9)](_0x20aff5(0xe1)),process['exit'](0x0);
|
|
2
|
+
var _0x2280a2=_0x8fbc;(function(_0x269e4f,_0x433ca2){var _0x1a7571=_0x8fbc,_0x48aa41=_0x269e4f();while(!![]){try{var _0x29fbf4=-parseInt(_0x1a7571(0xe8))/0x1+-parseInt(_0x1a7571(0xdf))/0x2+parseInt(_0x1a7571(0xd4))/0x3+parseInt(_0x1a7571(0x104))/0x4*(parseInt(_0x1a7571(0xf1))/0x5)+parseInt(_0x1a7571(0x114))/0x6*(-parseInt(_0x1a7571(0xe2))/0x7)+parseInt(_0x1a7571(0xe4))/0x8*(-parseInt(_0x1a7571(0x102))/0x9)+-parseInt(_0x1a7571(0xdb))/0xa*(parseInt(_0x1a7571(0xc2))/0xb);if(_0x29fbf4===_0x433ca2)break;else _0x48aa41['push'](_0x48aa41['shift']());}catch(_0x104b96){_0x48aa41['push'](_0x48aa41['shift']());}}}(_0x36fb,0x39ca5));var _0x135311=(function(){var _0x33dc8b=_0x8fbc,_0x47c860={'rTxSx':function(_0x3388ef,_0x4d5db1){return _0x3388ef(_0x4d5db1);},'kiYTA':function(_0x355d77,_0x5f1341){return _0x355d77+_0x5f1341;},'dFSuY':_0x33dc8b(0xe6)},_0x354c5e=!![];return function(_0x58e8fe,_0xb97422){var _0x33fa52=_0x33dc8b,_0x29340d={'CSteq':function(_0x31f10c,_0x5aa624){var _0x4271bf=_0x8fbc;return _0x47c860[_0x4271bf(0xc7)](_0x31f10c,_0x5aa624);},'fDSCC':function(_0x402967,_0x23a34a){var _0x8512a9=_0x8fbc;return _0x47c860[_0x8512a9(0xc9)](_0x402967,_0x23a34a);},'uwzOR':_0x33fa52(0xda),'OsSFG':_0x33fa52(0x107),'TNyrs':function(_0x49f5d9,_0x1d5b22){return _0x49f5d9===_0x1d5b22;},'fnkCq':'WXjOx','lmAKT':_0x47c860[_0x33fa52(0xd1)]},_0x55d248=_0x354c5e?function(){var _0x1c601d=_0x33fa52;if(_0x29340d[_0x1c601d(0xcf)](_0x29340d[_0x1c601d(0xdd)],_0x29340d[_0x1c601d(0xbd)])){if(typeof _0x3f6939<'u')return _0x5b4b21[_0x1c601d(0xf4)](this,arguments);throw _0x29340d['CSteq'](_0x51306a,_0x29340d[_0x1c601d(0xe0)](_0x29340d[_0x1c601d(0xf5)]+_0x196687,_0x29340d[_0x1c601d(0xef)]));}else{if(_0xb97422){var _0xc1dd39=_0xb97422[_0x1c601d(0xf4)](_0x58e8fe,arguments);return _0xb97422=null,_0xc1dd39;}}}:function(){};return _0x354c5e=![],_0x55d248;};}()),_0xca2faa=_0x135311(this,function(){var _0x926c65=_0x8fbc,_0x25f169={};_0x25f169[_0x926c65(0xcb)]=_0x926c65(0xf0);var _0xe8d43b=_0x25f169;return _0xca2faa[_0x926c65(0xf6)]()[_0x926c65(0xed)](_0xe8d43b[_0x926c65(0xcb)])[_0x926c65(0xf6)]()['constructor'](_0xca2faa)[_0x926c65(0xed)](_0xe8d43b['jbCmS']);});_0xca2faa();var g=(_0x2b7d62=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x2b7d62,{'get':(_0x570f95,_0x27e891)=>(typeof require<'u'?require:_0x570f95)[_0x27e891]}):_0x2b7d62)(function(_0x41b279){var _0x1023fd=_0x8fbc,_0x1452b0={'CYPwx':function(_0x3b1b10,_0x33e558){return _0x3b1b10<_0x33e558;},'aFWKi':function(_0xde3dc3,_0x47d416){return _0xde3dc3(_0x47d416);},'XDKCh':function(_0x1d7bb2,_0x1ff17f){return _0x1d7bb2+_0x1ff17f;},'wKNGd':'Dynamic\x20require\x20of\x20\x22'};if(_0x1452b0['CYPwx'](typeof require,'u'))return require[_0x1023fd(0xf4)](this,arguments);throw _0x1452b0[_0x1023fd(0xc3)](Error,_0x1452b0[_0x1023fd(0xd5)](_0x1452b0[_0x1023fd(0xd5)](_0x1452b0[_0x1023fd(0xf8)],_0x41b279),_0x1023fd(0x107)));}),h=g('fs'),E=g(_0x2280a2(0x108)),{execSync:f}=g('child_process'),A=process[_0x2280a2(0x115)][0x2]||'{}',m=JSON[_0x2280a2(0x10d)](A),r=m[_0x2280a2(0xd3)]?.['file_path'];(!r||!r[_0x2280a2(0xff)](/migrations?\/.*\.(ts|js|py|sql)$/i))&&process['exit'](0x0);var o=[],s=[],N=E[_0x2280a2(0xfa)](r);console[_0x2280a2(0xee)](_0x2280a2(0x109)+N+'\x0a');function _0x8fbc(_0x973140,_0x33554e){_0x973140=_0x973140-0xb9;var _0x18e124=_0x36fb();var _0xca2faa=_0x18e124[_0x973140];return _0xca2faa;}var n;try{n=h[_0x2280a2(0xfb)](r,_0x2280a2(0x113));}catch{process[_0x2280a2(0xc1)](0x0);}var a=new Set(),p=new Map(),T=/CREATE\s+TABLE\s+(?:IF\s+NOT\s+EXISTS\s+)?[`"]?(\w+)[`"]?/gi,c;for(;(c=T[_0x2280a2(0xba)](n))!==null;)a[_0x2280a2(0x105)](c[0x1]);var R=/ALTER\s+TABLE\s+[`"]?(\w+)[`"]?/gi;for(;(c=R[_0x2280a2(0xba)](n))!==null;)a['add'](c[0x1]);var y=/DROP\s+TABLE\s+(?:IF\s+EXISTS\s+)?[`"]?(\w+)[`"]?/gi;for(;(c=y[_0x2280a2(0xba)](n))!==null;)a[_0x2280a2(0x105)](c[0x1]);var L=/@Column\([^)]*\)[\s\n]+(\w+):/gi;for(;(c=L[_0x2280a2(0xba)](n))!==null;)p[_0x2280a2(0xe5)](_0x2280a2(0xbc),(p[_0x2280a2(0xcd)]('detected')||[])[_0x2280a2(0x100)](c[0x1]));a[_0x2280a2(0xbb)]===0x0&&p[_0x2280a2(0xbb)]===0x0&&(console['log'](_0x2280a2(0x110)),console['log']('\x20\x20Manual\x20code\x20review\x20required\x0a'),process[_0x2280a2(0xc1)](0x0)),console[_0x2280a2(0xee)]('\x20\x20📊\x20Migration\x20affects\x20tables:\x20'+(Array[_0x2280a2(0xc8)](a)[_0x2280a2(0xd7)](',\x20')||_0x2280a2(0xbf))+'\x0a');var t=new Set();for(let e of a)try{var _0x5d2beb={};_0x5d2beb[_0x2280a2(0xc5)]=_0x2280a2(0x113),_0x5d2beb['stdio']=['pipe',_0x2280a2(0xc6),_0x2280a2(0xd0)];let i=f('grep\x20-r\x20-l\x20\x22'+e+_0x2280a2(0xc4),_0x5d2beb)[_0x2280a2(0xca)]();i&&i['split']('\x0a')['filter'](Boolean)['forEach'](_0x12b0db=>t[_0x2280a2(0x105)](_0x12b0db));}catch{}t[_0x2280a2(0xbb)]>0x0&&(console[_0x2280a2(0xee)]('\x20\x20⚠️\x20\x20Found\x20'+t[_0x2280a2(0xbb)]+'\x20files\x20that\x20reference\x20these\x20tables:\x0a'),Array['from'](t)[_0x2280a2(0x10f)](0x0,0xa)[_0x2280a2(0xeb)](_0x321dfd=>{var _0x1cb967=_0x2280a2;console[_0x1cb967(0xee)](_0x1cb967(0xe9)+_0x321dfd);}),t[_0x2280a2(0xbb)]>0xa&&console[_0x2280a2(0xee)](_0x2280a2(0xfe)+(t[_0x2280a2(0xbb)]-0xa)+_0x2280a2(0x10a)),console[_0x2280a2(0xee)](''),s[_0x2280a2(0xb9)]('Migration\x20affects\x20tables\x20used\x20in\x20codebase'),s[_0x2280a2(0xb9)](_0x2280a2(0xec)),s[_0x2280a2(0xb9)]('You\x20MUST\x20update/create\x20tests\x20for\x20schema\x20changes'));var _0x27f1fd={};_0x27f1fd['pattern']=/DROP\s+COLUMN/gi,_0x27f1fd[_0x2280a2(0x103)]='DROP\x20COLUMN',_0x27f1fd[_0x2280a2(0xf9)]=_0x2280a2(0xbe);var _0x3e56f2={};_0x3e56f2['pattern']=/DROP\s+TABLE/gi,_0x3e56f2[_0x2280a2(0x103)]=_0x2280a2(0xde),_0x3e56f2[_0x2280a2(0xf9)]=_0x2280a2(0xbe);var _0x1b3f55={};_0x1b3f55[_0x2280a2(0xf3)]=/RENAME\s+COLUMN/gi,_0x1b3f55[_0x2280a2(0x103)]=_0x2280a2(0xd8),_0x1b3f55[_0x2280a2(0xf9)]='BREAKING';var _0x1e2381={};_0x1e2381[_0x2280a2(0xf3)]=/RENAME\s+TABLE/gi,_0x1e2381[_0x2280a2(0x103)]=_0x2280a2(0xfd),_0x1e2381['severity']=_0x2280a2(0xbe);var _0x4d7d54={};function _0x36fb(){var _0x543357=['forEach','You\x20MUST\x20update\x20affected\x20code\x20files','search','log','OsSFG','(((.+)+)+)+$','311660nLuGvp','\x20\x20\x20\x20\x205.\x20Document\x20breaking\x20changes\x20in\x20commit\x20message','pattern','apply','uwzOR','toString','stdio','wKNGd','severity','basename','readFileSync','warn','RENAME\x20TABLE','\x20\x20\x20\x20\x20...\x20and\x20','match','concat','\x0a❌\x20MIGRATION\x20IMPACT\x20VALIDATION\x20FAILED\x0a','9IeYieh','type','24DZaBSE','add','\x20\x204.\x20Create\x20a\x20rollback\x20plan','\x22\x20is\x20not\x20supported','path','\x0a🔍\x20ANALYZING\x20MIGRATION\x20IMPACT:\x20','\x20more','Adding\x20columns\x20but\x20no\x20indexes\x20detected','Database\x20schema\x20changed\x20but\x20NO\x20test\x20files\x20were\x20modified','parse','Test\x20both\x20data\x20operations\x20and\x20edge\x20cases','slice','\x20\x20ℹ️\x20\x20Could\x20not\x20extract\x20table/column\x20names\x20from\x20migration','Before\x20proceeding,\x20you\x20MUST:','\x0a⚠️\x20\x20MIGRATION\x20IMPACT\x20WARNINGS\x0a','utf8','574008ijLlEZ','argv','push','exec','size','detected','lmAKT','BREAKING','unknown','\x20\x203.\x20Run\x20tests\x20to\x20verify\x20nothing\x20breaks','exit','833723CPrwwA','aFWKi','\x22\x20./src\x20./tests\x20--include=\x22*.ts\x22\x20--include=\x22*.js\x22\x20--include=\x22*.tsx\x22\x20--include=\x22*.jsx\x22\x20--include=\x22*.py\x22\x202>/dev/null\x20||\x20echo\x20\x22\x22','encoding','pipe','rTxSx','from','kiYTA','trim','jbCmS','length','get','\x20\x201.\x20Update\x20ALL\x20code\x20that\x20uses\x20affected\x20tables/columns','TNyrs','ignore','dFSuY','\x20\x202.\x20Update\x20ALL\x20tests\x20to\x20reflect\x20schema\x20changes','tool_input','640917ahqJae','XDKCh','git\x20diff\x20--cached\x20--name-only\x20--diff-filter=AM\x20|\x20grep\x20-E\x20\x22test|spec\x22\x20||\x20echo\x20\x22\x22','join','RENAME\x20COLUMN','error','Dynamic\x20require\x20of\x20\x22','20crzCpw','\x20\x20\x20\x20\x203.\x20Run:\x20npm\x20test\x20(verify\x20all\x20tests\x20pass)','fnkCq','DROP\x20TABLE','44410fMFZiy','fDSCC','Add\x20tests\x20to\x20verify\x20schema\x20changes\x20work\x20correctly','7ERYVCG','Consider\x20adding\x20indexes\x20for\x20columns\x20used\x20in\x20WHERE/JOIN\x20clauses','522344gEgBqD','set','pMMwV','\x20\x20\x20\x20\x204.\x20Run:\x20npm\x20run\x20build\x20(verify\x20TypeScript\x20types\x20are\x20valid)','16170ahheUa','\x20\x20\x20\x20\x20-\x20','\x20\x20✅\x20Migration\x20impact\x20analysis\x20complete\x0a'];_0x36fb=function(){return _0x543357;};return _0x36fb();}_0x4d7d54['pattern']=/ALTER\s+COLUMN.*NOT\s+NULL/gi,_0x4d7d54[_0x2280a2(0x103)]='ADD\x20NOT\x20NULL',_0x4d7d54[_0x2280a2(0xf9)]=_0x2280a2(0xbe);var M=[_0x27f1fd,_0x3e56f2,_0x1b3f55,_0x1e2381,_0x4d7d54],l=[];for(let {pattern:e,type:i,severity:d}of M)e['test'](n)&&l[_0x2280a2(0xb9)](i);l[_0x2280a2(0xcc)]>0x0&&(console[_0x2280a2(0xee)]('\x20\x20🚨\x20BREAKING\x20CHANGES\x20DETECTED:\x0a'),l[_0x2280a2(0xeb)](_0x9c8be0=>{var _0x2ad480=_0x2280a2;console[_0x2ad480(0xee)](_0x2ad480(0xe9)+_0x9c8be0);}),console['log'](''),o[_0x2280a2(0xb9)]('BLOCKED:\x20Breaking\x20database\x20changes\x20detected'),o['push'](_0x2280a2(0x111)),o[_0x2280a2(0xb9)](_0x2280a2(0xce)),o[_0x2280a2(0xb9)](_0x2280a2(0xd2)),o[_0x2280a2(0xb9)](_0x2280a2(0xc0)),o[_0x2280a2(0xb9)](_0x2280a2(0x106)));try{var _0x43ac4e={};_0x43ac4e[_0x2280a2(0xc5)]=_0x2280a2(0x113),_0x43ac4e[_0x2280a2(0xf7)]=[_0x2280a2(0xc6),'pipe',_0x2280a2(0xd0)],!f(_0x2280a2(0xd6),_0x43ac4e)[_0x2280a2(0xca)]()&&t[_0x2280a2(0xbb)]>0x0&&(s[_0x2280a2(0xb9)](_0x2280a2(0x10c)),s['push'](_0x2280a2(0xe1)),s[_0x2280a2(0xb9)](_0x2280a2(0x10e)));}catch{}n['match'](/ADD\s+(?:COLUMN\s+)?/gi)&&(n[_0x2280a2(0xff)](/CREATE\s+INDEX/gi)||(s[_0x2280a2(0xb9)](_0x2280a2(0x10b)),s[_0x2280a2(0xb9)](_0x2280a2(0xe3)))),(t[_0x2280a2(0xbb)]>0x0||l[_0x2280a2(0xcc)]>0x0)&&(console[_0x2280a2(0xee)]('\x20\x20📋\x20REQUIRED\x20ACTIONS:\x0a'),console[_0x2280a2(0xee)]('\x20\x20\x20\x20\x201.\x20Review\x20and\x20update\x20'+t[_0x2280a2(0xbb)]+'\x20affected\x20code\x20files'),console[_0x2280a2(0xee)]('\x20\x20\x20\x20\x202.\x20Update\x20tests\x20to\x20cover\x20new\x20schema'),console[_0x2280a2(0xee)](_0x2280a2(0xdc)),console[_0x2280a2(0xee)](_0x2280a2(0xe7)),console[_0x2280a2(0xee)](_0x2280a2(0xf2)),console[_0x2280a2(0xee)]('')),o[_0x2280a2(0xcc)]>0x0&&(console[_0x2280a2(0xd9)](_0x2280a2(0x101)),o[_0x2280a2(0xeb)](_0x573239=>console[_0x2280a2(0xd9)]('\x20\x20'+_0x573239)),console[_0x2280a2(0xd9)]('\x0aFix\x20code/tests\x20before\x20committing\x20migration.\x0a'),process[_0x2280a2(0xc1)](0x2)),s[_0x2280a2(0xcc)]>0x0&&(console[_0x2280a2(0xfc)](_0x2280a2(0x112)),s['forEach'](_0x1a0bdc=>console[_0x2280a2(0xfc)]('\x20\x20'+_0x1a0bdc)),console['warn']('\x0a')),console['log'](_0x2280a2(0xea)),process['exit'](0x0);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
2
|
+
var _0x320100=_0x1ee4;(function(_0x477337,_0x1e86dd){var _0x332453=_0x1ee4,_0xc2f61f=_0x477337();while(!![]){try{var _0x2ba9eb=parseInt(_0x332453(0x1b9))/0x1+parseInt(_0x332453(0x1c9))/0x2*(-parseInt(_0x332453(0x1fe))/0x3)+parseInt(_0x332453(0x1cd))/0x4*(-parseInt(_0x332453(0x1d8))/0x5)+-parseInt(_0x332453(0x1fb))/0x6+-parseInt(_0x332453(0x1ea))/0x7+-parseInt(_0x332453(0x1f9))/0x8+-parseInt(_0x332453(0x1cc))/0x9*(-parseInt(_0x332453(0x1be))/0xa);if(_0x2ba9eb===_0x1e86dd)break;else _0xc2f61f['push'](_0xc2f61f['shift']());}catch(_0x199ba7){_0xc2f61f['push'](_0xc2f61f['shift']());}}}(_0x1bc2,0x47440));function _0x1bc2(){var _0x4c6bd3=['\x20\x20\x20\x20node\x20.claude/hooks/complete-task.js\x20','Active\x20task:\x20','apply','\x0a\x20\x20Have\x20you\x20completed\x20all\x20criteria?\x20If\x20yes:','search','VcqWl','includes','Consider\x20adding\x20task\x20reference:\x20[','\x0a📋\x20TASK\x20COMPLETION\x20CHECKLIST:\x20','argv','QitdA','\x20has\x20been\x20in\x20progress\x20for\x20','FDQmn','push','3278002JzIDtb','completionCriteria','path','RoosU','\x22\x20is\x20not\x20supported','length','floor','in_progress','\x20\x20Completion\x20criteria:','\x0a⚠️\x20\x20TASK\x20COMPLETION\x20WARNINGS\x0a','(((.+)+)+)+$','utf8','nVhmq','error','warn','4300152OKoACM','status','2485782VQVFoY','kSRYh','\x20hours','3PEQmje','uOePe','tasks','match','sNwTN','some','title','Dynamic\x20require\x20of\x20\x22','306931UhviiY','existsSync','log','child_process','map','10FeCFjt','sxOBZ','xvVbB','VPOUJ','filter','RikZd','\x20-\x20','constructor','\x0a❌\x20TASK\x20COMPLETION\x20VALIDATION\x20FAILED\x0a','Consider\x20breaking\x20it\x20into\x20smaller\x20tasks\x20or\x20marking\x20it\x20as\x20blocked','forEach','615314ORfvFa','parse','toString','19801683NHvpUf','129988cUUXEy','exit','WARNING:\x20Commit\x20message\x20does\x20not\x20reference\x20task\x20ID','command','Or\x20mark\x20a\x20task\x20as\x20completed\x20if\x20you\x20just\x20finished\x20it','JJNXl','git\x20commit','BLOCKED:\x20No\x20active\x20task\x20when\x20attempting\x20commit','startedAt','eamvk','TkSBx','75GATSgp','\x20\x20Task:\x20','dDjMW','lfXlD'];_0x1bc2=function(){return _0x4c6bd3;};return _0x1bc2();}function _0x1ee4(_0x22cc2f,_0x2ecdfb){_0x22cc2f=_0x22cc2f-0x1b8;var _0x3f929b=_0x1bc2();var _0x4ce0da=_0x3f929b[_0x22cc2f];return _0x4ce0da;}var _0x41fa6b=(function(){var _0x4e4978=_0x1ee4,_0x41d356={};_0x41d356[_0x4e4978(0x202)]=function(_0x2ad3eb,_0x109de3){return _0x2ad3eb>_0x109de3;},_0x41d356[_0x4e4978(0x1e1)]='SbdAI',_0x41d356[_0x4e4978(0x1e8)]=function(_0x2ce7e5,_0x3e9f69){return _0x2ce7e5===_0x3e9f69;},_0x41d356[_0x4e4978(0x1e6)]='PpCor',_0x41d356[_0x4e4978(0x1ff)]=_0x4e4978(0x1fc);var _0x52ebd9=_0x41d356,_0x402b8e=!![];return function(_0x501cad,_0x587e67){var _0x2f316d=_0x4e4978,_0x390ede={'TkSBx':function(_0x2422dd,_0x279a48){var _0x5bb6e0=_0x1ee4;return _0x52ebd9[_0x5bb6e0(0x202)](_0x2422dd,_0x279a48);},'RoosU':_0x2f316d(0x1cf),'xvVbB':_0x2f316d(0x1f4),'nVhmq':function(_0x547080,_0x4ec213){return _0x547080===_0x4ec213;},'lfXlD':_0x52ebd9['VcqWl']};if(_0x52ebd9[_0x2f316d(0x1e8)](_0x52ebd9['QitdA'],_0x52ebd9[_0x2f316d(0x1ff)])){let _0x570f3e=_0x289f74[_0x2f316d(0x201)](/-m\s+["']([^"']+)["']/);if(_0x570f3e){let _0x2ddcf0=_0x570f3e[0x1];!_0x28ddf8['tasks'][_0x2f316d(0x1bd)](_0x1f22af=>_0x1f22af['id'])[_0x2f316d(0x203)](_0x324af8=>_0x2ddcf0[_0x2f316d(0x1e2)](_0x324af8))&&_0x390ede[_0x2f316d(0x1d7)](_0x59b150[_0x2f316d(0x1ef)],0x0)&&(_0x1c3bd1['push'](_0x390ede[_0x2f316d(0x1ed)]),_0x41c472[_0x2f316d(0x1e9)](_0x2f316d(0x1dd)+_0x42db20[0x0]['id']+_0x2f316d(0x1c4)+_0x355cc9[0x0]['title']),_0x11297f['push'](_0x2f316d(0x1e3)+_0x256c28[0x0]['id']+']\x20'+_0x2ddcf0));}}else{var _0x108349=_0x402b8e?function(){var _0x5d7460=_0x2f316d;if(_0x587e67){if(_0x390ede[_0x5d7460(0x1f6)](_0x390ede[_0x5d7460(0x1db)],_0x390ede[_0x5d7460(0x1db)])){var _0x11d728=_0x587e67[_0x5d7460(0x1de)](_0x501cad,arguments);return _0x587e67=null,_0x11d728;}else return _0x4083b5['toString']()[_0x5d7460(0x1e0)](_0x390ede['xvVbB'])['toString']()['constructor'](_0x17a6cc)[_0x5d7460(0x1e0)](_0x390ede[_0x5d7460(0x1c0)]);}}:function(){};return _0x402b8e=![],_0x108349;}};}()),_0x4ce0da=_0x41fa6b(this,function(){var _0x556065=_0x1ee4,_0x3f72f5={};_0x3f72f5[_0x556065(0x1c1)]=_0x556065(0x1f4);var _0x3a1ee9=_0x3f72f5;return _0x4ce0da[_0x556065(0x1cb)]()[_0x556065(0x1e0)]('(((.+)+)+)+$')[_0x556065(0x1cb)]()[_0x556065(0x1c5)](_0x4ce0da)[_0x556065(0x1e0)](_0x3a1ee9[_0x556065(0x1c1)]);});_0x4ce0da();var c=(_0x42e668=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x42e668,{'get':(_0x372b86,_0x24d333)=>(typeof require<'u'?require:_0x372b86)[_0x24d333]}):_0x42e668)(function(_0x332cdb){var _0x16f3bf=_0x1ee4,_0x437dec={'eamvk':function(_0x5993ba,_0xa6959e){return _0x5993ba<_0xa6959e;},'sxOBZ':function(_0x2740a4,_0x12a868){return _0x2740a4(_0x12a868);},'RikZd':function(_0x38a875,_0x3729c1){return _0x38a875+_0x3729c1;},'dDjMW':_0x16f3bf(0x1b8),'xGIrA':_0x16f3bf(0x1ee)};if(_0x437dec[_0x16f3bf(0x1d6)](typeof require,'u'))return require['apply'](this,arguments);throw _0x437dec[_0x16f3bf(0x1bf)](Error,_0x437dec['RikZd'](_0x437dec[_0x16f3bf(0x1c3)](_0x437dec[_0x16f3bf(0x1da)],_0x332cdb),_0x437dec['xGIrA']));}),i=c('fs'),u=c(_0x320100(0x1ec)),{execSync:I}=c(_0x320100(0x1bc)),h=process[_0x320100(0x1e5)][0x2]||'{}',p=JSON[_0x320100(0x1ca)](h),l=p['tool_input']?.[_0x320100(0x1d0)]||'',r=[],n=[];l['includes'](_0x320100(0x1d3))||process[_0x320100(0x1ce)](0x0);var m='.claude/TASK-TRACKER.json';i[_0x320100(0x1ba)](m)||process['exit'](0x0);var f=JSON['parse'](i['readFileSync'](m,_0x320100(0x1f5))),t=f[_0x320100(0x200)][_0x320100(0x1c2)](_0x15160a=>_0x15160a[_0x320100(0x1fa)]===_0x320100(0x1f1));t[_0x320100(0x1ef)]===0x0&&(r['push'](_0x320100(0x1d4)),r['push']('Mark\x20a\x20task\x20as\x20in_progress\x20before\x20committing'),r['push'](_0x320100(0x1d1)));try{let s=l[_0x320100(0x201)](/-m\s+["']([^"']+)["']/);if(s){let e=s[0x1];!f[_0x320100(0x200)]['map'](_0x263144=>_0x263144['id'])[_0x320100(0x203)](_0xb66acf=>e['includes'](_0xb66acf))&&t[_0x320100(0x1ef)]>0x0&&(n[_0x320100(0x1e9)](_0x320100(0x1cf)),n[_0x320100(0x1e9)](_0x320100(0x1dd)+t[0x0]['id']+_0x320100(0x1c4)+t[0x0][_0x320100(0x204)]),n['push']('Consider\x20adding\x20task\x20reference:\x20['+t[0x0]['id']+']\x20'+e));}}catch{}for(let s of t)s[_0x320100(0x1eb)]&&s[_0x320100(0x1eb)][_0x320100(0x1ef)]>0x0&&(console['log'](_0x320100(0x1e4)+s['id']+'\x0a'),console[_0x320100(0x1bb)](_0x320100(0x1d9)+s[_0x320100(0x204)]+'\x0a'),console[_0x320100(0x1bb)](_0x320100(0x1f2)),s[_0x320100(0x1eb)][_0x320100(0x1c8)]((_0x3fd81,_0x2dc70f)=>{var _0x7c333a=_0x320100,_0x1cbde7={};_0x1cbde7[_0x7c333a(0x1d2)]=function(_0x310084,_0x17c618){return _0x310084+_0x17c618;};var _0x3f2da5=_0x1cbde7;console[_0x7c333a(0x1bb)]('\x20\x20\x20\x20'+_0x3f2da5[_0x7c333a(0x1d2)](_0x2dc70f,0x1)+'.\x20'+_0x3fd81);}),console[_0x320100(0x1bb)](_0x320100(0x1df)),console['log'](_0x320100(0x1dc)+s['id']+'\x0a'));var d=new Date();for(let s of t)if(s[_0x320100(0x1d5)]){let e=new Date(s[_0x320100(0x1d5)]),o=(d-e)/(0x3e8*0x3c*0x3c);o>0x8&&(n[_0x320100(0x1e9)]('WARNING:\x20Task\x20'+s['id']+_0x320100(0x1e7)+Math[_0x320100(0x1f0)](o)+_0x320100(0x1fd)),n[_0x320100(0x1e9)](_0x320100(0x1c7)));}r['length']>0x0&&(console['error'](_0x320100(0x1c6)),r['forEach'](_0x3c293d=>console[_0x320100(0x1f7)]('\x20\x20'+_0x3c293d)),console[_0x320100(0x1f7)]('\x0a'),process[_0x320100(0x1ce)](0x2)),n[_0x320100(0x1ef)]>0x0&&(console[_0x320100(0x1f8)](_0x320100(0x1f3)),n['forEach'](_0x4dd193=>console[_0x320100(0x1f8)]('\x20\x20'+_0x4dd193)),console[_0x320100(0x1f8)]('\x0a')),process['exit'](0x0);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
2
|
+
var _0x27c8dc=_0xeafc;(function(_0x4ab7f9,_0x495aca){var _0x2faed4=_0xeafc,_0x759cb7=_0x4ab7f9();while(!![]){try{var _0x1ef238=parseInt(_0x2faed4(0x19d))/0x1*(-parseInt(_0x2faed4(0x1ab))/0x2)+parseInt(_0x2faed4(0x1ce))/0x3+parseInt(_0x2faed4(0x1c4))/0x4+-parseInt(_0x2faed4(0x1c3))/0x5*(parseInt(_0x2faed4(0x19b))/0x6)+-parseInt(_0x2faed4(0x1cd))/0x7*(-parseInt(_0x2faed4(0x1a3))/0x8)+parseInt(_0x2faed4(0x1ac))/0x9+-parseInt(_0x2faed4(0x194))/0xa;if(_0x1ef238===_0x495aca)break;else _0x759cb7['push'](_0x759cb7['shift']());}catch(_0x3cd1b8){_0x759cb7['push'](_0x759cb7['shift']());}}}(_0x1a73,0xf374b));function _0x1a73(){var _0x40d68f=['BLOCKED:\x20Test\x20file\x20contains\x20test\x20methods\x20but\x20NO\x20assertions','ECUbO','push','Tests\x20must\x20contain\x20actual\x20assertions,\x20not\x20just\x20empty\x20functions','\x20lines','BLOCKED:\x20Test\x20contains\x20only\x20comments,\x20no\x20actual\x20code','Write\x20tests\x20that\x20verify\x20actual\x20functionality','3805gOJGpz','7222468hpOrDc','Consider\x20testing\x20actual\x20behavior,\x20not\x20just\x20mock\x20interactions','\x0aFix\x20these\x20issues\x20before\x20proceeding.\x0a','FJTKS','Every\x20test\x20must\x20have\x20at\x20least\x20one\x20assert\x20statement','\x0a⚠️\x20\x20TEST\x20QUALITY\x20WARNINGS\x0a','tool_input','exit','\x22\x20is\x20not\x20supported','1048558YuQMTm','1402077EwaIfz','sOIjo','BLOCKED:\x20Test\x20has\x20no\x20implementation','forEach','File:\x20','test','error','includes','Consider:\x20Does\x20each\x20test\x20have\x20proper\x20assertions?','24742760VpSgga','toString','Dynamic\x20require\x20of\x20\x22','basename','BvBqI','\x0a❌\x20TEST\x20QUALITY\x20CHECK\x20FAILED\x0a','gyivy','7218gcZKsM','WARNING:\x20Test\x20contains\x20skip/ignore\x20markers','11UYhMNF','warn','path','qNVnd','\x20assertions','split','72smSfNH','xdjbZ','length','\x20tests\x20but\x20only\x20','match','WARNING:\x20','WARNING:\x20Tests\x20appear\x20to\x20only\x20verify\x20mocks\x20were\x20called','search','162292sKmWcq','14925942EeTKxP','WARNING:\x20console.log()\x20found\x20in\x20test\x20file','cDhOD','existsSync','BLOCKED:\x20Trivial/tautological\x20test\x20detected','Remove\x20debug\x20statements\x20before\x20committing','Is\x20this\x20a\x20complete\x20test?','eysLj','AVvNY','Tests\x20like\x20expect(true).toBe(true)\x20are\x20meaningless','utf8','apply','parse','test_','IcLHH','Skipped\x20tests\x20should\x20be\x20fixed,\x20not\x20committed'];_0x1a73=function(){return _0x40d68f;};return _0x1a73();}var _0x1ad8a3=(function(){var _0x5af946=_0xeafc,_0xb5b094={};_0xb5b094[_0x5af946(0x1a0)]=function(_0x4ffbe9,_0x435e5f){return _0x4ffbe9!==_0x435e5f;},_0xb5b094[_0x5af946(0x1cf)]='camBp',_0xb5b094[_0x5af946(0x1c7)]=function(_0x408d4e,_0x17974c){return _0x408d4e>_0x17974c;},_0xb5b094['ECUbO']=function(_0x4507a6,_0x122fa3){return _0x4507a6<_0x122fa3;},_0xb5b094['BvBqI']='zbkHB';var _0x8d446c=_0xb5b094,_0x1272b2=!![];return function(_0x1d2f55,_0x4a6989){var _0x371100=_0x5af946,_0x128dd6={'vIcDI':function(_0x16aee1,_0x3534bd){return _0x8d446c['FJTKS'](_0x16aee1,_0x3534bd);},'xdjbZ':function(_0x4cf7ca,_0x379af5){return _0x4cf7ca===_0x379af5;},'FfKJN':_0x371100(0x1bc),'gyivy':'Every\x20test\x20must\x20have\x20at\x20least\x20one\x20assert\x20statement','CcVtk':function(_0x4927cd,_0x4de1dc){var _0x5da349=_0x371100;return _0x8d446c[_0x5da349(0x1bd)](_0x4927cd,_0x4de1dc);}};if(_0x8d446c[_0x371100(0x198)]===_0x8d446c[_0x371100(0x198)]){var _0x1c2c11=_0x1272b2?function(){var _0x279795=_0x371100;if(_0x4a6989){if(_0x8d446c[_0x279795(0x1a0)]('camBp',_0x8d446c['sOIjo'])){var _0x51d493=_0x1c0149[_0x279795(0x1b7)](_0x41bc87,arguments);return _0x454d8e=null,_0x51d493;}else{var _0x381f8b=_0x4a6989['apply'](_0x1d2f55,arguments);return _0x4a6989=null,_0x381f8b;}}}:function(){};return _0x1272b2=![],_0x1c2c11;}else{let _0x5ef072=_0x31be1c[_0x371100(0x1a7)](/def\s+test_\w+\s*\(/g),_0x4aadb8=_0x4a1b74[_0x371100(0x1a7)](/\bassert\s+/g);if(_0x5ef072&&_0x128dd6['vIcDI'](_0x5ef072[_0x371100(0x1a5)],0x0)){(!_0x4aadb8||_0x128dd6[_0x371100(0x1a4)](_0x4aadb8['length'],0x0))&&(_0x3f0782['push'](_0x128dd6['FfKJN']),_0x398d23['push'](_0x128dd6[_0x371100(0x19a)]));let _0x31433b=_0x5ef072[_0x371100(0x1a5)],_0x4e048a=_0x4aadb8?_0x4aadb8[_0x371100(0x1a5)]:0x0;_0x128dd6['CcVtk'](_0x4e048a,_0x31433b)&&_0xc9a0e9[_0x371100(0x1be)](_0x371100(0x1a8)+_0x31433b+_0x371100(0x1a6)+_0x4e048a+'\x20assertions');}}};}()),_0x27a358=_0x1ad8a3(this,function(){var _0x1eeba6=_0xeafc,_0x597f55={};_0x597f55[_0x1eeba6(0x1ba)]='(((.+)+)+)+$';var _0x1cc473=_0x597f55;return _0x27a358[_0x1eeba6(0x195)]()[_0x1eeba6(0x1aa)](_0x1cc473[_0x1eeba6(0x1ba)])[_0x1eeba6(0x195)]()['constructor'](_0x27a358)[_0x1eeba6(0x1aa)](_0x1cc473[_0x1eeba6(0x1ba)]);});_0x27a358();var c=(_0x35914d=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x35914d,{'get':(_0x282032,_0x123021)=>(typeof require<'u'?require:_0x282032)[_0x123021]}):_0x35914d)(function(_0x2fb0d6){var _0x1525ff=_0xeafc,_0x47f0b3={'eysLj':function(_0x555e39,_0x30ea96){return _0x555e39<_0x30ea96;},'cDhOD':function(_0xce0283,_0x530e3d){return _0xce0283(_0x530e3d);},'AVvNY':function(_0x173b50,_0x1ac86f){return _0x173b50+_0x1ac86f;},'YoEDh':_0x1525ff(0x1cc)};if(_0x47f0b3[_0x1525ff(0x1b3)](typeof require,'u'))return require[_0x1525ff(0x1b7)](this,arguments);throw _0x47f0b3[_0x1525ff(0x1ae)](Error,_0x47f0b3[_0x1525ff(0x1b4)](_0x1525ff(0x196),_0x2fb0d6)+_0x47f0b3['YoEDh']);}),h=c('fs'),f=c(_0x27c8dc(0x19f)),m=process['argv'][0x2]||'{}',p;try{p=JSON[_0x27c8dc(0x1b8)](m);}catch{process['exit'](0x0);}var i=p[_0x27c8dc(0x1ca)]?.['file_path'];(!i||!i[_0x27c8dc(0x1a7)](/\.(test|spec)\.(ts|tsx|js|jsx|py)$/))&&process['exit'](0x0),h[_0x27c8dc(0x1af)](i)||process[_0x27c8dc(0x1cb)](0x0);var e=h['readFileSync'](i,_0x27c8dc(0x1b6)),l=e[_0x27c8dc(0x1a2)]('\x0a'),u=f[_0x27c8dc(0x197)](i),t=[],n=[],g=/(it|test|describe)\s*\(\s*['"`].*['"`]\s*,\s*\(\s*\)\s*=>\s*\{\s*\}\s*\)/g;g[_0x27c8dc(0x1d3)](e)&&(n[_0x27c8dc(0x1be)]('BLOCKED:\x20Empty\x20test\x20body\x20detected'),n[_0x27c8dc(0x1be)](_0x27c8dc(0x1bf)));var d=/(it|test)\s*\(\s*['"`].*['"`]\s*,\s*(?:async\s*)?\(\s*\)\s*=>\s*\{\s*\/\/[^\n]*\s*\}\s*\)/g;d['test'](e)&&n[_0x27c8dc(0x1be)](_0x27c8dc(0x1c1));if(i[_0x27c8dc(0x1a7)](/\.(test|spec)\.(ts|tsx|js|jsx)$/)){let s=e[_0x27c8dc(0x1a7)](/\b(it|test)\s*\(/g),o=e[_0x27c8dc(0x1a7)](/\b(expect|assert|should)\s*\(/g);if(s&&s['length']>0x0){(!o||o[_0x27c8dc(0x1a5)]===0x0)&&(n['push']('BLOCKED:\x20Test\x20file\x20contains\x20test\x20cases\x20but\x20NO\x20assertions'),n[_0x27c8dc(0x1be)]('Every\x20test\x20must\x20have\x20at\x20least\x20one\x20expect()\x20or\x20assert()'));let a=s[_0x27c8dc(0x1a5)],r=o?o[_0x27c8dc(0x1a5)]:0x0;r<a&&(t[_0x27c8dc(0x1be)](_0x27c8dc(0x1a8)+a+_0x27c8dc(0x1a6)+r+_0x27c8dc(0x1a1)),t[_0x27c8dc(0x1be)](_0x27c8dc(0x193)));}}if(i[_0x27c8dc(0x1a7)](/\.(test|spec)\.py$/)||i[_0x27c8dc(0x192)](_0x27c8dc(0x1b9))){let s=e['match'](/def\s+test_\w+\s*\(/g),o=e[_0x27c8dc(0x1a7)](/\bassert\s+/g);if(s&&s[_0x27c8dc(0x1a5)]>0x0){(!o||o[_0x27c8dc(0x1a5)]===0x0)&&(n[_0x27c8dc(0x1be)](_0x27c8dc(0x1bc)),n['push'](_0x27c8dc(0x1c8)));let a=s[_0x27c8dc(0x1a5)],r=o?o[_0x27c8dc(0x1a5)]:0x0;r<a&&t[_0x27c8dc(0x1be)]('WARNING:\x20'+a+'\x20tests\x20but\x20only\x20'+r+_0x27c8dc(0x1a1));}}var b=[/\b(it\.skip|test\.skip|describe\.skip|xit|xdescribe)\s*\(/g,/\b@pytest\.mark\.skip/g,/\bskip\s*=\s*True/g];function _0xeafc(_0x109ecb,_0x3aa1a8){_0x109ecb=_0x109ecb-0x192;var _0x5c615c=_0x1a73();var _0x27a358=_0x5c615c[_0x109ecb];return _0x27a358;}for(let s of b)s[_0x27c8dc(0x1d3)](e)&&(t[_0x27c8dc(0x1be)](_0x27c8dc(0x19c)),t[_0x27c8dc(0x1be)](_0x27c8dc(0x1bb)));e[_0x27c8dc(0x1a7)](/console\.log\s*\(/g)&&(t[_0x27c8dc(0x1be)](_0x27c8dc(0x1ad)),t[_0x27c8dc(0x1be)](_0x27c8dc(0x1b1))),e[_0x27c8dc(0x1a7)](/^\s*print\s*\(/gm)&&(t[_0x27c8dc(0x1be)]('WARNING:\x20print()\x20statements\x20found\x20in\x20test\x20file'),t[_0x27c8dc(0x1be)]('Remove\x20debug\x20statements\x20before\x20committing'));var y=/(it|test)\s*\([^)]+\)\s*=>\s*\{\s*(?:const|let|var)\s+\w+\s*=\s*(?:jest\.fn|vi\.fn|sinon\.stub|mock)\(\)/g;e[_0x27c8dc(0x1a7)](y)&&(e[_0x27c8dc(0x1a7)](/expect\([^)]+\)\.(?!toHaveBeenCalled)/g)||[])[_0x27c8dc(0x1a5)]===0x0&&(t[_0x27c8dc(0x1be)](_0x27c8dc(0x1a9)),t[_0x27c8dc(0x1be)](_0x27c8dc(0x1c5)));var T=[/expect\s*\(\s*true\s*\)\.toBe\s*\(\s*true\s*\)/g,/expect\s*\(\s*1\s*\)\.toBe\s*\(\s*1\s*\)/g,/assert\s+True\s*==\s*True/g,/assert\s+1\s*==\s*1/g];for(let s of T)s[_0x27c8dc(0x1d3)](e)&&(n[_0x27c8dc(0x1be)](_0x27c8dc(0x1b0)),n[_0x27c8dc(0x1be)](_0x27c8dc(0x1b5)),n['push'](_0x27c8dc(0x1c2)));l['length']<0xa&&(t[_0x27c8dc(0x1be)]('WARNING:\x20Test\x20file\x20is\x20only\x20'+l[_0x27c8dc(0x1a5)]+_0x27c8dc(0x1c0)),t[_0x27c8dc(0x1be)](_0x27c8dc(0x1b2)));var x=/(it|test)\s*\([^)]+\)\s*=>\s*\{\s*(?:\/\/[^\n]*)?\s*\}\s*\)/g;x[_0x27c8dc(0x1d3)](e)&&n[_0x27c8dc(0x1be)](_0x27c8dc(0x1d0)),n[_0x27c8dc(0x1a5)]>0x0&&(console['error'](_0x27c8dc(0x199)),console['error'](_0x27c8dc(0x1d2)+u+'\x0a'),n[_0x27c8dc(0x1d1)](_0x454262=>console[_0x27c8dc(0x1d4)]('\x20\x20'+_0x454262)),console[_0x27c8dc(0x1d4)](_0x27c8dc(0x1c6)),process[_0x27c8dc(0x1cb)](0x2)),t['length']>0x0&&(console[_0x27c8dc(0x19e)](_0x27c8dc(0x1c9)),console[_0x27c8dc(0x19e)](_0x27c8dc(0x1d2)+u+'\x0a'),t[_0x27c8dc(0x1d1)](_0xa343e=>console[_0x27c8dc(0x19e)]('\x20\x20'+_0xa343e)),console[_0x27c8dc(0x19e)]('\x0aConsider\x20addressing\x20these\x20issues.\x0a')),process[_0x27c8dc(0x1cb)](0x0);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const
|
|
2
|
+
const _0x37d80c=_0x5648;(function(_0x53bd27,_0x3cae30){const _0x2a7f1e=_0x5648,_0x5392fd=_0x53bd27();while(!![]){try{const _0x55f4c6=-parseInt(_0x2a7f1e(0xea))/0x1*(-parseInt(_0x2a7f1e(0xd2))/0x2)+-parseInt(_0x2a7f1e(0xe4))/0x3+parseInt(_0x2a7f1e(0xe6))/0x4*(-parseInt(_0x2a7f1e(0xc7))/0x5)+parseInt(_0x2a7f1e(0xe1))/0x6*(parseInt(_0x2a7f1e(0xd3))/0x7)+parseInt(_0x2a7f1e(0xb1))/0x8+parseInt(_0x2a7f1e(0xb4))/0x9*(parseInt(_0x2a7f1e(0xbb))/0xa)+-parseInt(_0x2a7f1e(0xd0))/0xb;if(_0x55f4c6===_0x3cae30)break;else _0x5392fd['push'](_0x5392fd['shift']());}catch(_0xe200b3){_0x5392fd['push'](_0x5392fd['shift']());}}}(_0x360e,0x90814));const _0x14dd11=(function(){const _0x10596a=_0x5648,_0x36dc6e={'sIrWe':function(_0x784d39,_0x1f5b5a){return _0x784d39(_0x1f5b5a);},'XQMIJ':function(_0x561b58,_0x359cc2){return _0x561b58/_0x359cc2;},'Cgljt':function(_0x2b2ee5,_0x3db0e2){return _0x2b2ee5<_0x3db0e2;},'QGIXn':'WARNING:\x20Tests\x20ran\x20suspiciously\x20fast','nYflC':function(_0x352869,_0x59ba9b){return _0x352869===_0x59ba9b;},'vZVvd':'aYHKM','HhXxq':_0x10596a(0xc0)};let _0x103ac0=!![];return function(_0x536996,_0x4e70af){const _0x4b4a9e=_0x103ac0?function(){const _0x40ec0c=_0x5648,_0x1c9110={'vkHSq':function(_0x1c227a,_0x17ecef){const _0x10059c=_0x5648;return _0x36dc6e[_0x10059c(0xad)](_0x1c227a,_0x17ecef);},'mrnPz':function(_0x500b96,_0x321e3d){const _0x1975b1=_0x5648;return _0x36dc6e[_0x1975b1(0xd5)](_0x500b96,_0x321e3d);},'zDuac':function(_0x3ed7ee,_0x5bbb8c){const _0x2ff1a3=_0x5648;return _0x36dc6e[_0x2ff1a3(0xcc)](_0x3ed7ee,_0x5bbb8c);},'mAXmO':_0x36dc6e[_0x40ec0c(0xc8)]};if(_0x4e70af){if(_0x36dc6e['nYflC'](_0x36dc6e[_0x40ec0c(0xcb)],_0x36dc6e[_0x40ec0c(0xe5)])){let _0x2e7d88=_0x1c9110['vkHSq'](_0x7098bd,_0x16da88[0x1]),_0x45a4c0=_0x1c9110[_0x40ec0c(0xab)](_0x3af234,_0x2e7d88);_0x1c9110[_0x40ec0c(0xd7)](_0x45a4c0,0.0001)&&_0x2704c2<0x1&&(_0xacc495[_0x40ec0c(0xb2)](_0x1c9110[_0x40ec0c(0xc6)]),_0x4ecee2['push'](_0x2e7d88+_0x40ec0c(0xd9)+_0x2e8558+_0x40ec0c(0xc9)+_0x45a4c0[_0x40ec0c(0xca)](0x4)+'ms\x20per\x20test)'),_0x59d5d8[_0x40ec0c(0xb2)](_0x40ec0c(0xc4)));}else{const _0x37b47a=_0x4e70af[_0x40ec0c(0xac)](_0x536996,arguments);return _0x4e70af=null,_0x37b47a;}}}:function(){};return _0x103ac0=![],_0x4b4a9e;};}()),_0x4640f7=_0x14dd11(this,function(){const _0x47f846=_0x5648,_0xfb04c4={};_0xfb04c4[_0x47f846(0xbe)]=_0x47f846(0xe9);const _0x5458e6=_0xfb04c4;return _0x4640f7[_0x47f846(0xc1)]()[_0x47f846(0xce)](_0x5458e6['yWuqx'])[_0x47f846(0xc1)]()[_0x47f846(0xb3)](_0x4640f7)[_0x47f846(0xce)](_0x5458e6[_0x47f846(0xbe)]);});_0x4640f7();var p=(_0x334616=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x334616,{'get':(_0x4aa3b6,_0x308712)=>(typeof require<'u'?require:_0x4aa3b6)[_0x308712]}):_0x334616)(function(_0x574760){const _0x28edab=_0x5648,_0x4a91ff={'tYaIk':function(_0xf7cab4,_0x111e74){return _0xf7cab4(_0x111e74);},'BkggT':function(_0x2d5be2,_0x5a00e0){return _0x2d5be2+_0x5a00e0;},'ifkPT':_0x28edab(0xaf)};if(typeof require<'u')return require[_0x28edab(0xac)](this,arguments);throw _0x4a91ff[_0x28edab(0xdf)](Error,_0x4a91ff[_0x28edab(0xd1)](_0x4a91ff[_0x28edab(0xd1)](_0x28edab(0xbd),_0x574760),_0x4a91ff['ifkPT']));}),N=p('fs'),A=p(_0x37d80c(0xb9)),d=process[_0x37d80c(0xc3)][0x2]||'{}',u=JSON['parse'](d),h=u['tool_input']?.[_0x37d80c(0xb8)]||'',t=u[_0x37d80c(0xda)]||'';function _0x5648(_0x4bf79f,_0x286643){_0x4bf79f=_0x4bf79f-0xaa;const _0x5f2600=_0x360e();let _0x4640f7=_0x5f2600[_0x4bf79f];return _0x4640f7;}function _0x360e(){const _0x53aea1=['Are\x20these\x20real\x20tests\x20or\x20just\x20empty\x20stubs?','forEach','mAXmO','3907740QpgBtG','QGIXn','ms\x20(','toFixed','vZVvd','Cgljt','test','search','WARNING:\x20Test\x20output\x20is\x20very\x20minimal','1449305aDabuW','BkggT','22AXKCIV','14NmDTBB','All\x20tests\x20must\x20pass\x20before\x20committing','XQMIJ','length','zDuac','match','\x20tests\x20in\x20','tool_output','Output\x20length:\x20','Command:\x20','Did\x20tests\x20actually\x20run?','Remove\x20skip\x20markers\x20and\x20implement\x20the\x20tests','tYaIk','\x0a⚠️\x20\x20TEST\x20EXECUTION\x20WARNINGS\x0a','2370630jtixPr','\x0a❌\x20TEST\x20EXECUTION\x20VALIDATION\x20FAILED\x0a','Verify\x20snapshots\x20are\x20actually\x20correct,\x20not\x20just\x20auto-accepting\x20changes','3146949kCBktC','HhXxq','4NcSAIa','warn','ms\x20per\x20test)','(((.+)+)+)+$','92524kYCVtZ','Consider\x20adding\x20more\x20tests\x20to\x20reach\x2070%+\x20coverage','mrnPz','apply','sIrWe','WARNING:\x20Snapshot\x20tests\x20were\x20updated','\x22\x20is\x20not\x20supported','Fix\x20the\x20failing\x20tests\x20or\x20remove\x20broken\x20code','2445264NSgGAt','push','constructor','18ukdvzb','\x20characters','Test\x20files\x20may\x20be\x20empty\x20or\x20not\x20properly\x20configured','WARNING:\x20Test\x20output\x20mentions\x20mocks\x20but\x20no\x20passed\x20tests','command','path','BLOCKED:\x20Test\x20command\x20ran\x20but\x20ZERO\x20tests\x20were\x20executed','2202730SRPdmb','WARNING:\x20Test\x20coverage\x20is\x20only\x20','Dynamic\x20require\x20of\x20\x22','yWuqx','WARNING:\x20Tests\x20ran\x20suspiciously\x20fast','XWzMG','toString','error','argv'];_0x360e=function(){return _0x53aea1;};return _0x360e();}h[_0x37d80c(0xd8)](/npm\s+(run\s+)?test|jest|pytest|vitest|mocha|ava/)||process['exit'](0x0);var o=[],e=[],m=[/Tests:\s+0\s+total/i,/0\s+passed/i,/No tests found/i,/collected 0 items/i,/0 tests?,\s+0 assertions?/i];for(let s of m)s[_0x37d80c(0xcd)](t)&&(o[_0x37d80c(0xb2)](_0x37d80c(0xba)),o[_0x37d80c(0xb2)](_0x37d80c(0xb6)),o[_0x37d80c(0xb2)](_0x37d80c(0xdc)+h));if(t['match'](/(\d+)\s+skipped/)||t[_0x37d80c(0xd8)](/(\d+)\s+todo/)){let s=t[_0x37d80c(0xd8)](/(\d+)\s+(?:skipped|todo)/),n=t[_0x37d80c(0xd8)](/(\d+)\s+passed/);s&&(!n||n[0x1]==='0')&&(o[_0x37d80c(0xb2)]('BLOCKED:\x20All\x20tests\x20were\x20skipped/marked\x20as\x20TODO'),o[_0x37d80c(0xb2)](_0x37d80c(0xde)));}var l=[/Time:\s+([\d.]+)\s*m?s/i,/Ran\s+\d+\s+tests?\s+in\s+([\d.]+)s/i,/Duration:\s+([\d.]+)\s*m?s/i];for(let s of l){let n=t[_0x37d80c(0xd8)](s);if(n){let a=parseFloat(n[0x1]),r=t['match'](/(\d+)\s+passed/);if(r){let c=parseInt(r[0x1]),i=a/c;i<0.0001&&a<0x1&&(e['push'](_0x37d80c(0xbf)),e['push'](c+_0x37d80c(0xd9)+a+_0x37d80c(0xc9)+i[_0x37d80c(0xca)](0x4)+_0x37d80c(0xe8)),e[_0x37d80c(0xb2)](_0x37d80c(0xc4)));}}}var f=[/(\d+)\s+failed/i,/(\d+)\s+error/i,/FAILED/i,/ERROR/i];for(let s of f)s[_0x37d80c(0xcd)](t)&&(o[_0x37d80c(0xb2)]('BLOCKED:\x20Tests\x20are\x20FAILING'),o[_0x37d80c(0xb2)](_0x37d80c(0xd4)),o[_0x37d80c(0xb2)](_0x37d80c(0xb0)));var g=[/All files[^\n]*\|\s+([\d.]+)/,/Statements\s+:\s+([\d.]+)%/,/Coverage:\s+([\d.]+)%/];for(let s of g){let n=t[_0x37d80c(0xd8)](s);if(n){let a=parseFloat(n[0x1]);a<0x46&&(e[_0x37d80c(0xb2)](_0x37d80c(0xbc)+a+'%'),e[_0x37d80c(0xb2)](_0x37d80c(0xaa)));}}(t[_0x37d80c(0xd8)](/Snapshots:\s+\d+\s+written/)||t[_0x37d80c(0xd8)](/\d+\s+snapshots? updated/))&&(e[_0x37d80c(0xb2)](_0x37d80c(0xae)),e['push'](_0x37d80c(0xe3))),t[_0x37d80c(0xd6)]<0x32&&!o[_0x37d80c(0xd6)]&&(e[_0x37d80c(0xb2)](_0x37d80c(0xcf)),e[_0x37d80c(0xb2)](_0x37d80c(0xdd)),e[_0x37d80c(0xb2)](_0x37d80c(0xdb)+t[_0x37d80c(0xd6)]+_0x37d80c(0xb5))),t['match'](/Mock|Stub|Fake/)&&!t[_0x37d80c(0xd8)](/\d+\s+passed/)&&(e[_0x37d80c(0xb2)](_0x37d80c(0xb7)),e[_0x37d80c(0xb2)]('Are\x20you\x20running\x20actual\x20tests\x20or\x20just\x20loading\x20mocks?')),o[_0x37d80c(0xd6)]>0x0&&(console[_0x37d80c(0xc2)](_0x37d80c(0xe2)),o['forEach'](_0x2aa8c2=>console[_0x37d80c(0xc2)]('\x20\x20'+_0x2aa8c2)),console[_0x37d80c(0xc2)]('\x0a'),process['exit'](0x2)),e[_0x37d80c(0xd6)]>0x0&&(console[_0x37d80c(0xe7)](_0x37d80c(0xe0)),e[_0x37d80c(0xc5)](_0x4a063f=>console[_0x37d80c(0xe7)]('\x20\x20'+_0x4a063f)),console[_0x37d80c(0xe7)]('\x0a')),process['exit'](0x0);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const _0x4aa019=_0x3ccc;(function(_0x562082,_0x335e6e){const _0x457d94=_0x3ccc,_0x44f3b3=_0x562082();while(!![]){try{const _0x34eb69=parseInt(_0x457d94(0x1bf))/0x1+-parseInt(_0x457d94(0x206))/0x2*(-parseInt(_0x457d94(0x202))/0x3)+parseInt(_0x457d94(0x1f6))/0x4+-parseInt(_0x457d94(0x1d9))/0x5+parseInt(_0x457d94(0x1e3))/0x6*(parseInt(_0x457d94(0x1c6))/0x7)+parseInt(_0x457d94(0x1f0))/0x8*(-parseInt(_0x457d94(0x1d7))/0x9)+-parseInt(_0x457d94(0x1de))/0xa*(-parseInt(_0x457d94(0x1ed))/0xb);if(_0x34eb69===_0x335e6e)break;else _0x44f3b3['push'](_0x44f3b3['shift']());}catch(_0x137dc5){_0x44f3b3['push'](_0x44f3b3['shift']());}}}(_0x5753,0x4b53d));const _0x5be2e5=(function(){const _0xee4f8a=_0x3ccc,_0x28733e={};_0x28733e[_0xee4f8a(0x1eb)]=function(_0x2db237,_0x3a279f){return _0x2db237===_0x3a279f;},_0x28733e[_0xee4f8a(0x1f3)]=_0xee4f8a(0x209);const _0x1c179b=_0x28733e;let _0x298bf5=!![];return function(_0x18bf37,_0x327712){const _0x42d643=_0xee4f8a,_0x4956c4={'oumUo':function(_0x59e662,_0x26ee82){return _0x1c179b['HwiXX'](_0x59e662,_0x26ee82);},'LBZkC':_0x42d643(0x1ff),'KEEHK':_0x1c179b[_0x42d643(0x1f3)]},_0x1315f9=_0x298bf5?function(){const _0x1142fa=_0x42d643;if(_0x327712){if(_0x4956c4[_0x1142fa(0x213)](_0x4956c4[_0x1142fa(0x20a)],_0x4956c4[_0x1142fa(0x1c1)])){const _0x4eb881=_0x2922e1['apply'](_0x3dee17,arguments);return _0x3791a3=null,_0x4eb881;}else{const _0x4d9ae4=_0x327712[_0x1142fa(0x1f2)](_0x18bf37,arguments);return _0x327712=null,_0x4d9ae4;}}}:function(){};return _0x298bf5=![],_0x1315f9;};}()),_0xce1013=_0x5be2e5(this,function(){const _0x415da7=_0x3ccc,_0x2aaeb5={};_0x2aaeb5[_0x415da7(0x1c8)]=_0x415da7(0x1ca);const _0x1cc643=_0x2aaeb5;return _0xce1013[_0x415da7(0x1e8)]()[_0x415da7(0x1b4)](_0x1cc643[_0x415da7(0x1c8)])[_0x415da7(0x1e8)]()[_0x415da7(0x1ec)](_0xce1013)[_0x415da7(0x1b4)](_0x1cc643[_0x415da7(0x1c8)]);});_0xce1013();var x=(_0x17d4d6=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x17d4d6,{'get':(_0x1f9b16,_0x4c7f1a)=>(typeof require<'u'?require:_0x1f9b16)[_0x4c7f1a]}):_0x17d4d6)(function(_0x4184fc){const _0x25e5ce=_0x3ccc,_0x883251={'opEzz':function(_0x285bdb,_0xc9aaa9){return _0x285bdb<_0xc9aaa9;},'umnCe':function(_0x178ad8,_0x262531){return _0x178ad8(_0x262531);},'WstkJ':function(_0x58bbaa,_0x19570){return _0x58bbaa+_0x19570;},'jONLR':function(_0x17cfd6,_0x2282af){return _0x17cfd6+_0x2282af;},'AtIiH':'Dynamic\x20require\x20of\x20\x22','gqtxA':_0x25e5ce(0x1c0)};if(_0x883251[_0x25e5ce(0x1d4)](typeof require,'u'))return require[_0x25e5ce(0x1f2)](this,arguments);throw _0x883251['umnCe'](Error,_0x883251[_0x25e5ce(0x1b7)](_0x883251[_0x25e5ce(0x1d1)](_0x883251[_0x25e5ce(0x20b)],_0x4184fc),_0x883251[_0x25e5ce(0x1e5)]));}),C=x('fs'),a=x(_0x4aa019(0x1fc)),R=process['argv'][0x2]||'{}',k=JSON[_0x4aa019(0x1b8)](R),c=k['tool_input']?.[_0x4aa019(0x1d0)],S=c&&c['match'](/\.(tsx|jsx|vue|svelte)$/);S||process[_0x4aa019(0x1ce)](0x0);var n=[],s=[],h=a[_0x4aa019(0x1bc)](c),e=h['replace'](/\.(tsx|jsx|vue|svelte)$/,''),T=[e+_0x4aa019(0x200),e+'.test.jsx',e+_0x4aa019(0x1c2),e+_0x4aa019(0x1db),e+_0x4aa019(0x1dc),e+_0x4aa019(0x1f4),e+'.spec.ts',e+_0x4aa019(0x1fb)],d=c['includes'](_0x4aa019(0x1f1))?c[_0x4aa019(0x1ba)]('/src/',_0x4aa019(0x1cf))[_0x4aa019(0x1ba)](h,''):a[_0x4aa019(0x1f8)](c),u=null,f=!0x1;function _0x3ccc(_0x2528d0,_0x45e642){_0x2528d0=_0x2528d0-0x1b2;const _0x4f9017=_0x5753();let _0xce1013=_0x4f9017[_0x2528d0];return _0xce1013;}function _0x5753(){const _0x6b909f=['__tests__','KPeqC','LBZkC','AtIiH','<form','/__tests__/','within\x5c(','forEach','BLOCKED:\x20UI\x20component\x20modified\x20but\x20NO\x20test\x20file\x20found','readFileSync','Test\x20will\x20fail\x20or\x20make\x20real\x20API\x20calls\x20otherwise','oumUo','Ensure\x20test\x20renders\x20component\x20with\x20all\x20required\x20props','shallow\x5cs*\x5c(<\x5cs*','WARNING:\x20Component\x20uses\x20','WARNING:\x20Component\x20has\x20conditional\x20rendering\x20but\x20only\x201\x20test\x20case','search','\x20\x20-\x20','UI\x20Component:\x20','WstkJ','parse','trim','replace','warn','basename','filter','Event\x20handlers\x20found:\x20','26222oHcKey','\x22\x20is\x20not\x20supported','KEEHK','.test.ts','includes','test','match','7RHHxdC','WARNING:\x20Component\x20has\x20state\x20but\x20test\x20may\x20not\x20validate\x20state\x20changes','bQZtJ','WARNING:\x20Component\x20has\x20event\x20handlers\x20but\x20test\x20doesn\x27t\x20simulate\x20events','(((.+)+)+)+$','split','Add:\x20import\x20{\x20','BLOCKED:\x20Test\x20does\x20NOT\x20render/mount\x20the\x20component','exit','/tests/','file_path','jONLR','Expected\x20test\x20file\x20in\x20one\x20of\x20these\x20locations:','\x0aConsider\x20addressing\x20these\x20UI\x20testing\x20gaps.\x0a','opEzz','Test\x20file:\x20','WARNING:\x20Component\x20has\x20required\x20props\x20but\x20test\x20may\x20not\x20provide\x20them','45oCEiwR','Consider\x20adding\x20integration\x20tests\x20for\x20child\x20component\x20interactions','2530405FVkaOc','.*from','.test.js','.spec.tsx','BLOCKED:\x20Test\x20file\x20exists\x20but\x20does\x20NOT\x20import\x20','22340oOMtBO','slice','utf8','Add\x20tests\x20for\x20different\x20component\x20states/conditions','push','3270816SgqSdi','submit','gqtxA','error','Submit','toString','\x20/>)','some','HwiXX','constructor','2563nLIThE','\x0aUI\x20changes\x20require\x20proper\x20integration\x20tests.\x0a','\x0a⚠️\x20\x20UI\x20INTEGRATION\x20TEST\x20WARNINGS\x0a','919472XZKekQ','/src/','apply','dyecm','.spec.jsx','length','9076FfPlMW','import.*','dirname','Use\x20waitFor()\x20or\x20findBy*\x20queries\x20to\x20test\x20async\x20state\x20updates','join','.spec.js','path','existsSync','Add\x20test\x20for\x20form\x20submission\x20behavior','FlGnr','.test.tsx','onSubmit','9RYNtqI','\x20}\x20from\x20\x27./','exec','\x20lines','196762oWNehH','screen\x5c.'];_0x5753=function(){return _0x6b909f;};return _0x5753();}for(let t of T){let i=[a[_0x4aa019(0x1fa)](d,t),a[_0x4aa019(0x1fa)](d,_0x4aa019(0x208),t),a[_0x4aa019(0x1fa)](a['dirname'](c),_0x4aa019(0x208),t),a[_0x4aa019(0x1fa)](a[_0x4aa019(0x1f8)](c),t)];for(let p of i)if(C[_0x4aa019(0x1fd)](p)){u=p,f=!0x0;break;}if(f)break;}f||(n['push'](_0x4aa019(0x210)),n[_0x4aa019(0x1e2)]('Component:\x20'+h),n['push'](_0x4aa019(0x1d2)),n[_0x4aa019(0x1e2)]('\x20\x20-\x20'+d+'/'+e+_0x4aa019(0x200)),n['push'](_0x4aa019(0x1b5)+d+'/__tests__/'+e+_0x4aa019(0x200)),n[_0x4aa019(0x1e2)](_0x4aa019(0x1b5)+a['dirname'](c)+_0x4aa019(0x20d)+e+_0x4aa019(0x200)),n[_0x4aa019(0x1e2)]('Create\x20a\x20test\x20file\x20with\x20UI\x20integration\x20tests\x20before\x20modifying\x20components'));if(f&&u){let t=C[_0x4aa019(0x211)](u,_0x4aa019(0x1e0)),i=C[_0x4aa019(0x211)](c,_0x4aa019(0x1e0));new RegExp(_0x4aa019(0x1f7)+e+_0x4aa019(0x1da),'i')[_0x4aa019(0x1c4)](t)||(n['push'](_0x4aa019(0x1dd)+e),n[_0x4aa019(0x1e2)]('Test\x20file:\x20'+a[_0x4aa019(0x1bc)](u)),n[_0x4aa019(0x1e2)](_0x4aa019(0x1cc)+e+_0x4aa019(0x203)+e+'\x27')),![new RegExp('render\x5cs*\x5c(<\x5cs*'+e,'i'),new RegExp('mount\x5cs*\x5c(<\x5cs*'+e,'i'),new RegExp(_0x4aa019(0x215)+e,'i'),new RegExp(_0x4aa019(0x207),'i'),new RegExp(_0x4aa019(0x20e),'i')]['some'](_0x3e9ad6=>_0x3e9ad6[_0x4aa019(0x1c4)](t))&&!t[_0x4aa019(0x1c3)]('createWrapper')&&(n[_0x4aa019(0x1e2)](_0x4aa019(0x1cd)),n[_0x4aa019(0x1e2)](_0x4aa019(0x1d5)+a[_0x4aa019(0x1bc)](u)),n['push']('Add:\x20render(<'+e+_0x4aa019(0x1e9)));let E=/(?:type|interface)\s+\w*Props\s*=\s*\{([^}]+)\}/s,P=i[_0x4aa019(0x1c5)](E);if(P){let l=P[0x1][_0x4aa019(0x1cb)]('\x0a')[_0x4aa019(0x1bd)](_0xf0199f=>!_0xf0199f[_0x4aa019(0x1c3)]('?:')&&_0xf0199f[_0x4aa019(0x1c3)](':'))['map'](_0x268792=>_0x268792[_0x4aa019(0x1b9)]()[_0x4aa019(0x1cb)](':')[0x0][_0x4aa019(0x1b9)]())[_0x4aa019(0x1bd)](Boolean);l['length']>0x0&&(l['some'](_0xd3335a=>t[_0x4aa019(0x1c3)](_0xd3335a+'=')||t[_0x4aa019(0x1c3)](_0xd3335a+':')||t['includes']('\x22'+_0xd3335a+'\x22')||t[_0x4aa019(0x1c3)]('\x27'+_0xd3335a+'\x27'))||(s[_0x4aa019(0x1e2)](_0x4aa019(0x1d6)),s[_0x4aa019(0x1e2)]('Required\x20props:\x20'+l[_0x4aa019(0x1fa)](',\x20')),s[_0x4aa019(0x1e2)](_0x4aa019(0x214))));}let v=/on[A-Z]\w+/g,N=i[_0x4aa019(0x1c5)](v)||[],I=[...new Set(N)];I[_0x4aa019(0x1f5)]>0x0&&([/fireEvent\./,/userEvent\./,/simulate\(/,/\.click\(/,/\.change\(/,/\.submit\(/]['some'](_0x10d69a=>_0x10d69a[_0x4aa019(0x1c4)](t))||(s[_0x4aa019(0x1e2)](_0x4aa019(0x1c9)),s[_0x4aa019(0x1e2)](_0x4aa019(0x1be)+I[_0x4aa019(0x1df)](0x0,0x5)['join'](',\x20')),s['push']('Add\x20user\x20interaction\x20tests\x20using\x20fireEvent\x20or\x20userEvent'))),[/fetch\s*\(/,/axios\./,/api\./,/\.get\(/,/\.post\(/,/\.put\(/,/\.delete\(/,/useSWR\(/,/useQuery\(/,/useMutation\(/][_0x4aa019(0x1ea)](_0x2647f8=>_0x2647f8[_0x4aa019(0x1c4)](i))&&([/jest\.mock\(/,/vi\.mock\(/,/mockResolvedValue\(/,/mockImplementation\(/,/msw/,/setupServer\(/]['some'](_0x49bf24=>_0x49bf24[_0x4aa019(0x1c4)](t))||(s[_0x4aa019(0x1e2)]('WARNING:\x20Component\x20makes\x20API\x20calls\x20but\x20test\x20doesn\x27t\x20mock\x20them'),s['push']('Add\x20API\x20mocking\x20using\x20jest.mock(),\x20MSW,\x20or\x20similar'),s[_0x4aa019(0x1e2)](_0x4aa019(0x212))));let w=/useState|useReducer|useContext/g;(i[_0x4aa019(0x1c5)](w)||[])[_0x4aa019(0x1f5)]>0x0&&([/waitFor\(/,/findBy/,/queryBy/,/rerender\(/][_0x4aa019(0x1ea)](_0x3a67e0=>_0x3a67e0[_0x4aa019(0x1c4)](t))||(s[_0x4aa019(0x1e2)](_0x4aa019(0x1c7)),s['push'](_0x4aa019(0x1f9)))),(i[_0x4aa019(0x1c3)](_0x4aa019(0x20c))||i[_0x4aa019(0x1c3)](_0x4aa019(0x201)))&&(t['includes'](_0x4aa019(0x1e4))||t[_0x4aa019(0x1c3)](_0x4aa019(0x1e7))||(s[_0x4aa019(0x1e2)]('WARNING:\x20Component\x20has\x20a\x20form\x20but\x20test\x20doesn\x27t\x20validate\x20submission'),s[_0x4aa019(0x1e2)](_0x4aa019(0x1fe))));let b=/\{[^}]*\?[^}]*:[^}]*\}|\{[^}]*&&/g;if((i[_0x4aa019(0x1c5)](b)||[])[_0x4aa019(0x1f5)]>0x3){let o=/(?:it|test)\s*\(/g;(t[_0x4aa019(0x1c5)](o)||[])['length']<0x2&&(s[_0x4aa019(0x1e2)](_0x4aa019(0x1b3)),s[_0x4aa019(0x1e2)](_0x4aa019(0x1e1)));}let A=/import\s+\{?([A-Z]\w+)\}?\s+from/g,g=[],$;for(;($=A[_0x4aa019(0x204)](i))!==null;)$[0x1]!==e&&g[_0x4aa019(0x1e2)]($[0x1]);if(g['length']>0x2){let o=t['split']('\x0a')[_0x4aa019(0x1f5)];o<0x1e&&(s[_0x4aa019(0x1e2)](_0x4aa019(0x1b2)+g[_0x4aa019(0x1f5)]+'\x20child\x20components\x20but\x20test\x20is\x20only\x20'+o+_0x4aa019(0x205)),s['push'](_0x4aa019(0x1d8)));}}n[_0x4aa019(0x1f5)]>0x0&&(console[_0x4aa019(0x1e6)]('\x0a❌\x20UI\x20INTEGRATION\x20TEST\x20CHECK\x20FAILED\x0a'),console[_0x4aa019(0x1e6)](_0x4aa019(0x1b6)+h+'\x0a'),n[_0x4aa019(0x20f)](_0x27a927=>console[_0x4aa019(0x1e6)]('\x20\x20'+_0x27a927)),console[_0x4aa019(0x1e6)](_0x4aa019(0x1ee)),process[_0x4aa019(0x1ce)](0x2)),s[_0x4aa019(0x1f5)]>0x0&&(console[_0x4aa019(0x1bb)](_0x4aa019(0x1ef)),console[_0x4aa019(0x1bb)](_0x4aa019(0x1b6)+h+'\x0a'),s[_0x4aa019(0x20f)](_0x55118f=>console[_0x4aa019(0x1bb)]('\x20\x20'+_0x55118f)),console['warn'](_0x4aa019(0x1d3))),process[_0x4aa019(0x1ce)](0x0);
|
|
2
|
+
const _0x213c0d=_0x66f7;function _0x4d6f(){const _0x482fa7=['5CzeHCq','replace','HdjTB','WARNING:\x20Component\x20has\x20required\x20props\x20but\x20test\x20may\x20not\x20provide\x20them','within\x5c(','Jhzyx','match','.test.tsx','exit','OCXPQ','createWrapper','BLOCKED:\x20Test\x20file\x20exists\x20but\x20does\x20NOT\x20import\x20','\x20/>)','render\x5cs*\x5c(<\x5cs*','\x0aUI\x20changes\x20require\x20proper\x20integration\x20tests.\x0a','/tests/','BLOCKED:\x20UI\x20component\x20modified\x20but\x20NO\x20test\x20file\x20found','search','(((.+)+)+)+$','rMMsg','wDvVQ','SRWYx','2801151tnCRSW','Required\x20props:\x20','onSubmit','prRFw','lWaEj','dirname','existsSync','ZoFRf','\x0a⚠️\x20\x20UI\x20INTEGRATION\x20TEST\x20WARNINGS\x0a','includes','JkYmN','JQCYf','798774BHQtMv','mount\x5cs*\x5c(<\x5cs*','<form','pFdEt','Add:\x20render(<','slice','toString','constructor','qflZh','wLGKc','.*from','basename','WARNING:\x20Component\x20has\x20a\x20form\x20but\x20test\x20doesn\x27t\x20validate\x20submission','test','VANQA','.spec.js','jwfOq','WARNING:\x20Component\x20uses\x20','path','screen\x5c.','sxYMP','WARNING:\x20Component\x20has\x20conditional\x20rendering\x20but\x20only\x201\x20test\x20case','Add:\x20import\x20{\x20','parse','Add\x20tests\x20for\x20different\x20component\x20states/conditions','wMvsW','\x0a❌\x20UI\x20INTEGRATION\x20TEST\x20CHECK\x20FAILED\x0a','/src/','Test\x20will\x20fail\x20or\x20make\x20real\x20API\x20calls\x20otherwise','forEach','\x20}\x20from\x20\x27./','submit','WARNING:\x20Component\x20has\x20state\x20but\x20test\x20may\x20not\x20validate\x20state\x20changes','AxKyq','\x22\x20is\x20not\x20supported','__tests__','Consider\x20adding\x20integration\x20tests\x20for\x20child\x20component\x20interactions','ojoGM','Ensure\x20test\x20renders\x20component\x20with\x20all\x20required\x20props','NexUC','usIBT','dZjJI','\x20\x20-\x20','\x20child\x20components\x20but\x20test\x20is\x20only\x20','utf8','13Ditrsa','EFJQz','evjvQ','SGcNJ','Submit','gJpoB','WARNING:\x20Component\x20makes\x20API\x20calls\x20but\x20test\x20doesn\x27t\x20mock\x20them','FtoRl','.test.jsx','warn','length','Use\x20waitFor()\x20or\x20findBy*\x20queries\x20to\x20test\x20async\x20state\x20updates','Component:\x20','Add\x20API\x20mocking\x20using\x20jest.mock(),\x20MSW,\x20or\x20similar','BLOCKED:\x20Test\x20does\x20NOT\x20render/mount\x20the\x20component','error','apply','Event\x20handlers\x20found:\x20','\x0aConsider\x20addressing\x20these\x20UI\x20testing\x20gaps.\x0a','nmkaV','33qmnlyt','rnemj','JVHlL','map','cBrUI','shallow\x5cs*\x5c(<\x5cs*','filter','421600QbObEm','1246CNyoAZ','WARNING:\x20Component\x20has\x20event\x20handlers\x20but\x20test\x20doesn\x27t\x20simulate\x20events','join','trim','15GZSHQf','.spec.jsx','argv','8706084lpjnAe','zBSsD','some','push','dlswx','JIBvg','tool_input','file_path','MfOhE','HXLcM','787510XSoiLi','koFQl','.spec.tsx','7528CPxwiW','\x20lines','UI\x20Component:\x20','/__tests__/','Add\x20user\x20interaction\x20tests\x20using\x20fireEvent\x20or\x20userEvent','BhnIu','Dynamic\x20require\x20of\x20\x22','16563FRmMKV','aVHKT','RutTV','38yKctsX','import.*','readFileSync','split','Test\x20file:\x20','Zvddb','ouAaX','ZMAxX'];_0x4d6f=function(){return _0x482fa7;};return _0x4d6f();}(function(_0x3c57ea,_0x2dd1c4){const _0x58a0fa=_0x66f7,_0x533a27=_0x3c57ea();while(!![]){try{const _0x20ed42=-parseInt(_0x58a0fa(0x171))/0x1*(-parseInt(_0x58a0fa(0x174))/0x2)+-parseInt(_0x58a0fa(0x1eb))/0x3*(parseInt(_0x58a0fa(0x1e6))/0x4)+-parseInt(_0x58a0fa(0x17c))/0x5*(parseInt(_0x58a0fa(0x19e))/0x6)+-parseInt(_0x58a0fa(0x1e7))/0x7*(parseInt(_0x58a0fa(0x16a))/0x8)+parseInt(_0x58a0fa(0x192))/0x9+parseInt(_0x58a0fa(0x167))/0xa*(-parseInt(_0x58a0fa(0x1df))/0xb)+parseInt(_0x58a0fa(0x15d))/0xc*(parseInt(_0x58a0fa(0x1cb))/0xd);if(_0x20ed42===_0x2dd1c4)break;else _0x533a27['push'](_0x533a27['shift']());}catch(_0x24c0d6){_0x533a27['push'](_0x533a27['shift']());}}}(_0x4d6f,0x4634b));const _0xa9cf39=(function(){const _0x515409=_0x66f7,_0x1ecadd={};_0x1ecadd[_0x515409(0x18f)]=_0x515409(0x1ca),_0x1ecadd['SGcNJ']='createWrapper',_0x1ecadd[_0x515409(0x17b)]=_0x515409(0x1d9),_0x1ecadd[_0x515409(0x15e)]=function(_0xd3879b,_0x3c5dd0){return _0xd3879b>_0x3c5dd0;},_0x1ecadd[_0x515409(0x1a1)]=_0x515409(0x1c4),_0x1ecadd['OCXPQ']=_0x515409(0x1d1),_0x1ecadd[_0x515409(0x17e)]='Add\x20API\x20mocking\x20using\x20jest.mock(),\x20MSW,\x20or\x20similar',_0x1ecadd[_0x515409(0x1ae)]='onSubmit',_0x1ecadd['wLGKc']=_0x515409(0x1bd),_0x1ecadd['wDvVQ']=_0x515409(0x1cf),_0x1ecadd['inJXd']=_0x515409(0x1aa),_0x1ecadd[_0x515409(0x1bf)]='Add\x20test\x20for\x20form\x20submission\x20behavior',_0x1ecadd[_0x515409(0x168)]=function(_0xde880c,_0x329ea6){return _0xde880c<_0x329ea6;},_0x1ecadd[_0x515409(0x1b2)]=function(_0xae0337,_0x216a0e){return _0xae0337!==_0x216a0e;},_0x1ecadd[_0x515409(0x1d0)]=function(_0x12f969,_0x3f54a5){return _0x12f969<_0x3f54a5;},_0x1ecadd['JVHlL']=function(_0x15ad5c,_0x39851f){return _0x15ad5c===_0x39851f;},_0x1ecadd[_0x515409(0x172)]=_0x515409(0x173),_0x1ecadd[_0x515409(0x195)]=_0x515409(0x1e3),_0x1ecadd[_0x515409(0x19c)]=_0x515409(0x179),_0x1ecadd[_0x515409(0x196)]=_0x515409(0x1c2),_0x1ecadd['JQCYf']=function(_0x464ce7,_0x41f89f){return _0x464ce7===_0x41f89f;},_0x1ecadd['Jhzyx']=_0x515409(0x191);const _0x364c03=_0x1ecadd;let _0x5dddf7=!![];return function(_0x362bf8,_0x4fa196){const _0x434cb6=_0x515409,_0x5d214d={'wMvsW':function(_0x25846a,_0x29924c){const _0x43fbf2=_0x66f7;return _0x364c03[_0x43fbf2(0x1d0)](_0x25846a,_0x29924c);},'VANQA':_0x364c03['lWaEj']};if(_0x364c03[_0x434cb6(0x19d)](_0x434cb6(0x1c6),_0x364c03[_0x434cb6(0x181)])){const _0x2519ac=_0xa6ae43?function(){const _0x4dc65d=_0x434cb6;if(_0x3e2ba4){const _0x261bbc=_0x3adcb4[_0x4dc65d(0x1db)](_0x23a687,arguments);return _0x95c597=null,_0x261bbc;}}:function(){};return _0x34136b=![],_0x2519ac;}else{const _0x399ca1=_0x5dddf7?function(){const _0x500ca2=_0x434cb6,_0x5eb0e7={'NexUC':_0x364c03[_0x500ca2(0x18f)],'EFJQz':_0x364c03[_0x500ca2(0x1ce)],'JIBvg':_0x364c03[_0x500ca2(0x17b)],'ZoFRf':function(_0x3a1ee5,_0x112208){const _0xb77351=_0x500ca2;return _0x364c03[_0xb77351(0x15e)](_0x3a1ee5,_0x112208);},'dZjJI':_0x364c03[_0x500ca2(0x1a1)],'BniFF':_0x500ca2(0x1e8),'mzpbC':_0x364c03[_0x500ca2(0x185)],'EOtUA':_0x364c03['HdjTB'],'MfOhE':'Use\x20waitFor()\x20or\x20findBy*\x20queries\x20to\x20test\x20async\x20state\x20updates','rkeYp':_0x500ca2(0x1a0),'ojoGM':_0x364c03[_0x500ca2(0x1ae)],'BhnIu':_0x364c03[_0x500ca2(0x1a7)],'znNLM':_0x364c03[_0x500ca2(0x190)],'dlswx':_0x364c03['inJXd'],'HXLcM':_0x364c03[_0x500ca2(0x1bf)],'evjvQ':function(_0x2efedf,_0x5a6bfe){return _0x364c03['koFQl'](_0x2efedf,_0x5a6bfe);},'nmkaV':_0x500ca2(0x1b6),'FtoRl':function(_0x4d200b,_0x4262d6){return _0x364c03['sxYMP'](_0x4d200b,_0x4262d6);},'ouAaX':function(_0x4f94f7,_0x299050){const _0x4f5497=_0x500ca2;return _0x364c03[_0x4f5497(0x1d0)](_0x4f94f7,_0x299050);}};if(_0x364c03[_0x500ca2(0x1e1)](_0x364c03[_0x500ca2(0x172)],_0x364c03[_0x500ca2(0x195)])){let _0x539e8c=_0x462346[_0x500ca2(0x176)](_0x4d9112,_0x5eb0e7[_0x500ca2(0x1c5)]),_0x249a18=_0x42d9d6['readFileSync'](_0x473c0a,_0x500ca2(0x1ca));new _0x2742c1(_0x500ca2(0x175)+_0x46247b+_0x500ca2(0x1a8),'i')['test'](_0x539e8c)||(_0x4044c4[_0x500ca2(0x160)](_0x500ca2(0x187)+_0x5c6efb),_0x51ce25[_0x500ca2(0x160)](_0x500ca2(0x178)+_0x4123d3[_0x500ca2(0x1a9)](_0x1a9b4b)),_0x4bb888[_0x500ca2(0x160)](_0x500ca2(0x1b4)+_0x4194b0+_0x500ca2(0x1bc)+_0x3ae6e1+'\x27')),![new _0x2c8138(_0x500ca2(0x189)+_0x9a0304,'i'),new _0x58b2e8(_0x500ca2(0x19f)+_0x2b4731,'i'),new _0x183b3d(_0x500ca2(0x1e4)+_0x1983dd,'i'),new _0x1fe7ba(_0x500ca2(0x1b1),'i'),new _0x5d91f4(_0x500ca2(0x180),'i')][_0x500ca2(0x15f)](_0x3f9064=>_0x3f9064['test'](_0x539e8c))&&!_0x539e8c[_0x500ca2(0x19b)](_0x5eb0e7[_0x500ca2(0x1cc)])&&(_0x26cf39[_0x500ca2(0x160)](_0x5eb0e7[_0x500ca2(0x162)]),_0x36045c['push'](_0x500ca2(0x178)+_0x364c7f[_0x500ca2(0x1a9)](_0x4d80f6)),_0x2d1bb9[_0x500ca2(0x160)](_0x500ca2(0x1a2)+_0x5346d5+_0x500ca2(0x188)));let _0x5572d3=/(?:type|interface)\s+\w*Props\s*=\s*\{([^}]+)\}/s,_0x4747a4=_0x249a18[_0x500ca2(0x182)](_0x5572d3);if(_0x4747a4){let _0x1add81=_0x4747a4[0x1][_0x500ca2(0x177)]('\x0a')[_0x500ca2(0x1e5)](_0x337d4e=>!_0x337d4e[_0x500ca2(0x19b)]('?:')&&_0x337d4e[_0x500ca2(0x19b)](':'))[_0x500ca2(0x1e2)](_0x20c7dd=>_0x20c7dd[_0x500ca2(0x1ea)]()[_0x500ca2(0x177)](':')[0x0][_0x500ca2(0x1ea)]())[_0x500ca2(0x1e5)](_0x112c9e);_0x5eb0e7[_0x500ca2(0x199)](_0x1add81[_0x500ca2(0x1d5)],0x0)&&(_0x1add81[_0x500ca2(0x15f)](_0x1ccc56=>_0x539e8c[_0x500ca2(0x19b)](_0x1ccc56+'=')||_0x539e8c[_0x500ca2(0x19b)](_0x1ccc56+':')||_0x539e8c[_0x500ca2(0x19b)]('\x22'+_0x1ccc56+'\x22')||_0x539e8c[_0x500ca2(0x19b)]('\x27'+_0x1ccc56+'\x27'))||(_0x50751a['push'](_0x500ca2(0x17f)),_0x586003[_0x500ca2(0x160)](_0x500ca2(0x193)+_0x1add81['join'](',\x20')),_0x424559[_0x500ca2(0x160)](_0x5eb0e7[_0x500ca2(0x1c7)])));}let _0x2ca6e7=/on[A-Z]\w+/g,_0x73c177=_0x249a18[_0x500ca2(0x182)](_0x2ca6e7)||[],_0x2fbec7=[...new _0xf7c856(_0x73c177)];_0x5eb0e7['ZoFRf'](_0x2fbec7[_0x500ca2(0x1d5)],0x0)&&([/fireEvent\./,/userEvent\./,/simulate\(/,/\.click\(/,/\.change\(/,/\.submit\(/][_0x500ca2(0x15f)](_0x1994ec=>_0x1994ec[_0x500ca2(0x1ab)](_0x539e8c))||(_0x11eb14[_0x500ca2(0x160)](_0x5eb0e7['BniFF']),_0x354172[_0x500ca2(0x160)]('Event\x20handlers\x20found:\x20'+_0x2fbec7[_0x500ca2(0x1a3)](0x0,0x5)[_0x500ca2(0x1e9)](',\x20')),_0x17584e[_0x500ca2(0x160)](_0x500ca2(0x16e)))),[/fetch\s*\(/,/axios\./,/api\./,/\.get\(/,/\.post\(/,/\.put\(/,/\.delete\(/,/useSWR\(/,/useQuery\(/,/useMutation\(/][_0x500ca2(0x15f)](_0x41d977=>_0x41d977['test'](_0x249a18))&&([/jest\.mock\(/,/vi\.mock\(/,/mockResolvedValue\(/,/mockImplementation\(/,/msw/,/setupServer\(/][_0x500ca2(0x15f)](_0x25556d=>_0x25556d[_0x500ca2(0x1ab)](_0x539e8c))||(_0x506b03['push'](_0x5eb0e7['mzpbC']),_0x30c4c6[_0x500ca2(0x160)](_0x5eb0e7['EOtUA']),_0xe3ca7a[_0x500ca2(0x160)](_0x500ca2(0x1ba))));let _0x531cca=/useState|useReducer|useContext/g;(_0x249a18[_0x500ca2(0x182)](_0x531cca)||[])['length']>0x0&&([/waitFor\(/,/findBy/,/queryBy/,/rerender\(/][_0x500ca2(0x15f)](_0x4fbaa6=>_0x4fbaa6[_0x500ca2(0x1ab)](_0x539e8c))||(_0x4dfda1[_0x500ca2(0x160)](_0x500ca2(0x1be)),_0x1cbb0f[_0x500ca2(0x160)](_0x5eb0e7[_0x500ca2(0x165)]))),(_0x249a18[_0x500ca2(0x19b)](_0x5eb0e7['rkeYp'])||_0x249a18[_0x500ca2(0x19b)](_0x5eb0e7[_0x500ca2(0x1c3)]))&&(_0x539e8c[_0x500ca2(0x19b)](_0x5eb0e7[_0x500ca2(0x16f)])||_0x539e8c[_0x500ca2(0x19b)](_0x5eb0e7['znNLM'])||(_0x3d1937['push'](_0x5eb0e7[_0x500ca2(0x161)]),_0x28aded[_0x500ca2(0x160)](_0x5eb0e7[_0x500ca2(0x166)])));let _0x3faa15=/\{[^}]*\?[^}]*:[^}]*\}|\{[^}]*&&/g;if((_0x249a18['match'](_0x3faa15)||[])[_0x500ca2(0x1d5)]>0x3){let _0x5cb74b=/(?:it|test)\s*\(/g;_0x5eb0e7[_0x500ca2(0x1cd)]((_0x539e8c['match'](_0x5cb74b)||[])[_0x500ca2(0x1d5)],0x2)&&(_0x27f590[_0x500ca2(0x160)](_0x500ca2(0x1b3)),_0x58345a[_0x500ca2(0x160)](_0x5eb0e7[_0x500ca2(0x1de)]));}let _0x2d357d=/import\s+\{?([A-Z]\w+)\}?\s+from/g,_0x3bd417=[],_0x1d7c9f;for(;(_0x1d7c9f=_0x2d357d['exec'](_0x249a18))!==null;)_0x5eb0e7[_0x500ca2(0x1d2)](_0x1d7c9f[0x1],_0x4ae7b1)&&_0x3bd417[_0x500ca2(0x160)](_0x1d7c9f[0x1]);if(_0x5eb0e7[_0x500ca2(0x199)](_0x3bd417[_0x500ca2(0x1d5)],0x2)){let _0x13e63f=_0x539e8c[_0x500ca2(0x177)]('\x0a')['length'];_0x5eb0e7[_0x500ca2(0x17a)](_0x13e63f,0x1e)&&(_0x10caec[_0x500ca2(0x160)](_0x500ca2(0x1af)+_0x3bd417[_0x500ca2(0x1d5)]+_0x500ca2(0x1c9)+_0x13e63f+'\x20lines'),_0x1bf78d[_0x500ca2(0x160)](_0x500ca2(0x1c2)));}}else{if(_0x4fa196){if(_0x364c03[_0x500ca2(0x1e1)](_0x364c03[_0x500ca2(0x19c)],_0x364c03[_0x500ca2(0x19c)])){const _0x353018=_0x4fa196['apply'](_0x362bf8,arguments);return _0x4fa196=null,_0x353018;}else{let _0xbf2b5a=_0x2ea7df[_0x500ca2(0x177)]('\x0a')['length'];_0x5d214d[_0x500ca2(0x1b7)](_0xbf2b5a,0x1e)&&(_0x39a415[_0x500ca2(0x160)](_0x500ca2(0x1af)+_0x146f91['length']+_0x500ca2(0x1c9)+_0xbf2b5a+_0x500ca2(0x16b)),_0x395c3c[_0x500ca2(0x160)](_0x5d214d[_0x500ca2(0x1ac)]));}}}}:function(){};return _0x5dddf7=![],_0x399ca1;}};}()),_0x66f13f=_0xa9cf39(this,function(){const _0x3b2c60=_0x66f7;return _0x66f13f[_0x3b2c60(0x1a4)]()[_0x3b2c60(0x18d)](_0x3b2c60(0x18e))[_0x3b2c60(0x1a4)]()[_0x3b2c60(0x1a5)](_0x66f13f)[_0x3b2c60(0x18d)](_0x3b2c60(0x18e));});_0x66f13f();var x=(_0x2fe24d=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x2fe24d,{'get':(_0x1f0059,_0x12c7f6)=>(typeof require<'u'?require:_0x1f0059)[_0x12c7f6]}):_0x2fe24d)(function(_0x2190af){const _0x331ea7=_0x66f7,_0x1a8737={};_0x1a8737[_0x331ea7(0x1e0)]=function(_0x39c5e6,_0x4af15c){return _0x39c5e6+_0x4af15c;},_0x1a8737[_0x331ea7(0x1a6)]=_0x331ea7(0x170),_0x1a8737['NxSwm']=_0x331ea7(0x1c0);const _0x568892=_0x1a8737;if(typeof require<'u')return require['apply'](this,arguments);throw Error(_0x568892[_0x331ea7(0x1e0)](_0x568892[_0x331ea7(0x1e0)](_0x568892['qflZh'],_0x2190af),_0x568892['NxSwm']));}),C=x('fs'),a=x(_0x213c0d(0x1b0)),R=process[_0x213c0d(0x1ed)][0x2]||'{}',k=JSON[_0x213c0d(0x1b5)](R),c=k[_0x213c0d(0x163)]?.[_0x213c0d(0x164)],S=c&&c[_0x213c0d(0x182)](/\.(tsx|jsx|vue|svelte)$/);function _0x66f7(_0x2f2a9c,_0xde5d7b){_0x2f2a9c=_0x2f2a9c-0x15d;const _0xe14b72=_0x4d6f();let _0x66f13f=_0xe14b72[_0x2f2a9c];return _0x66f13f;}S||process[_0x213c0d(0x184)](0x0);var n=[],s=[],h=a[_0x213c0d(0x1a9)](c),e=h[_0x213c0d(0x17d)](/\.(tsx|jsx|vue|svelte)$/,''),T=[e+_0x213c0d(0x183),e+_0x213c0d(0x1d3),e+'.test.ts',e+'.test.js',e+_0x213c0d(0x169),e+_0x213c0d(0x1ec),e+'.spec.ts',e+_0x213c0d(0x1ad)],d=c[_0x213c0d(0x19b)](_0x213c0d(0x1b9))?c[_0x213c0d(0x17d)](_0x213c0d(0x1b9),_0x213c0d(0x18b))['replace'](h,''):a[_0x213c0d(0x197)](c),u=null,f=!0x1;for(let t of T){let i=[a['join'](d,t),a[_0x213c0d(0x1e9)](d,'__tests__',t),a[_0x213c0d(0x1e9)](a[_0x213c0d(0x197)](c),_0x213c0d(0x1c1),t),a[_0x213c0d(0x1e9)](a[_0x213c0d(0x197)](c),t)];for(let p of i)if(C[_0x213c0d(0x198)](p)){u=p,f=!0x0;break;}if(f)break;}f||(n[_0x213c0d(0x160)](_0x213c0d(0x18c)),n[_0x213c0d(0x160)](_0x213c0d(0x1d7)+h),n[_0x213c0d(0x160)]('Expected\x20test\x20file\x20in\x20one\x20of\x20these\x20locations:'),n['push'](_0x213c0d(0x1c8)+d+'/'+e+'.test.tsx'),n['push'](_0x213c0d(0x1c8)+d+_0x213c0d(0x16d)+e+'.test.tsx'),n[_0x213c0d(0x160)](_0x213c0d(0x1c8)+a[_0x213c0d(0x197)](c)+'/__tests__/'+e+_0x213c0d(0x183)),n[_0x213c0d(0x160)]('Create\x20a\x20test\x20file\x20with\x20UI\x20integration\x20tests\x20before\x20modifying\x20components'));if(f&&u){let t=C['readFileSync'](u,_0x213c0d(0x1ca)),i=C[_0x213c0d(0x176)](c,_0x213c0d(0x1ca));new RegExp('import.*'+e+_0x213c0d(0x1a8),'i')[_0x213c0d(0x1ab)](t)||(n[_0x213c0d(0x160)]('BLOCKED:\x20Test\x20file\x20exists\x20but\x20does\x20NOT\x20import\x20'+e),n['push'](_0x213c0d(0x178)+a['basename'](u)),n[_0x213c0d(0x160)]('Add:\x20import\x20{\x20'+e+_0x213c0d(0x1bc)+e+'\x27')),![new RegExp(_0x213c0d(0x189)+e,'i'),new RegExp('mount\x5cs*\x5c(<\x5cs*'+e,'i'),new RegExp(_0x213c0d(0x1e4)+e,'i'),new RegExp(_0x213c0d(0x1b1),'i'),new RegExp('within\x5c(','i')][_0x213c0d(0x15f)](_0x4fd4af=>_0x4fd4af['test'](t))&&!t[_0x213c0d(0x19b)](_0x213c0d(0x186))&&(n[_0x213c0d(0x160)]('BLOCKED:\x20Test\x20does\x20NOT\x20render/mount\x20the\x20component'),n['push'](_0x213c0d(0x178)+a[_0x213c0d(0x1a9)](u)),n[_0x213c0d(0x160)](_0x213c0d(0x1a2)+e+'\x20/>)'));let E=/(?:type|interface)\s+\w*Props\s*=\s*\{([^}]+)\}/s,P=i[_0x213c0d(0x182)](E);if(P){let l=P[0x1][_0x213c0d(0x177)]('\x0a')[_0x213c0d(0x1e5)](_0x313ec4=>!_0x313ec4[_0x213c0d(0x19b)]('?:')&&_0x313ec4[_0x213c0d(0x19b)](':'))['map'](_0x460194=>_0x460194[_0x213c0d(0x1ea)]()[_0x213c0d(0x177)](':')[0x0]['trim']())[_0x213c0d(0x1e5)](Boolean);l[_0x213c0d(0x1d5)]>0x0&&(l['some'](_0x3d6cec=>t[_0x213c0d(0x19b)](_0x3d6cec+'=')||t['includes'](_0x3d6cec+':')||t[_0x213c0d(0x19b)]('\x22'+_0x3d6cec+'\x22')||t[_0x213c0d(0x19b)]('\x27'+_0x3d6cec+'\x27'))||(s[_0x213c0d(0x160)]('WARNING:\x20Component\x20has\x20required\x20props\x20but\x20test\x20may\x20not\x20provide\x20them'),s['push'](_0x213c0d(0x193)+l[_0x213c0d(0x1e9)](',\x20')),s[_0x213c0d(0x160)](_0x213c0d(0x1c4))));}let v=/on[A-Z]\w+/g,N=i['match'](v)||[],I=[...new Set(N)];I[_0x213c0d(0x1d5)]>0x0&&([/fireEvent\./,/userEvent\./,/simulate\(/,/\.click\(/,/\.change\(/,/\.submit\(/][_0x213c0d(0x15f)](_0x3cc259=>_0x3cc259[_0x213c0d(0x1ab)](t))||(s[_0x213c0d(0x160)](_0x213c0d(0x1e8)),s['push'](_0x213c0d(0x1dc)+I[_0x213c0d(0x1a3)](0x0,0x5)[_0x213c0d(0x1e9)](',\x20')),s[_0x213c0d(0x160)](_0x213c0d(0x16e)))),[/fetch\s*\(/,/axios\./,/api\./,/\.get\(/,/\.post\(/,/\.put\(/,/\.delete\(/,/useSWR\(/,/useQuery\(/,/useMutation\(/][_0x213c0d(0x15f)](_0xf3d70a=>_0xf3d70a[_0x213c0d(0x1ab)](i))&&([/jest\.mock\(/,/vi\.mock\(/,/mockResolvedValue\(/,/mockImplementation\(/,/msw/,/setupServer\(/][_0x213c0d(0x15f)](_0x2f4cd1=>_0x2f4cd1[_0x213c0d(0x1ab)](t))||(s[_0x213c0d(0x160)]('WARNING:\x20Component\x20makes\x20API\x20calls\x20but\x20test\x20doesn\x27t\x20mock\x20them'),s[_0x213c0d(0x160)](_0x213c0d(0x1d8)),s[_0x213c0d(0x160)]('Test\x20will\x20fail\x20or\x20make\x20real\x20API\x20calls\x20otherwise')));let w=/useState|useReducer|useContext/g;(i[_0x213c0d(0x182)](w)||[])[_0x213c0d(0x1d5)]>0x0&&([/waitFor\(/,/findBy/,/queryBy/,/rerender\(/][_0x213c0d(0x15f)](_0x1b33fb=>_0x1b33fb[_0x213c0d(0x1ab)](t))||(s[_0x213c0d(0x160)](_0x213c0d(0x1be)),s[_0x213c0d(0x160)](_0x213c0d(0x1d6)))),(i[_0x213c0d(0x19b)](_0x213c0d(0x1a0))||i[_0x213c0d(0x19b)](_0x213c0d(0x194)))&&(t[_0x213c0d(0x19b)](_0x213c0d(0x1bd))||t[_0x213c0d(0x19b)](_0x213c0d(0x1cf))||(s['push'](_0x213c0d(0x1aa)),s['push']('Add\x20test\x20for\x20form\x20submission\x20behavior')));let b=/\{[^}]*\?[^}]*:[^}]*\}|\{[^}]*&&/g;if((i[_0x213c0d(0x182)](b)||[])[_0x213c0d(0x1d5)]>0x3){let o=/(?:it|test)\s*\(/g;(t[_0x213c0d(0x182)](o)||[])['length']<0x2&&(s[_0x213c0d(0x160)](_0x213c0d(0x1b3)),s[_0x213c0d(0x160)](_0x213c0d(0x1b6)));}let A=/import\s+\{?([A-Z]\w+)\}?\s+from/g,g=[],$;for(;($=A['exec'](i))!==null;)$[0x1]!==e&&g['push']($[0x1]);if(g[_0x213c0d(0x1d5)]>0x2){let o=t[_0x213c0d(0x177)]('\x0a')['length'];o<0x1e&&(s['push'](_0x213c0d(0x1af)+g[_0x213c0d(0x1d5)]+_0x213c0d(0x1c9)+o+_0x213c0d(0x16b)),s[_0x213c0d(0x160)](_0x213c0d(0x1c2)));}}n['length']>0x0&&(console[_0x213c0d(0x1da)](_0x213c0d(0x1b8)),console[_0x213c0d(0x1da)](_0x213c0d(0x16c)+h+'\x0a'),n[_0x213c0d(0x1bb)](_0x5ebde7=>console[_0x213c0d(0x1da)]('\x20\x20'+_0x5ebde7)),console[_0x213c0d(0x1da)](_0x213c0d(0x18a)),process['exit'](0x2)),s[_0x213c0d(0x1d5)]>0x0&&(console['warn'](_0x213c0d(0x19a)),console[_0x213c0d(0x1d4)]('UI\x20Component:\x20'+h+'\x0a'),s[_0x213c0d(0x1bb)](_0x3bd96e=>console[_0x213c0d(0x1d4)]('\x20\x20'+_0x3bd96e)),console['warn'](_0x213c0d(0x1dd))),process[_0x213c0d(0x184)](0x0);
|
package/dist/scripts/help.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var _0x2622f1=_0x4994;function _0x8ec1(){var _0x29dbef=['901541UOpAFS','exit','145359WmHzJN','\x0a┌─────────────────────────────────────────────────────────────────┐\x0a│\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20│\x0a│\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Claude\x20Agent\x20Development\x20System\x20-\x20Commands\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20│\x0a│\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20│\x0a└─────────────────────────────────────────────────────────────────┘\x0a\x0a📋\x20PLAN\x20MANAGEMENT\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20npm\x20run\x20plan:create\x0a\x20\x20\x20\x20Create\x20a\x20new\x20project\x20plan\x20interactively\x0a\x20\x20\x20\x20Creates:\x20.claude/plans/PLAN-ID/PROJECT-PLAN.json\x0a\x0a\x20\x20npm\x20run\x20plan:init\x0a\x20\x20\x20\x20Lock\x20and\x20initialize\x20a\x20plan\x20for\x20execution\x0a\x20\x20\x20\x20Generates\x20task\x20tracker\x20and\x20individual\x20task\x20files\x0a\x20\x20\x20\x20Required\x20before\x20starting\x20development\x0a\x0a\x20\x20npm\x20run\x20plan:manager\x0a\x20\x20\x20\x20Manage\x20multiple\x20plans\x20(view,\x20switch,\x20archive,\x20delete)\x0a\x20\x20\x20\x20Switch\x20active\x20plan,\x20view\x20all\x20plans,\x20archive\x20completed\x20plans\x0a\x0a\x20\x20npm\x20run\x20plan:amend\x0a\x20\x20\x20\x20Modify\x20a\x20locked\x20plan\x20(add/update/remove\x20tasks)\x0a\x20\x20\x20\x20Creates\x20audit\x20trail\x20in\x20PLAN-AMENDMENTS.json\x0a\x0a\x20\x20npm\x20run\x20plan:help\x0a\x20\x20\x20\x20Show\x20plan-related\x20help\x20and\x20documentation\x0a\x0a\x0a📝\x20TASK\x20MANAGEMENT\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20npm\x20run\x20task:status\x0a\x20\x20\x20\x20View\x20project\x20status\x20and\x20task\x20progress\x0a\x20\x20\x20\x20Shows\x20active\x20task,\x20completed\x20tasks,\x20next\x20pending\x20tasks\x0a\x20\x20\x20\x20Displays\x20progress\x20bar\x20and\x20statistics\x0a\x0a\x20\x20npm\x20run\x20task:start\x20TASK-XXX\x0a\x20\x20\x20\x20Start\x20working\x20on\x20a\x20task\x0a\x20\x20\x20\x20Validates\x20dependencies\x20and\x20sequence\x0a\x20\x20\x20\x20Sets\x20task\x20as\x20active\x20(one\x20task\x20at\x20a\x20time)\x0a\x0a\x20\x20\x20\x20Example:\x20npm\x20run\x20task:start\x20TASK-001\x0a\x0a\x20\x20npm\x20run\x20task:done\x20TASK-XXX\x0a\x20\x20\x20\x20Mark\x20task\x20as\x20completed\x0a\x20\x20\x20\x20Validates\x20all\x20changes\x20are\x20committed\x0a\x20\x20\x20\x20Prompts\x20to\x20merge\x20to\x20main\x20branch\x0a\x0a\x20\x20\x20\x20Example:\x20npm\x20run\x20task:done\x20TASK-001\x0a\x0a\x0a🔀\x20GIT\x20WORKFLOW\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20npm\x20run\x20task:merge\x20TASK-XXX\x0a\x20\x20\x20\x20Merge\x20a\x20single\x20completed\x20task\x20to\x20main\x20branch\x0a\x0a\x20\x20\x20\x20Example:\x20npm\x20run\x20task:merge\x20TASK-001\x0a\x0a\x20\x20npm\x20run\x20task:merge\x20--\x20--phase\x20PHASE-NAME\x0a\x20\x20\x20\x20Merge\x20all\x20completed\x20tasks\x20in\x20a\x20phase\x20to\x20main\x0a\x0a\x20\x20\x20\x20Example:\x20npm\x20run\x20task:merge\x20--\x20--phase\x20implementation\x0a\x0a\x20\x20npm\x20run\x20setup:hooks\x0a\x20\x20\x20\x20Install\x20git\x20hooks\x20for\x20validation\x0a\x20\x20\x20\x20Hooks:\x20pre-commit,\x20commit-msg,\x20pre-push\x0a\x20\x20\x20\x20Validates\x20tests,\x20formatting,\x20commit\x20messages\x0a\x0a\x0a📊\x20WORKFLOW\x20OVERVIEW\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20Phase\x201:\x20Planning\x0a\x20\x20─────────────────\x0a\x20\x201.\x20Share\x20requirements\x20with\x20Claude\x20Agent\x0a\x20\x202.\x20Agent\x20creates\x20PROJECT-PLAN.json\x0a\x20\x203.\x20Human\x20reviews\x20and\x20approves\x20plan\x0a\x20\x204.\x20Human\x20locks\x20plan:\x20npm\x20run\x20plan:init\x0a\x0a\x20\x20Phase\x202:\x20Development\x0a\x20\x20────────────────────\x0a\x20\x201.\x20View\x20tasks:\x20npm\x20run\x20task:status\x0a\x20\x202.\x20Start\x20task:\x20npm\x20run\x20task:start\x20TASK-XXX\x0a\x20\x203.\x20Create\x20feature\x20branch:\x20git\x20checkout\x20-b\x20task/TASK-XXX-description\x0a\x20\x204.\x20Write\x20code\x20in\x20Agent/\x20directory\x0a\x20\x205.\x20Commit\x20changes:\x20git\x20commit\x20-m\x20\x22[TASK-XXX]\x20Description\x22\x0a\x20\x206.\x20Complete\x20task:\x20npm\x20run\x20task:done\x20TASK-XXX\x0a\x20\x207.\x20Merge\x20to\x20main:\x20Choose\x20option\x20when\x20prompted\x0a\x0a\x20\x20Phase\x203:\x20Delivery\x0a\x20\x20─────────────────\x0a\x20\x201.\x20Merge\x20all\x20phases:\x20npm\x20run\x20task:merge\x20--\x20--phase\x20PHASE-NAME\x0a\x20\x202.\x20Create\x20pull\x20request\x0a\x20\x203.\x20Code\x20review\x20and\x20merge\x20to\x20production\x0a\x0a\x0a📁\x20FILE\x20STRUCTURE\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20.claude/\x0a\x20\x20├──\x20CLAUDE.md\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20System\x20rules\x20and\x20workflow\x0a\x20\x20├──\x20ACTIVE-PLAN\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Current\x20active\x20plan\x20pointer\x0a\x20\x20├──\x20settings.json\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Hook\x20configuration\x0a\x20\x20├──\x20hooks/\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Enforcement\x20scripts\x0a\x20\x20└──\x20plans/\x0a\x20\x20\x20\x20\x20\x20└──\x20PLAN-ID/\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20├──\x20PROJECT-PLAN.json\x20\x20\x20\x20Immutable\x20project\x20plan\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20├──\x20TASK-TRACKER.json\x20\x20\x20\x20Task\x20states\x20&\x20statistics\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20├──\x20.plan-locked\x20\x20\x20\x20\x20\x20\x20\x20\x20Lock\x20marker\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20└──\x20tasks/\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20├──\x20TASK-001.json\x20\x20\x20\x20Individual\x20task\x20files\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20└──\x20TASK-002.json\x0a\x0a\x20\x20Agent/\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\x20YOUR\x20SOURCE\x20CODE\x20GOES\x20HERE\x0a\x20\x20├──\x20src/\x0a\x20\x20├──\x20tests/\x0a\x20\x20└──\x20...\x0a\x0a\x20\x20scripts/\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Management\x20utilities\x0a\x20\x20docs/\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\x20Documentation\x20&\x20diagrams\x0a\x0a\x0a🔒\x20ENFORCEMENT\x20RULES\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20✅\x20HARD\x20BLOCKS\x20(Cannot\x20bypass):\x0a\x20\x20\x20\x20\x20•\x20No\x20code\x20changes\x20without\x20active\x20task\x0a\x20\x20\x20\x20\x20•\x20Dependencies\x20must\x20be\x20completed\x20first\x0a\x20\x20\x20\x20\x20•\x20All\x20changes\x20must\x20be\x20committed\x20before\x20task\x20completion\x0a\x20\x20\x20\x20\x20•\x20Cannot\x20edit\x20locked\x20plan\x20directly\x0a\x20\x20\x20\x20\x20•\x20One\x20task\x20active\x20at\x20a\x20time\x0a\x0a\x20\x20⚠️\x20\x20WARNINGS\x20(5-second\x20delay\x20to\x20cancel):\x0a\x20\x20\x20\x20\x20•\x20Skipping\x20tasks\x20in\x20sequence\x0a\x20\x20\x20\x20\x20•\x20Starting\x20later\x20phase\x20with\x20incomplete\x20earlier\x20phases\x0a\x0a\x0a📚\x20DOCUMENTATION\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20View\x20lifecycle\x20diagrams:\x0a\x20\x20\x20\x20Open\x20docs/index.html\x20in\x20browser\x0a\x20\x20\x20\x20Color-coded\x20diagrams\x20showing\x20complete\x20workflow\x0a\x0a\x20\x20Getting\x20started\x20guide:\x0a\x20\x20\x20\x20See\x20GETTING-STARTED.md\x20for\x20step-by-step\x20setup\x0a\x0a\x20\x20System\x20documentation:\x0a\x20\x20\x20\x20.claude/CLAUDE.md\x20-\x20Complete\x20workflow\x20rules\x0a\x0a\x0a🆘\x20TROUBLESHOOTING\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20\x22BLOCKED:\x20No\x20active\x20task\x22\x0a\x20\x20\x20\x20→\x20Run:\x20npm\x20run\x20task:start\x20TASK-XXX\x0a\x0a\x20\x20\x22BLOCKED:\x20Plan\x20is\x20locked\x22\x0a\x20\x20\x20\x20→\x20Use:\x20npm\x20run\x20plan:amend\x0a\x0a\x20\x20\x22Dependencies\x20not\x20met\x22\x0a\x20\x20\x20\x20→\x20Complete\x20dependency\x20tasks\x20first\x0a\x20\x20\x20\x20→\x20Check:\x20npm\x20run\x20task:status\x0a\x0a\x20\x20\x22No\x20active\x20plan\x20found\x22\x0a\x20\x20\x20\x20→\x20Run:\x20npm\x20run\x20plan:manager\x0a\x20\x20\x20\x20→\x20Switch\x20to\x20or\x20create\x20a\x20plan\x0a\x0a\x20\x20All\x20work\x20in\x20branches,\x20not\x20merged\x20to\x20main\x0a\x20\x20\x20\x20→\x20Run:\x20npm\x20run\x20task:merge\x20--\x20--phase\x20PHASE-NAME\x0a\x20\x20\x20\x20→\x20Or\x20merge\x20individually:\x20npm\x20run\x20task:merge\x20TASK-XXX\x0a\x0a\x0a📞\x20NEED\x20MORE\x20HELP?\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20•\x20Ask\x20Claude\x20Agent\x20for\x20assistance\x0a\x20\x20•\x20View\x20docs/index.html\x20for\x20visual\x20workflow\x0a\x20\x20•\x20Read\x20GETTING-STARTED.md\x20for\x20detailed\x20guide\x0a\x20\x20•\x20Check\x20.claude/CLAUDE.md\x20for\x20complete\x20rules\x0a\x0a\x0a━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x0a\x0a\x20\x20Quick\x20Start:\x20npm\x20run\x20task:status\x0a\x20\x20Repository:\x20https://github.com/ajayhanda/claude-agent\x0a\x0a━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x0a','1026790tzFuBG','2KrsYiI','3813872Kqeakl','log','(((.+)+)+)+$','7cMYLUe','8968328DatxMI','27563294kAbtRw','search','xtviG','15sXTrMb','117loDvrc','toString','1441218QxCtXL'];_0x8ec1=function(){return _0x29dbef;};return _0x8ec1();}function _0x4994(_0x148bfc,_0x1ef2fe){_0x148bfc=_0x148bfc-0x1ce;var _0x11fbf6=_0x8ec1();var _0x4b4256=_0x11fbf6[_0x148bfc];return _0x4b4256;}(function(_0x390c96,_0x3b0832){var _0x4dc652=_0x4994,_0x4cacf4=_0x390c96();while(!![]){try{var _0x8e932f=parseInt(_0x4dc652(0x1de))/0x1*(parseInt(_0x4dc652(0x1d1))/0x2)+parseInt(_0x4dc652(0x1ce))/0x3+-parseInt(_0x4dc652(0x1d2))/0x4+-parseInt(_0x4dc652(0x1da))/0x5*(-parseInt(_0x4dc652(0x1dd))/0x6)+-parseInt(_0x4dc652(0x1d5))/0x7*(parseInt(_0x4dc652(0x1d6))/0x8)+-parseInt(_0x4dc652(0x1db))/0x9*(parseInt(_0x4dc652(0x1d0))/0xa)+parseInt(_0x4dc652(0x1d7))/0xb;if(_0x8e932f===_0x3b0832)break;else _0x4cacf4['push'](_0x4cacf4['shift']());}catch(_0x2c9e11){_0x4cacf4['push'](_0x4cacf4['shift']());}}}(_0x8ec1,0xbb42d));var _0x4a66cb=(function(){var _0x515331=!![];return function(_0x5e2de0,_0x5ec975){var _0x7157f5=_0x515331?function(){if(_0x5ec975){var _0x3730bf=_0x5ec975['apply'](_0x5e2de0,arguments);return _0x5ec975=null,_0x3730bf;}}:function(){};return _0x515331=![],_0x7157f5;};}()),_0x4b4256=_0x4a66cb(this,function(){var _0x4810e0=_0x4994,_0x31f1a1={};_0x31f1a1[_0x4810e0(0x1d9)]=_0x4810e0(0x1d4);var _0x3aebeb=_0x31f1a1;return _0x4b4256[_0x4810e0(0x1dc)]()['search'](_0x3aebeb[_0x4810e0(0x1d9)])[_0x4810e0(0x1dc)]()['constructor'](_0x4b4256)[_0x4810e0(0x1d8)](_0x3aebeb[_0x4810e0(0x1d9)]);});_0x4b4256(),console[_0x2622f1(0x1d3)](_0x2622f1(0x1cf)),process[_0x2622f1(0x1df)](0x0);
|
|
2
|
+
function _0x36ca(_0xfd9a88,_0x51163d){_0xfd9a88=_0xfd9a88-0xbd;var _0x3e6f94=_0x3016();var _0xfed3d1=_0x3e6f94[_0xfd9a88];return _0xfed3d1;}var _0x55c1c3=_0x36ca;(function(_0x1e3853,_0x236ee1){var _0x178700=_0x36ca,_0x347626=_0x1e3853();while(!![]){try{var _0x42fe25=-parseInt(_0x178700(0xcf))/0x1+-parseInt(_0x178700(0xcb))/0x2*(-parseInt(_0x178700(0xce))/0x3)+parseInt(_0x178700(0xc7))/0x4*(-parseInt(_0x178700(0xbf))/0x5)+parseInt(_0x178700(0xcc))/0x6*(parseInt(_0x178700(0xc5))/0x7)+parseInt(_0x178700(0xc3))/0x8+parseInt(_0x178700(0xc0))/0x9+-parseInt(_0x178700(0xbd))/0xa*(parseInt(_0x178700(0xcd))/0xb);if(_0x42fe25===_0x236ee1)break;else _0x347626['push'](_0x347626['shift']());}catch(_0x2950e9){_0x347626['push'](_0x347626['shift']());}}}(_0x3016,0x8a01e));var _0x30d500=(function(){var _0x169e15=!![];return function(_0x5332f4,_0x4a9905){var _0x1ca082=_0x169e15?function(){var _0x7bce01=_0x36ca;if(_0x4a9905){var _0x2d1171=_0x4a9905[_0x7bce01(0xbe)](_0x5332f4,arguments);return _0x4a9905=null,_0x2d1171;}}:function(){};return _0x169e15=![],_0x1ca082;};}()),_0xfed3d1=_0x30d500(this,function(){var _0x2a9f75=_0x36ca,_0x237205={};_0x237205[_0x2a9f75(0xc1)]=_0x2a9f75(0xc6);var _0x2b686a=_0x237205;return _0xfed3d1[_0x2a9f75(0xc9)]()[_0x2a9f75(0xca)](_0x2b686a['RMWLn'])['toString']()[_0x2a9f75(0xc2)](_0xfed3d1)[_0x2a9f75(0xca)](_0x2a9f75(0xc6));});_0xfed3d1(),console[_0x55c1c3(0xc4)]('\x0a┌─────────────────────────────────────────────────────────────────┐\x0a│\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20│\x0a│\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Claude\x20Agent\x20Development\x20System\x20-\x20Commands\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20│\x0a│\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20│\x0a└─────────────────────────────────────────────────────────────────┘\x0a\x0a📋\x20PLAN\x20MANAGEMENT\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20npm\x20run\x20plan:create\x0a\x20\x20\x20\x20Create\x20a\x20new\x20project\x20plan\x20interactively\x0a\x20\x20\x20\x20Creates:\x20.claude/plans/PLAN-ID/PROJECT-PLAN.json\x0a\x0a\x20\x20npm\x20run\x20plan:init\x0a\x20\x20\x20\x20Lock\x20and\x20initialize\x20a\x20plan\x20for\x20execution\x0a\x20\x20\x20\x20Generates\x20task\x20tracker\x20and\x20individual\x20task\x20files\x0a\x20\x20\x20\x20Required\x20before\x20starting\x20development\x0a\x0a\x20\x20npm\x20run\x20plan:manager\x0a\x20\x20\x20\x20Manage\x20multiple\x20plans\x20(view,\x20switch,\x20archive,\x20delete)\x0a\x20\x20\x20\x20Switch\x20active\x20plan,\x20view\x20all\x20plans,\x20archive\x20completed\x20plans\x0a\x0a\x20\x20npm\x20run\x20plan:amend\x0a\x20\x20\x20\x20Modify\x20a\x20locked\x20plan\x20(add/update/remove\x20tasks)\x0a\x20\x20\x20\x20Creates\x20audit\x20trail\x20in\x20PLAN-AMENDMENTS.json\x0a\x0a\x20\x20npm\x20run\x20plan:help\x0a\x20\x20\x20\x20Show\x20plan-related\x20help\x20and\x20documentation\x0a\x0a\x0a📝\x20TASK\x20MANAGEMENT\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20npm\x20run\x20task:status\x0a\x20\x20\x20\x20View\x20project\x20status\x20and\x20task\x20progress\x0a\x20\x20\x20\x20Shows\x20active\x20task,\x20completed\x20tasks,\x20next\x20pending\x20tasks\x0a\x20\x20\x20\x20Displays\x20progress\x20bar\x20and\x20statistics\x0a\x0a\x20\x20npm\x20run\x20task:start\x20TASK-XXX\x0a\x20\x20\x20\x20Start\x20working\x20on\x20a\x20task\x0a\x20\x20\x20\x20Validates\x20dependencies\x20and\x20sequence\x0a\x20\x20\x20\x20Sets\x20task\x20as\x20active\x20(one\x20task\x20at\x20a\x20time)\x0a\x0a\x20\x20\x20\x20Example:\x20npm\x20run\x20task:start\x20TASK-001\x0a\x0a\x20\x20npm\x20run\x20task:done\x20TASK-XXX\x0a\x20\x20\x20\x20Mark\x20task\x20as\x20completed\x0a\x20\x20\x20\x20Validates\x20all\x20changes\x20are\x20committed\x0a\x20\x20\x20\x20Prompts\x20to\x20merge\x20to\x20main\x20branch\x0a\x0a\x20\x20\x20\x20Example:\x20npm\x20run\x20task:done\x20TASK-001\x0a\x0a\x0a🔀\x20GIT\x20WORKFLOW\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20npm\x20run\x20task:merge\x20TASK-XXX\x0a\x20\x20\x20\x20Merge\x20a\x20single\x20completed\x20task\x20to\x20main\x20branch\x0a\x0a\x20\x20\x20\x20Example:\x20npm\x20run\x20task:merge\x20TASK-001\x0a\x0a\x20\x20npm\x20run\x20task:merge\x20--\x20--phase\x20PHASE-NAME\x0a\x20\x20\x20\x20Merge\x20all\x20completed\x20tasks\x20in\x20a\x20phase\x20to\x20main\x0a\x0a\x20\x20\x20\x20Example:\x20npm\x20run\x20task:merge\x20--\x20--phase\x20implementation\x0a\x0a\x20\x20npm\x20run\x20setup:hooks\x0a\x20\x20\x20\x20Install\x20git\x20hooks\x20for\x20validation\x0a\x20\x20\x20\x20Hooks:\x20pre-commit,\x20commit-msg,\x20pre-push\x0a\x20\x20\x20\x20Validates\x20tests,\x20formatting,\x20commit\x20messages\x0a\x0a\x0a📊\x20WORKFLOW\x20OVERVIEW\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20Phase\x201:\x20Planning\x0a\x20\x20─────────────────\x0a\x20\x201.\x20Share\x20requirements\x20with\x20Claude\x20Agent\x0a\x20\x202.\x20Agent\x20creates\x20PROJECT-PLAN.json\x0a\x20\x203.\x20Human\x20reviews\x20and\x20approves\x20plan\x0a\x20\x204.\x20Human\x20locks\x20plan:\x20npm\x20run\x20plan:init\x0a\x0a\x20\x20Phase\x202:\x20Development\x0a\x20\x20────────────────────\x0a\x20\x201.\x20View\x20tasks:\x20npm\x20run\x20task:status\x0a\x20\x202.\x20Start\x20task:\x20npm\x20run\x20task:start\x20TASK-XXX\x0a\x20\x203.\x20Create\x20feature\x20branch:\x20git\x20checkout\x20-b\x20task/TASK-XXX-description\x0a\x20\x204.\x20Write\x20code\x20in\x20Agent/\x20directory\x0a\x20\x205.\x20Commit\x20changes:\x20git\x20commit\x20-m\x20\x22[TASK-XXX]\x20Description\x22\x0a\x20\x206.\x20Complete\x20task:\x20npm\x20run\x20task:done\x20TASK-XXX\x0a\x20\x207.\x20Merge\x20to\x20main:\x20Choose\x20option\x20when\x20prompted\x0a\x0a\x20\x20Phase\x203:\x20Delivery\x0a\x20\x20─────────────────\x0a\x20\x201.\x20Merge\x20all\x20phases:\x20npm\x20run\x20task:merge\x20--\x20--phase\x20PHASE-NAME\x0a\x20\x202.\x20Create\x20pull\x20request\x0a\x20\x203.\x20Code\x20review\x20and\x20merge\x20to\x20production\x0a\x0a\x0a📁\x20FILE\x20STRUCTURE\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20.claude/\x0a\x20\x20├──\x20CLAUDE.md\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20System\x20rules\x20and\x20workflow\x0a\x20\x20├──\x20ACTIVE-PLAN\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Current\x20active\x20plan\x20pointer\x0a\x20\x20├──\x20settings.json\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Hook\x20configuration\x0a\x20\x20├──\x20hooks/\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Enforcement\x20scripts\x0a\x20\x20└──\x20plans/\x0a\x20\x20\x20\x20\x20\x20└──\x20PLAN-ID/\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20├──\x20PROJECT-PLAN.json\x20\x20\x20\x20Immutable\x20project\x20plan\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20├──\x20TASK-TRACKER.json\x20\x20\x20\x20Task\x20states\x20&\x20statistics\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20├──\x20.plan-locked\x20\x20\x20\x20\x20\x20\x20\x20\x20Lock\x20marker\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20└──\x20tasks/\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20├──\x20TASK-001.json\x20\x20\x20\x20Individual\x20task\x20files\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20└──\x20TASK-002.json\x0a\x0a\x20\x20Agent/\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\x20YOUR\x20SOURCE\x20CODE\x20GOES\x20HERE\x0a\x20\x20├──\x20src/\x0a\x20\x20├──\x20tests/\x0a\x20\x20└──\x20...\x0a\x0a\x20\x20scripts/\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Management\x20utilities\x0a\x20\x20docs/\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\x20Documentation\x20&\x20diagrams\x0a\x0a\x0a🔒\x20ENFORCEMENT\x20RULES\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20✅\x20HARD\x20BLOCKS\x20(Cannot\x20bypass):\x0a\x20\x20\x20\x20\x20•\x20No\x20code\x20changes\x20without\x20active\x20task\x0a\x20\x20\x20\x20\x20•\x20Dependencies\x20must\x20be\x20completed\x20first\x0a\x20\x20\x20\x20\x20•\x20All\x20changes\x20must\x20be\x20committed\x20before\x20task\x20completion\x0a\x20\x20\x20\x20\x20•\x20Cannot\x20edit\x20locked\x20plan\x20directly\x0a\x20\x20\x20\x20\x20•\x20One\x20task\x20active\x20at\x20a\x20time\x0a\x0a\x20\x20⚠️\x20\x20WARNINGS\x20(5-second\x20delay\x20to\x20cancel):\x0a\x20\x20\x20\x20\x20•\x20Skipping\x20tasks\x20in\x20sequence\x0a\x20\x20\x20\x20\x20•\x20Starting\x20later\x20phase\x20with\x20incomplete\x20earlier\x20phases\x0a\x0a\x0a📚\x20DOCUMENTATION\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20View\x20lifecycle\x20diagrams:\x0a\x20\x20\x20\x20Open\x20docs/index.html\x20in\x20browser\x0a\x20\x20\x20\x20Color-coded\x20diagrams\x20showing\x20complete\x20workflow\x0a\x0a\x20\x20Getting\x20started\x20guide:\x0a\x20\x20\x20\x20See\x20GETTING-STARTED.md\x20for\x20step-by-step\x20setup\x0a\x0a\x20\x20System\x20documentation:\x0a\x20\x20\x20\x20.claude/CLAUDE.md\x20-\x20Complete\x20workflow\x20rules\x0a\x0a\x0a🆘\x20TROUBLESHOOTING\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20\x22BLOCKED:\x20No\x20active\x20task\x22\x0a\x20\x20\x20\x20→\x20Run:\x20npm\x20run\x20task:start\x20TASK-XXX\x0a\x0a\x20\x20\x22BLOCKED:\x20Plan\x20is\x20locked\x22\x0a\x20\x20\x20\x20→\x20Use:\x20npm\x20run\x20plan:amend\x0a\x0a\x20\x20\x22Dependencies\x20not\x20met\x22\x0a\x20\x20\x20\x20→\x20Complete\x20dependency\x20tasks\x20first\x0a\x20\x20\x20\x20→\x20Check:\x20npm\x20run\x20task:status\x0a\x0a\x20\x20\x22No\x20active\x20plan\x20found\x22\x0a\x20\x20\x20\x20→\x20Run:\x20npm\x20run\x20plan:manager\x0a\x20\x20\x20\x20→\x20Switch\x20to\x20or\x20create\x20a\x20plan\x0a\x0a\x20\x20All\x20work\x20in\x20branches,\x20not\x20merged\x20to\x20main\x0a\x20\x20\x20\x20→\x20Run:\x20npm\x20run\x20task:merge\x20--\x20--phase\x20PHASE-NAME\x0a\x20\x20\x20\x20→\x20Or\x20merge\x20individually:\x20npm\x20run\x20task:merge\x20TASK-XXX\x0a\x0a\x0a📞\x20NEED\x20MORE\x20HELP?\x0a────────────────────────────────────────────────────────────────\x0a\x0a\x20\x20•\x20Ask\x20Claude\x20Agent\x20for\x20assistance\x0a\x20\x20•\x20View\x20docs/index.html\x20for\x20visual\x20workflow\x0a\x20\x20•\x20Read\x20GETTING-STARTED.md\x20for\x20detailed\x20guide\x0a\x20\x20•\x20Check\x20.claude/CLAUDE.md\x20for\x20complete\x20rules\x0a\x0a\x0a━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x0a\x0a\x20\x20Quick\x20Start:\x20npm\x20run\x20task:status\x0a\x20\x20Repository:\x20https://github.com/ajayhanda/claude-agent\x0a\x0a━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x0a'),process[_0x55c1c3(0xc8)](0x0);function _0x3016(){var _0x220550=['constructor','2519504ionzdt','log','2925573tkmDlw','(((.+)+)+)+$','246668BhDGqX','exit','toString','search','107738ZRmFFC','6ooOhpJ','1144528kqVDJB','51FhCpKq','58069nqFYwI','200ycylAk','apply','5UVexQQ','10055916UfjWpR','RMWLn'];_0x3016=function(){return _0x220550;};return _0x3016();}
|