metadidomi-builder 1.5.2411250404 → 1.7.3101261533

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.
Files changed (31) hide show
  1. package/README.md +185 -776
  2. package/build_tools_py/build_nsis_installer.py +1054 -19
  3. package/build_tools_py/builder.py +3 -3
  4. package/build_tools_py/compile_launcher_with_entry.py +19 -271
  5. package/build_tools_py/launcher_integration.py +19 -189
  6. package/build_tools_py/pyMetadidomi/__pycache__/pyMetadidomi.cpython-311.pyc +0 -0
  7. package/build_tools_py/pyMetadidomi/pyMetadidomi.py +3 -3
  8. package/package.json +7 -5
  9. package/build_tools/backup-manager.js +0 -3
  10. package/build_tools/build_apk.js +0 -3
  11. package/build_tools/builder.js +0 -2
  12. package/build_tools/certs/cert-65198130.key +0 -1
  13. package/build_tools/certs/cert-65198130.pfx +0 -0
  14. package/build_tools/certs/cert-f1fad9b5.key +0 -1
  15. package/build_tools/certs/cert-f1fad9b5.pfx +0 -0
  16. package/build_tools/commands-help.js +0 -465
  17. package/build_tools/create-example-app.js +0 -73
  18. package/build_tools/decrypt_pfx_password.js +0 -26
  19. package/build_tools/diagnose-apk.js +0 -61
  20. package/build_tools/generate-icons.js +0 -3
  21. package/build_tools/generate-resources.js +0 -3
  22. package/build_tools/prune_modules.js +0 -147
  23. package/build_tools/restore-resources.js +0 -3
  24. package/build_tools/signing.js +0 -20
  25. package/build_tools/templates/bootstrap.template.js +0 -78
  26. package/build_tools/templates/default.ico +0 -1
  27. package/build_tools/templates/nsis_template.nsi +0 -380
  28. package/build_tools/templates/security_addons.js +0 -60
  29. package/build_tools/templates/sfx_config.txt.tpl +0 -5
  30. package/build_tools/test_sign_with_vendor.js +0 -35
  31. package/build_tools/upx_advanced.js +0 -68
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const _0x5409d9=_0x1a39;(function(_0x3a5d40,_0x314e44){const _0x5b030a=_0x1a39,_0x4f009e=_0x3a5d40();while(!![]){try{const _0x57bc9a=-parseInt(_0x5b030a(0x9a))/0x1*(parseInt(_0x5b030a(0x7f))/0x2)+parseInt(_0x5b030a(0xb8))/0x3*(-parseInt(_0x5b030a(0x9f))/0x4)+parseInt(_0x5b030a(0xd4))/0x5+-parseInt(_0x5b030a(0xbf))/0x6*(parseInt(_0x5b030a(0x92))/0x7)+-parseInt(_0x5b030a(0x81))/0x8+parseInt(_0x5b030a(0xa5))/0x9*(parseInt(_0x5b030a(0xc2))/0xa)+-parseInt(_0x5b030a(0xbc))/0xb*(-parseInt(_0x5b030a(0xbb))/0xc);if(_0x57bc9a===_0x314e44)break;else _0x4f009e['push'](_0x4f009e['shift']());}catch(_0x1c8ac5){_0x4f009e['push'](_0x4f009e['shift']());}}}(_0x46d8,0xb8110));const fs=require('fs'),path=require('path'),readline=require(_0x5409d9(0x83));let projectDir=null;if(process[_0x5409d9(0x93)][0x2])projectDir=path[_0x5409d9(0xa7)](process[_0x5409d9(0x93)][0x2]);else{if(process[_0x5409d9(0xc4)]['PROJECT_PATH'])projectDir=path['resolve'](process[_0x5409d9(0xc4)][_0x5409d9(0xa4)]);else{const defaultPaths=[path[_0x5409d9(0x89)](__dirname,'..','..',_0x5409d9(0x95)),path[_0x5409d9(0xa7)](_0x5409d9(0x95))];for(const checkPath of defaultPaths){if(checkPath&&fs[_0x5409d9(0xa3)](checkPath)&&fs[_0x5409d9(0xa3)](path[_0x5409d9(0x89)](checkPath,_0x5409d9(0x96)))){projectDir=checkPath;break;}}}}(!projectDir||!fs[_0x5409d9(0xa3)](projectDir))&&(console[_0x5409d9(0x90)]('ERREUR:\x20Dossier\x20du\x20projet\x20non\x20trouvé!'),process['exit'](0x1));const BACKUP_DIR=path[_0x5409d9(0x89)](projectDir,_0x5409d9(0xd3)),rl=readline[_0x5409d9(0x86)]({'input':process[_0x5409d9(0xd0)],'output':process['stdout']});!fs[_0x5409d9(0xa3)](BACKUP_DIR)&&fs['mkdirSync'](BACKUP_DIR,{'recursive':!![]});function listBackups(){const _0x4a7b18=_0x5409d9;if(!fs[_0x4a7b18(0xa3)](BACKUP_DIR))return console[_0x4a7b18(0x8b)](_0x4a7b18(0x9c)),[];const _0x4f87f1=fs['readdirSync'](BACKUP_DIR)[_0x4a7b18(0xa0)](_0x492ce3=>fs['statSync'](path['join'](BACKUP_DIR,_0x492ce3))['isDirectory']())[_0x4a7b18(0xd8)]()['reverse']()[_0x4a7b18(0xdb)](_0x4eff74=>{const _0x491d67=_0x4a7b18,_0x116b48=path[_0x491d67(0x89)](BACKUP_DIR,_0x4eff74),_0x5c8fc6=path[_0x491d67(0x89)](_0x116b48,_0x491d67(0xb0));let _0x1b065b={'timestamp':_0x4eff74,'files':[],'app':{}};if(fs[_0x491d67(0xa3)](_0x5c8fc6))try{_0x1b065b=JSON[_0x491d67(0xb3)](fs[_0x491d67(0xa1)](_0x5c8fc6,_0x491d67(0xc8)));}catch(_0x29a3fc){}return{'folder':_0x4eff74,'timestamp':_0x1b065b[_0x491d67(0xaf)],'date':new Date(_0x1b065b[_0x491d67(0xaf)])['toLocaleString'](_0x491d67(0xbd)),'app':_0x1b065b['app']||{},'files':_0x1b065b['files']||[],'size':getDirectorySize(_0x116b48)};});return _0x4f87f1;}function _0x46d8(){const _0x2e3754=['JE\x20SUIS\x20SÛR','\x0aConfirmer\x20la\x20restauration\x20de\x20','3fUUDjO','close','split','4716ExxHgI','71181vbnRht','fr-FR','\x0aAucun\x20backup\x20à\x20supprimer.\x0a','4990344xCnsru','\x0aNuméro\x20du\x20backup\x20à\x20restaurer\x20(ou\x20Q\x20pour\x20annuler):\x20','0\x20B','15790lOSIHr','\x0aOption\x20invalide!\x0a','env','floor','forEach','folder','utf-8','\x0aSuppression\x20annulée.\x0a','\x0aAucun\x20backup\x20à\x20restaurer.\x0a','\x0aAu\x20revoir!','\x0aConfirmer\x20la\x20suppression\x20de\x20','app','\x20\x20[R]\x20Restaurer\x20un\x20backup','╔════════════════════════════════════════════════════════════════╗','stdin','length','\x0a✓\x20Backup\x20restauré\x20avec\x20succès!\x0a','.backup','6456705cmozDQ','\x20\x20\x20\x20Description:\x20','\x0a✓\x20Tous\x20les\x20backups\x20ont\x20été\x20supprimés!\x0a','\x0aRestauration\x20annulée.\x0a','sort','message','OUI','map','name','date','copyFileSync','question','?\x20(OUI/non):\x20','2EjOoLb','statSync','5632680JNDpFm','╚════════════════════════════════════════════════════════════════╝\x0a','readline','\x20\x20\x20\x20Fichiers:\x20','\x20\x20[D]\x20Supprimer\x20un\x20backup','createInterface','═══════════════════════════════════════════════════════════════\x0a','\x0a✗\x20Erreur\x20lors\x20de\x20la\x20restauration:\x20','join','description','log','\x0a✗\x20Erreur\x20lors\x20de\x20la\x20suppression:\x20','isDirectory','Options:','\x20\x20\x20\x20Dossier:\x20','error','CONFIRMER:\x20Taper\x20\x22JE\x20SUIS\x20SÛR\x22\x20pour\x20continuer:\x20','7WCxXps','argv','✓\x20Restauré:\x20','MyApp','app-config.json','\x0aNuméro\x20invalide!\x0a','rmSync','files','1336273abpfJc','readdirSync','Aucun\x20backup\x20trouvé.','toFixed','Aucun\x20backup\x20disponible.\x0a','5943348WEzZMx','filter','readFileSync','pop','existsSync','PROJECT_PATH','7281cFzeIA','\x20\x20[C]\x20Tout\x20supprimer\x20(ATTENTION!)','resolve','Backups\x20disponibles\x20(du\x20plus\x20récent\x20au\x20plus\x20ancien):\x0a','\x0a✓\x20Backup\x20supprimé\x20avec\x20succès!\x0a','═══════════════════════════════════════════════════════════════','mkdirSync','size','clear','\x0aNuméro\x20du\x20backup\x20à\x20supprimer\x20(ou\x20Q\x20pour\x20annuler):\x20','timestamp','metadata.json','\x20\x20\x20\x20Taille:\x20','toUpperCase','parse','basename','version'];_0x46d8=function(){return _0x2e3754;};return _0x46d8();}function getDirectorySize(_0x5db988){const _0x3fb922=_0x5409d9;let _0x15e216=0x0;const _0x2cf314=fs[_0x3fb922(0x9b)](_0x5db988);for(const _0x697e68 of _0x2cf314){const _0x184a92=path[_0x3fb922(0x89)](_0x5db988,_0x697e68),_0x2c6f99=fs[_0x3fb922(0x80)](_0x184a92);_0x2c6f99[_0x3fb922(0x8d)]()?_0x15e216+=getDirectorySize(_0x184a92):_0x15e216+=_0x2c6f99[_0x3fb922(0xac)];}return _0x15e216;}function formatSize(_0x421c2b){const _0x5036b4=_0x5409d9;if(_0x421c2b===0x0)return _0x5036b4(0xc1);const _0x472357=0x400,_0x33f582=['B','KB','MB','GB'],_0x903879=Math[_0x5036b4(0xc5)](Math[_0x5036b4(0x8b)](_0x421c2b)/Math['log'](_0x472357));return parseFloat((_0x421c2b/Math['pow'](_0x472357,_0x903879))[_0x5036b4(0x9d)](0x2))+'\x20'+_0x33f582[_0x903879];}function displayBackups(){const _0x275eae=_0x5409d9;console[_0x275eae(0xad)](),console[_0x275eae(0x8b)](_0x275eae(0xcf)),console['log']('║\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GESTIONNAIRE\x20DE\x20BACKUPS\x20-\x20'+projectDir[_0x275eae(0xba)]('\x5c')[_0x275eae(0xa2)]()+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20║'),console[_0x275eae(0x8b)](_0x275eae(0x82));const _0xfa64aa=listBackups();if(_0xfa64aa[_0x275eae(0xd1)]===0x0){console[_0x275eae(0x8b)](_0x275eae(0x9e)),showMenu();return;}console[_0x275eae(0x8b)](_0x275eae(0xa8)),_0xfa64aa[_0x275eae(0xc6)]((_0x481314,_0x48fb5a)=>{const _0x14aa3a=_0x275eae;console['log']('['+_0x48fb5a+']\x20'+_0x481314[_0x14aa3a(0xdd)]),console['log'](_0x14aa3a(0x8f)+_0x481314[_0x14aa3a(0xc7)]),_0x481314[_0x14aa3a(0xcd)]&&_0x481314[_0x14aa3a(0xcd)]['name']&&(console['log']('\x20\x20\x20\x20App:\x20'+_0x481314[_0x14aa3a(0xcd)][_0x14aa3a(0xdc)]+'\x20v'+_0x481314[_0x14aa3a(0xcd)][_0x14aa3a(0xb5)]),console[_0x14aa3a(0x8b)](_0x14aa3a(0xd5)+_0x481314['app'][_0x14aa3a(0x8a)]),console[_0x14aa3a(0x8b)]('\x20\x20\x20\x20Package:\x20'+_0x481314['app']['packageName'])),console[_0x14aa3a(0x8b)](_0x14aa3a(0xb1)+formatSize(_0x481314[_0x14aa3a(0xac)])),_0x481314[_0x14aa3a(0x99)][_0x14aa3a(0xd1)]>0x0&&console[_0x14aa3a(0x8b)](_0x14aa3a(0x84)+_0x481314[_0x14aa3a(0x99)][_0x14aa3a(0x89)](',\x20')),console[_0x14aa3a(0x8b)]();}),showMenu(_0xfa64aa);}function showMenu(_0x2e10be=[]){const _0x302e7d=_0x5409d9;console[_0x302e7d(0x8b)](_0x302e7d(0xaa)),console[_0x302e7d(0x8b)](_0x302e7d(0x8e)),console[_0x302e7d(0x8b)](_0x302e7d(0xce)),console[_0x302e7d(0x8b)](_0x302e7d(0x85)),console[_0x302e7d(0x8b)](_0x302e7d(0xa6)),console[_0x302e7d(0x8b)]('\x20\x20[L]\x20Rafraîchir\x20la\x20liste'),console[_0x302e7d(0x8b)]('\x20\x20[Q]\x20Quitter'),console[_0x302e7d(0x8b)](_0x302e7d(0x87)),rl['question']('Choisir\x20une\x20option\x20(R/D/C/L/Q):\x20',_0x6c60cc=>{const _0x5cf107=_0x302e7d,_0x500bd1=_0x6c60cc[_0x5cf107(0xb2)]();switch(_0x500bd1){case'R':restoreBackup(_0x2e10be);break;case'D':deleteBackup(_0x2e10be);break;case'C':deleteAllBackups();break;case'L':displayBackups();break;case'Q':console[_0x5cf107(0x8b)](_0x5cf107(0xcb)),rl[_0x5cf107(0xb9)]();break;default:console[_0x5cf107(0x8b)](_0x5cf107(0xc3)),displayBackups();}});}function restoreBackup(_0x27ffa8){const _0x4e91ab=_0x5409d9;if(_0x27ffa8[_0x4e91ab(0xd1)]===0x0){console[_0x4e91ab(0x8b)](_0x4e91ab(0xca)),displayBackups();return;}rl[_0x4e91ab(0x7d)](_0x4e91ab(0xc0),_0x3d5aab=>{const _0x29d177=_0x4e91ab;if(_0x3d5aab[_0x29d177(0xb2)]()==='Q'){displayBackups();return;}const _0x2a3d2f=parseInt(_0x3d5aab);if(isNaN(_0x2a3d2f)||_0x2a3d2f<0x0||_0x2a3d2f>=_0x27ffa8['length']){console[_0x29d177(0x8b)](_0x29d177(0x97)),displayBackups();return;}const _0x1edb70=_0x27ffa8[_0x2a3d2f];rl['question'](_0x29d177(0xb7)+_0x1edb70[_0x29d177(0xdd)]+'?\x20(OUI/non):\x20',_0xe87689=>{const _0x3c252f=_0x29d177;if(_0xe87689[_0x3c252f(0xb2)]()!==_0x3c252f(0xda)&&_0xe87689[_0x3c252f(0xb2)]()!=='O'){console[_0x3c252f(0x8b)](_0x3c252f(0xd7)),displayBackups();return;}try{const _0x287d92=path[_0x3c252f(0x89)](BACKUP_DIR,_0x1edb70[_0x3c252f(0xc7)]),_0x40cceb=path[_0x3c252f(0x89)](_0x287d92,'meta.json'),_0x37ef61=JSON[_0x3c252f(0xb3)](fs['readFileSync'](_0x40cceb,_0x3c252f(0xc8)));for(const _0x115222 of _0x37ef61[_0x3c252f(0x99)]){const _0x5bafd3=path[_0x3c252f(0x89)](_0x287d92,path[_0x3c252f(0xb4)](_0x115222));if(fs[_0x3c252f(0xa3)](_0x5bafd3)){const _0x52e2cc=path[_0x3c252f(0x89)](projectDir,_0x115222),_0x1d2a5b=path['dirname'](_0x52e2cc);!fs[_0x3c252f(0xa3)](_0x1d2a5b)&&fs['mkdirSync'](_0x1d2a5b,{'recursive':!![]}),fs[_0x3c252f(0xde)](_0x5bafd3,_0x52e2cc),console[_0x3c252f(0x8b)](_0x3c252f(0x94)+_0x115222);}}console['log'](_0x3c252f(0xd2)),displayBackups();}catch(_0x366c74){console[_0x3c252f(0x90)](_0x3c252f(0x88)+_0x366c74[_0x3c252f(0xd9)]+'\x0a'),displayBackups();}});});}function deleteBackup(_0x1abc2e){const _0x47ebfc=_0x5409d9;if(_0x1abc2e[_0x47ebfc(0xd1)]===0x0){console[_0x47ebfc(0x8b)](_0x47ebfc(0xbe)),displayBackups();return;}rl['question'](_0x47ebfc(0xae),_0x3e24a7=>{const _0x5eb64e=_0x47ebfc;if(_0x3e24a7[_0x5eb64e(0xb2)]()==='Q'){displayBackups();return;}const _0x4fc5da=parseInt(_0x3e24a7);if(isNaN(_0x4fc5da)||_0x4fc5da<0x0||_0x4fc5da>=_0x1abc2e['length']){console[_0x5eb64e(0x8b)](_0x5eb64e(0x97)),displayBackups();return;}const _0x98d6a4=_0x1abc2e[_0x4fc5da];rl[_0x5eb64e(0x7d)](_0x5eb64e(0xcc)+_0x98d6a4['date']+_0x5eb64e(0x7e),_0x5015e7=>{const _0x8db7a7=_0x5eb64e;if(_0x5015e7[_0x8db7a7(0xb2)]()!==_0x8db7a7(0xda)&&_0x5015e7[_0x8db7a7(0xb2)]()!=='O'){console[_0x8db7a7(0x8b)](_0x8db7a7(0xc9)),displayBackups();return;}try{const _0xf09b24=path[_0x8db7a7(0x89)](BACKUP_DIR,_0x98d6a4[_0x8db7a7(0xc7)]);fs[_0x8db7a7(0x98)](_0xf09b24,{'recursive':!![],'force':!![]}),console[_0x8db7a7(0x8b)](_0x8db7a7(0xa9)),displayBackups();}catch(_0x13df76){console['error'](_0x8db7a7(0x8c)+_0x13df76[_0x8db7a7(0xd9)]+'\x0a'),displayBackups();}});});}function deleteAllBackups(){const _0xcfcf0a=_0x5409d9;rl[_0xcfcf0a(0x7d)]('\x0a⚠\x20ATTENTION:\x20Supprimer\x20TOUS\x20les\x20backups?\x20(OUI/non):\x20',_0x1ba14e=>{const _0x4d4e24=_0xcfcf0a;if(_0x1ba14e[_0x4d4e24(0xb2)]()!==_0x4d4e24(0xda)&&_0x1ba14e[_0x4d4e24(0xb2)]()!=='O'){console['log']('\x0aSuppression\x20annulée.\x0a'),displayBackups();return;}rl['question'](_0x4d4e24(0x91),_0x567985=>{const _0x1845f3=_0x4d4e24;if(_0x567985!==_0x1845f3(0xb6)){console[_0x1845f3(0x8b)]('\x0aSuppression\x20annulée.\x0a'),displayBackups();return;}try{fs['existsSync'](BACKUP_DIR)&&(fs['rmSync'](BACKUP_DIR,{'recursive':!![],'force':!![]}),fs[_0x1845f3(0xab)](BACKUP_DIR,{'recursive':!![]})),console[_0x1845f3(0x8b)](_0x1845f3(0xd6)),displayBackups();}catch(_0xd70865){console['error']('\x0a✗\x20Erreur\x20lors\x20de\x20la\x20suppression:\x20'+_0xd70865['message']+'\x0a'),displayBackups();}});});}function _0x1a39(_0x915edd,_0x30ca33){const _0x46d84f=_0x46d8();return _0x1a39=function(_0x1a39a6,_0x81b117){_0x1a39a6=_0x1a39a6-0x7d;let _0x27259d=_0x46d84f[_0x1a39a6];return _0x27259d;},_0x1a39(_0x915edd,_0x30ca33);}displayBackups();
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const _0x434724=_0x26e4;(function(_0x4deeeb,_0x2f0897){const _0x5dc70c=_0x26e4,_0x51c87e=_0x4deeeb();while(!![]){try{const _0x522e4f=parseInt(_0x5dc70c(0x173))/0x1*(parseInt(_0x5dc70c(0x152))/0x2)+-parseInt(_0x5dc70c(0xe4))/0x3+parseInt(_0x5dc70c(0xf8))/0x4+-parseInt(_0x5dc70c(0xd5))/0x5*(parseInt(_0x5dc70c(0x166))/0x6)+-parseInt(_0x5dc70c(0x143))/0x7+-parseInt(_0x5dc70c(0x1bb))/0x8+parseInt(_0x5dc70c(0x155))/0x9;if(_0x522e4f===_0x2f0897)break;else _0x51c87e['push'](_0x51c87e['shift']());}catch(_0x325b7b){_0x51c87e['push'](_0x51c87e['shift']());}}}(_0x2770,0xb0e1e));const fs=require('fs'),path=require(_0x434724(0xef)),{execSync,spawnSync}=require(_0x434724(0x156)),startTime=Date['now']();let projectDir=null;function _0x2770(){const _0x2a39f6=['\x20échouée\x20(non\x20critique)','\x20\x20node\x20build_apk.js\x20/chemin/vers/projet','APKSigner','sep','substring','\x20(attendu:\x20','1391980BKLwuI','\x0aERREUR:\x20Dossier\x20du\x20projet\x20non\x20trouvé!','\x22\x20-keystore\x20\x22','\x0aERREUR:\x20lien\x20a\x20échoué.\x20R.java\x20n\x27a\x20probablement\x20pas\x20été\x20généré.','\x22\x20-storepass\x20123456\x20-keypass\x20123456\x20-keyalg\x20RSA\x20-keysize\x202048\x20-validity\x2010000','AndroidManifest.xml','\x20octets','exec','Android\x20JAR','\x0a===\x202)\x20LIAISON\x20DES\x20RESSOURCES\x20===','styles.xml','pipe','.java','\x0aRemarque:\x20utilisez\x20--fail-on-missing\x20pour\x20faire\x20échouer\x20le\x20build\x20lorsqu\x27un\x20fichier\x20manque,\x20ou\x20--ignore-missing\x20pour\x20continuer.','/compiledResources','7zip','pop','\x22\x20u\x20-y\x20\x22','Chemin\x20recherché:\x20','⚠\x20Dossier\x20classes\x20non\x20trouvé','appName','Variable\x20d\x27environnement\x20PROJECT_PATH\x20détectée:\x20','res/values/styles.xml','⚠\x20Aucun\x20fichier\x20Java\x20trouvé\x20—\x20génération\x20de\x20stubs\x20d\x27activité\x20pour\x20éviter\x20les\x20crashes','layout','.png','Aucun\x20fichier\x20.java\x20trouvé\x20après\x20suppression;\x20impossible\x20de\x20recompiler.','/values/','name','Le\x20fichier\x20source\x20correspondant\x20n\x27est\x20pas\x20un\x20fichier\x20généré\x20par\x20le\x20script.\x20Aucune\x20suppression\x20automatique\x20réalisée.','APK\x20créé:\x20','✓\x20Stub\x20activity\x20created:\x20','Avertissement:\x20impossible\x20d\x27ajouter\x20les\x20.java\x20générés:','Erreur\x20lors\x20de\x20la\x20tentative\x20de\x20correction\x20automatique:','split','--fail-on-missing','Avertissement:\x20Compilation\x20de\x20','renameSync','dirname','Zipalign','HOME','\x5cjar\x22\x20cvf\x20\x22','\x0a===\x201)\x20COMPILING\x20RESOURCES\x20===','.xml','Avertissement:\x20Génération\x20des\x20icônes\x20échouée\x20(non\x20critique\x20pour\x20le\x20build)','extname','Note:\x20Avertissements\x20de\x20signature\x20détectés\x20(non-bloquants)','basename','✓\x20R.java\x20généré\x20avec\x20succès:\x20','unlinkSync','Compiling\x20Java\x20files','\x22\x20--manifest\x20\x22','minSdkVersion','build-tools','ERREUR:\x20APK\x20non\x20généré\x20après\x20signature','JDK','d8_diagnostics','\x0a===\x20Conversion\x20en\x20DEX\x20===','Répertoire\x20de\x20génération\x20vérifier:\x20','log','cwd','\x5cjavap\x22\x20-v\x20\x22','Chemin\x20de\x20sortie\x20APK:\x20','values','\x0a===\x205)\x20CONVERSION\x20EN\x20DEX\x20===','\x20(non\x20critique)','Avertissement:\x20impossible\x20de\x20créer\x20un\x20stub\x20d\x27activité:','utf8','Recompiling\x20Java\x20files\x20after\x20removing\x20generated\x20source','✓\x20Keystore\x20créé','⚠\x20Aucun\x20fichier\x20Java\x20trouvé','Impossible\x20d\x27extraire\x20la\x20classe\x20pour\x20diagnostic.','\x0a✓\x20Restauration\x20complète!','apksigner.bat','javac.exe','3988376DjWyTq','unsigned.zip','\x22\x20-C\x20\x22','\x22\x20sign\x20--ks\x20\x22','ia32','\x20-\x20les\x20logs\x20de\x20compilation\x20`javac`\x20pour\x20erreurs','execSync','\x20\x203.\x20Tous\x20les\x20dossiers\x20res/layout/,\x20res/values/,\x20res/mipmap*\x20existent-ils?','\x5cjar\x22\x20tf\x20\x22','\x0a⚠\x20Vérification\x20projet:\x20fichiers\x20minimaux\x20manquants\x20détectés:','res/values/strings.xml','filter',';\x0a\x0aimport\x20android.app.Activity;\x0aimport\x20android.os.Bundle;\x0a\x0apublic\x20class\x20','Compilation\x20de:\x20','copyFileSync','4HjAoTC','⚠\x20classes.dex\x20non\x20trouvé','resolve','38720907DCnebW','child_process','Chemin\x20attendu:\x20','endsWith','push','MyApp','generate-resources.js','Avertissement:\x20erreur\x20lors\x20de\x20la\x20génération\x20des\x20stubs\x20d\x27activité:','\x0a===\x20Signing\x20APK\x20===','join','\x0aERREUR\x20CRITIQUE:\x20R.java\x20n\x27a\x20pas\x20été\x20généré\x20par\x20aapt2\x20link!','utf-8','✓\x20Conversion\x20DEX\x20réussie\x20après\x20correction\x20automatique','unsigned.apk','\x20===','\x0a===\x204)\x20CRÉATION\x20DU\x20JAR\x20===','replace','264zjlgiD','\x20a\x20échoué','parse','\x22\x20compile\x20-o\x20\x22','\x20(fichier\x20en\x20cours\x20d\x27utilisation)','win','ERREUR:\x20aligned.apk\x20introuvable','\x20\x20</style>\x0a','android.jar','map','\x0aERREUR:\x20Certaines\x20activities\x20déclarées\x20dans\x20AndroidManifest.xml\x20sont\x20absentes\x20du\x20JAR:','aligned.apk','✓\x20Aucune\x20activity\x20déclarée\x20dans\x20le\x20manifest\x20à\x20vérifier.','51581SIFCat','Avertissement:\x20AndroidManifest.xml\x20introuvable\x20—\x20vérification\x20sautée','error','app-config.json\x20trouvé\x20dans:\x20','\x20--out\x20\x22','startsWith','\x20extends\x20Activity\x20{\x0a\x20\x20\x20\x20@Override\x0a\x20\x20\x20\x20protected\x20void\x20onCreate(Bundle\x20savedInstanceState)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20super.onCreate(savedInstanceState);\x0a\x20\x20\x20\x20}\x0a}\x0a','\x22\x20-I\x20\x22','.jpeg','platforms','AAPT2','ERREUR:\x20classes.jar\x20introuvable\x20—\x20impossible\x20de\x20vérifier\x20les\x20classes','✓\x20Vérification\x20des\x20activities:\x20toutes\x20les\x20activities\x20du\x20manifest\x20sont\x20présentes\x20dans\x20classes.jar','//\x20GENERATED_BY_generate-resources','Exécution:\x20','\x20\x201.\x20Les\x20fichiers\x20XML\x20dans\x20res/values/\x20sont-ils\x20valides?','res','readFileSync','\x22\x20--output\x20\x22','isArray','\x0a--\x20Ignoring\x20missing\x20files\x20due\x20to\x20--ignore-missing','⚠\x20Zipalign\x20échoué,\x20copie\x20directe\x20de\x20unsigned.apk','\x22\x20-f\x204\x20\x22','app-config.json','\x0a---\x20javap\x20verbose\x20---','jdk','android-34','argv','\x0aVérifications\x20à\x20faire:','classes','minimalRequiredFiles','\x0aERREUR:\x20Fichiers\x20minimaux\x20manquants.\x20Arrêt\x20du\x20build.','\x5cjavac\x22\x20--release\x208\x20-Xlint:-options\x20-cp\x20','existsSync','/classes','R.java','\x22\x20link\x20-o\x20\x22','\x0a✓\x20Build\x20terminé\x20avec\x20succès!','missingFiles','---\x0a','Package:\x20','readdirSync','Message\x20d\x27erreur:','packageName','\x0a===\x206)\x20AJOUT\x20DU\x20DEX\x20À\x20L\x27APK\x20===','\x5ckeytool\x22\x20-genkey\x20-noprompt\x20-alias\x20key\x20-dname\x20\x22CN=','\x22\x20--ks-pass\x20pass:123456\x20--min-sdk-version\x20','src','length','7za.exe','generated','\x0aUsage:','Recreating\x20JAR\x20after\x20recompilation','✓\x20Ressources\x20liées\x20avec\x20succès','size','activity','.9.png','✓\x20Keystore\x20existant\x20réutilisé:\x20','\x0a===\x20✓\x20COMPILATION\x20RÉUSSIE\x20===','inherit','package\x20','\x20\x20PROJECT_PATH=/chemin/vers/projet\x20node\x20build_apk.js','/layout/','\x20--no-backup','aapt2.exe','\x0aOptions:','\x0a===\x20','7zip-bin','android','✓\x20Supprimé:\x20','Dossier\x20MyApp\x20trouvé\x20par\x20défaut:\x20','.apk','8637496EWrJdB','\x22\x20--auto-add-overlay\x20\x22','PROJECT_PATH','\x22\x20-o\x22','.webp','env','warn','message','⚠\x20Impossible\x20de\x20supprimer\x20','cmd.exe','Création\x20du\x20JAR','✓\x20APK\x20signé\x20avec\x20succès','--ignore-missing','ERREUR\x20lors\x20de\x20la\x20vérification\x20des\x20classes\x20dans\x20le\x20JAR:','rmSync','ERREUR:\x20app-config.json\x20non\x20trouvé\x20dans\x20le\x20projet!','toFixed','mkdirSync','\x0a===\x203)\x20COMPILATION\x20DE\x20JAVA\x20===','✓\x20DEX\x20ajouté\x20à\x20l\x27APK','\x22\x20--java\x20\x22','\x22\x20\x22','\x22\x20.','Argument\x20CLI\x20détecté:\x20','/compiledResources\x22\x20\x22','Aligning\x20APK','\x0aCause\x20probable:\x20les\x20sources\x20Java\x20n\x27ont\x20pas\x20été\x20trouvées/compilées\x20ou\x20le\x20package\x20des\x20.java\x20ne\x20correspond\x20pas\x20au\x20manifest.','⚠\x20JAR\x20non\x20trouvé,\x20création\x20DEX\x20vide','match','Classe\x20problématique\x20détectée:\x20','140155LTfgzW','node\x20\x22','compiledResources','34.0.0','\x0a✓\x20Vérification\x20projet:\x20tous\x20les\x20fichiers\x20minimaux\x20présents','timeout\x20/t\x201\x20/nobreak','\x20\x202.\x20AndroidManifest.xml\x20est-il\x20bien\x20formé?','exit','now','ignore','\x20-\x20que\x20`generate-resources.js`\x20n\x27a\x20pas\x20supprimé\x20des\x20fichiers\x20importants','includes','classes.jar','\x22\x20--lib\x20\x22','\x22\x20e\x20-y\x20\x22','3438453NuBLtQ','\x20-d\x20\x22','<resources>\x0a','hasJava','🔄\x20Restauration\x20des\x20fichiers\x20depuis\x20le\x20backup...\x0a','\x20-\x20que\x20les\x20.java\x20existent\x20dans\x20`src/`\x20avec\x20le\x20bon\x20`package`\x20en\x20tête','isDirectory','ERREUR:\x20D8\x20échoue\x20encore\x20après\x20tentative\x20de\x20correction\x20automatique.','\x0a===\x20Compile\x20','android-sdk','statSync','path','writeFileSync','--no-backup'];_0x2770=function(){return _0x2a39f6;};return _0x2770();}process[_0x434724(0x18e)][0x2]&&(projectDir=path[_0x434724(0x154)](process[_0x434724(0x18e)][0x2]),console[_0x434724(0x133)](_0x434724(0xce)+projectDir));!projectDir&&process[_0x434724(0x1c0)][_0x434724(0x1bd)]&&(projectDir=path['resolve'](process[_0x434724(0x1c0)]['PROJECT_PATH']),console[_0x434724(0x133)](_0x434724(0x10d)+projectDir));if(!projectDir){let searchDir=process[_0x434724(0x134)]();for(let i=0x0;i<0x5;i++){const configPath=path[_0x434724(0x15e)](searchDir,_0x434724(0x18a));if(fs[_0x434724(0x194)](configPath)){projectDir=searchDir,console[_0x434724(0x133)](_0x434724(0x176)+projectDir);break;}searchDir=path[_0x434724(0x11e)](searchDir);}}if(!projectDir){const defaultPaths=[path[_0x434724(0x15e)](__dirname,'..','..',_0x434724(0x15a)),path[_0x434724(0x154)](_0x434724(0x15a)),path[_0x434724(0x15e)](process['env']['USERPROFILE']||process[_0x434724(0x1c0)][_0x434724(0x120)]||'',_0x434724(0x15a))];for(const checkPath of defaultPaths){if(checkPath&&fs[_0x434724(0x194)](checkPath)&&fs[_0x434724(0x194)](path[_0x434724(0x15e)](checkPath,_0x434724(0x18a)))){projectDir=checkPath,console[_0x434724(0x133)](_0x434724(0x1b9)+projectDir);break;}}}(!projectDir||!fs[_0x434724(0x194)](projectDir))&&(console[_0x434724(0x175)](_0x434724(0xf9)),console[_0x434724(0x175)](_0x434724(0x1a6)),console[_0x434724(0x175)](_0x434724(0xf3)),console[_0x434724(0x175)](_0x434724(0x1b0)),console[_0x434724(0x175)](_0x434724(0x1b4)),process['exit'](0x1));const buildToolsDir=__dirname,skipBackup=process[_0x434724(0x18e)][_0x434724(0xe0)](_0x434724(0xf1)),restoreFromBackup=process[_0x434724(0x18e)][_0x434724(0xe0)]('--restore');if(restoreFromBackup){console[_0x434724(0x133)](_0x434724(0xe8));try{execSync(_0x434724(0xd6)+path[_0x434724(0x15e)](buildToolsDir,_0x434724(0x15b))+_0x434724(0xcc)+projectDir+'\x22\x20--restore',{'stdio':'inherit','shell':_0x434724(0x1c4)}),console[_0x434724(0x133)](_0x434724(0x140)),process['exit'](0x0);}catch(_0xadc543){console[_0x434724(0x175)]('ERREUR:\x20Restauration\x20échouée'),process['exit'](0x1);}}const configPath=path[_0x434724(0x15e)](projectDir,_0x434724(0x18a));!fs['existsSync'](configPath)&&(console[_0x434724(0x175)](_0x434724(0x1ca)),process[_0x434724(0xdc)](0x1));const appConfig=JSON[_0x434724(0x168)](fs[_0x434724(0x184)](configPath,_0x434724(0x160)));console['log'](_0x434724(0x150)+appConfig['appName']+'\x20v'+appConfig['appVersion']),console['log'](_0x434724(0x19b)+appConfig[_0x434724(0x19e)]),console['log'](_0x434724(0x19a)),console[_0x434724(0x133)]('Génération\x20des\x20ressources\x20dynamiques...');const backupOption=skipBackup?_0x434724(0x1b2):'';try{execSync(_0x434724(0xd6)+path['join'](buildToolsDir,_0x434724(0x15b))+_0x434724(0xcc)+projectDir+'\x22'+backupOption,{'stdio':_0x434724(0x1ae)});}catch(_0x5e91fa){console[_0x434724(0x175)]('ERREUR:\x20Génération\x20des\x20ressources\x20échouée'),process[_0x434724(0xdc)](0x1);}console[_0x434724(0x133)](''),console[_0x434724(0x133)]('Génération\x20des\x20icônes\x20pour\x20les\x20différentes\x20densités...');try{execSync(_0x434724(0xd6)+path[_0x434724(0x15e)](buildToolsDir,'generate-icons.js')+_0x434724(0xcc)+projectDir+'\x22',{'stdio':_0x434724(0x1ae),'shell':'cmd.exe'});}catch(_0x3968d9){console['warn'](_0x434724(0x124)),console['warn']('Détail:\x20'+_0x3968d9[_0x434724(0x1c2)][_0x434724(0xf6)](0x0,0x64));}console[_0x434724(0x133)]('');const ignoreMissing=process['argv'][_0x434724(0xe0)](_0x434724(0x1c7)),failOnMissing=process[_0x434724(0x18e)][_0x434724(0xe0)](_0x434724(0x11b));function scanProjectForMissingFiles(_0x5d2306,_0xa02bf0){const _0x36d2bd=_0x434724,_0x3be1ff=_0xa02bf0&&Array[_0x36d2bd(0x186)](_0xa02bf0[_0x36d2bd(0x191)])?_0xa02bf0[_0x36d2bd(0x191)]:[_0x36d2bd(0xfd),_0x36d2bd(0x14d),_0x36d2bd(0x10e),'res/layout/activity_main.xml'],_0x404080=[];for(const _0x18634c of _0x3be1ff){const _0x30e345=path[_0x36d2bd(0x15e)](_0x5d2306,_0x18634c);if(!fs[_0x36d2bd(0x194)](_0x30e345))_0x404080[_0x36d2bd(0x159)](_0x18634c);}let _0x193365=![];const _0x484e3c=path[_0x36d2bd(0x15e)](_0x5d2306,_0x36d2bd(0x1a2));if(fs[_0x36d2bd(0x194)](_0x484e3c)){const _0x369405=[_0x484e3c];while(_0x369405['length']){const _0x4e96cc=_0x369405[_0x36d2bd(0x108)]();try{for(const _0x487636 of fs[_0x36d2bd(0x19c)](_0x4e96cc)){const _0x24647e=path['join'](_0x4e96cc,_0x487636),_0xd5649b=fs[_0x36d2bd(0xee)](_0x24647e);if(_0xd5649b[_0x36d2bd(0xea)]())_0x369405['push'](_0x24647e);else{if(_0x487636[_0x36d2bd(0x158)](_0x36d2bd(0x104))){_0x193365=!![];break;}}}}catch(_0x34190d){}if(_0x193365)break;}}return{'missingFiles':_0x404080,'hasJava':_0x193365};}const scanResult=scanProjectForMissingFiles(projectDir,appConfig);if(scanResult['missingFiles'][_0x434724(0x1a3)]>0x0){console[_0x434724(0x1c1)](_0x434724(0x14c));for(const m of scanResult[_0x434724(0x199)])console[_0x434724(0x1c1)]('\x20-\x20'+m);!ignoreMissing?failOnMissing?(console[_0x434724(0x175)](_0x434724(0x192)),process['exit'](0x1)):console['warn'](_0x434724(0x105)):console[_0x434724(0x133)](_0x434724(0x187));}else console['log'](_0x434724(0xd9));!scanResult[_0x434724(0xe7)]&&console[_0x434724(0x1c1)]('\x0a⚠\x20Aucune\x20source\x20Java\x20détectée\x20sous\x20`src/`\x20—\x20le\x20build\x20générera\x20des\x20stubs\x20ou\x20utilisera\x20les\x20fichiers\x20générés\x20par\x20aapt2\x20si\x20nécessaire.');const VENDOR_DIR=path[_0x434724(0x15e)](buildToolsDir,'vendor'),SDK=path[_0x434724(0x15e)](VENDOR_DIR,_0x434724(0x1b7),_0x434724(0xed)),JDK=path[_0x434724(0x15e)](VENDOR_DIR,_0x434724(0x1b7),_0x434724(0x18c),'bin'),AAPT2=path['join'](SDK,_0x434724(0x12d),_0x434724(0xd8),_0x434724(0x1b3)),ANDROID_JAR=path[_0x434724(0x15e)](SDK,_0x434724(0x17c),_0x434724(0x18d),_0x434724(0x16e)),D8=path[_0x434724(0x15e)](SDK,_0x434724(0x12d),'34.0.0','d8.bat'),ZIPALIGN=path['join'](SDK,_0x434724(0x12d),_0x434724(0xd8),'zipalign.exe'),APKSIGNER=path['join'](SDK,_0x434724(0x12d),_0x434724(0xd8),_0x434724(0x141)),SEVENZIP=path[_0x434724(0x15e)](VENDOR_DIR,_0x434724(0x1b6),_0x434724(0x16b),_0x434724(0x147),_0x434724(0x1a4)),requiredTools=[{'name':_0x434724(0x17d),'path':AAPT2},{'name':_0x434724(0x100),'path':ANDROID_JAR},{'name':'D8','path':D8},{'name':_0x434724(0x11f),'path':ZIPALIGN},{'name':_0x434724(0xf4),'path':APKSIGNER},{'name':_0x434724(0x107),'path':SEVENZIP},{'name':_0x434724(0x12f),'path':path[_0x434724(0x15e)](JDK,_0x434724(0x142))}];for(const tool of requiredTools){!fs[_0x434724(0x194)](tool[_0x434724(0xef)])&&(console['error']('\x0aERREUR:\x20'+tool[_0x434724(0x114)]+'\x20non\x20trouvé\x20à:\x20'+tool[_0x434724(0xef)]),console[_0x434724(0x175)]('Vérifiez\x20que\x20le\x20SDK\x20Android\x20et\x20JDK\x20sont\x20correctement\x20installés.'),process['exit'](0x1));}const BUILD_DIR=path[_0x434724(0x15e)](projectDir,'build'),SRC_DIR=path[_0x434724(0x15e)](projectDir,_0x434724(0x1a2)),RES_DIR=path[_0x434724(0x15e)](projectDir,_0x434724(0x183));function run(_0x16287b,_0x46898d,_0x38ea70=projectDir){const _0x23d300=_0x434724;console[_0x23d300(0x133)](_0x23d300(0x1b5)+_0x46898d+'\x20===');try{const _0x227266=execSync(_0x16287b,{'cwd':_0x38ea70,'stdio':'inherit','shell':_0x23d300(0x1c4)});return!![];}catch(_0x292b76){console[_0x23d300(0x175)]('ERREUR:\x20'+_0x46898d+_0x23d300(0x167)),process[_0x23d300(0xdc)](0x1);}}function copyFile(_0x2d0b97,_0x1a2d02){const _0x29604e=_0x434724,_0x58eaac=path['dirname'](_0x1a2d02);!fs[_0x29604e(0x194)](_0x58eaac)&&fs[_0x29604e(0x1cc)](_0x58eaac,{'recursive':!![]}),fs[_0x29604e(0x151)](_0x2d0b97,_0x1a2d02);}function removeDir(_0x2390dd){const _0x5ee191=_0x434724;fs['existsSync'](_0x2390dd)&&fs[_0x5ee191(0x1c9)](_0x2390dd,{'recursive':!![],'force':!![]});}function makeDir(_0xdb35af){const _0x5a4803=_0x434724;!fs[_0x5a4803(0x194)](_0xdb35af)&&fs['mkdirSync'](_0xdb35af,{'recursive':!![]});}const APK_NAME=path[_0x434724(0x15e)](projectDir,appConfig[_0x434724(0x10c)][_0x434724(0x165)](/\s+/g,'')+_0x434724(0x1ba));console['log']('Nettoyage\x20complet\x20de\x20tous\x20les\x20fichiers\x20générés...'),removeDir(BUILD_DIR);if(fs['existsSync'](APK_NAME))try{fs[_0x434724(0x129)](APK_NAME),console['log'](_0x434724(0x1b8)+APK_NAME);}catch(_0x263f97){console['warn'](_0x434724(0x1c3)+APK_NAME+_0x434724(0x16a));}const keystoreName=appConfig[_0x434724(0x10c)]['replace'](/\s+/g,'')+'.keystore';console[_0x434724(0x133)]('✓\x20Structure\x20de\x20build\x20recréée\x0a'),makeDir(BUILD_DIR),makeDir(BUILD_DIR+_0x434724(0x195)),makeDir(BUILD_DIR+_0x434724(0x106));const stylesDir=path['join'](projectDir,_0x434724(0x183),_0x434724(0x137)),stylesPath=path[_0x434724(0x15e)](stylesDir,_0x434724(0x102));try{!fs[_0x434724(0x194)](stylesDir)&&fs[_0x434724(0x1cc)](stylesDir,{'recursive':!![]});if(!fs[_0x434724(0x194)](stylesPath)){const defaultStyles='<?xml\x20version=\x221.0\x22\x20encoding=\x22utf-8\x22?>\x0a'+_0x434724(0xe6)+'\x20\x20<style\x20name=\x22AppTheme\x22\x20parent=\x22android:Theme.DeviceDefault.Light.DarkActionBar\x22>\x0a'+_0x434724(0x16d)+'</resources>\x0a';fs[_0x434724(0xf0)](stylesPath,defaultStyles,'utf8'),console['log']('✓\x20styles.xml\x20par\x20défaut\x20créé\x20pour\x20éviter\x20les\x20erreurs\x20de\x20thème');}}catch(_0x33533a){console['warn']('Avertissement:\x20impossible\x20de\x20créer\x20styles.xml\x20par\x20défaut:',_0x33533a[_0x434724(0x1c2)]);}console[_0x434724(0x133)](_0x434724(0x122));const layoutFiles=fs[_0x434724(0x194)](path[_0x434724(0x15e)](RES_DIR,_0x434724(0x110)))?fs[_0x434724(0x19c)](path['join'](RES_DIR,'layout'))[_0x434724(0x14e)](_0x4ac8de=>_0x4ac8de[_0x434724(0x158)](_0x434724(0x123))):[],valueFiles=fs[_0x434724(0x194)](path[_0x434724(0x15e)](RES_DIR,_0x434724(0x137)))?fs[_0x434724(0x19c)](path[_0x434724(0x15e)](RES_DIR,_0x434724(0x137)))['filter'](_0x72b0d5=>_0x72b0d5['endsWith']('.xml')):[],allResources=[];for(const file of layoutFiles){console[_0x434724(0x133)](_0x434724(0xec)+path['join'](RES_DIR,_0x434724(0x110),file)+_0x434724(0x163));const cmd='\x22'+AAPT2+'\x22\x20compile\x20-o\x20\x22'+BUILD_DIR+_0x434724(0xcf)+path[_0x434724(0x15e)](RES_DIR,_0x434724(0x110),file)+'\x22';try{execSync(cmd,{'stdio':_0x434724(0x1ae),'shell':_0x434724(0x1c4)});}catch(_0xe69d6c){console['error'](_0x434724(0x11c)+file+_0x434724(0xf2));}allResources[_0x434724(0x159)](RES_DIR+_0x434724(0x1b1)+file);}for(const file of valueFiles){console['log'](_0x434724(0xec)+path[_0x434724(0x15e)](RES_DIR,_0x434724(0x137),file)+'\x20===');const cmd='\x22'+AAPT2+_0x434724(0x169)+BUILD_DIR+_0x434724(0xcf)+path[_0x434724(0x15e)](RES_DIR,_0x434724(0x137),file)+'\x22';try{execSync(cmd,{'stdio':_0x434724(0x1ae),'shell':'cmd.exe'});}catch(_0x3c23a7){console[_0x434724(0x175)](_0x434724(0x11c)+file+_0x434724(0xf2));}allResources[_0x434724(0x159)](RES_DIR+_0x434724(0x113)+file);}for(let mimapDir of fs[_0x434724(0x19c)](RES_DIR)[_0x434724(0x14e)](_0x4ba701=>_0x4ba701[_0x434724(0x178)]('mipmap'))){const mimapPath=path['join'](RES_DIR,mimapDir);if(fs[_0x434724(0xee)](mimapPath)['isDirectory']()){const files=fs[_0x434724(0x19c)](mimapPath)['filter'](_0x5463d8=>_0x5463d8[_0x434724(0x158)](_0x434724(0x111)));for(const file of files){console[_0x434724(0x133)](_0x434724(0xec)+path[_0x434724(0x15e)](mimapDir,file)+_0x434724(0x163));const cmd='\x22'+AAPT2+'\x22\x20compile\x20-o\x20\x22'+BUILD_DIR+_0x434724(0xcf)+path['join'](mimapPath,file)+'\x22';try{execSync(cmd,{'stdio':_0x434724(0x1ae),'shell':_0x434724(0x1c4)});}catch(_0x1711e8){console['error']('Avertissement:\x20Compilation\x20de\x20'+file+_0x434724(0xf2));}}}}console[_0x434724(0x133)]('\x0a===\x20Compile\x20récursif\x20des\x20ressources\x20restantes\x20===');const resourceExtensions=[_0x434724(0x123),_0x434724(0x111),'.jpg',_0x434724(0x17b),_0x434724(0x1bf),_0x434724(0x1ab)];function _0x26e4(_0x17ec2e,_0x4b0668){const _0x27700a=_0x2770();return _0x26e4=function(_0x26e48b,_0x347703){_0x26e48b=_0x26e48b-0xcb;let _0x4a2334=_0x27700a[_0x26e48b];return _0x4a2334;},_0x26e4(_0x17ec2e,_0x4b0668);}function walkDirForResources(_0x582f10){const _0x31960e=_0x434724,_0x2eec54=[];if(!fs[_0x31960e(0x194)](_0x582f10))return _0x2eec54;const _0x3851cb=fs['readdirSync'](_0x582f10);for(const _0x86f03f of _0x3851cb){const _0x3ac5f9=path[_0x31960e(0x15e)](_0x582f10,_0x86f03f),_0x3493a1=fs['statSync'](_0x3ac5f9);if(_0x3493a1[_0x31960e(0xea)]())_0x2eec54[_0x31960e(0x159)](...walkDirForResources(_0x3ac5f9));else{const _0x3ac3c9=path[_0x31960e(0x125)](_0x86f03f)['toLowerCase']();(resourceExtensions[_0x31960e(0xe0)](_0x3ac3c9)||_0x86f03f['endsWith'](_0x31960e(0x1ab)))&&_0x2eec54[_0x31960e(0x159)](_0x3ac5f9);}}return _0x2eec54;}const allResFiles=walkDirForResources(RES_DIR);for(const resFile of allResFiles){console['log'](_0x434724(0xec)+resFile+_0x434724(0x163));const compileCmd='\x22'+AAPT2+'\x22\x20compile\x20-o\x20\x22'+path[_0x434724(0x15e)](BUILD_DIR,_0x434724(0xd7))+_0x434724(0xcc)+resFile+'\x22';try{execSync(compileCmd,{'stdio':_0x434724(0x1ae),'shell':_0x434724(0x1c4)});}catch(_0x31a59c){console[_0x434724(0x1c1)]('Avertissement:\x20impossible\x20de\x20compiler\x20'+resFile+_0x434724(0x139));}}console['log'](_0x434724(0x101));const apkPath=path['join'](BUILD_DIR,_0x434724(0x144)),resourcesDir=path['join'](BUILD_DIR,'compiledResources'),generatedDir=path[_0x434724(0x154)](BUILD_DIR,_0x434724(0x1a5));if(!fs[_0x434724(0x194)](resourcesDir))fs['mkdirSync'](resourcesDir,{'recursive':!![]});if(!fs[_0x434724(0x194)](generatedDir))fs['mkdirSync'](generatedDir,{'recursive':!![]});const compiledFiles=fs[_0x434724(0x19c)](resourcesDir)[_0x434724(0x14e)](_0x4ed70c=>_0x4ed70c[_0x434724(0x158)]('.flat')||_0x4ed70c[_0x434724(0x158)]('.zip'))['map'](_0x313705=>path['join'](resourcesDir,_0x313705));console['log']('Création\x20de\x20la\x20structure\x20APK\x20et\x20génération\x20de\x20R.java...');try{let linkCmd;const manifestPath=path[_0x434724(0x15e)](projectDir,_0x434724(0xfd));if(compiledFiles[_0x434724(0x1a3)]>0x0){const compiledArgs=compiledFiles[_0x434724(0x16f)](_0x1a6cd6=>'\x22'+_0x1a6cd6+'\x22')[_0x434724(0x15e)]('\x20');linkCmd='\x22'+AAPT2+_0x434724(0x197)+apkPath+'\x22\x20-I\x20\x22'+ANDROID_JAR+'\x22\x20--manifest\x20\x22'+manifestPath+'\x22\x20--java\x20\x22'+generatedDir+'\x22\x20'+compiledArgs;}else linkCmd='\x22'+AAPT2+'\x22\x20link\x20-o\x20\x22'+apkPath+_0x434724(0x17a)+ANDROID_JAR+_0x434724(0x12b)+manifestPath+_0x434724(0xcb)+generatedDir+_0x434724(0x1bc)+path[_0x434724(0x15e)](projectDir,'res')+'\x22';console[_0x434724(0x133)](_0x434724(0x181)+linkCmd[_0x434724(0xf6)](0x0,0x64)+'...'),execSync(linkCmd,{'stdio':_0x434724(0x1ae),'shell':'cmd.exe'}),console[_0x434724(0x133)](_0x434724(0x1a8));}catch(_0x5bcb06){console['error'](_0x434724(0xfb)),console[_0x434724(0x175)](_0x434724(0x19d),_0x5bcb06[_0x434724(0x1c2)][_0x434724(0xf6)](0x0,0xc8)),process['exit'](0x1);}function findRJava(){const _0x1b4a4a=[];try{const _0x29caad=_0xcf5dad=>{const _0x58e361=_0x26e4,_0x49b06e=fs['readdirSync'](_0xcf5dad);for(const _0x528c55 of _0x49b06e){const _0x5cf883=path[_0x58e361(0x15e)](_0xcf5dad,_0x528c55),_0x1af0f5=fs[_0x58e361(0xee)](_0x5cf883);if(_0x1af0f5['isDirectory']())_0x29caad(_0x5cf883);else _0x528c55===_0x58e361(0x196)&&_0x1b4a4a[_0x58e361(0x159)](_0x5cf883);}};_0x29caad(generatedDir);}catch(_0x2b4caf){}return _0x1b4a4a;}const rJavaFiles=findRJava();rJavaFiles['length']===0x0&&(console[_0x434724(0x175)](_0x434724(0x15f)),console[_0x434724(0x175)](_0x434724(0x132)+generatedDir),console[_0x434724(0x175)]('Cause\x20possible:\x20fichiers\x20res/\x20mal\x20structurés,\x20XML\x20invalides,\x20ou\x20manifest\x20corrompu.'),console['error'](_0x434724(0x18f)),console[_0x434724(0x175)](_0x434724(0x182)),console[_0x434724(0x175)](_0x434724(0xdb)),console[_0x434724(0x175)](_0x434724(0x14a)),console[_0x434724(0x175)]('\x0aBuild\x20échouée\x20-\x20APK\x20n\x27est\x20pas\x20généré.'),process[_0x434724(0xdc)](0x1));console[_0x434724(0x133)](_0x434724(0x128)+rJavaFiles[0x0]),console[_0x434724(0x133)](_0x434724(0x1cd));const javaFiles=[],srcPath=SRC_DIR,findJavaFiles=_0x57b820=>{const _0x5b0f2c=_0x434724,_0x28f449=fs['readdirSync'](_0x57b820);for(const _0x5ab7b3 of _0x28f449){const _0x156ac2=path[_0x5b0f2c(0x15e)](_0x57b820,_0x5ab7b3),_0x1ee80e=fs[_0x5b0f2c(0xee)](_0x156ac2);if(_0x1ee80e[_0x5b0f2c(0xea)]())findJavaFiles(_0x156ac2);else _0x5ab7b3[_0x5b0f2c(0x158)](_0x5b0f2c(0x104))&&javaFiles[_0x5b0f2c(0x159)](_0x156ac2);}};fs[_0x434724(0x194)](srcPath)&&findJavaFiles(srcPath);const generatedJavaDir=path[_0x434724(0x15e)](BUILD_DIR,_0x434724(0x1a5));if(fs['existsSync'](generatedJavaDir)){const findGeneratedJavaFiles=_0x223307=>{const _0x44058f=_0x434724,_0x315613=[],_0x84a0b=fs[_0x44058f(0x19c)](_0x223307);for(const _0x5e1db5 of _0x84a0b){const _0xb52772=path['join'](_0x223307,_0x5e1db5),_0x1f8b91=fs[_0x44058f(0xee)](_0xb52772);if(_0x1f8b91['isDirectory']())_0x315613[_0x44058f(0x159)](...findGeneratedJavaFiles(_0xb52772));else _0x5e1db5['endsWith'](_0x44058f(0x104))&&_0x315613[_0x44058f(0x159)](_0xb52772);}return _0x315613;};try{const genFiles=findGeneratedJavaFiles(generatedJavaDir);genFiles[_0x434724(0x1a3)]>0x0&&(javaFiles['push'](...genFiles),console['log']('✓\x20'+genFiles[_0x434724(0x1a3)]+'\x20fichiers\x20Java\x20générés\x20par\x20aapt2\x20ajoutés\x20à\x20la\x20compilation'));}catch(_0x5e78cf){console['warn'](_0x434724(0x118),_0x5e78cf['message']);}}function ensureActivityStubs(){const _0x13047a=_0x434724;try{const _0x359096=path['join'](projectDir,'AndroidManifest.xml');if(!fs[_0x13047a(0x194)](_0x359096))return;const _0xe8bf08=fs[_0x13047a(0x184)](_0x359096,'utf8'),_0xe2a6f=_0xe8bf08[_0x13047a(0xd3)](/<manifest[^>]*\spackage\s*=\s*['"]([^'"]+)['"]/),_0x5f593c=_0xe2a6f?_0xe2a6f[0x1]:null,_0x365efa=/<activity[^>]*android:name\s*=\s*['\"]([^'\"]+)['\"]/g;let _0x3024c0;const _0x521059=new Set();while((_0x3024c0=_0x365efa[_0x13047a(0xff)](_0xe8bf08))!==null){_0x521059['add'](_0x3024c0[0x1]);}if(_0x521059[_0x13047a(0x1a9)]===0x0)return;const _0x376b1d=path['join'](BUILD_DIR,_0x13047a(0x1a5));if(!fs[_0x13047a(0x194)](_0x376b1d))fs['mkdirSync'](_0x376b1d,{'recursive':!![]});for(const _0x2495cd of _0x521059){let _0x586109=_0x2495cd;if(_0x2495cd[_0x13047a(0x178)]('.')){if(_0x5f593c)_0x586109=_0x5f593c+_0x2495cd;}else!_0x2495cd['includes']('.')&&_0x5f593c&&(_0x586109=_0x5f593c+'.'+_0x2495cd);const _0x32a838=_0x586109[_0x13047a(0x11a)]('.'),_0x35d09a=_0x32a838[_0x13047a(0x108)](),_0x5b2bd7=_0x32a838[_0x13047a(0x15e)](path[_0x13047a(0xf5)]),_0xbf70fd=path[_0x13047a(0x15e)](_0x376b1d,_0x5b2bd7);if(!fs[_0x13047a(0x194)](_0xbf70fd))fs[_0x13047a(0x1cc)](_0xbf70fd,{'recursive':!![]});const _0x5d7ede=path['join'](_0xbf70fd,_0x35d09a+_0x13047a(0x104));if(!fs['existsSync'](_0x5d7ede)){const _0x412a04=_0x13047a(0x1af)+_0x32a838[_0x13047a(0x15e)]('.')+_0x13047a(0x14f)+_0x35d09a+_0x13047a(0x179);try{fs[_0x13047a(0xf0)](_0x5d7ede,_0x412a04,_0x13047a(0x13b)),console[_0x13047a(0x133)](_0x13047a(0x117)+_0x5d7ede);}catch(_0x2f7fea){console[_0x13047a(0x1c1)](_0x13047a(0x13a),_0x2f7fea[_0x13047a(0x1c2)]);}}javaFiles[_0x13047a(0x159)](_0x5d7ede);}}catch(_0x5caca6){console[_0x13047a(0x1c1)](_0x13047a(0x15c),_0x5caca6[_0x13047a(0x1c2)]);}}javaFiles[_0x434724(0x1a3)]===0x0&&(console[_0x434724(0x1c1)](_0x434724(0x10f)),ensureActivityStubs());if(javaFiles[_0x434724(0x1a3)]===0x0)console[_0x434724(0x1c1)](_0x434724(0x13e));else{const classPath='\x22'+ANDROID_JAR+'\x22',javaFilesStr=javaFiles[_0x434724(0x16f)](_0x58ce53=>'\x22'+_0x58ce53+'\x22')[_0x434724(0x15e)]('\x20'),compileCmd='\x22'+JDK+_0x434724(0x193)+classPath+_0x434724(0xe5)+path['join'](BUILD_DIR,_0x434724(0x190))+'\x22\x20'+javaFilesStr;run(compileCmd,_0x434724(0x12a));}console[_0x434724(0x133)](_0x434724(0x164));const classesDir=path[_0x434724(0x15e)](BUILD_DIR,_0x434724(0x190)),jarPath=path[_0x434724(0x15e)](BUILD_DIR,_0x434724(0xe1));if(fs[_0x434724(0x194)](classesDir)){const jarCmd='\x22'+JDK+'\x5cjar\x22\x20cvf\x20\x22'+jarPath+_0x434724(0x145)+classesDir+_0x434724(0xcd);run(jarCmd,_0x434724(0x1c5));}else console[_0x434724(0x1c1)](_0x434724(0x10b));function checkManifestClassesPresentInJar(){const _0x5bdce2=_0x434724;try{!fs[_0x5bdce2(0x194)](jarPath)&&(console[_0x5bdce2(0x175)](_0x5bdce2(0x17e)),process[_0x5bdce2(0xdc)](0x1));const _0x1805ca=path[_0x5bdce2(0x15e)](projectDir,_0x5bdce2(0xfd));if(!fs[_0x5bdce2(0x194)](_0x1805ca)){console[_0x5bdce2(0x1c1)](_0x5bdce2(0x174));return;}const _0x5d0afb=fs['readFileSync'](_0x1805ca,_0x5bdce2(0x13b)),_0x46ecf7=_0x5d0afb[_0x5bdce2(0xd3)](/<manifest[^>]*\spackage\s*=\s*['"]([^'\"]+)['"]/),_0x5872f8=_0x46ecf7?_0x46ecf7[0x1]:appConfig&&appConfig[_0x5bdce2(0x19e)]||null,_0x35654c=/<activity[^>]*android:name\s*=\s*['\"]([^'\"]+)['\"]/g;let _0x1ecb4d;const _0x5d7d9a=[];while((_0x1ecb4d=_0x35654c[_0x5bdce2(0xff)](_0x5d0afb))!==null){let _0x564936=_0x1ecb4d[0x1];if(_0x564936[_0x5bdce2(0x178)]('.')){if(_0x5872f8)_0x564936=_0x5872f8+_0x564936;}else!_0x564936[_0x5bdce2(0xe0)]('.')&&_0x5872f8&&(_0x564936=_0x5872f8+'.'+_0x564936);_0x5d7d9a['push'](_0x564936);}if(_0x5d7d9a[_0x5bdce2(0x1a3)]===0x0){console[_0x5bdce2(0x133)](_0x5bdce2(0x172));return;}const _0x29f806=execSync('\x22'+JDK+_0x5bdce2(0x14b)+jarPath+'\x22',{'encoding':_0x5bdce2(0x13b),'stdio':[_0x5bdce2(0x103),_0x5bdce2(0x103),_0x5bdce2(0xde)]}),_0x34b2a3=[];for(const _0xb12943 of _0x5d7d9a){const _0x3e4a0b=_0xb12943[_0x5bdce2(0x165)](/\./g,'/')+'.class';!_0x29f806[_0x5bdce2(0xe0)](_0x3e4a0b)&&_0x34b2a3['push']({'activity':_0xb12943,'expected':_0x3e4a0b});}if(_0x34b2a3['length']>0x0){console[_0x5bdce2(0x175)](_0x5bdce2(0x170));for(const _0x2a4340 of _0x34b2a3){console[_0x5bdce2(0x175)]('\x20-\x20'+_0x2a4340[_0x5bdce2(0x1aa)]+_0x5bdce2(0xf7)+_0x2a4340['expected']+')');}console[_0x5bdce2(0x175)](_0x5bdce2(0xd1)),console['error']('Vérifiez:'),console['error'](_0x5bdce2(0xe9)),console[_0x5bdce2(0x175)](_0x5bdce2(0xdf)),console['error'](_0x5bdce2(0x148)),process[_0x5bdce2(0xdc)](0x1);}console[_0x5bdce2(0x133)](_0x5bdce2(0x17f));}catch(_0x5ca2ca){console[_0x5bdce2(0x175)](_0x5bdce2(0x1c8),_0x5ca2ca['message']),process[_0x5bdce2(0xdc)](0x1);}}checkManifestClassesPresentInJar(),console[_0x434724(0x133)](_0x434724(0x138));const dexPath=path['join'](BUILD_DIR,'classes.dex');if(fs[_0x434724(0x194)](jarPath)){const d8Cmd='\x22'+D8+_0x434724(0xe2)+ANDROID_JAR+_0x434724(0x185)+BUILD_DIR+_0x434724(0xcc)+jarPath+'\x22';console[_0x434724(0x133)](_0x434724(0x131));try{execSync(d8Cmd,{'stdio':'inherit','shell':_0x434724(0x1c4)}),console['log']('✓\x20Conversion\x20DEX\x20réussie');}catch(_0x617dee){const msg=_0x617dee&&_0x617dee['message']?_0x617dee[_0x434724(0x1c2)]:String(_0x617dee),classMatch=msg['match'](/([^:\s]+\.jar):([^:\s]+\.class)/);let problematicClassEntry=null;if(classMatch)problematicClassEntry=classMatch[0x2][_0x434724(0x165)](/\\\\/g,'/');else{const alt=msg[_0x434724(0xd3)](/(com\/[\w\/-]*\$?[^\s:]*\.class)/);if(alt)problematicClassEntry=alt[0x1];}console[_0x434724(0x175)]('\x0aERREUR:\x20D8\x20a\x20échoué\x20lors\x20de\x20la\x20conversion\x20en\x20DEX.');if(problematicClassEntry){console[_0x434724(0x175)](_0x434724(0xd4)+problematicClassEntry);try{const tmpDir=path['join'](BUILD_DIR,_0x434724(0x130));if(!fs['existsSync'](tmpDir))fs[_0x434724(0x1cc)](tmpDir,{'recursive':!![]});const extractCmd='\x22'+SEVENZIP+_0x434724(0xe3)+jarPath+_0x434724(0xcc)+problematicClassEntry+_0x434724(0x1be)+tmpDir+'\x22';try{execSync(extractCmd,{'stdio':'inherit','shell':'cmd.exe'});}catch(_0x38cae8){try{execSync('\x22'+SEVENZIP+'\x22\x20e\x20-y\x20\x22'+jarPath+'\x22\x20\x22*'+path['basename'](problematicClassEntry)+_0x434724(0x1be)+tmpDir+'\x22',{'stdio':_0x434724(0x1ae),'shell':_0x434724(0x1c4)});}catch(_0x5d9910){}}const extracted=path['join'](tmpDir,path[_0x434724(0x127)](problematicClassEntry));if(fs[_0x434724(0x194)](extracted)){console[_0x434724(0x133)]('\x0a✓\x20Classe\x20extraite\x20pour\x20diagnostic:\x20'+extracted);try{const javapCmd='\x22'+JDK+_0x434724(0x135)+extracted+'\x22';console[_0x434724(0x133)](_0x434724(0x18b)),execSync(javapCmd,{'stdio':_0x434724(0x1ae),'shell':'cmd.exe'}),console[_0x434724(0x133)]('---\x20fin\x20javap\x20---\x0a');}catch(_0x4a1229){console[_0x434724(0x1c1)]('Impossible\x20d\x27exécuter\x20javap\x20sur\x20la\x20classe\x20extraite:',_0x4a1229[_0x434724(0x1c2)]);}}else console[_0x434724(0x1c1)](_0x434724(0x13f));}catch(_0x3fe905){console[_0x434724(0x1c1)]('Erreur\x20durant\x20le\x20diagnostic\x20D8:',_0x3fe905[_0x434724(0x1c2)]);}}try{if(problematicClassEntry){const classPathNoDollar=problematicClassEntry[_0x434724(0x11a)]('$')[0x0],javaPath=path[_0x434724(0x15e)](projectDir,_0x434724(0x1a2),classPathNoDollar[_0x434724(0x165)](/\//g,path[_0x434724(0xf5)])+'.java');if(fs[_0x434724(0x194)](javaPath)){const content=fs[_0x434724(0x184)](javaPath,_0x434724(0x13b));if(content[_0x434724(0xe0)](_0x434724(0x180))){console['log']('\x0aTentative:\x20fichier\x20source\x20généré\x20détecté.\x20Suppression\x20et\x20recompilation.'),fs['unlinkSync'](javaPath),removeDir(path[_0x434724(0x15e)](BUILD_DIR,_0x434724(0x190))),makeDir(path[_0x434724(0x15e)](BUILD_DIR,_0x434724(0x190)));const javaFilesNow=[],findJavaFilesLocal=_0x537323=>{const _0x311c27=_0x434724,_0x41719a=fs[_0x311c27(0x19c)](_0x537323);for(const _0x5bffd2 of _0x41719a){const _0x523209=path['join'](_0x537323,_0x5bffd2),_0x208ab6=fs['statSync'](_0x523209);if(_0x208ab6[_0x311c27(0xea)]())findJavaFilesLocal(_0x523209);else{if(_0x5bffd2[_0x311c27(0x158)](_0x311c27(0x104)))javaFilesNow[_0x311c27(0x159)](_0x523209);}}};if(fs[_0x434724(0x194)](srcPath))findJavaFilesLocal(srcPath);if(fs[_0x434724(0x194)](path['join'](BUILD_DIR,_0x434724(0x1a5))))findJavaFilesLocal(path[_0x434724(0x15e)](BUILD_DIR,_0x434724(0x1a5)));if(javaFilesNow[_0x434724(0x1a3)]>0x0){const classPathArg='\x22'+ANDROID_JAR+'\x22',javaFilesStr2=javaFilesNow['map'](_0x351155=>'\x22'+_0x351155+'\x22')[_0x434724(0x15e)]('\x20'),compileCmd2='\x22'+JDK+_0x434724(0x193)+classPathArg+'\x20-d\x20\x22'+path[_0x434724(0x15e)](BUILD_DIR,_0x434724(0x190))+'\x22\x20'+javaFilesStr2;run(compileCmd2,_0x434724(0x13c));const jarCmd2='\x22'+JDK+_0x434724(0x121)+jarPath+_0x434724(0x145)+classesDir+_0x434724(0xcd);run(jarCmd2,_0x434724(0x1a7));try{execSync(d8Cmd,{'stdio':_0x434724(0x1ae),'shell':'cmd.exe'}),console[_0x434724(0x133)](_0x434724(0x161));}catch(_0x81de93){console[_0x434724(0x175)](_0x434724(0xeb)),process[_0x434724(0xdc)](0x1);}}else console[_0x434724(0x1c1)](_0x434724(0x112)),process[_0x434724(0xdc)](0x1);}else console['warn'](_0x434724(0x115));}else console[_0x434724(0x1c1)]('Fichier\x20source\x20Java\x20correspondant\x20introuvable:\x20'+javaPath);}}catch(_0x398e81){console[_0x434724(0x1c1)](_0x434724(0x119),_0x398e81[_0x434724(0x1c2)]);}process[_0x434724(0xdc)](0x1);}}else console[_0x434724(0x1c1)](_0x434724(0xd2));console[_0x434724(0x133)](_0x434724(0x19f));try{if(fs[_0x434724(0x194)](dexPath)){const unsignedApkFull=path['resolve'](BUILD_DIR,path[_0x434724(0x127)](apkPath)),classesDexFull=path[_0x434724(0x154)](dexPath),addDexCmd='\x22'+SEVENZIP+_0x434724(0x109)+unsignedApkFull+'\x22\x20\x22'+classesDexFull+'\x22';execSync(addDexCmd,{'cwd':path[_0x434724(0x154)](BUILD_DIR),'stdio':_0x434724(0x1ae),'shell':'cmd.exe','timeout':0xea60}),console[_0x434724(0x133)](_0x434724(0x1ce));}else console[_0x434724(0x1c1)](_0x434724(0x153));}catch(_0x3b25b5){console[_0x434724(0x175)]('ERREUR:\x20Ajout\x20du\x20DEX\x20échoué:\x20'+_0x3b25b5[_0x434724(0x1c2)]),process['exit'](0x1);}console['log']('\x0a===\x207)\x20ALIGNEMENT\x20DE\x20L\x27APK\x20===');const alignedApkPath=path['join'](BUILD_DIR,_0x434724(0x171)),unsignedApkPath=path['join'](BUILD_DIR,_0x434724(0x162));fs['existsSync'](apkPath)&&fs[_0x434724(0x11d)](apkPath,unsignedApkPath);try{run('\x22'+ZIPALIGN+_0x434724(0x189)+unsignedApkPath+_0x434724(0xcc)+alignedApkPath+'\x22',_0x434724(0xd0));}catch(_0x184d45){console[_0x434724(0x1c1)](_0x434724(0x188)),fs['copyFileSync'](unsignedApkPath,alignedApkPath);}console[_0x434724(0x133)]('\x0a===\x208)\x20SIGNATURE\x20DE\x20L\x27APK\x20===');const keystorePath=path['join'](projectDir,keystoreName);if(!fs[_0x434724(0x194)](keystorePath)){console[_0x434724(0x133)]('Création\x20du\x20keystore...');const keygenCmd='\x22'+JDK+_0x434724(0x1a0)+appConfig['appName']+_0x434724(0xfa)+keystorePath+_0x434724(0xfc);try{execSync(keygenCmd,{'cwd':projectDir,'stdio':'pipe','shell':_0x434724(0x1c4)}),console[_0x434724(0x133)](_0x434724(0x13d));}catch(_0x3137c8){console[_0x434724(0x175)]('ERREUR:\x20Impossible\x20de\x20créer\x20le\x20keystore'),process[_0x434724(0xdc)](0x1);}}else console[_0x434724(0x133)](_0x434724(0x1ac)+keystorePath);if(fs[_0x434724(0x194)](alignedApkPath)){const minSdkVersion=appConfig[_0x434724(0x12c)]||0x15,signCmd='\x22'+APKSIGNER+_0x434724(0x146)+keystorePath+_0x434724(0x1a1)+minSdkVersion+_0x434724(0x177)+APK_NAME+'\x22\x20\x22'+alignedApkPath+'\x22';console[_0x434724(0x133)](_0x434724(0x15d)),console[_0x434724(0x133)]('Commande:\x20'+signCmd),console[_0x434724(0x133)](_0x434724(0x136)+APK_NAME);try{const output=execSync(signCmd,{'cwd':projectDir,'stdio':_0x434724(0x103),'shell':'cmd.exe','encoding':'utf-8'});console[_0x434724(0x133)](_0x434724(0x1c6));}catch(_0x21ae02){console['log'](_0x434724(0x126)),console[_0x434724(0x133)]('Détails:\x20'+_0x21ae02[_0x434724(0x1c2)][_0x434724(0xf6)](0x0,0xc8));}const maxWait=0xbb8,startWait=Date['now']();while(!fs['existsSync'](APK_NAME)&&Date[_0x434724(0xdd)]()-startWait<maxWait){require(_0x434724(0x156))[_0x434724(0x149)](_0x434724(0xda),{'shell':_0x434724(0x1c4)});}if(fs[_0x434724(0x194)](APK_NAME)){const stats=fs[_0x434724(0xee)](APK_NAME),endTime=Date[_0x434724(0xdd)](),buildTime=((endTime-startTime)/0x3e8)[_0x434724(0x1cb)](0x2);console[_0x434724(0x133)](_0x434724(0x1ad)),console[_0x434724(0x133)](_0x434724(0x116)+APK_NAME),console[_0x434724(0x133)]('Taille:\x20'+stats[_0x434724(0x1a9)]+_0x434724(0xfe)),console['log']('Temps\x20de\x20build:\x20'+buildTime+'s'),console[_0x434724(0x133)](_0x434724(0x198));}else console['error'](_0x434724(0x12e)),console[_0x434724(0x175)](_0x434724(0x157)+APK_NAME),console['error']('Fichiers\x20dans\x20le\x20répertoire:',fs[_0x434724(0x19c)](projectDir)[_0x434724(0x14e)](_0x4ed6f2=>_0x4ed6f2[_0x434724(0x158)](_0x434724(0x1ba)))),process[_0x434724(0xdc)](0x1);}else console[_0x434724(0x175)](_0x434724(0x16c)),console['error'](_0x434724(0x10a)+alignedApkPath),process[_0x434724(0xdc)](0x1);
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- const _0x401069=_0x3923;(function(_0x4f2501,_0x21e4b5){const _0x3d9ecd=_0x3923,_0x19f308=_0x4f2501();while(!![]){try{const _0x3e238f=-parseInt(_0x3d9ecd(0x1f6))/0x1+parseInt(_0x3d9ecd(0x2b1))/0x2+parseInt(_0x3d9ecd(0x27c))/0x3*(parseInt(_0x3d9ecd(0x285))/0x4)+parseInt(_0x3d9ecd(0x1a8))/0x5+-parseInt(_0x3d9ecd(0x2bb))/0x6*(parseInt(_0x3d9ecd(0x2c3))/0x7)+parseInt(_0x3d9ecd(0x20f))/0x8+-parseInt(_0x3d9ecd(0x1c3))/0x9;if(_0x3e238f===_0x21e4b5)break;else _0x19f308['push'](_0x19f308['shift']());}catch(_0x259034){_0x19f308['push'](_0x19f308['shift']());}}}(_0x7f25,0xdca40));const fs=require('fs'),path=require(_0x401069(0x2e1)),{execSync}=require(_0x401069(0x1b3)),crypto=require(_0x401069(0x267)),sevenBin=require(path[_0x401069(0x271)](__dirname,_0x401069(0x239),_0x401069(0x1c8))),bytenode=require(path[_0x401069(0x271)](__dirname,_0x401069(0x239),_0x401069(0x1ac))),JavaScriptObfuscator=require(path[_0x401069(0x271)](__dirname,'vendor',_0x401069(0x1cf))),minimist=require(path['join'](__dirname,_0x401069(0x239),_0x401069(0x1cc)));let asar;((async()=>{const _0x1bca45=_0x401069,_0x17f11f=await import('@electron/asar');asar=_0x17f11f[_0x1bca45(0x1fd)];})());const SEVEN_ZIP_PATH=path['join'](__dirname,'vendor','7zip-bin',_0x401069(0x21e),process[_0x401069(0x279)]===_0x401069(0x192)?_0x401069(0x192):_0x401069(0x2de),_0x401069(0x2d6)),UPX_PATH=path[_0x401069(0x271)](__dirname,_0x401069(0x239),_0x401069(0x19f),process[_0x401069(0x208)]===_0x401069(0x287)?_0x401069(0x1bf):'upx'),SHARP_PATH=path['join'](__dirname,'vendor',_0x401069(0x1e9)),RCEDIT_PATH=path['join'](__dirname,_0x401069(0x239),'rcedit'),TMP_PATH=path['join'](__dirname,_0x401069(0x239),'tmp');!fs[_0x401069(0x1f9)](UPX_PATH)&&console[_0x401069(0x295)](_0x401069(0x1b7));process[_0x401069(0x1c2)][_0x401069(0x1da)]=UPX_PATH;const sharp=require(SHARP_PATH),rcedit=require(RCEDIT_PATH),tmp=require(TMP_PATH),ROOT=path[_0x401069(0x2f6)](__dirname,'..'),BUILDER_DIR=ROOT,WORK_DIR=process[_0x401069(0x212)]();let APP_SRC=WORK_DIR,BUILD=path[_0x401069(0x271)](WORK_DIR,_0x401069(0x2b3)),DIST=path['join'](WORK_DIR,_0x401069(0x1be));function getTempProtectedDir(){const _0x51c3cf=_0x401069;return path[_0x51c3cf(0x271)](WORK_DIR,_0x51c3cf(0x2b3),_0x51c3cf(0x298)+Date[_0x51c3cf(0x24a)]());}const args=minimist(process[_0x401069(0x1e8)][_0x401069(0x28e)](0x2));function isElectronApp(_0x18eae5){const _0x13726b=_0x401069,_0x5f3e77=path[_0x13726b(0x271)](_0x18eae5,_0x13726b(0x224));if(!fs[_0x13726b(0x1f9)](_0x5f3e77))return![];try{const _0xf0b718=JSON[_0x13726b(0x2f5)](fs[_0x13726b(0x2c2)](_0x5f3e77,'utf8'));if(!_0xf0b718[_0x13726b(0x1a9)])return![];const _0x491adc=[_0xf0b718[_0x13726b(0x1a9)],_0xf0b718['main']['replace'](/\.js$/,_0x13726b(0x255)),_0xf0b718[_0x13726b(0x1a9)][_0x13726b(0x270)](/\.js$/,_0x13726b(0x1d9)),_0x13726b(0x232),_0x13726b(0x24b),_0x13726b(0x240),'preload.js',_0x13726b(0x1ae),_0x13726b(0x199)];for(const _0x3c0750 of _0x491adc){const _0x29141f=path[_0x13726b(0x271)](_0x18eae5,_0x3c0750);if(fs[_0x13726b(0x1f9)](_0x29141f)&&!_0x3c0750[_0x13726b(0x2a0)](_0x13726b(0x2a5))){const _0x3ad421=fs[_0x13726b(0x1f9)](path[_0x13726b(0x271)](_0x18eae5,_0x13726b(0x28d)));if(_0x3ad421)return!![];}}if(fs['existsSync'](path[_0x13726b(0x271)](_0x18eae5,_0x13726b(0x28d)))){const _0x4d6603=fs[_0x13726b(0x2e8)](_0x18eae5),_0x5c0a74=_0x4d6603[_0x13726b(0x1ab)](_0x283cb3=>_0x283cb3['startsWith'](_0x13726b(0x1a9))&&(_0x283cb3[_0x13726b(0x27b)](_0x13726b(0x2b8))||_0x283cb3['endsWith'](_0x13726b(0x255))||_0x283cb3[_0x13726b(0x27b)](_0x13726b(0x1d9))||_0x283cb3['endsWith'](_0x13726b(0x2a7))||_0x283cb3['endsWith'](_0x13726b(0x247))));if(_0x5c0a74)return!![];}return![];}catch(_0x57b787){return![];}}const isBuilderDir=path[_0x401069(0x2f6)](WORK_DIR)===path[_0x401069(0x2f6)](BUILDER_DIR)||path[_0x401069(0x2f6)](WORK_DIR)===path[_0x401069(0x2f6)](path[_0x401069(0x271)](BUILDER_DIR,_0x401069(0x221)))||path['basename'](WORK_DIR)===_0x401069(0x221)&&path[_0x401069(0x1f4)](WORK_DIR)===BUILDER_DIR;if(args[_0x401069(0x23d)]){const customAppSrc=args['app-src'];APP_SRC=path[_0x401069(0x2b6)](customAppSrc)?customAppSrc:path[_0x401069(0x2f6)](customAppSrc),!fs['existsSync'](APP_SRC)&&(console[_0x401069(0x28b)](_0x401069(0x1b5)+APP_SRC),process[_0x401069(0x2ca)](0x1)),console[_0x401069(0x18e)](_0x401069(0x266)+APP_SRC);}else!isBuilderDir?(APP_SRC=WORK_DIR,console[_0x401069(0x18e)]('[builder]\x20✨\x20Utilisation\x20du\x20répertoire\x20courant\x20comme\x20source:\x20'+APP_SRC)):(console[_0x401069(0x28b)](_0x401069(0x2b5)),console[_0x401069(0x28b)](_0x401069(0x236)),process[_0x401069(0x2ca)](0x1));if(args[_0x401069(0x2be)]||args[_0x401069(0x220)]){const customOutput=args[_0x401069(0x2be)]||args['out'];DIST=path[_0x401069(0x2b6)](customOutput)?customOutput:path[_0x401069(0x2f6)](customOutput),BUILD=path[_0x401069(0x271)](DIST,_0x401069(0x2b3)),console[_0x401069(0x18e)](_0x401069(0x251)+DIST);}else console[_0x401069(0x18e)](_0x401069(0x2d2)+DIST);function findElectronDist(){const _0x53484c=_0x401069,_0x12de17=[path[_0x53484c(0x271)](ROOT,_0x53484c(0x2a5),_0x53484c(0x235),_0x53484c(0x1be)),path[_0x53484c(0x271)](path[_0x53484c(0x1f4)](ROOT),_0x53484c(0x2a5),_0x53484c(0x235),'dist'),path[_0x53484c(0x271)](path[_0x53484c(0x1f4)](ROOT),'..','node_modules',_0x53484c(0x235),_0x53484c(0x1be))];for(const _0x1f9837 of _0x12de17){if(fs['existsSync'](_0x1f9837))return console[_0x53484c(0x18e)]('[builder]\x20Distribution\x20Electron\x20trouvée\x20:\x20'+_0x1f9837),_0x1f9837;}return console[_0x53484c(0x295)](_0x53484c(0x216)),null;}const ELECTRON_DIST=findElectronDist(),KEY=process[_0x401069(0x1c2)]['KEY']||crypto['randomBytes'](0x10)[_0x401069(0x29e)]('hex');function _0x3923(_0x266309,_0x199ee5){const _0x7f253d=_0x7f25();return _0x3923=function(_0x392394,_0x5d41ab){_0x392394=_0x392394-0x18a;let _0x1f53b6=_0x7f253d[_0x392394];return _0x1f53b6;},_0x3923(_0x266309,_0x199ee5);}process['env']['KEY']?console[_0x401069(0x18e)](_0x401069(0x18d)+process[_0x401069(0x1c2)][_0x401069(0x2bf)][_0x401069(0x253)](0x0,0x8)+_0x401069(0x1df)):console['log'](_0x401069(0x2ce)+KEY);const CREATE_INSTALLER=process[_0x401069(0x1c2)][_0x401069(0x282)]==='true',LITE_BUILD=process['env'][_0x401069(0x229)]===_0x401069(0x262),USE_UPX=process[_0x401069(0x1c2)]['USE_UPX']===_0x401069(0x262);function getCodeSigningConfig(){const _0x1a36e9=_0x401069,_0x45f653=path[_0x1a36e9(0x271)](APP_SRC,_0x1a36e9(0x224));if(fs['existsSync'](_0x45f653))try{const _0x55bee4=JSON[_0x1a36e9(0x2f5)](fs['readFileSync'](_0x45f653,_0x1a36e9(0x198)));if(_0x55bee4[_0x1a36e9(0x2d0)]?.[_0x1a36e9(0x21e)]?.[_0x1a36e9(0x1f8)]){const _0x5d39ca=_0x55bee4['build'][_0x1a36e9(0x21e)][_0x1a36e9(0x1f8)],_0x23d012=path[_0x1a36e9(0x2b6)](_0x5d39ca)?_0x5d39ca:path['join'](APP_SRC,_0x5d39ca);return{'certificateFile':_0x23d012,'certificatePassword':_0x55bee4['build']?.[_0x1a36e9(0x21e)]?.[_0x1a36e9(0x2c0)],'signWithParams':_0x55bee4[_0x1a36e9(0x2d0)]?.['win']?.[_0x1a36e9(0x1dd)]};}}catch(_0x3b6f63){console[_0x1a36e9(0x295)](_0x1a36e9(0x218),_0x3b6f63[_0x1a36e9(0x2ad)]);}console[_0x1a36e9(0x18e)](_0x1a36e9(0x292));try{const _0x50e490=path[_0x1a36e9(0x271)](__dirname,_0x1a36e9(0x2ae));ensureDir(_0x50e490);const _0xea6827=getAppInfo(),_0xc47c7d=crypto['createHash'](_0x1a36e9(0x1ea))['update'](_0xea6827[_0x1a36e9(0x1cb)]+_0xea6827[_0x1a36e9(0x233)]+_0xea6827[_0x1a36e9(0x21c)])[_0x1a36e9(0x205)](_0x1a36e9(0x209))['substring'](0x0,0x8),_0xbe6532=path[_0x1a36e9(0x271)](_0x50e490,_0x1a36e9(0x28a)+_0xc47c7d+_0x1a36e9(0x27e)),_0x480963=path[_0x1a36e9(0x271)](_0x50e490,_0x1a36e9(0x28a)+_0xc47c7d+'.key');let _0x1ffb62;if(!fs[_0x1a36e9(0x1f9)](_0xbe6532)){_0x1ffb62=crypto[_0x1a36e9(0x2b4)](0x20)[_0x1a36e9(0x29e)](_0x1a36e9(0x242))['replace'](/[/+=]/g,'')['substring'](0x0,0x20);const _0x2a51d2=crypto[_0x1a36e9(0x1ed)](_0xea6827[_0x1a36e9(0x1cb)]+_0xea6827[_0x1a36e9(0x233)],crypto[_0x1a36e9(0x2b4)](0x20),0x20),_0x44f850=crypto['randomBytes'](0x10),_0x4271d8=crypto[_0x1a36e9(0x234)](_0x1a36e9(0x254),_0x2a51d2,_0x44f850),_0x438d65=Buffer['concat']([_0x4271d8[_0x1a36e9(0x243)](_0x1ffb62,'utf8'),_0x4271d8['final']()]),_0x10daf7=_0x4271d8[_0x1a36e9(0x225)]();fs[_0x1a36e9(0x2c4)](_0x480963,JSON[_0x1a36e9(0x2fc)]({'iv':_0x44f850[_0x1a36e9(0x29e)]('hex'),'key':_0x2a51d2[_0x1a36e9(0x29e)]('hex'),'data':_0x438d65['toString'](_0x1a36e9(0x209)),'tag':_0x10daf7[_0x1a36e9(0x29e)](_0x1a36e9(0x209))}));}else{const _0x5a36b5=JSON[_0x1a36e9(0x2f5)](fs['readFileSync'](_0x480963,_0x1a36e9(0x198))),_0x2db9c9=crypto[_0x1a36e9(0x2d3)](_0x1a36e9(0x254),Buffer[_0x1a36e9(0x22c)](_0x5a36b5['key'],_0x1a36e9(0x209)),Buffer[_0x1a36e9(0x22c)](_0x5a36b5['iv'],_0x1a36e9(0x209)));_0x2db9c9['setAuthTag'](Buffer[_0x1a36e9(0x22c)](_0x5a36b5[_0x1a36e9(0x2e3)],_0x1a36e9(0x209))),_0x1ffb62=Buffer[_0x1a36e9(0x2f9)]([_0x2db9c9[_0x1a36e9(0x243)](Buffer[_0x1a36e9(0x22c)](_0x5a36b5['data'],_0x1a36e9(0x209))),_0x2db9c9[_0x1a36e9(0x238)]()])[_0x1a36e9(0x29e)](_0x1a36e9(0x198));}if(!fs[_0x1a36e9(0x1f9)](_0xbe6532)){const _0x5cd923=path[_0x1a36e9(0x271)](__dirname,_0x1a36e9(0x239),'openssl'),_0x565e1b=path['join'](_0x5cd923,_0x1a36e9(0x1a2));!fs['existsSync'](_0x565e1b)&&console['log']('[builder]\x20OpenSSL\x20non\x20trouvé,\x20utilisation\x20du\x20certificat\x20de\x20développement\x20intégré');let _0x18f3bd=![];if(_0x18f3bd){console[_0x1a36e9(0x18e)](_0x1a36e9(0x2cf));const _0x529576=getAppInfo(),_0x412493=['\x22'+_0x565e1b+_0x1a36e9(0x1b1)+path[_0x1a36e9(0x271)](_0x50e490,_0x1a36e9(0x2a9))+_0x1a36e9(0x1f1),'\x22'+_0x565e1b+_0x1a36e9(0x269)+path[_0x1a36e9(0x271)](_0x50e490,_0x1a36e9(0x2a9))+'\x22\x20-out\x20\x22'+path['join'](_0x50e490,_0x1a36e9(0x28c))+'\x22\x20-subj\x20\x22/C=FR/ST=France/L=Paris/O='+_0x529576['author']+_0x1a36e9(0x277)+_0x529576[_0x1a36e9(0x1cb)]+'\x22','\x22'+_0x565e1b+_0x1a36e9(0x22e)+path[_0x1a36e9(0x271)](_0x50e490,_0x1a36e9(0x28c))+'\x22\x20-signkey\x20\x22'+path[_0x1a36e9(0x271)](_0x50e490,_0x1a36e9(0x2a9))+'\x22\x20-out\x20\x22'+path[_0x1a36e9(0x271)](_0x50e490,_0x1a36e9(0x2e6))+'\x22',_0x1a36e9(0x1fa)+_0xbe6532+_0x1a36e9(0x1ff)+path[_0x1a36e9(0x271)](_0x50e490,_0x1a36e9(0x2a9))+_0x1a36e9(0x291)+path[_0x1a36e9(0x271)](_0x50e490,_0x1a36e9(0x2e6))+'\x22\x20-password\x20pass:'+_0x1ffb62];for(const _0x2c8269 of _0x412493){execSync(_0x2c8269,{'stdio':_0x1a36e9(0x2ee)});}fs[_0x1a36e9(0x268)](path['join'](_0x50e490,_0x1a36e9(0x2a9))),fs[_0x1a36e9(0x268)](path['join'](_0x50e490,_0x1a36e9(0x28c))),fs[_0x1a36e9(0x268)](path['join'](_0x50e490,_0x1a36e9(0x2e6)));}else{console[_0x1a36e9(0x18e)](_0x1a36e9(0x1d6));const _0x19c4ef=getAppInfo();try{const _0x36e649=path[_0x1a36e9(0x271)](_0x50e490,_0x1a36e9(0x27f)),_0x27170e=_0x1a36e9(0x1d7)+_0x19c4ef[_0x1a36e9(0x1cb)]+_0x1a36e9(0x293)+_0x1ffb62+_0x1a36e9(0x29c)+_0xbe6532['replace'](/\\/g,'\x5c\x5c')+'\x22\x0a#\x20Export\x20the\x20certificate\x20(force\x20overwrite\x20if\x20exists)\x0aExport-PfxCertificate\x20-Cert\x20$cert\x20-FilePath\x20$certPath\x20-Password\x20$pwd\x20-Force\x0a#\x20Remove\x20the\x20temporary\x20certificate\x20from\x20the\x20store\x20to\x20avoid\x20leaving\x20traces\x0aRemove-Item\x20-Path\x20\x22Cert:\x5cCurrentUser\x5cMy\x5c$($cert.Thumbprint)\x22\x20-Force\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20';fs['writeFileSync'](_0x36e649,_0x27170e),execSync(_0x1a36e9(0x26e)+_0x36e649+'\x22',{'stdio':_0x1a36e9(0x2ee)}),fs['unlinkSync'](_0x36e649);if(!fs[_0x1a36e9(0x1f9)](_0xbe6532))throw new Error(_0x1a36e9(0x1d8));console[_0x1a36e9(0x18e)](_0x1a36e9(0x1ca));}catch(_0x2ba549){return console['warn'](_0x1a36e9(0x2b2),_0x2ba549[_0x1a36e9(0x2ad)]),null;}}}return{'certificateFile':_0xbe6532,'certificatePassword':_0x1ffb62,'signWithParams':null};}catch(_0x330490){return console[_0x1a36e9(0x295)](_0x1a36e9(0x21d),_0x330490[_0x1a36e9(0x2ad)]),null;}}function ensureDir(_0x44d64b){const _0x9c3881=_0x401069;if(!fs['existsSync'](_0x44d64b))fs[_0x9c3881(0x197)](_0x44d64b,{'recursive':!![]});}function rmdir(_0xdbf551){const _0x323175=_0x401069;if(fs[_0x323175(0x1f9)](_0xdbf551))fs[_0x323175(0x1b9)](_0xdbf551,{'recursive':!![],'force':!![]});}function generateAppFiles(){const _0x42a555=_0x401069;console[_0x42a555(0x18e)](_0x42a555(0x203)),console[_0x42a555(0x18e)](_0x42a555(0x217));const _0x5389eb=WORK_DIR,_0x4190ed=path[_0x42a555(0x271)](_0x5389eb,_0x42a555(0x224));if(!fs['existsSync'](_0x4190ed)){console[_0x42a555(0x18e)](_0x42a555(0x2d1));const _0x4c2e25={'name':_0x42a555(0x1c6),'productName':'MonApp','version':_0x42a555(0x1ce),'description':_0x42a555(0x260),'main':_0x42a555(0x232),'author':_0x42a555(0x1ee),'copyright':'©\x20'+new Date()[_0x42a555(0x29f)]()+_0x42a555(0x1b4),'dependencies':{'electron':_0x42a555(0x191)}};fs[_0x42a555(0x2c4)](_0x4190ed,JSON['stringify'](_0x4c2e25,null,0x2));}const _0x43cd1=path[_0x42a555(0x271)](_0x5389eb,_0x42a555(0x232));if(!fs[_0x42a555(0x1f9)](_0x43cd1)){console[_0x42a555(0x18e)](_0x42a555(0x2e2));const _0x18a3e9=_0x42a555(0x2d5);fs[_0x42a555(0x2c4)](_0x43cd1,_0x18a3e9);}const _0x5e207b=path[_0x42a555(0x271)](_0x5389eb,_0x42a555(0x1c9));if(!fs[_0x42a555(0x1f9)](_0x5e207b)){console['log'](_0x42a555(0x20b));const _0x594c44=_0x42a555(0x2cd);fs[_0x42a555(0x2c4)](_0x5e207b,_0x594c44);}const _0x571318=path['join'](_0x5389eb,_0x42a555(0x28d));if(!fs[_0x42a555(0x1f9)](_0x571318)){console[_0x42a555(0x18e)](_0x42a555(0x2d8));const _0x260d71=_0x42a555(0x2e0);fs[_0x42a555(0x2c4)](_0x571318,_0x260d71);}const _0x525ae1=path[_0x42a555(0x271)](_0x5389eb,_0x42a555(0x24c));return ensureDir(_0x525ae1),console['log'](_0x42a555(0x1c4)),_0x5389eb;}async function signFile(_0x1a126e){const _0x481efa=_0x401069,_0x3710f7=getCodeSigningConfig();if(!_0x3710f7)return![];const _0xefb941=path['join'](__dirname,'vendor',_0x481efa(0x2dc),process[_0x481efa(0x208)]===_0x481efa(0x287)?'signtool.exe':_0x481efa(0x2dc));let _0x433a2f=null;if(fs[_0x481efa(0x1f9)](_0xefb941))_0x433a2f=_0xefb941,console[_0x481efa(0x18e)](_0x481efa(0x230),_0x433a2f);else return console['warn'](_0x481efa(0x289)),![];try{const _0x5371f2=require('child_process')['execFileSync'];let _0x223e22=['sign'];if(_0x3710f7[_0x481efa(0x1dd)]){const _0x20c98c=_0x3710f7[_0x481efa(0x1dd)][_0x481efa(0x25c)](/(?:["'].+?["']|[^\s]+)/g)||[];for(let _0x24be2c of _0x20c98c){(_0x24be2c[_0x481efa(0x1f0)]('\x22')&&_0x24be2c[_0x481efa(0x27b)]('\x22')||_0x24be2c['startsWith']('\x27')&&_0x24be2c[_0x481efa(0x27b)]('\x27'))&&(_0x24be2c=_0x24be2c['substring'](0x1,_0x24be2c['length']-0x1)),_0x223e22[_0x481efa(0x2c5)](_0x24be2c);}}else _0x223e22[_0x481efa(0x2c5)]('/f',_0x3710f7['certificateFile']),_0x3710f7[_0x481efa(0x2c0)]&&_0x223e22[_0x481efa(0x2c5)]('/p',_0x3710f7['certificatePassword']),_0x223e22[_0x481efa(0x2c5)](_0x481efa(0x1b6),_0x481efa(0x1e4),_0x481efa(0x1a4),_0x481efa(0x1ea),_0x481efa(0x23e),_0x481efa(0x1ea));return _0x223e22[_0x481efa(0x2c5)](_0x1a126e),_0x5371f2(_0x433a2f,_0x223e22,{'stdio':_0x481efa(0x2ee)}),console[_0x481efa(0x18e)](_0x481efa(0x1ba)+path[_0x481efa(0x2a4)](_0x1a126e)),!![];}catch(_0x42fa32){return console[_0x481efa(0x295)](_0x481efa(0x1b2)+path[_0x481efa(0x2a4)](_0x1a126e)+':',_0x42fa32[_0x481efa(0x2ad)]),![];}}function getAppInfo(){const _0xdbb025=_0x401069,_0x216c71=path[_0xdbb025(0x271)](APP_SRC,_0xdbb025(0x224));if(!fs[_0xdbb025(0x1f9)](_0x216c71))return console[_0xdbb025(0x295)](_0xdbb025(0x22b)),{'name':_0xdbb025(0x1c5),'productName':'MonApp','packageName':'com.entreprise.monapp','version':_0xdbb025(0x1ce),'description':'Application\x20Electron','author':'Votre\x20Entreprise','copyright':'©\x20'+new Date()[_0xdbb025(0x29f)]()+_0xdbb025(0x1b4)};const _0x420b3a=JSON[_0xdbb025(0x2f5)](fs[_0xdbb025(0x2c2)](_0x216c71,'utf8'));let _0x551f8c=_0x420b3a[_0xdbb025(0x20e)];if(!_0x551f8c){const _0x2a76f7=typeof _0x420b3a[_0xdbb025(0x21c)]==='string'?_0x420b3a['author']:_0x420b3a['author']?.['name']||_0xdbb025(0x281),_0x2c35bf=_0x420b3a[_0xdbb025(0x20d)]||_0xdbb025(0x2ed),_0x4d7ab8=_0x2a76f7[_0xdbb025(0x286)]()['replace'](/[^a-z0-9]/g,'')[_0xdbb025(0x270)](/^[^a-z]/,'x'),_0x494f67=_0x2c35bf[_0xdbb025(0x286)]()[_0xdbb025(0x270)](/[^a-z0-9]/g,'')[_0xdbb025(0x270)](/^[^a-z]/,'x');_0x551f8c='com.'+_0x4d7ab8+'.'+_0x494f67;}return{'name':_0x420b3a['name']||_0xdbb025(0x1c5),'productName':_0x420b3a[_0xdbb025(0x1cb)]||_0x420b3a[_0xdbb025(0x20d)]||_0xdbb025(0x1c5),'packageName':_0x551f8c,'version':_0x420b3a['version']||'1.0.0','description':_0x420b3a[_0xdbb025(0x23f)]||_0xdbb025(0x260),'author':typeof _0x420b3a[_0xdbb025(0x21c)]===_0xdbb025(0x200)?_0x420b3a[_0xdbb025(0x21c)]:_0x420b3a['author']?.['name']||_0xdbb025(0x1ee),'copyright':_0x420b3a['copyright']||'©\x20'+new Date()['getFullYear']()+'\x20'+(typeof _0x420b3a[_0xdbb025(0x21c)]===_0xdbb025(0x200)?_0x420b3a[_0xdbb025(0x21c)]:_0x420b3a['author']?.['name']||_0xdbb025(0x1ee))};}function _0x7f25(){const _0x2b4c46=['vendor','[builder]\x20obfuscating\x20bootstrap\x20(profil\x20sûr)','[builder]\x20ATTENTION\x20:\x20CLÉ\x20non\x20fournie.\x20Les\x20ressources\x20ne\x20seront\x20pas\x20chiffrées\x20de\x20manière\x20sécurisée.','[builder]\x20Utilisation\x20du\x20mécanisme\x20de\x20signature\x20par\x20défaut','app-src','/fd','description','main.jsc','.DS_Store','base64','update','[builder]\x20bytenode\x20non\x20trouvé\x20dans\x20node_modules\x20racine\x20;\x20assurez-vous\x20qu\x27il\x20est\x20listé\x20dans\x20package.json\x20de\x20l\x27application','[builder]\x20Échec\x20de\x20la\x20création\x20de\x20l\x27installateur\x20:','[builder]\x20Watermark\x20meta:','.ts','[builder]\x20✅\x20Fichiers\x20sources\x20copiés\x20(les\x20originaux\x20restent\x20intacts\x20dans:\x20','[builder]\x20ERREUR:\x20Aucun\x20fichier\x20trouvé\x20dans','now','main.obf.js','assets','\x20fichiers\x20(structure\x20récursive\x20complète)','https://downloads.sourceforge.net/project/nsis/NSIS%203/3.09/nsis-3.09.zip','.exe','\x22\x20x\x20\x22','[builder]\x20Dossier\x20de\x20sortie\x20personnalisé:\x20','[builder]\x20Module\x20bytenode\x20copié\x20dans\x20resources/app/node_modules','substring','aes-256-gcm','.obf.js','[builder]\x20création\x20de\x20l\x27installateur','.env','[builder]\x20✅\x20ASAR\x20créé\x20avec\x20','[builder]\x20Application\x20des\x20métadonnées\x20avec\x20rcedit...','\x22\x20--reSign=','[builder]\x20Attention:\x20impossible\x20de\x20préparer\x20les\x20images\x20de\x20l\x27installateur:','match','find','[builder]\x20Erreur\x20lors\x20de\x20l\x27application\x20de\x20l\x27icône\x20initiale:','[builder]\x20✅\x20preload.js\x20par\x20défaut\x20créé\x20(sécurisé)','Application\x20Electron','\x0a[builder]\x20Rapport\x20Electron\x20Lite\x20:\x0a','true','main.ts','aes-256-cbc','[builder]\x20Fichiers\x20protégés\x20copiés\x20vers\x20resources/app','[builder]\x20Utilisation\x20du\x20dossier\x20source\x20personnalisé:\x20','crypto','unlinkSync','\x22\x20req\x20-new\x20-key\x20\x22','[builder]\x20-\x20Script:','config.build.yaml','nsis_template.nsi','[builder]\x20exécutable\x20portable\x20créé\x20à\x20:','powershell\x20-ExecutionPolicy\x20Bypass\x20-File\x20\x22','homepage','replace','join','copyright','[builder]\x20-\x20NSIS:','node','electron-packager','nsis.zip','/CN=','node\x20\x22','arch','trim','endsWith','6mdfdlS','[builder]\x20Création\x20de\x20l\x27installateur...','.pfx','gen-cert.ps1','isDirectory','entreprise','CREATE_INSTALLER','[builder]\x20✅\x20Fichiers\x20originaux\x20restent\x20intacts\x20dans:\x20','resources','2655428CMQgWn','toLowerCase','win32','[builder]\x20⚠️\x20\x20Erreur\x20lors\x20de\x20la\x20protection\x20de\x20','[builder]\x20signtool\x20non\x20trouvé\x20dans\x20vendor;\x20la\x20signature\x20sera\x20ignorée.\x20Pour\x20activer\x20la\x20signature,\x20placez\x20`signtool.exe`\x20dans\x20build_tools/vendor/signtool/','cert-','error','cert.csr','index.html','slice','[builder]\x20Construction\x20complète\x20terminée\x20avec\x20succès.','makensis.exe','\x22\x20-in\x20\x22','[builder]\x20Aucune\x20configuration\x20de\x20signature\x20trouvée,\x20création\x20d\x27un\x20certificat\x20auto-signé...','\x20Code\x20Signing\x22\x20-KeyExportPolicy\x20Exportable\x20-KeySpec\x20Signature\x20-KeyLength\x202048\x20-Type\x20CodeSigningCert\x20-CertStoreLocation\x20\x22Cert:\x5cCurrentUser\x5cMy\x22\x20-NotAfter\x20(Get-Date).AddYears(2)\x0a$pwd\x20=\x20ConvertTo-SecureString\x20-String\x20\x22','Company','warn','keys','main.*','temp_protected_','[builder]\x20Images\x20de\x20l\x27installateur\x20préparées\x20avec\x20succès','NSIS\x20non\x20trouvé\x20après\x20installation\x20à:\x20','[builder]\x20Renommage\x20de\x20l\x27exécutable\x20en:','\x22\x20-Force\x20-AsPlainText\x0a$certPath\x20=\x20\x22','contextBridge.exposeInMainWorld','toString','getFullYear','includes','coverage','/docs','[builder]\x20assemblage\x20de\x20la\x20structure\x20win-unpacked','basename','node_modules','\x22\x20-y','.obf.ts','resources.bin.hmac','private.key','cert','[builder]\x20Security\x20addons:\x20watermark\x20injected\x20and\x20HMAC\x20written\x20->\x20','createHash','message','certs','[builder]\x20Mode\x20LITE:\x20Analyse\x20des\x20dépendances...','.env.local','48196GvsGJH','[builder]\x20Erreur\x20lors\x20de\x20la\x20génération\x20du\x20certificat:','.build-temp','randomBytes','[builder]\x20ERREUR:\x20Le\x20builder\x20doit\x20être\x20exécuté\x20depuis\x20le\x20répertoire\x20de\x20votre\x20application.','isAbsolute','signExe','.js','electron.exe','cpSync','73662lkkfHW','npm-debug.log','installer.nsi','output','KEY','certificatePassword','[builder]\x20chiffrement\x20de\x20app.asar\x20->\x20resources.bin','readFileSync','882svXLhh','writeFileSync','push','forEach','Installateur\x20non\x20trouvé:\x20','[builder]\x20empaquetage\x20récursif\x20de\x20app_src\x20vers\x20app.asar','writeUInt32BE','exit','[builder]\x20⚠️\x20\x20Fichiers\x20manquants\x20dans\x20','\x5c${','const\x20{\x20contextBridge,\x20ipcRenderer\x20}\x20=\x20require(\x27electron\x27)\x0a\x0acontextBridge.exposeInMainWorld(\x27electron\x27,\x20{\x0a\x20\x20\x20\x20minimize:\x20()\x20=>\x20ipcRenderer.send(\x27minimize-window\x27),\x0a\x20\x20\x20\x20maximize:\x20()\x20=>\x20ipcRenderer.send(\x27maximize-window\x27),\x0a\x20\x20\x20\x20close:\x20()\x20=>\x20ipcRenderer.send(\x27close-window\x27)\x0a});\x0a\x0a//\x20Expose\x20les\x20modules\x20Node.js\x20nécessaires\x20de\x20manière\x20sécurisée\x0acontextBridge.exposeInMainWorld(\x27api\x27,\x20{\x0a\x20\x20\x20\x20//\x20Ajouter\x20les\x20méthodes\x20dont\x20vous\x20avez\x20besoin,\x20par\x20exemple\x20:\x0a\x20\x20\x20\x20require:\x20(module)\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Liste\x20blanche\x20des\x20modules\x20autorisés\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20allowedModules\x20=\x20[\x27electron\x27];\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(allowedModules.includes(module))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20require(module);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20throw\x20new\x20Error(`Module\x20\x22${module}\x22\x20non\x20autorisé`);\x0a\x20\x20\x20\x20}\x0a});','[builder]\x20✨\x20Clé\x20de\x20chiffrement\x20auto-générée:\x20','[builder]\x20Génération\x20du\x20certificat\x20auto-signé\x20avec\x20OpenSSL...','build','[builder]\x20Génération\x20de\x20package.json','[builder]\x20Utilisation\x20du\x20dossier\x20de\x20sortie\x20par\x20défaut:\x20','createDecipheriv','Package:\x20','const\x20{\x20app,\x20BrowserWindow,\x20ipcMain\x20}\x20=\x20require(\x27electron\x27);\x0aconst\x20path\x20=\x20require(\x27path\x27);\x0a\x0a//\x20Configuration\x20des\x20événements\x20IPC\x20pour\x20le\x20contrôle\x20de\x20la\x20fenêtre\x0afunction\x20setupWindowControls(window)\x20{\x0a\x20\x20ipcMain.on(\x27minimize-window\x27,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20window.minimize();\x0a\x20\x20});\x0a\x0a\x20\x20ipcMain.on(\x27maximize-window\x27,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20if\x20(window.isMaximized())\x20{\x0a\x20\x20\x20\x20\x20\x20window.unmaximize();\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20window.maximize();\x0a\x20\x20\x20\x20}\x0a\x20\x20});\x0a\x0a\x20\x20ipcMain.on(\x27close-window\x27,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20window.close();\x0a\x20\x20});\x0a}\x0a\x0afunction\x20createWindow()\x20{\x0a\x20\x20const\x20win\x20=\x20new\x20BrowserWindow({\x0a\x20\x20\x20\x20width:\x20800,\x0a\x20\x20\x20\x20height:\x20600,\x0a\x20\x20\x20\x20frame:\x20false,\x0a\x20\x20\x20\x20titleBarStyle:\x20\x27hidden\x27,\x0a\x20\x20\x20\x20titleBarOverlay:\x20{\x0a\x20\x20\x20\x20\x20\x20color:\x20\x27#2f3241\x27,\x0a\x20\x20\x20\x20\x20\x20symbolColor:\x20\x27#ffffff\x27,\x0a\x20\x20\x20\x20\x20\x20height:\x2030\x0a\x20\x20\x20\x20},\x0a\x20\x20\x20\x20webPreferences:\x20{\x0a\x20\x20\x20\x20\x20\x20nodeIntegration:\x20false,\x0a\x20\x20\x20\x20\x20\x20contextIsolation:\x20true,\x0a\x20\x20\x20\x20\x20\x20webSecurity:\x20true,\x0a\x20\x20\x20\x20\x20\x20preload:\x20path.join(__dirname,\x20\x27preload.js\x27)\x0a\x20\x20\x20\x20}\x0a\x20\x20});\x0a\x0a\x20\x20win.setMenu(null);\x0a\x20\x20setupWindowControls(win);\x0a\x20\x20win.loadFile(path.join(__dirname,\x20\x27index.html\x27));\x0a}\x0a\x0aapp.whenReady().then(createWindow);\x0a\x0aapp.on(\x27window-all-closed\x27,\x20()\x20=>\x20{\x0a\x20\x20if\x20(process.platform\x20!==\x20\x27darwin\x27)\x20{\x0a\x20\x20\x20\x20app.quit();\x0a\x20\x20}\x0a});\x0a\x0aapp.on(\x27activate\x27,\x20()\x20=>\x20{\x0a\x20\x20if\x20(BrowserWindow.getAllWindows().length\x20===\x200)\x20{\x0a\x20\x20\x20\x20createWindow();\x0a\x20\x20}\x0a});','7za.exe','index','[builder]\x20Génération\x20de\x20index.html','\x20\x20-\x20compiling','[builder]\x20Échec\x20de\x20la\x20compression\x20avancée:','[builder]\x20Continuation\x20avec\x20les\x20fichiers\x20présents...','signtool','[builder]\x20❌\x20Erreur\x20lors\x20de\x20la\x20copie\x20des\x20fichiers:','ia32','WMKT','<!DOCTYPE\x20html>\x0a<html>\x0a<head>\x0a\x20\x20\x20\x20<meta\x20charset=\x22UTF-8\x22>\x0a\x20\x20\x20\x20<title>MonApp</title>\x0a\x20\x20\x20\x20<style>\x0a\x20\x20\x20\x20\x20\x20\x20\x20body\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20Arial,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#f0f0f0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20.titlebar\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x2030px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#2f3241;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20space-between;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-webkit-app-region:\x20drag;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20user-select:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x200\x2010px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20.titlebar-title\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#ffffff;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20.titlebar-controls\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20-webkit-app-region:\x20no-drag;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20.titlebar-button\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2030px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x2030px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#ffffff;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20.titlebar-button:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(255,255,255,0.1);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20.titlebar-button.close:hover\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#e81123;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20.content\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2020px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20</style>\x0a</head>\x0a<body>\x0a\x20\x20\x20\x20<div\x20class=\x22titlebar\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22titlebar-title\x22>MonApp</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22titlebar-controls\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22titlebar-button\x20minimize\x22\x20onclick=\x22electron.minimize()\x22>_</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22titlebar-button\x20maximize\x22\x20onclick=\x22electron.maximize()\x22>□</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20class=\x22titlebar-button\x20close\x22\x20onclick=\x22electron.close()\x22>×</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20class=\x22content\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<h1>MonApp</h1>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<p>Application\x20Electron\x20prête\x20à\x20l\x27emploi.</p>\x0a\x20\x20\x20\x20</div>\x0a</body>\x0a</html>','path','[builder]\x20Génération\x20de\x20main.js','tag','nsis-3.09','.html','cert.crt','temp.7z','readdirSync','[builder]\x20Ajout\x20du\x20watermark\x20et\x20calcul\x20du\x20HMAC','filter','[builder]\x20Erreur\x20lors\x20de\x20l\x27application\x20des\x20métadonnées:','[builder]\x20distribution\x20electron\x20non\x20trouvée.\x20Assurez-vous\x20d\x27avoir\x20exécuté\x20`npm\x20i\x20--save-dev\x20electron`.','app','inherit','STANDARD','[builder]\x20Échec\x20de\x20la\x20création\x20de\x20l\x27exécutable\x20:','\x20\x20→\x20','\x22\x20-o\x20\x22','SKIP_INSTALLER','[builder]\x20✨\x20Aucun\x20fichier\x20d\x27application\x20trouvé.\x20Génération\x20des\x20fichiers\x20de\x20démo...','parse','resolve','[builder]\x20Démarrage\x20de\x20la\x20construction...','[builder]\x20Continuation\x20avec\x20toutes\x20les\x20dépendances...','concat','-Setup-','Modules\x20exclus','stringify','isFile','LITE\x20(optimisé)','map','[builder]\x20Création\x20de\x20l\x27exécutable\x20portable\x20ignorée\x20(définir\x20CREATE_PORTABLE_EXE=true\x20pour\x20le\x20créer)','[builder]\x20Clé\x20de\x20chiffrement\x20fournie:\x20','log','[builder]\x20Installateur\x20créé\x20avec\x20succès:','obfuscate','^39.1.1','x64','renderer.js','[builder]\x20NSIS\x20non\x20trouvé,\x20préparation\x20de\x20l\x27installation...','[builder]\x20Installation\x20de\x20NSIS\x20terminée\x20avec\x20succès','rcedit','mkdirSync','utf8','preload.jsc','alloc','templates','[builder]\x20✅\x20Protection\x20terminée\x20-\x20Tous\x20les\x20fichiers\x20protégés\x20récursivement','[builder]\x20création\x20de\x20l\x27exécutable\x20portable','createHmac','upx','\x20files\x20for\x20packaging','signing','openssl.exe','\x22\x20--exe=\x22','/td','[builder]\x20Mode:','\x22\x20\x22','\x22\x20--path=\x22','6601130BltPhU','main',';\x0a\x20\x20const\x20context\x20=\x20vm.createContext({\x0a\x20\x20\x20\x20require:\x20global.require,\x0a\x20\x20\x20\x20__filename,\x0a\x20\x20\x20\x20__dirname,\x0a\x20\x20\x20\x20module,\x0a\x20\x20\x20\x20exports,\x0a\x20\x20\x20\x20global,\x0a\x20\x20\x20\x20process,\x0a\x20\x20\x20\x20Buffer\x0a\x20\x20});\x0a\x20\x20const\x20script\x20=\x20new\x20vm.Script(src,\x20{\x20filename:\x20__filename\x20});\x0a\x20\x20script.runInContext(context);\x0a}\x0a','some','bytenode','[builder]\x20Archive\x20NSIS\x20déjà\x20présente,\x20utilisation\x20du\x20fichier\x20existant','preload.obf.js','.vscode','[builder]\x20Attention:\x20Échec\x20de\x20l\x27application\x20des\x20dépendances\x20LITE:','\x22\x20genrsa\x20-out\x20\x22','[builder]\x20Échec\x20de\x20la\x20signature\x20de\x20','child_process','\x20Votre\x20Entreprise','[builder]\x20ERREUR:\x20Dossier\x20source\x20personnalisé\x20introuvable:\x20','/tr','[builder]\x20UPX\x20non\x20trouvé\x20dans\x20vendor/upx.\x20La\x20compression\x20UPX\x20sera\x20désactivée.','-lite','rmSync','[builder]\x20Signature\x20réussie\x20pour\x20','[builder]\x20préparation\x20du\x20template\x20bootstrap','length','[builder]\x20Configuration\x20de\x20l\x27installateur...','dist','upx.exe','electron-lite-deps-report.txt','renameSync','env','1968183qpBNNs','[builder]\x20Vérification\x20et\x20génération\x20des\x20fichiers\x20de\x20démo\x20terminée.','MonApp','mon-app-electron','license.txt','7zip-bin','preload.js','[builder]\x20Certificat\x20auto-signé\x20généré\x20avec\x20succès','productName','minimist','[builder]\x20⚠️\x20\x20Erreur\x20lors\x20du\x20traitement\x20du\x20dossier\x20','1.0.0','javascript-obfuscator','icon.ico','password','index.htm','main.obf.ts','package-lock.json','nsis','[builder]\x20Génération\x20d\x27un\x20certificat\x20auto-signé\x20avec\x20PowerShell...','\x0a$cert\x20=\x20New-SelfSignedCertificate\x20-Subject\x20\x22CN=','Le\x20certificat\x20n\x27a\x20pas\x20été\x20généré\x20correctement','.jsc','UPX_PATH','[builder]\x20Métadonnées\x20appliquées\x20avec\x20succès','[builder]\x20electron.exe\x20non\x20trouvé\x20dans\x20win-unpacked,\x20impossible\x20d\x27appliquer\x20les\x20métadonnées','signWithParams','getObfuscatedCode','...\x20(masquée)','const\x20path\x20=\x20require(\x27path\x27);\x0aconst\x20moduleObj\x20=\x20require(\x27module\x27);\x0aglobal.require\x20=\x20moduleObj.createRequire(__filename);\x0atry\x20{\x0a\x20\x20require(path.join(__dirname,\x20\x27vendor\x27,\x20\x27bytenode\x27)).runBytecodeFile(path.join(__dirname,\x20\x27','CREATE_PORTABLE_EXE','copyFileSync','ascii','http://timestamp.digicert.com','[builder]\x20Application\x20de\x20la\x20compression\x20avancée...','split','upx_advanced.js','argv','sharp','sha256','🛡️\x20\x20','dependencies','scryptSync','Votre\x20Entreprise','app.asar','startsWith','\x22\x202048','repeat','const\x20{\x20contextBridge,\x20ipcRenderer\x20}\x20=\x20require(\x27electron\x27);\x0a\x0a//\x20🔐\x20PROTECTION\x20CONTEXTBRIDGE\x20-\x20Exposer\x20les\x20APIs\x20de\x20manière\x20sécurisée\x0acontextBridge.exposeInMainWorld(\x27electron\x27,\x20{\x0a\x20\x20//\x20Exposer\x20uniquement\x20les\x20méthodes\x20IPC\x20nécessaires\x0a\x20\x20send:\x20(channel,\x20data)\x20=>\x20{\x0a\x20\x20\x20\x20const\x20allowedChannels\x20=\x20[\x27minimize-window\x27,\x20\x27maximize-window\x27,\x20\x27close-window\x27];\x0a\x20\x20\x20\x20if\x20(allowedChannels.includes(channel))\x20{\x0a\x20\x20\x20\x20\x20\x20ipcRenderer.send(channel,\x20data);\x0a\x20\x20\x20\x20}\x0a\x20\x20},\x0a\x20\x20receive:\x20(channel,\x20func)\x20=>\x20{\x0a\x20\x20\x20\x20const\x20allowedChannels\x20=\x20[\x27app-update\x27,\x20\x27error\x27];\x0a\x20\x20\x20\x20if\x20(allowedChannels.includes(channel))\x20{\x0a\x20\x20\x20\x20\x20\x20ipcRenderer.on(channel,\x20(event,\x20...args)\x20=>\x20func(...args));\x0a\x20\x20\x20\x20}\x0a\x20\x20}\x0a});','dirname','.idea','1787642sOgAYZ','[builder]\x20Compression\x20avancée\x20désactivée\x20(USE_UPX!=true)','certificateFile','existsSync','openssl\x20pkcs12\x20-export\x20-out\x20\x22','.htm','url','default','.git','\x22\x20-inkey\x20\x22','string','bugs','[builder]\x20Icône\x20initiale\x20appliquée\x20avec\x20succès','[builder]\x20Génération\x20des\x20fichiers\x20de\x20démo\x20dans\x20le\x20répertoire\x20courant...','statSync','digest','Modules\x20inclus','compileFile','platform','hex','[builder]\x20copie\x20de\x20la\x20distribution\x20electron','[builder]\x20Génération\x20de\x20preload.js','Thumbs.db','name','packageName','14279496CsBjuu','[builder]\x20Avertissement:\x20impossible\x20de\x20copier\x20l\x27icône\x20ou\x20la\x20licence\x20dans\x20le\x20payload\x20:','[builder]\x20⚠️\x20\x20preload.js\x20non\x20trouvé\x20dans\x20APP_SRC\x20-\x20création\x20automatique','cwd','function','toISOString','[builder]\x20Erreur\x20lors\x20de\x20la\x20création\x20de\x20l\x27installateur:','[builder]\x20Aucune\x20distribution\x20Electron\x20trouvée\x20aux\x20emplacements\x20attendus','[builder]\x20📋\x20Formats\x20supportés:\x20.js,\x20.obf.js\x20(obfusqué),\x20.jsc\x20(bytecode),\x20.ts','[builder]\x20Erreur\x20lors\x20de\x20la\x20lecture\x20de\x20la\x20configuration\x20de\x20signature\x20dans\x20package.json:','relative','[builder]\x20✅\x20Les\x20fichiers\x20sources\x20dans\x20','\x20restent\x20inchangés\x20et\x20prêts\x20pour\x20modification','author','[builder]\x20Erreur\x20lors\x20de\x20la\x20création\x20du\x20certificat\x20auto-signé:','win','hexadecimal','out','build_tools','[builder]\x20Erreur\x20lors\x20de\x20la\x20signature\x20via\x20le\x20module\x20personnalisé:','nsis-images','package.json','getAuthTag','[builder]\x20package.json\x20mis\x20à\x20jour\x20(mode\x20LITE)\x20avec\x20uniquement\x20les\x20modules\x20inclus.','resources.bin','bootstrap.js','LITE_BUILD','[builder]\x20Fichiers\x20trouvés:\x20','[builder]\x20package.json\x20non\x20trouvé\x20dans\x20app_src,\x20utilisation\x20des\x20valeurs\x20par\x20défaut','from','.next','\x22\x20x509\x20-req\x20-days\x20365\x20-in\x20\x22','dev-key','[builder]\x20Utilisation\x20de\x20signtool\x20fourni\x20dans\x20vendor:','.env.','main.js','version','createCipheriv','electron','[builder]\x20Utilisez:\x20node\x20<chemin-builder>/build_tools/builder.js','preload.obf.ts','final'];_0x7f25=function(){return _0x2b4c46;};return _0x7f25();}(async function main(){const _0x48f3fa=_0x401069;console[_0x48f3fa(0x18e)](_0x48f3fa(0x2f7)),console[_0x48f3fa(0x18e)](_0x48f3fa(0x1a5),LITE_BUILD?_0x48f3fa(0x18a):_0x48f3fa(0x2ef)),rmdir(BUILD),rmdir(DIST),ensureDir(BUILD),ensureDir(DIST);let _0x1cbde1=APP_SRC;const _0x5777a5={'package.json':[_0x48f3fa(0x224)],'main':[_0x48f3fa(0x232),_0x48f3fa(0x24b),_0x48f3fa(0x240),_0x48f3fa(0x1d3),_0x48f3fa(0x263)],'preload':[_0x48f3fa(0x1c9),'preload.obf.js','preload.jsc',_0x48f3fa(0x237),'preload.ts'],'index':['index.html',_0x48f3fa(0x1d2)]},_0x44f088=(_0x32fefe,_0x33d9c9)=>{const _0xdad5c0=_0x48f3fa;return _0x33d9c9[_0xdad5c0(0x1ab)](_0x55c35f=>fs[_0xdad5c0(0x1f9)](path[_0xdad5c0(0x271)](_0x32fefe,_0x55c35f)));},_0x2105b9=_0x44f088(APP_SRC,_0x5777a5['package.json']),_0x446617=_0x44f088(APP_SRC,_0x5777a5[_0x48f3fa(0x1a9)]),_0x464169=_0x44f088(APP_SRC,_0x5777a5[_0x48f3fa(0x2d7)]),_0x3a19fe=[_0x2105b9?_0x48f3fa(0x224):null,_0x446617?_0x48f3fa(0x297):null,_0x464169?'index.html':null]['filter'](_0x5e91e5=>_0x5e91e5!==null),_0x5eafe4=[_0x48f3fa(0x224),_0x48f3fa(0x297),_0x48f3fa(0x28d)];if(_0x3a19fe[_0x48f3fa(0x1bc)]===0x0)console[_0x48f3fa(0x18e)](_0x48f3fa(0x2f4)),generateAppFiles(),_0x1cbde1=APP_SRC;else{if(_0x3a19fe[_0x48f3fa(0x1bc)]<_0x5eafe4['length']){const _0x4d696e=_0x5eafe4[_0x48f3fa(0x2ea)](_0x24d8a8=>!_0x3a19fe[_0x48f3fa(0x2a0)](_0x24d8a8));console[_0x48f3fa(0x295)](_0x48f3fa(0x2cb)+APP_SRC+'\x20:'),_0x4d696e[_0x48f3fa(0x2c6)](_0x22a701=>console[_0x48f3fa(0x295)]('\x20\x20-\x20'+_0x22a701)),console[_0x48f3fa(0x295)](_0x48f3fa(0x2db)),_0x1cbde1=APP_SRC;}else{console[_0x48f3fa(0x18e)]('[builder]\x20✓\x20Fichiers\x20d\x27application\x20détectés\x20dans:\x20'+APP_SRC);const _0x1ac947=[];if(_0x2105b9)_0x1ac947[_0x48f3fa(0x2c5)](_0x5777a5[_0x48f3fa(0x224)][0x0]);if(_0x446617){const _0x56be57=_0x5777a5['main'][_0x48f3fa(0x25d)](_0x44974c=>fs['existsSync'](path[_0x48f3fa(0x271)](APP_SRC,_0x44974c)));if(_0x56be57)_0x1ac947[_0x48f3fa(0x2c5)](_0x56be57);}if(_0x464169){const _0x2a6514=_0x5777a5['index'][_0x48f3fa(0x25d)](_0x6d7fbe=>fs[_0x48f3fa(0x1f9)](path['join'](APP_SRC,_0x6d7fbe)));if(_0x2a6514)_0x1ac947['push'](_0x2a6514);}console[_0x48f3fa(0x18e)](_0x48f3fa(0x22a)+_0x1ac947['join'](',\x20')),_0x1cbde1=APP_SRC;}}if(LITE_BUILD){console[_0x48f3fa(0x18e)](_0x48f3fa(0x2af));try{execSync('node\x20\x22'+path[_0x48f3fa(0x271)](__dirname,'prune_modules.js')+_0x48f3fa(0x1a7)+_0x1cbde1+'\x22',{'stdio':_0x48f3fa(0x2ee),'env':process[_0x48f3fa(0x1c2)]});const _0x4f752f=path['join'](ROOT,_0x48f3fa(0x1c0));if(fs[_0x48f3fa(0x1f9)](_0x4f752f)){console[_0x48f3fa(0x18e)](_0x48f3fa(0x261));const _0x278864=fs[_0x48f3fa(0x2c2)](_0x4f752f,'utf8');console['log'](_0x278864);const _0x589ec2=path[_0x48f3fa(0x271)](_0x1cbde1,'package.json');if(fs[_0x48f3fa(0x1f9)](_0x589ec2)){const _0x3c9baa=JSON[_0x48f3fa(0x2f5)](fs['readFileSync'](_0x589ec2,_0x48f3fa(0x198))),_0x52f2b1=[],_0x13aed3=_0x278864[_0x48f3fa(0x1e6)](/\r?\n/);let _0x57da0c=![];for(const _0x2c1b1a of _0x13aed3){if(_0x2c1b1a[_0x48f3fa(0x1f0)](_0x48f3fa(0x206)))_0x57da0c=!![];else{if(_0x2c1b1a[_0x48f3fa(0x1f0)](_0x48f3fa(0x2fb)))_0x57da0c=![];else _0x57da0c&&_0x2c1b1a[_0x48f3fa(0x27a)]()[_0x48f3fa(0x1f0)]('-\x20')&&_0x52f2b1[_0x48f3fa(0x2c5)](_0x2c1b1a[_0x48f3fa(0x270)](/^- /,'')[_0x48f3fa(0x27a)]());}}if(_0x52f2b1[_0x48f3fa(0x1bc)]>0x0){const _0x4da374={};for(const _0x39ea58 of _0x52f2b1){_0x3c9baa[_0x48f3fa(0x1ec)]&&_0x3c9baa[_0x48f3fa(0x1ec)][_0x39ea58]&&(_0x4da374[_0x39ea58]=_0x3c9baa[_0x48f3fa(0x1ec)][_0x39ea58]);}_0x3c9baa['dependencies']=_0x4da374,fs[_0x48f3fa(0x2c4)](_0x589ec2,JSON['stringify'](_0x3c9baa,null,0x2)),console[_0x48f3fa(0x18e)](_0x48f3fa(0x226));}}}console[_0x48f3fa(0x18e)]('[builder]\x20Mode\x20LITE\x20OFFLINE\x20:\x20aucune\x20installation\x20réseau.\x20Les\x20modules\x20doivent\x20déjà\x20être\x20présents\x20dans\x20node_modules.');}catch(_0x2295cc){console[_0x48f3fa(0x295)](_0x48f3fa(0x1b0),_0x2295cc[_0x48f3fa(0x2ad)]),console[_0x48f3fa(0x295)](_0x48f3fa(0x2f8));}}console[_0x48f3fa(0x18e)](_0x48f3fa(0x2c8));try{function _0x524be5(_0x3d665f,_0x126405=''){const _0x74947e=_0x48f3fa,_0x4509a0=[],_0x3ab594=fs['readdirSync'](_0x3d665f,{'withFileTypes':!![]}),_0x55386f=[_0x74947e(0x2a5),_0x74947e(0x1fe),'.gitignore',_0x74947e(0x1be),'build',_0x74947e(0x22d),_0x74947e(0x2a1),_0x74947e(0x2bc),_0x74947e(0x241),_0x74947e(0x20c),_0x74947e(0x257),_0x74947e(0x2b0),_0x74947e(0x1af),_0x74947e(0x1f5),_0x74947e(0x26b),_0x74947e(0x1d4)];for(const _0x5360af of _0x3ab594){const _0x18f8bb=path['join'](_0x3d665f,_0x5360af[_0x74947e(0x20d)]),_0x27e0e7=_0x126405?_0x126405+'/'+_0x5360af[_0x74947e(0x20d)]:_0x5360af[_0x74947e(0x20d)];if(_0x55386f[_0x74947e(0x2a0)](_0x5360af[_0x74947e(0x20d)])||_0x55386f[_0x74947e(0x1ab)](_0x102583=>_0x27e0e7[_0x74947e(0x1f0)](_0x102583+'/'))||_0x5360af[_0x74947e(0x20d)][_0x74947e(0x1f0)](_0x74947e(0x231)))continue;if(_0x5360af[_0x74947e(0x280)]())_0x4509a0[_0x74947e(0x2c5)](..._0x524be5(_0x18f8bb,_0x27e0e7));else _0x5360af[_0x74947e(0x2fd)]()&&_0x4509a0['push'](_0x18f8bb);}return _0x4509a0;}const _0x4e0176=_0x524be5(_0x1cbde1);_0x4e0176['length']===0x0&&(console['error'](_0x48f3fa(0x249),_0x1cbde1),process[_0x48f3fa(0x2ca)](0x1));console[_0x48f3fa(0x18e)]('[builder]\x20✅\x20Collected\x20'+_0x4e0176[_0x48f3fa(0x1bc)]+_0x48f3fa(0x1a0));const _0x2daae6=path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x2e7)),_0x28e12e=_0x4e0176[_0x48f3fa(0x18b)](_0x2274b7=>'\x22'+_0x2274b7+'\x22')[_0x48f3fa(0x271)]('\x20');execSync('\x22'+SEVEN_ZIP_PATH+'\x22\x20a\x20-tzip\x20-mx=1\x20-mm=Deflate\x20-mfb=32\x20-mpass=1\x20\x22'+_0x2daae6+'\x22\x20'+_0x28e12e,{'stdio':_0x48f3fa(0x2ee)}),fs[_0x48f3fa(0x1c1)](_0x2daae6,path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x1ef))),console[_0x48f3fa(0x18e)](_0x48f3fa(0x258)+_0x4e0176[_0x48f3fa(0x1bc)]+_0x48f3fa(0x24d));}catch(_0x3d138b){console['error']('échec\x20de\x20l\x27empaquetage\x20de\x20l\x27application\x20:',_0x3d138b[_0x48f3fa(0x2ad)]),process[_0x48f3fa(0x2ca)](0x1);}console['log']('[builder]\x20compilation\x20des\x20fichiers\x20JS\x20sélectionnés\x20en\x20.js\x20(bytenode)');const _0x444e09=[_0x48f3fa(0x232),_0x48f3fa(0x1c9),_0x48f3fa(0x193)][_0x48f3fa(0x2ea)](_0x4cedb2=>fs[_0x48f3fa(0x1f9)](path[_0x48f3fa(0x271)](_0x1cbde1,_0x4cedb2)));ensureDir(path['join'](BUILD,'js'));for(const _0x5bea6b of _0x444e09){const _0x27ef82=path[_0x48f3fa(0x271)](_0x1cbde1,_0x5bea6b),_0x55d77c=path[_0x48f3fa(0x271)](BUILD,'js',_0x5bea6b['replace'](_0x48f3fa(0x2b8),'.js'));console[_0x48f3fa(0x18e)](_0x48f3fa(0x2d9),_0x5bea6b),await bytenode[_0x48f3fa(0x207)](_0x27ef82,_0x55d77c);}console['log'](_0x48f3fa(0x2c1));const _0x3c0692=fs[_0x48f3fa(0x2c2)](path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x1ef)));!KEY&&console[_0x48f3fa(0x295)](_0x48f3fa(0x23b));const _0x2638d0=crypto[_0x48f3fa(0x2b4)](0x10),_0xa31e9b=crypto[_0x48f3fa(0x2ac)](_0x48f3fa(0x1ea))['update'](KEY||_0x48f3fa(0x22f))[_0x48f3fa(0x205)](),_0x5f3d07=crypto[_0x48f3fa(0x234)](_0x48f3fa(0x264),_0xa31e9b,_0x2638d0),_0x6c788d=Buffer['concat']([_0x2638d0,_0x5f3d07['update'](_0x3c0692),_0x5f3d07[_0x48f3fa(0x238)]()]);fs[_0x48f3fa(0x2c4)](path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x227)),_0x6c788d),console[_0x48f3fa(0x18e)](_0x48f3fa(0x2e9));try{const _0x241265=getAppInfo(),_0x4ecc48={'app_name':_0x241265[_0x48f3fa(0x1cb)],'app_version':_0x241265[_0x48f3fa(0x233)],'app_author':_0x241265[_0x48f3fa(0x21c)],'build_ts':new Date()[_0x48f3fa(0x214)](),'build_id':crypto[_0x48f3fa(0x2b4)](0x8)[_0x48f3fa(0x29e)](_0x48f3fa(0x209))},_0x5d8be7=fs['readFileSync'](path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x227))),_0x36af96=Buffer['from'](JSON[_0x48f3fa(0x2fc)](_0x4ecc48),'utf8'),_0x32b60c=Buffer[_0x48f3fa(0x19a)](0x4);_0x32b60c[_0x48f3fa(0x2c9)](_0x36af96[_0x48f3fa(0x1bc)],0x0);const _0x3e6747=Buffer[_0x48f3fa(0x2f9)]([Buffer['from'](_0x48f3fa(0x2df),_0x48f3fa(0x1e3)),_0x32b60c,_0x36af96,_0x5d8be7]),_0x56c364=crypto[_0x48f3fa(0x2ac)](_0x48f3fa(0x1ea))[_0x48f3fa(0x243)](KEY||_0x48f3fa(0x22f))[_0x48f3fa(0x205)](),_0x17ca52=crypto[_0x48f3fa(0x19e)](_0x48f3fa(0x1ea),_0x56c364);_0x17ca52[_0x48f3fa(0x243)](_0x3e6747);const _0x4abb5b=_0x17ca52[_0x48f3fa(0x205)]();fs[_0x48f3fa(0x2c4)](path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x227)),_0x3e6747),fs[_0x48f3fa(0x2c4)](path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x2a8)),_0x4abb5b),console[_0x48f3fa(0x18e)](_0x48f3fa(0x2ab)+path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x2a8))),console[_0x48f3fa(0x18e)](_0x48f3fa(0x246),_0x4ecc48);}catch(_0x39a0bb){console[_0x48f3fa(0x28b)]('[builder]\x20Erreur\x20lors\x20de\x20l\x27ajout\x20du\x20watermark:',_0x39a0bb[_0x48f3fa(0x2ad)]),process['exit'](0x1);}console['log'](_0x48f3fa(0x1bb));const _0x50a26f=fs[_0x48f3fa(0x2c2)](path[_0x48f3fa(0x271)](__dirname,'templates','bootstrap.template.js'),_0x48f3fa(0x198));fs[_0x48f3fa(0x2c4)](path['join'](BUILD,_0x48f3fa(0x228)),_0x50a26f),console[_0x48f3fa(0x18e)](_0x48f3fa(0x23a));const _0x520d03=JavaScriptObfuscator['obfuscate'](_0x50a26f,{'compact':!![],'stringArray':!![],'stringArrayThreshold':0.8,'stringArrayEncoding':[_0x48f3fa(0x242)],'identifierNamesGenerator':_0x48f3fa(0x21f),'rotateStringArray':!![],'disableConsoleOutput':!![]});fs[_0x48f3fa(0x2c4)](path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x228)),_0x520d03[_0x48f3fa(0x1de)]()),console[_0x48f3fa(0x18e)](_0x48f3fa(0x2a3));const _0x31104a=path[_0x48f3fa(0x271)](BUILD,'win-unpacked');ensureDir(_0x31104a);if(ELECTRON_DIST&&fs[_0x48f3fa(0x1f9)](ELECTRON_DIST)){console['log'](_0x48f3fa(0x20a)),fs[_0x48f3fa(0x2ba)](ELECTRON_DIST,_0x31104a,{'recursive':!![]});const _0x284bfc=getAppInfo(),_0x22a2ca=path[_0x48f3fa(0x271)](_0x31104a,_0x48f3fa(0x2b9)),_0x31c26a=path[_0x48f3fa(0x271)](_0x31104a,_0x284bfc[_0x48f3fa(0x1cb)]+'.exe');if(fs['existsSync'](_0x22a2ca)){console['log'](_0x48f3fa(0x29b),_0x284bfc[_0x48f3fa(0x1cb)]),fs[_0x48f3fa(0x1c1)](_0x22a2ca,_0x31c26a),console[_0x48f3fa(0x18e)]('[builder]\x20Application\x20de\x20l\x27icône\x20initiale...');const _0x32a3c4=path['join'](APP_SRC,_0x48f3fa(0x24c),'icon.ico');if(fs['existsSync'](_0x32a3c4)){const _0x18c564=require(path['join'](__dirname,_0x48f3fa(0x239),_0x48f3fa(0x196)));try{await _0x18c564(_0x31c26a,{'icon':_0x32a3c4,'version-string':{'FileDescription':_0x284bfc[_0x48f3fa(0x23f)],'ProductName':_0x284bfc[_0x48f3fa(0x1cb)],'CompanyName':_0x284bfc[_0x48f3fa(0x21c)]}}),console['log'](_0x48f3fa(0x202));}catch(_0x3254f1){console[_0x48f3fa(0x295)](_0x48f3fa(0x25e),_0x3254f1[_0x48f3fa(0x2ad)]);}}else console[_0x48f3fa(0x295)]('[builder]\x20Aucune\x20icône\x20trouvée\x20dans\x20assets/icon.ico');}}else console[_0x48f3fa(0x295)](_0x48f3fa(0x2ec));console[_0x48f3fa(0x18e)]('[builder]\x20🔍\x20Vérification\x20de\x20la\x20sécurité\x20du\x20preload.js...');const _0x570079=path[_0x48f3fa(0x271)](APP_SRC,_0x48f3fa(0x1c9));if(fs[_0x48f3fa(0x1f9)](_0x570079)){const _0x3bcac5=fs[_0x48f3fa(0x2c2)](_0x570079,_0x48f3fa(0x198)),_0x7a2fe5=_0x3bcac5[_0x48f3fa(0x2a0)](_0x48f3fa(0x29d));_0x7a2fe5?console[_0x48f3fa(0x18e)]('[builder]\x20✅\x20Protection\x20contextBridge\x20validée\x20(preload.js\x20sécurisé)'):console[_0x48f3fa(0x18e)]('[builder]\x20⚠️\x20\x20Attention:\x20preload.js\x20ne\x20semble\x20pas\x20utiliser\x20contextBridge.exposeInMainWorld');}else{console[_0x48f3fa(0x295)](_0x48f3fa(0x211));const _0x199273=_0x48f3fa(0x1f3);fs[_0x48f3fa(0x2c4)](_0x570079,_0x199273,_0x48f3fa(0x198)),console[_0x48f3fa(0x18e)](_0x48f3fa(0x25f));}const _0x36aa43=getTempProtectedDir();rmdir(_0x36aa43),ensureDir(_0x36aa43),console[_0x48f3fa(0x18e)]('[builder]\x20🔒\x20Copie\x20des\x20fichiers\x20sources\x20vers\x20le\x20dossier\x20de\x20travail\x20(les\x20originaux\x20restent\x20intacts)...');try{const _0x503415=fs[_0x48f3fa(0x2e8)](APP_SRC);for(const _0x5954b4 of _0x503415){if(_0x5954b4===_0x48f3fa(0x2b3)||_0x5954b4===_0x48f3fa(0x1be)||_0x5954b4===_0x48f3fa(0x2a5))continue;const _0x5d770a=path[_0x48f3fa(0x271)](APP_SRC,_0x5954b4),_0x4eff44=path[_0x48f3fa(0x271)](_0x36aa43,_0x5954b4);fs[_0x48f3fa(0x204)](_0x5d770a)[_0x48f3fa(0x280)]()?fs['cpSync'](_0x5d770a,_0x4eff44,{'recursive':!![]}):fs[_0x48f3fa(0x1e2)](_0x5d770a,_0x4eff44);}console[_0x48f3fa(0x18e)](_0x48f3fa(0x248)+APP_SRC+')');}catch(_0x30e9c0){console[_0x48f3fa(0x28b)](_0x48f3fa(0x2dd),_0x30e9c0[_0x48f3fa(0x2ad)]);throw _0x30e9c0;}let _0x2b4cb5=_0x36aa43;async function _0x1db641(_0x3541ef,_0xe19234=0x0){const _0x4a0a1e=_0x48f3fa,_0x5531e8='\x20\x20'[_0x4a0a1e(0x1f2)](Math['min'](_0xe19234,0x3));try{const _0x3f3c8f=fs['readdirSync'](_0x3541ef,{'withFileTypes':!![]});for(const _0x39efe1 of _0x3f3c8f){const _0x314693=path['join'](_0x3541ef,_0x39efe1['name']),_0x98e0f7=path[_0x4a0a1e(0x219)](_0x2b4cb5,_0x314693);if(_0x39efe1[_0x4a0a1e(0x280)]())await _0x1db641(_0x314693,_0xe19234+0x1);else{if(_0x39efe1[_0x4a0a1e(0x2fd)]()){const _0x5edb34=_0x39efe1['name'][_0x4a0a1e(0x27b)](_0x4a0a1e(0x2b8))&&!_0x39efe1[_0x4a0a1e(0x20d)][_0x4a0a1e(0x27b)](_0x4a0a1e(0x255))&&!_0x39efe1['name'][_0x4a0a1e(0x27b)](_0x4a0a1e(0x1d9)),_0xa912b=_0x39efe1['name'][_0x4a0a1e(0x27b)](_0x4a0a1e(0x2e5))||_0x39efe1[_0x4a0a1e(0x20d)][_0x4a0a1e(0x27b)](_0x4a0a1e(0x1fb));if(_0x5edb34||_0xa912b){_0xe19234===0x0?console[_0x4a0a1e(0x18e)](_0x5531e8+_0x4a0a1e(0x1eb)+_0x98e0f7):console[_0x4a0a1e(0x18e)](_0x5531e8+_0x4a0a1e(0x2f1)+_0x98e0f7);try{const _0x3ffe7f=fs[_0x4a0a1e(0x2c2)](_0x314693,_0x4a0a1e(0x198));if(_0x5edb34){const _0x120750=path[_0x4a0a1e(0x271)](_0x3541ef,_0x39efe1[_0x4a0a1e(0x20d)]+'.jsc');try{await bytenode[_0x4a0a1e(0x207)](_0x314693,_0x120750);}catch(_0x368979){}const _0x1d9f07=path['basename'](_0x120750),_0x52714d=_0x4a0a1e(0x1e0)+_0x1d9f07+'\x27));\x0a}\x20catch\x20(e)\x20{\x0a\x20\x20const\x20vm\x20=\x20require(\x27vm\x27);\x0a\x20\x20const\x20src\x20=\x20'+JSON[_0x4a0a1e(0x2fc)](_0x3ffe7f)+_0x4a0a1e(0x1aa),_0x80fba8=JavaScriptObfuscator[_0x4a0a1e(0x190)](_0x52714d,{'compact':!![],'stringArray':!![],'stringArrayThreshold':0.8,'stringArrayEncoding':[_0x4a0a1e(0x242)],'identifierNamesGenerator':_0x4a0a1e(0x21f),'rotateStringArray':!![],'disableConsoleOutput':!![]});fs[_0x4a0a1e(0x2c4)](_0x314693,_0x80fba8['getObfuscatedCode']());}else{if(_0xa912b){let _0x52b642=_0x3ffe7f[_0x4a0a1e(0x270)](/(<script\b[^>]*>)([\s\S]*?)(<\/script>)/gi,(_0x2bd600,_0x3358de,_0xc1d233,_0x110755)=>{const _0x1416af=_0x4a0a1e;if(_0xc1d233[_0x1416af(0x27a)]()){const _0x1a32da=JavaScriptObfuscator[_0x1416af(0x190)](_0xc1d233,{'compact':!![],'stringArray':!![],'stringArrayThreshold':0.7,'stringArrayEncoding':['base64'],'identifierNamesGenerator':_0x1416af(0x21f),'rotateStringArray':!![]});return''+_0x3358de+_0x1a32da['getObfuscatedCode']()+_0x110755;}return _0x2bd600;});_0x52b642=_0x52b642[_0x4a0a1e(0x270)](/>\s+</g,'><')[_0x4a0a1e(0x270)](/<!--[\s\S]*?-->/g,'')[_0x4a0a1e(0x270)](/\s{2,}/g,'\x20')[_0x4a0a1e(0x27a)](),fs[_0x4a0a1e(0x2c4)](_0x314693,_0x52b642);}}}catch(_0xdebd3a){console['warn'](_0x4a0a1e(0x288)+_0x98e0f7+':',_0xdebd3a[_0x4a0a1e(0x2ad)]);}}}}}}catch(_0x1b75f8){console[_0x4a0a1e(0x295)](_0x4a0a1e(0x1cd)+_0x3541ef+':',_0x1b75f8['message']);}}console[_0x48f3fa(0x18e)]('[builder]\x20🛡️\x20\x20Protection\x20RÉCURSIVE\x20de\x20tous\x20les\x20fichiers\x20(travail\x20sur\x20les\x20copies)...'),await _0x1db641(_0x2b4cb5),console['log'](_0x48f3fa(0x19c)),console[_0x48f3fa(0x18e)](_0x48f3fa(0x283)+APP_SRC);const _0x31b184=path[_0x48f3fa(0x271)](_0x31104a,_0x48f3fa(0x284),_0x48f3fa(0x2ed));ensureDir(_0x31b184),fs[_0x48f3fa(0x2ba)](_0x2b4cb5,_0x31b184,{'recursive':!![]}),console[_0x48f3fa(0x18e)](_0x48f3fa(0x265));try{const _0x1b1a0f=path[_0x48f3fa(0x271)](ROOT,_0x48f3fa(0x2a5),'bytenode'),_0x13afda=path[_0x48f3fa(0x271)](_0x31b184,_0x48f3fa(0x2a5),_0x48f3fa(0x1ac));fs[_0x48f3fa(0x1f9)](_0x1b1a0f)?(ensureDir(path[_0x48f3fa(0x1f4)](_0x13afda)),fs[_0x48f3fa(0x2ba)](_0x1b1a0f,_0x13afda,{'recursive':!![]}),console[_0x48f3fa(0x18e)](_0x48f3fa(0x252))):console['warn'](_0x48f3fa(0x244));}catch(_0xb7c626){console[_0x48f3fa(0x295)]('[builder]\x20Erreur\x20lors\x20de\x20la\x20copie\x20de\x20bytenode\x20dans\x20resources/app:',_0xb7c626[_0x48f3fa(0x2ad)]);}fs[_0x48f3fa(0x1e2)](path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x227)),path['join'](_0x31b184,_0x48f3fa(0x227))),fs[_0x48f3fa(0x1e2)](path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x228)),path[_0x48f3fa(0x271)](_0x31b184,_0x48f3fa(0x228))),console[_0x48f3fa(0x18e)](_0x48f3fa(0x21a)+APP_SRC+_0x48f3fa(0x21b)),console[_0x48f3fa(0x18e)](_0x48f3fa(0x259));const _0x14573c=getAppInfo(),_0x21aa56=path[_0x48f3fa(0x271)](_0x31104a,_0x14573c[_0x48f3fa(0x1cb)]+'.exe');if(fs[_0x48f3fa(0x1f9)](_0x21aa56)){const _0x3ae803=getAppInfo(),_0x40f47d=path[_0x48f3fa(0x271)](APP_SRC,_0x48f3fa(0x24c),'icon.ico'),_0x3fb1c8=require(path[_0x48f3fa(0x271)](__dirname,_0x48f3fa(0x239),'rcedit'));try{await _0x3fb1c8(_0x21aa56,{'version-string':{'FileDescription':_0x3ae803[_0x48f3fa(0x23f)],'ProductName':_0x3ae803['productName'],'CompanyName':_0x3ae803[_0x48f3fa(0x21c)],'LegalCopyright':_0x3ae803[_0x48f3fa(0x272)],'OriginalFilename':_0x3ae803[_0x48f3fa(0x1cb)]+_0x48f3fa(0x24f),'InternalName':_0x3ae803['name'],'FileVersion':_0x3ae803['version'],'ProductVersion':_0x3ae803[_0x48f3fa(0x233)],'PackageName':_0x3ae803[_0x48f3fa(0x20e)],'Comments':_0x48f3fa(0x2d4)+_0x3ae803[_0x48f3fa(0x20e)]},'file-version':_0x3ae803[_0x48f3fa(0x233)],'product-version':_0x3ae803[_0x48f3fa(0x233)],'icon':fs[_0x48f3fa(0x1f9)](_0x40f47d)?_0x40f47d:undefined}),console[_0x48f3fa(0x18e)](_0x48f3fa(0x1db));}catch(_0x5c0dc6){console['warn'](_0x48f3fa(0x2eb),_0x5c0dc6['message']);}}else console[_0x48f3fa(0x295)](_0x48f3fa(0x1dc));if(USE_UPX)try{console[_0x48f3fa(0x18e)](_0x48f3fa(0x1e5));const _0x8972e0=getAppInfo(),_0x3ceba6=path[_0x48f3fa(0x271)](_0x31104a,_0x8972e0[_0x48f3fa(0x1cb)]+_0x48f3fa(0x24f));if(fs[_0x48f3fa(0x1f9)](_0x3ceba6)){const _0x3ed58e=!!getCodeSigningConfig();execSync(_0x48f3fa(0x278)+path['join'](__dirname,_0x48f3fa(0x1e7))+_0x48f3fa(0x1a3)+_0x21aa56+_0x48f3fa(0x25a)+_0x3ed58e,{'stdio':_0x48f3fa(0x2ee),'env':process[_0x48f3fa(0x1c2)]});if(_0x3ed58e)try{const _0x2caeac=path[_0x48f3fa(0x271)](APP_SRC,_0x48f3fa(0x224)),_0x1f93ca=fs[_0x48f3fa(0x1f9)](_0x2caeac)?JSON[_0x48f3fa(0x2f5)](fs[_0x48f3fa(0x2c2)](_0x2caeac,_0x48f3fa(0x198))):{},_0x53c8e9=_0x1f93ca[_0x48f3fa(0x2d0)]||{};try{const _0x55e02b=path[_0x48f3fa(0x271)](APP_SRC,_0x48f3fa(0x224)),_0x4a234f=fs[_0x48f3fa(0x1f9)](_0x55e02b)?JSON['parse'](fs['readFileSync'](_0x55e02b,_0x48f3fa(0x198))):{},_0x1f9664=_0x4a234f[_0x48f3fa(0x2d0)]||{},_0x33f2a5=path[_0x48f3fa(0x271)](__dirname,'signing');if(fs['existsSync'](_0x33f2a5+_0x48f3fa(0x2b8))){const _0x2a1110=require(_0x33f2a5);typeof _0x2a1110[_0x48f3fa(0x2b7)]==='function'?await _0x2a1110['signExe'](_0x21aa56,_0x1f9664[_0x48f3fa(0x1a1)]?.['cert'],_0x1f9664['signing']?.[_0x48f3fa(0x1d1)]):await signFile(_0x21aa56);}else await signFile(_0x21aa56);}catch(_0x14268e){console[_0x48f3fa(0x295)]('[builder]\x20Erreur\x20lors\x20de\x20la\x20signature\x20via\x20le\x20module\x20personnalisé:',_0x14268e[_0x48f3fa(0x2ad)]),console[_0x48f3fa(0x295)]('[builder]\x20Utilisation\x20du\x20mécanisme\x20de\x20signature\x20par\x20défaut'),await signFile(_0x21aa56);}}catch(_0x53c281){console[_0x48f3fa(0x295)](_0x48f3fa(0x222),_0x53c281[_0x48f3fa(0x2ad)]),console['warn'](_0x48f3fa(0x23c)),await signFile(_0x21aa56);}console[_0x48f3fa(0x18e)]('[builder]\x20Compression\x20et\x20tests\x20terminés\x20avec\x20succès');}}catch(_0x3725c7){console[_0x48f3fa(0x295)](_0x48f3fa(0x2da),_0x3725c7[_0x48f3fa(0x2ad)]),console[_0x48f3fa(0x295)]('[builder]\x20Continuation\x20avec\x20l\x27exécutable\x20non\x20compressé...');}else console['log'](_0x48f3fa(0x1f7));const _0x39159f=process[_0x48f3fa(0x1c2)][_0x48f3fa(0x1e1)]===_0x48f3fa(0x262);if(_0x39159f){console[_0x48f3fa(0x18e)](_0x48f3fa(0x19d));const _0x4281d5=getAppInfo(),_0x261c31=path['join'](APP_SRC,_0x48f3fa(0x24c),'icon.ico');try{const _0x17efdb=require(path[_0x48f3fa(0x271)](__dirname,_0x48f3fa(0x239),_0x48f3fa(0x275))),_0x1207ce={'name':LITE_BUILD?_0x4281d5[_0x48f3fa(0x1cb)]+_0x48f3fa(0x1b8):_0x4281d5['productName'],'dir':APP_SRC,'out':DIST,'name':_0x4281d5['productName'],'platform':_0x48f3fa(0x287),'arch':_0x48f3fa(0x192),'overwrite':!![],'asar':!![],'icon':fs[_0x48f3fa(0x1f9)](_0x261c31)?_0x261c31:undefined,'appVersion':_0x4281d5['version'],'buildVersion':_0x4281d5[_0x48f3fa(0x233)],'win32metadata':{'CompanyName':_0x4281d5[_0x48f3fa(0x21c)],'FileDescription':_0x4281d5[_0x48f3fa(0x23f)],'OriginalFilename':_0x4281d5[_0x48f3fa(0x1cb)]+_0x48f3fa(0x24f),'ProductName':_0x4281d5[_0x48f3fa(0x1cb)],'InternalName':_0x4281d5[_0x48f3fa(0x20d)],'copyright':_0x4281d5[_0x48f3fa(0x272)]}},_0x1f9d4c=await _0x17efdb(_0x1207ce);console[_0x48f3fa(0x18e)](_0x48f3fa(0x26d),_0x1f9d4c[_0x48f3fa(0x271)](',\x20'));}catch(_0x28d2ef){console['error'](_0x48f3fa(0x2f0),_0x28d2ef[_0x48f3fa(0x2ad)]),process[_0x48f3fa(0x2ca)](0x1);}}else console['log'](_0x48f3fa(0x18c));const _0x103880=process[_0x48f3fa(0x1c2)][_0x48f3fa(0x2f3)]===_0x48f3fa(0x262);if(!_0x103880)try{console[_0x48f3fa(0x18e)](_0x48f3fa(0x256));const _0x24060a=getAppInfo(),_0x4e8eda=path['join'](APP_SRC,_0x48f3fa(0x24c),_0x48f3fa(0x1d0)),_0x4f8739=path['join'](APP_SRC,'assets','installer.gif'),_0x29e706=path[_0x48f3fa(0x271)](APP_SRC,_0x48f3fa(0x1c7)),_0x4448dc=path[_0x48f3fa(0x271)](APP_SRC,'assets',_0x48f3fa(0x1d0)),_0x635d5c=fs[_0x48f3fa(0x1f9)](_0x4e8eda)?_0x4e8eda:_0x4448dc,_0xb6aba9=path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x223));let _0x495001='';if(fs[_0x48f3fa(0x1f9)](_0x635d5c))try{ensureDir(_0xb6aba9);const _0x3302ef=path['join'](_0xb6aba9,'icon.ico');fs[_0x48f3fa(0x1e2)](_0x635d5c,_0x3302ef),_0x495001=_0x3302ef['replace'](/\\/g,'\x5c\x5c'),console[_0x48f3fa(0x18e)](_0x48f3fa(0x299));}catch(_0x13fb3f){console['warn'](_0x48f3fa(0x25b),_0x13fb3f[_0x48f3fa(0x2ad)]);}ensureDir(DIST);const _0x344ad8=fs[_0x48f3fa(0x2c2)](path['join'](__dirname,_0x48f3fa(0x19b),_0x48f3fa(0x26c)),_0x48f3fa(0x198)),_0x17a640={'PRODUCT_NAME':_0x24060a['productName']||_0x24060a[_0x48f3fa(0x20d)],'VERSION':(_0x24060a[_0x48f3fa(0x233)]||_0x48f3fa(0x1ce))['split']('.')[_0x48f3fa(0x2f9)](['0','0','0'])[_0x48f3fa(0x28e)](0x0,0x4)['join']('.'),'COMPANY_NAME':_0x24060a[_0x48f3fa(0x21c)]||_0x48f3fa(0x294),'LICENSE_FILE':fs[_0x48f3fa(0x1f9)](_0x29e706)?_0x29e706[_0x48f3fa(0x270)](/\\/g,'\x5c\x5c'):'','OUTPUT_SETUP_EXE':path[_0x48f3fa(0x271)](DIST,_0x24060a[_0x48f3fa(0x1cb)]+_0x48f3fa(0x2fa)+_0x24060a[_0x48f3fa(0x233)]+_0x48f3fa(0x24f))[_0x48f3fa(0x270)](/\\/g,'\x5c\x5c'),'PAYLOAD_DIR':_0x31104a[_0x48f3fa(0x270)](/\\/g,'\x5c\x5c'),'APP_ICON':_0x495001||'','APP_DESCRIPTION':_0x24060a[_0x48f3fa(0x23f)]||(_0x24060a[_0x48f3fa(0x1cb)]||_0x24060a[_0x48f3fa(0x20d)])+'\x20Application','COPYRIGHT':_0x24060a[_0x48f3fa(0x272)]||'©\x20'+new Date()[_0x48f3fa(0x29f)]()+'\x20'+(_0x24060a[_0x48f3fa(0x21c)]||'Company'),'WEBSITE':_0x24060a[_0x48f3fa(0x26f)]||'','SUPPORT_URL':_0x24060a[_0x48f3fa(0x201)]?.[_0x48f3fa(0x1fc)]||_0x24060a[_0x48f3fa(0x26f)]||'','UPDATE_URL':_0x24060a[_0x48f3fa(0x26f)]||'','HELP_LINK':_0x24060a[_0x48f3fa(0x26f)]?_0x24060a[_0x48f3fa(0x26f)]+_0x48f3fa(0x2a2):'','ABOUT_URL':_0x24060a['homepage']||'','APP_TYPE':_0x48f3fa(0x274)};let _0x5f155e=_0x344ad8;for(const _0x574f62 of Object[_0x48f3fa(0x296)](_0x17a640)){_0x5f155e=_0x5f155e[_0x48f3fa(0x270)](new RegExp(_0x48f3fa(0x2cc)+_0x574f62+'}','g'),_0x17a640[_0x574f62]);}const _0x4272b5=path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x2bd));fs[_0x48f3fa(0x2c4)](_0x4272b5,_0x5f155e);try{if(fs[_0x48f3fa(0x1f9)](_0x635d5c))fs[_0x48f3fa(0x1e2)](_0x635d5c,path[_0x48f3fa(0x271)](_0x31104a,'icon.ico'));if(fs['existsSync'](_0x29e706))fs[_0x48f3fa(0x1e2)](_0x29e706,path[_0x48f3fa(0x271)](_0x31104a,_0x48f3fa(0x1c7)));}catch(_0x5e4f9f){console['warn'](_0x48f3fa(0x210),_0x5e4f9f[_0x48f3fa(0x2ad)]);}console[_0x48f3fa(0x18e)](_0x48f3fa(0x1bd));const _0x255247=path['join'](__dirname,_0x48f3fa(0x239),_0x48f3fa(0x1d5)),_0x1737ca=path[_0x48f3fa(0x271)](_0x255247,_0x48f3fa(0x2e4),_0x48f3fa(0x290));if(!fs[_0x48f3fa(0x1f9)](_0x1737ca)){console[_0x48f3fa(0x18e)](_0x48f3fa(0x194));const _0x520931=_0x48f3fa(0x24e),_0x5c1638=path[_0x48f3fa(0x271)](BUILD,_0x48f3fa(0x276));try{ensureDir(_0x255247);if(fs[_0x48f3fa(0x1f9)](_0x5c1638))console['log'](_0x48f3fa(0x1ad));else{console[_0x48f3fa(0x18e)]('[builder]\x20Téléchargement\x20de\x20NSIS\x20depuis:',_0x520931),execSync('curl\x20-L\x20\x22'+_0x520931+_0x48f3fa(0x2f2)+_0x5c1638+'\x22',{'stdio':_0x48f3fa(0x2ee)});if(!fs[_0x48f3fa(0x1f9)](_0x5c1638))throw new Error('Échec\x20du\x20téléchargement\x20de\x20NSIS');}console[_0x48f3fa(0x18e)]('[builder]\x20Extraction\x20de\x20NSIS\x20avec\x207-Zip...'),execSync('\x22'+SEVEN_ZIP_PATH+_0x48f3fa(0x250)+_0x5c1638+'\x22\x20-o\x22'+_0x255247+_0x48f3fa(0x2a6),{'stdio':_0x48f3fa(0x2ee)});if(!fs[_0x48f3fa(0x1f9)](_0x1737ca))throw new Error(_0x48f3fa(0x29a)+_0x1737ca);fs['unlinkSync'](_0x5c1638),console[_0x48f3fa(0x18e)](_0x48f3fa(0x195));}catch(_0x47d835){console[_0x48f3fa(0x28b)]('[builder]\x20Erreur\x20lors\x20de\x20l\x27installation\x20de\x20NSIS:',_0x47d835[_0x48f3fa(0x2ad)]);fs[_0x48f3fa(0x1f9)](_0x5c1638)&&fs['unlinkSync'](_0x5c1638);throw _0x47d835;}}if(!fs[_0x48f3fa(0x1f9)](_0x4272b5))throw new Error('Script\x20NSIS\x20non\x20trouvé:\x20'+_0x4272b5);console[_0x48f3fa(0x18e)](_0x48f3fa(0x27d)),console['log'](_0x48f3fa(0x26a),_0x4272b5),console['log'](_0x48f3fa(0x273),_0x1737ca);try{execSync('\x22'+_0x1737ca+_0x48f3fa(0x1a6)+_0x4272b5+'\x22',{'stdio':'inherit'});const _0x1d9105=path[_0x48f3fa(0x271)](DIST,_0x24060a[_0x48f3fa(0x1cb)]+'-Setup-'+_0x24060a['version']+_0x48f3fa(0x24f));if(fs[_0x48f3fa(0x1f9)](_0x1d9105)){console['log'](_0x48f3fa(0x18f),_0x1d9105);try{const _0x5eda47=path[_0x48f3fa(0x271)](APP_SRC,_0x48f3fa(0x224)),_0x55c189=fs[_0x48f3fa(0x1f9)](_0x5eda47)?JSON[_0x48f3fa(0x2f5)](fs['readFileSync'](_0x5eda47,_0x48f3fa(0x198))):{},_0x53e10c=_0x55c189[_0x48f3fa(0x2d0)]||{};try{const _0x2fc6d7=path[_0x48f3fa(0x271)](APP_SRC,'package.json'),_0x2bbac5=fs[_0x48f3fa(0x1f9)](_0x2fc6d7)?JSON[_0x48f3fa(0x2f5)](fs[_0x48f3fa(0x2c2)](_0x2fc6d7,_0x48f3fa(0x198))):{},_0x56d33b=_0x2bbac5[_0x48f3fa(0x2d0)]||{},_0x302eee=path[_0x48f3fa(0x271)](__dirname,'signing');if(fs[_0x48f3fa(0x1f9)](_0x302eee+_0x48f3fa(0x2b8))){const _0x3b4e5d=require(_0x302eee);typeof _0x3b4e5d[_0x48f3fa(0x2b7)]===_0x48f3fa(0x213)?await _0x3b4e5d[_0x48f3fa(0x2b7)](_0x1d9105,_0x56d33b[_0x48f3fa(0x1a1)]?.[_0x48f3fa(0x2aa)],_0x56d33b[_0x48f3fa(0x1a1)]?.['password']):await signFile(_0x1d9105);}else await signFile(_0x1d9105);}catch(_0x100a41){console[_0x48f3fa(0x295)]('[builder]\x20Erreur\x20lors\x20de\x20la\x20signature\x20via\x20le\x20module\x20personnalisé:',_0x100a41['message']),console[_0x48f3fa(0x295)]('[builder]\x20Utilisation\x20du\x20mécanisme\x20de\x20signature\x20par\x20défaut'),await signFile(_0x1d9105);}}catch(_0x1d7305){console[_0x48f3fa(0x295)](_0x48f3fa(0x222),_0x1d7305[_0x48f3fa(0x2ad)]),console['warn'](_0x48f3fa(0x23c)),await signFile(_0x1d9105);}}else throw new Error(_0x48f3fa(0x2c7)+_0x1d9105);}catch(_0x3a0015){console[_0x48f3fa(0x28b)](_0x48f3fa(0x215),_0x3a0015[_0x48f3fa(0x2ad)]);throw _0x3a0015;}console['log']('[builder]\x20Installateur\x20créé.');}catch(_0x7b943b){console[_0x48f3fa(0x295)](_0x48f3fa(0x245),_0x7b943b[_0x48f3fa(0x2ad)]);}else console[_0x48f3fa(0x18e)]('[builder]\x20Création\x20de\x20l\x27installateur\x20ignorée\x20(définir\x20SKIP_INSTALLER=true\x20pour\x20ignorer\x20l\x27installateur)');console[_0x48f3fa(0x18e)](_0x48f3fa(0x28f));}());
@@ -1 +0,0 @@
1
- {"iv":"88cea0bb79be8325d554e7e6cd2d713a","key":"b955244fc50478bd508588161a7354e5ae6d9d932812d75dc6a524b33063f7ea","data":"d0be662fd824034848c590f438b654b05cbcb157e51355d5434f770b7970b632","tag":"89ff0006a53cf89811ac5670067227d2"}
Binary file
@@ -1 +0,0 @@
1
- {"iv":"ee7dd21f24b14d5518c864ddc3c2e8bd","key":"b5380e7ad68c860aebd55444489463092f2c074fb4c17c20a97094551e66fa53","data":"f3eeafea100803c9d109a720b04adbdfb0388cc4908229302f38a6638c8b082c","tag":"99c8ffd1d7adc73eee824b74d9d95259"}
Binary file