@profoundlogic/codermake 1.2.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/lib/ssh.js CHANGED
@@ -1 +1 @@
1
- (function(_0x18125d,_0x270cc3){const _0x176d8b=_0x4a16,_0x59aec6=_0x18125d();while(!![]){try{const _0x1e3612=parseInt(_0x176d8b(0x82))/0x1*(-parseInt(_0x176d8b(0x90))/0x2)+parseInt(_0x176d8b(0x84))/0x3+-parseInt(_0x176d8b(0x97))/0x4+parseInt(_0x176d8b(0x9a))/0x5*(-parseInt(_0x176d8b(0x8f))/0x6)+parseInt(_0x176d8b(0xa5))/0x7+parseInt(_0x176d8b(0x8b))/0x8+-parseInt(_0x176d8b(0x99))/0x9*(parseInt(_0x176d8b(0x9c))/0xa);if(_0x1e3612===_0x270cc3)break;else _0x59aec6['push'](_0x59aec6['shift']());}catch(_0x1655cb){_0x59aec6['push'](_0x59aec6['shift']());}}}(_0x1134,0xc5161));import{spawn}from'child_process';function _0x4a16(_0x545da7,_0xd86be0){_0x545da7=_0x545da7-0x82;const _0x113404=_0x1134();let _0x4a1616=_0x113404[_0x545da7];if(_0x4a16['lZkDfE']===undefined){var _0x48a793=function(_0x531d57){const _0x3e0d2f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x55eb1f='',_0xc4e4c7='';for(let _0x499b66=0x0,_0x566792,_0x2d79b2,_0x2ce749=0x0;_0x2d79b2=_0x531d57['charAt'](_0x2ce749++);~_0x2d79b2&&(_0x566792=_0x499b66%0x4?_0x566792*0x40+_0x2d79b2:_0x2d79b2,_0x499b66++%0x4)?_0x55eb1f+=String['fromCharCode'](0xff&_0x566792>>(-0x2*_0x499b66&0x6)):0x0){_0x2d79b2=_0x3e0d2f['indexOf'](_0x2d79b2);}for(let _0x15bd03=0x0,_0x47dc9a=_0x55eb1f['length'];_0x15bd03<_0x47dc9a;_0x15bd03++){_0xc4e4c7+='%'+('00'+_0x55eb1f['charCodeAt'](_0x15bd03)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc4e4c7);};_0x4a16['aRVuXc']=_0x48a793,_0x4a16['LLGhsk']={},_0x4a16['lZkDfE']=!![];}const _0x511c27=_0x113404[0x0],_0x9b82e5=_0x545da7+_0x511c27,_0x3bf413=_0x4a16['LLGhsk'][_0x9b82e5];return!_0x3bf413?(_0x4a1616=_0x4a16['aRVuXc'](_0x4a1616),_0x4a16['LLGhsk'][_0x9b82e5]=_0x4a1616):_0x4a1616=_0x3bf413,_0x4a1616;}import{readdirSync}from'fs';function _0x1134(){const _0x5d0ae7=['svHerxy','A1HUA1i','ndq0ndeWnfjqz2vvtq','u1niig1HC3rLCIbLEgL0zwqGD2L0AcbJB2rLia','mJmWBvDHq3v1','sfDRBfK','mJeXmZy5mNbzAMjuwG','q29UDhjVBfbLCNnPC3q9mtbT','C3rKAw8','t3L5A2y','ChvZAa','q29UDhjVBfbHDgG9','zwrUtwC','nJe3ntu4ngXzq2Hcua','q29UDhjVBe1HC3rLCJ15zxm','w3nZAf0','yLnTvMe','mJrWvfnKAhG','mJe5mKjXzKPbDq','C3rHCNrZv2L0Aa','u2vYDMvYqwXPDMvjBNrLCNzHBd02ma','u3rYAwn0sg9ZDeTLEunOzwnRAw5Npw5V','C29Tzq','thLyA2W','C3nO','ntC4ndKYvhjXtK9q','BM93','mJy2otrpzgTtBLq','otyZnZi1BwjSuhDK','C3nOlq','ndyWCerdzhbx','Bg9N','Dw5Yzwy','u1niig1HC3rLCIbKAwqGBM90ihn0yxj0ihDPDgHPBIa','ifbYzs1LC3rHyMXPC2HPBMCGu1niig1HC3rLCIbJB25Uzwn0Aw9UlI4U','qM15EvK','ifntscbTyxn0zxiGywXYzwfKEsbLEgLZDhmSihjLDxnPBMC'];_0x1134=function(){return _0x5d0ae7;};return _0x1134();}async function waitForSSHSocket(_0x4359c9,_0x2ffd48,_0x25829d=0x3a98){const _0x131779={'LyXkl':function(_0x208f13,_0x25ebc0){return _0x208f13(_0x25ebc0);}};return new Promise((_0x23165c,_0x56dd01)=>{const _0xd996b={'BmyyY':function(_0x56de98,_0x37b50e){return _0x56de98(_0x37b50e);},'ednMg':function(_0x28c633,_0x8c2a36){return _0x28c633(_0x8c2a36);}};let _0x3178b=![],_0x18bcf0=null;_0x2ffd48['on']('exit',_0x446f2e=>{const _0x39a74b=_0x4a16;_0x18bcf0=_0x446f2e,!_0x3178b&&_0x446f2e!==0x0&&(_0x3178b=!![],_0x131779[_0x39a74b(0x95)](_0x56dd01,new Error(_0x39a74b(0xa6)+_0x446f2e)));});const _0x5f1a00=Date['now'](),_0x46b05e=()=>{const _0x51f8f9=_0x4a16;if(_0x3178b)return;const _0x5ab76d=_0xd996b[_0x51f8f9(0xa1)](readdirSync,_0x4359c9);if(_0x5ab76d['some'](_0xd506dd=>_0xd506dd[_0x51f8f9(0x91)](_0x51f8f9(0x9b)))){_0x3178b=!![],_0x23165c();return;}if(Date[_0x51f8f9(0x98)]()-_0x5f1a00>=_0x25829d){_0x3178b=!![];const _0x14ff01=_0x18bcf0!==null?'\x20(process\x20exited\x20with\x20code\x20'+_0x18bcf0+')':'';_0xd996b[_0x51f8f9(0x8a)](_0x56dd01,new Error(_0x51f8f9(0x9f)+_0x25829d+'ms'+_0x14ff01));return;}setTimeout(_0x46b05e,0x64);};_0x46b05e();});}export async function establishSSHMaster(_0x39faa4,_0x3d572c={}){const _0x10cd18=_0x4a16,_0x3edcf2={'XIeiU':function(_0x1f68e5,_0x4cb9d7){return _0x1f68e5||_0x4cb9d7;},'bSmVa':function(_0x50c1eb,_0x8d4423){return _0x50c1eb(_0x8d4423);},'IXDEv':_0x10cd18(0x85),'HdQwW':_0x10cd18(0x93),'Oyykf':'PasswordAuthentication=no','HWklY':_0x10cd18(0x92),'kXnkR':function(_0xa3ac75,_0x4fdf07,_0x3a3936,_0x245499){return _0xa3ac75(_0x4fdf07,_0x3a3936,_0x245499);},'xscBn':_0x10cd18(0x96)},{host:_0xb606a5,user:_0x3e2be6,sshKey:_0x5cad59,debug:debug=![],debugPrefix:debugPrefix=_0x10cd18(0x8d)}=_0x3d572c;if(_0x3edcf2['XIeiU'](!_0xb606a5,!_0x3e2be6))return;const _0x489535=_0x3edcf2[_0x10cd18(0x8e)](readdirSync,_0x39faa4);if(_0x489535[_0x10cd18(0x94)](_0x2f8864=>_0x2f8864[_0x10cd18(0x91)](_0x10cd18(0x9b)))){if(debug)console['log'](debugPrefix+_0x10cd18(0xa2));return;}if(debug)console[_0x10cd18(0x9d)](debugPrefix+_0x10cd18(0xa0));const _0x116320=['-o',_0x10cd18(0x8c),'-o',_0x10cd18(0x89)+_0x39faa4+'/ssh-%C','-o',_0x3edcf2[_0x10cd18(0xa3)],'-o',_0x3edcf2['HdQwW'],'-o',_0x3edcf2[_0x10cd18(0x87)],'-o',_0x3edcf2[_0x10cd18(0x83)],'-o','ServerAliveCountMax=3','-N','-f'];_0x5cad59&&_0x116320[_0x10cd18(0x88)]('-i',_0x5cad59);_0x116320['push'](_0x3e2be6+'@'+_0xb606a5);const _0x5093aa={};_0x5093aa['detached']=!![],_0x5093aa[_0x10cd18(0x86)]='ignore';const _0x35d0f6=_0x3edcf2[_0x10cd18(0xa4)](spawn,_0x3edcf2['xscBn'],_0x116320,_0x5093aa);_0x35d0f6[_0x10cd18(0x9e)](),await _0x3edcf2['kXnkR'](waitForSSHSocket,_0x39faa4,_0x35d0f6,0x3a98);if(debug)console[_0x10cd18(0x9d)](debugPrefix+'\x20SSH\x20master\x20established');}
1
+ (function(_0x554af6,_0x681f0e){const _0x41c7d2=_0x59f4,_0x203a3d=_0x554af6();while(!![]){try{const _0x11436e=parseInt(_0x41c7d2(0x14d))/0x1*(parseInt(_0x41c7d2(0x167))/0x2)+-parseInt(_0x41c7d2(0x158))/0x3*(parseInt(_0x41c7d2(0x155))/0x4)+-parseInt(_0x41c7d2(0x14e))/0x5*(parseInt(_0x41c7d2(0x15b))/0x6)+parseInt(_0x41c7d2(0x168))/0x7*(parseInt(_0x41c7d2(0x15f))/0x8)+parseInt(_0x41c7d2(0x149))/0x9*(-parseInt(_0x41c7d2(0x161))/0xa)+parseInt(_0x41c7d2(0x16c))/0xb+parseInt(_0x41c7d2(0x16e))/0xc;if(_0x11436e===_0x681f0e)break;else _0x203a3d['push'](_0x203a3d['shift']());}catch(_0x4cfa05){_0x203a3d['push'](_0x203a3d['shift']());}}}(_0x18f7,0x9210f));import{spawn}from'child_process';import{readdirSync}from'fs';function _0x59f4(_0x3b3007,_0x34847f){_0x3b3007=_0x3b3007-0x147;const _0x18f7fd=_0x18f7();let _0x59f451=_0x18f7fd[_0x3b3007];if(_0x59f4['IMCQSJ']===undefined){var _0x141923=function(_0x33db49){const _0x4bb99d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29dee3='',_0x396d73='';for(let _0x49329e=0x0,_0x385c69,_0x2560f6,_0xf06680=0x0;_0x2560f6=_0x33db49['charAt'](_0xf06680++);~_0x2560f6&&(_0x385c69=_0x49329e%0x4?_0x385c69*0x40+_0x2560f6:_0x2560f6,_0x49329e++%0x4)?_0x29dee3+=String['fromCharCode'](0xff&_0x385c69>>(-0x2*_0x49329e&0x6)):0x0){_0x2560f6=_0x4bb99d['indexOf'](_0x2560f6);}for(let _0x1448b2=0x0,_0x20959b=_0x29dee3['length'];_0x1448b2<_0x20959b;_0x1448b2++){_0x396d73+='%'+('00'+_0x29dee3['charCodeAt'](_0x1448b2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x396d73);};_0x59f4['RSGhFB']=_0x141923,_0x59f4['GODxYG']={},_0x59f4['IMCQSJ']=!![];}const _0x433eaa=_0x18f7fd[0x0],_0x185318=_0x3b3007+_0x433eaa,_0x148afa=_0x59f4['GODxYG'][_0x185318];return!_0x148afa?(_0x59f451=_0x59f4['RSGhFB'](_0x59f451),_0x59f4['GODxYG'][_0x185318]=_0x59f451):_0x59f451=_0x148afa,_0x59f451;}async function waitForSSHSocket(_0x29ea0e,_0x486928,_0x1968e5=0x3a98){const _0x1f4e7e={'qdJDE':function(_0x225001,_0x53718e){return _0x225001(_0x53718e);},'LCqTP':function(_0x4126b2){return _0x4126b2();}};return new Promise((_0x1fac7d,_0x40821f)=>{const _0x1b1d5e=_0x59f4;let _0xb5cd87=![],_0xe2e3b6=null;_0x486928['on'](_0x1b1d5e(0x150),_0x136c9d=>{const _0x28ca96=_0x1b1d5e;_0xe2e3b6=_0x136c9d,!_0xb5cd87&&_0x136c9d!==0x0&&(_0xb5cd87=!![],_0x40821f(new Error(_0x28ca96(0x157)+_0x136c9d)));});const _0x1c5eb7=Date[_0x1b1d5e(0x15d)](),_0x41dc68=()=>{const _0x1a5699=_0x1b1d5e;if(_0xb5cd87)return;const _0xb418fe=_0x1f4e7e['qdJDE'](readdirSync,_0x29ea0e);if(_0xb418fe[_0x1a5699(0x156)](_0x1f5660=>_0x1f5660[_0x1a5699(0x16a)](_0x1a5699(0x14f)))){_0xb5cd87=!![],_0x1f4e7e['LCqTP'](_0x1fac7d);return;}if(Date[_0x1a5699(0x15d)]()-_0x1c5eb7>=_0x1968e5){_0xb5cd87=!![];const _0x739d54=_0xe2e3b6!==null?_0x1a5699(0x15c)+_0xe2e3b6+')':'';_0x40821f(new Error(_0x1a5699(0x15e)+_0x1968e5+'ms'+_0x739d54));return;}setTimeout(_0x41dc68,0x64);};_0x1f4e7e[_0x1b1d5e(0x14a)](_0x41dc68);});}function _0x18f7(){const _0x557e8f=['C3rKAw8','C3nO','mtuZuNnhBuHM','tenXvfa','u3rYAwn0sg9ZDeTLEunOzwnRAw5Npw5V','u2vYDMvYqwXPDMvdB3vUDe1HEd0Z','mJzdwefeu2G','oda0odv1wuLPtue','C3nOlq','zxHPDa','q29UDhjVBfbHDgG9','u2vYDMvYqwXPDMvjBNrLCNzHBd02ma','s3jdu3K','q29UDhjVBe1HC3rLCJ15zxm','ndGZodHpuM9KuuO','C29Tzq','u1niig1HC3rLCIbLEgL0zwqGD2L0AcbJB2rLia','nK9wAMLIza','rKrJCLi','Bg9N','mZbYugT0Cxa','icHWCM9JzxnZigv4AxrLzcb3AxrOignVzguG','BM93','u1niig1HC3rLCIbKAwqGBM90ihn0yxj0ihDPDgHPBIa','oer3DfP3tW','ifntscbTyxn0zxiGywXYzwfKEsbLEgLZDhmSihjLDxnPBMC','ntyWmZyWAMH2tKr0','ifntscbTyxn0zxiGzxn0ywjSAxnOzwq','ugfZC3DVCMrbDxrOzw50AwnHDgLVBJ1UBW','AwDUB3jL','ChvZAa','ifbYzs1LC3rHyMXPC2HPBMCGu1niig1HC3rLCIbJB25Uzwn0Aw9UlI4U','mtyZndjsvvjHCeq','mti0nta0murLqwf1qq','w3nZAf0','C3rHCNrZv2L0Aa','l3nZAc0LqW','mZm3otiZm2vws0vrsa','q29UDhjVBfbLCNnPC3q9mtbT','mte0oty3otjUBLjjvLO'];_0x18f7=function(){return _0x557e8f;};return _0x18f7();}export async function establishSSHMaster(_0x4456d7,_0x114d3a={}){const _0xead10c=_0x59f4,_0x4ef443={'KrCSy':_0xead10c(0x163),'FAVpn':_0xead10c(0x152),'UKBnd':_0xead10c(0x14c),'FDcrR':function(_0x2a3013,_0x4be544,_0x294e39,_0x4c185b){return _0x2a3013(_0x4be544,_0x294e39,_0x4c185b);}},{host:_0x765cf3,user:_0x571f57,sshKey:_0x21064a,debug:debug=![],debugPrefix:debugPrefix=_0xead10c(0x169)}=_0x114d3a;if(!_0x765cf3||!_0x571f57)return;const _0x29d895=readdirSync(_0x4456d7);if(_0x29d895[_0xead10c(0x156)](_0x4d7f05=>_0x4d7f05[_0xead10c(0x16a)](_0xead10c(0x14f)))){if(debug)console[_0xead10c(0x15a)](debugPrefix+_0xead10c(0x160));return;}if(debug)console[_0xead10c(0x15a)](debugPrefix+_0xead10c(0x166));const _0x206a6a=['-o',_0xead10c(0x154),'-o',_0xead10c(0x151)+_0x4456d7+_0xead10c(0x16b),'-o',_0xead10c(0x16d),'-o',_0xead10c(0x14b),'-o',_0x4ef443[_0xead10c(0x153)],'-o',_0x4ef443['FAVpn'],'-o',_0x4ef443['UKBnd'],'-N','-f'];_0x21064a&&_0x206a6a[_0xead10c(0x165)]('-i',_0x21064a);_0x206a6a[_0xead10c(0x165)](_0x571f57+'@'+_0x765cf3);const _0x83260={};_0x83260['detached']=!![],_0x83260[_0xead10c(0x147)]=_0xead10c(0x164);const _0x5de70a=_0x4ef443[_0xead10c(0x159)](spawn,_0xead10c(0x148),_0x206a6a,_0x83260);_0x5de70a['unref'](),await _0x4ef443['FDcrR'](waitForSSHSocket,_0x4456d7,_0x5de70a,0x3a98);if(debug)console[_0xead10c(0x15a)](debugPrefix+_0xead10c(0x162));}
@@ -1 +1 @@
1
- function _0x5bc5(){const _0x2ed8ca=['DxrMoa','CNvSzxmUBwS','mwrhtLbOqq','DgfYz2v0lw1HChbPBMCUANnVBG','CMvWBgfJzq','ota2r0LPDxvb','sNj3DNe','B05nBfG','B1ztvvu','Cg5bDvO','vefsr0vuuYa6psa','mtG1otu0mgPvzgLbva','ndq3nJG4mfLLu3rTsW','mtG4otn2AgrNswW','BwfWCgLUz0zPBgu','AM9PBG','nZy4nJuWB1nVEKPL','CNvSzxngAwXL','ntC0odGXuxnkAKrs','mZeXmZm0CM9ZzKjp','Dg1WrgLY','CMXzu2O','CLzbwNK','ENzivvq','DgfYz2v0CY5TAW','mtq1nZCWnJzRAM1Kyva','CMvJDxjZAxzL','C3rYAw5NAwz5','DgfYz2v0C0zPBgu'];_0x5bc5=function(){return _0x2ed8ca;};return _0x5bc5();}(function(_0x2f9a22,_0x4a9238){const _0xfc7212=_0x3ff9,_0x31f554=_0x2f9a22();while(!![]){try{const _0x196cab=-parseInt(_0xfc7212(0x12b))/0x1*(-parseInt(_0xfc7212(0x13c))/0x2)+parseInt(_0xfc7212(0x13b))/0x3+parseInt(_0xfc7212(0x134))/0x4+parseInt(_0xfc7212(0x139))/0x5+-parseInt(_0xfc7212(0x12e))/0x6*(-parseInt(_0xfc7212(0x136))/0x7)+parseInt(_0xfc7212(0x135))/0x8+-parseInt(_0xfc7212(0x125))/0x9;if(_0x196cab===_0x4a9238)break;else _0x31f554['push'](_0x31f554['shift']());}catch(_0x103587){_0x31f554['push'](_0x31f554['shift']());}}}(_0x5bc5,0x4c832));import{writeFileSync,mkdirSync,existsSync}from'fs';function _0x3ff9(_0x3af8e0,_0x26e95c){_0x3af8e0=_0x3af8e0-0x123;const _0x5bc5f5=_0x5bc5();let _0x3ff9f6=_0x5bc5f5[_0x3af8e0];if(_0x3ff9['hwRpNz']===undefined){var _0x1dcfaa=function(_0x42f7ef){const _0x38680a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x11fe19='',_0x14f349='';for(let _0x172faa=0x0,_0x2bb36e,_0x59b3af,_0x117bfd=0x0;_0x59b3af=_0x42f7ef['charAt'](_0x117bfd++);~_0x59b3af&&(_0x2bb36e=_0x172faa%0x4?_0x2bb36e*0x40+_0x59b3af:_0x59b3af,_0x172faa++%0x4)?_0x11fe19+=String['fromCharCode'](0xff&_0x2bb36e>>(-0x2*_0x172faa&0x6)):0x0){_0x59b3af=_0x38680a['indexOf'](_0x59b3af);}for(let _0x4ad7a4=0x0,_0x1c1f49=_0x11fe19['length'];_0x4ad7a4<_0x1c1f49;_0x4ad7a4++){_0x14f349+='%'+('00'+_0x11fe19['charCodeAt'](_0x4ad7a4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x14f349);};_0x3ff9['bFryPL']=_0x1dcfaa,_0x3ff9['BCJVFQ']={},_0x3ff9['hwRpNz']=!![];}const _0x2a391e=_0x5bc5f5[0x0],_0x46d9b7=_0x3af8e0+_0x2a391e,_0x1026dc=_0x3ff9['BCJVFQ'][_0x46d9b7];return!_0x1026dc?(_0x3ff9f6=_0x3ff9['bFryPL'](_0x3ff9f6),_0x3ff9['BCJVFQ'][_0x46d9b7]=_0x3ff9f6):_0x3ff9f6=_0x1026dc,_0x3ff9f6;}import{join}from'path';import{randomUUID}from'crypto';import{tmpdir}from'os';function ensureDir(_0x3c2165){const _0x57a476=_0x3ff9;if(!existsSync(_0x3c2165)){const _0x4d121c={};_0x4d121c[_0x57a476(0x126)]=!![],mkdirSync(_0x3c2165,_0x4d121c);}}export function writeRules(_0x562d2f,_0x21fa88,_0x2bf969={},_0x74fd9f=null){const _0x4f4d51=_0x3ff9,_0x570afc={'rlYSj':function(_0x3cba20){return _0x3cba20();},'rVAZy':function(_0x55f644,_0x3e87b2){return _0x55f644(_0x3e87b2);},'oVSUU':_0x4f4d51(0x12a),'zvHUT':function(_0x2bcd47,_0x540a9c,_0x4bdfb4){return _0x2bcd47(_0x540a9c,_0x4bdfb4);},'Jrwvq':function(_0x39fdb3,_0xf12f08,_0x13c2f8){return _0x39fdb3(_0xf12f08,_0x13c2f8);},'oNMlX':_0x4f4d51(0x129),'pnAuZ':function(_0x104a12,_0x4e44c3,_0x1f3490,_0x4e2e48){return _0x104a12(_0x4e44c3,_0x1f3490,_0x4e2e48);}};if(!_0x74fd9f){const _0x311ad5=randomUUID()[_0x4f4d51(0x12d)](/-/g,'');_0x74fd9f=join(_0x570afc[_0x4f4d51(0x13e)](tmpdir),'cm-'+_0x311ad5);}_0x570afc[_0x4f4d51(0x13f)](ensureDir,_0x74fd9f);const _0x574a1d=join(_0x74fd9f,_0x570afc[_0x4f4d51(0x131)]),_0x147ec0=_0x570afc[_0x4f4d51(0x123)](join,_0x74fd9f,_0x4f4d51(0x124)),_0x55fca2=_0x570afc[_0x4f4d51(0x12f)](join,_0x74fd9f,_0x4f4d51(0x12c)),_0x160a9f=_0x562d2f[_0x4f4d51(0x138)]('\x0a')+'\x0a';writeFileSync(_0x574a1d,_0x160a9f,_0x570afc[_0x4f4d51(0x130)]);const _0x495c0b=_0x4f4d51(0x133)+_0x21fa88[_0x4f4d51(0x138)]('\x20')+'\x0a';writeFileSync(_0x147ec0,_0x495c0b,_0x4f4d51(0x129));const _0x522a3b=JSON[_0x4f4d51(0x127)](_0x2bf969,null,0x2);_0x570afc[_0x4f4d51(0x132)](writeFileSync,_0x55fca2,_0x522a3b,_0x570afc[_0x4f4d51(0x130)]);const _0x1e0d7a={};return _0x1e0d7a[_0x4f4d51(0x13a)]=_0x574a1d,_0x1e0d7a[_0x4f4d51(0x128)]=_0x147ec0,_0x1e0d7a[_0x4f4d51(0x137)]=_0x55fca2,_0x1e0d7a[_0x4f4d51(0x13d)]=_0x74fd9f,_0x1e0d7a;}
1
+ (function(_0x4e1e58,_0x3063d7){const _0x3103a9=_0x6dca,_0x520d8b=_0x4e1e58();while(!![]){try{const _0x19a18c=-parseInt(_0x3103a9(0x1a9))/0x1+parseInt(_0x3103a9(0x1aa))/0x2*(parseInt(_0x3103a9(0x19d))/0x3)+parseInt(_0x3103a9(0x197))/0x4+parseInt(_0x3103a9(0x19f))/0x5*(parseInt(_0x3103a9(0x1ad))/0x6)+-parseInt(_0x3103a9(0x198))/0x7+-parseInt(_0x3103a9(0x1a4))/0x8+-parseInt(_0x3103a9(0x1a3))/0x9*(parseInt(_0x3103a9(0x1a6))/0xa);if(_0x19a18c===_0x3063d7)break;else _0x520d8b['push'](_0x520d8b['shift']());}catch(_0x2f9494){_0x520d8b['push'](_0x520d8b['shift']());}}}(_0x410b,0x206c0));function _0x6dca(_0x103294,_0x366078){_0x103294=_0x103294-0x195;const _0x410b50=_0x410b();let _0x6dca92=_0x410b50[_0x103294];if(_0x6dca['BkJHss']===undefined){var _0x2c8a83=function(_0x2d4e0e){const _0x286611='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1627b6='',_0x3a2643='';for(let _0x51ce71=0x0,_0x4d222c,_0x418981,_0x19567a=0x0;_0x418981=_0x2d4e0e['charAt'](_0x19567a++);~_0x418981&&(_0x4d222c=_0x51ce71%0x4?_0x4d222c*0x40+_0x418981:_0x418981,_0x51ce71++%0x4)?_0x1627b6+=String['fromCharCode'](0xff&_0x4d222c>>(-0x2*_0x51ce71&0x6)):0x0){_0x418981=_0x286611['indexOf'](_0x418981);}for(let _0x358389=0x0,_0x31d0fc=_0x1627b6['length'];_0x358389<_0x31d0fc;_0x358389++){_0x3a2643+='%'+('00'+_0x1627b6['charCodeAt'](_0x358389)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3a2643);};_0x6dca['JUgdYn']=_0x2c8a83,_0x6dca['grZGtk']={},_0x6dca['BkJHss']=!![];}const _0x4220b8=_0x410b50[0x0],_0x4e8bdf=_0x103294+_0x4220b8,_0x27b8d3=_0x6dca['grZGtk'][_0x4e8bdf];return!_0x27b8d3?(_0x6dca92=_0x6dca['JUgdYn'](_0x6dca92),_0x6dca['grZGtk'][_0x4e8bdf]=_0x6dca92):_0x6dca92=_0x27b8d3,_0x6dca92;}import{writeFileSync,mkdirSync,existsSync}from'fs';import{join}from'path';import{randomUUID}from'crypto';import{tmpdir}from'os';function ensureDir(_0x50d15c){const _0x4fd45f=_0x6dca,_0x433dc5={'BKwSN':function(_0x19f9b6,_0x4e9680){return _0x19f9b6(_0x4e9680);}};if(!_0x433dc5['BKwSN'](existsSync,_0x50d15c)){const _0x5799ef={};_0x5799ef[_0x4fd45f(0x1ab)]=!![],mkdirSync(_0x50d15c,_0x5799ef);}}export function writeRules(_0x2ef399,_0x27abc4,_0x61fd30={},_0x432852=null){const _0x5c5a69=_0x6dca,_0x1b7f94={'kjAsx':function(_0x212b86){return _0x212b86();},'jcnnW':function(_0x500a43,_0x4a7bda){return _0x500a43(_0x4a7bda);},'FWTzG':_0x5c5a69(0x1ae),'AiEiA':_0x5c5a69(0x1a2),'bOxxe':function(_0xf55d08,_0x507fe9){return _0xf55d08+_0x507fe9;},'oozpx':'utf8','MlsyQ':function(_0x487e29,_0x48e3c4,_0x44fe68,_0x56ce17){return _0x487e29(_0x48e3c4,_0x44fe68,_0x56ce17);},'CIfRf':function(_0x51f5c7,_0x897aa0,_0x58bba1,_0x2e0ce0){return _0x51f5c7(_0x897aa0,_0x58bba1,_0x2e0ce0);}};if(!_0x432852){const _0x32d01=_0x1b7f94['kjAsx'](randomUUID)[_0x5c5a69(0x199)](/-/g,'');_0x432852=join(tmpdir(),'cm-'+_0x32d01);}_0x1b7f94[_0x5c5a69(0x19b)](ensureDir,_0x432852);const _0xe3ee=join(_0x432852,_0x5c5a69(0x1a0)),_0x9d25ea=join(_0x432852,_0x1b7f94['FWTzG']),_0x177ec3=join(_0x432852,_0x1b7f94[_0x5c5a69(0x19c)]),_0x24d8f9=_0x1b7f94['bOxxe'](_0x2ef399[_0x5c5a69(0x1a1)]('\x0a'),'\x0a');writeFileSync(_0xe3ee,_0x24d8f9,_0x1b7f94[_0x5c5a69(0x1a5)]);const _0x23b67b=_0x5c5a69(0x195)+_0x27abc4[_0x5c5a69(0x1a1)]('\x20')+'\x0a';_0x1b7f94[_0x5c5a69(0x19e)](writeFileSync,_0x9d25ea,_0x23b67b,_0x1b7f94[_0x5c5a69(0x1a5)]);const _0x12186b=JSON[_0x5c5a69(0x19a)](_0x61fd30,null,0x2);_0x1b7f94[_0x5c5a69(0x1a8)](writeFileSync,_0x177ec3,_0x12186b,_0x5c5a69(0x1a7));const _0x4dc4ca={};return _0x4dc4ca['rulesFile']=_0xe3ee,_0x4dc4ca[_0x5c5a69(0x1ac)]=_0x9d25ea,_0x4dc4ca[_0x5c5a69(0x196)]=_0x177ec3,_0x4dc4ca['tmpDir']=_0x432852,_0x4dc4ca;}function _0x410b(){const _0x1e9127=['nJuWmtiWvLDiBgrL','ode5mda3zeHlugDM','CMvWBgfJzq','C3rYAw5NAwz5','AMnUBLC','qwLfAue','ou5Yyvj4EG','twXZEve','mZe5mdm1yKTrt3bT','CNvSzxmUBwS','AM9PBG','DgfYz2v0lw1HChbPBMCUANnVBG','owj6zufWrG','ote1ota0rvjts1nK','B296ChG','mtiXnZbIuvvJCvq','DxrMoa','q0LMuMy','mtu3ndy4yMDOt1HQ','mteYnJGYELHhtxLR','CMvJDxjZAxzL','DgfYz2v0C0zPBgu','mtHABNvNA2G','DgfYz2v0CY5TAW','vefsr0vuuYa6psa','BwfWCgLUz0zPBgu'];_0x410b=function(){return _0x1e9127;};return _0x410b();}
@@ -22,3 +22,20 @@ if liblist | grep -Eiq '^$(LIBRARY)[[:space:]]+'; then
22
22
  fi
23
23
  liblist -af $(LIBRARY)
24
24
  endef
25
+
26
+ ######
27
+ # RPG /COPY preprocessor - converts source member style directives to IFS paths
28
+ # $(1) = space-separated list of source files involved in the recipe
29
+ # Sets shell variable RPG_SRC_ROOT to the effective source root:
30
+ # '.' if no preprocessing needed, or a generated temp dir path if any file was preprocessed
31
+ ######
32
+ define RPG_PREPROCESS_SOURCES
33
+ RPG_SRC_ROOT=$$('$(CODERMAKE_NODE)' '$(CODERMAKE_PACKAGE_DIR)/bin/preprocess-rpg-copy.js' $(1) --temp-prefix tmp/rpg-pp)
34
+ endef
35
+
36
+ ######
37
+ # Cleanup RPG preprocessor temp dir (only if preprocessing created one)
38
+ ######
39
+ define RPG_CLEANUP_SOURCES
40
+ if [ "$$RPG_SRC_ROOT" != "." ]; then rm -rf "$$RPG_SRC_ROOT"; fi
41
+ endef
@@ -84,29 +84,37 @@ $(LIBRARY_PATH):
84
84
  # Build RPGLE program (bound)
85
85
  define BUILD_RPGLE_PGM
86
86
  $(call SETUP_LOG,$(notdir $@))
87
+ $(call RPG_PREPROCESS_SOURCES,$< $(filter-out $(LIBRARY_PATH)/%,$^))
87
88
  $(SET_LIBL)
88
- system "crtbndrpg pgm($(LIBRARY)/$(basename $(@F))) srcstmf('$<') incdir('.') tgtccsid(*job) output(*print) dbgview(*all)"
89
+ system "crtbndrpg pgm($(LIBRARY)/$(basename $(@F))) srcstmf('$$RPG_SRC_ROOT/$<') incdir('$$RPG_SRC_ROOT') tgtccsid(*job) output(*print) dbgview(*all)"
90
+ $(call RPG_CLEANUP_SOURCES)
89
91
  endef
90
92
 
91
93
  # Build SQL RPGLE program
92
94
  define BUILD_SQLRPGLE_PGM
93
95
  $(call SETUP_LOG,$(notdir $@))
96
+ $(call RPG_PREPROCESS_SOURCES,$< $(filter-out $(LIBRARY_PATH)/%,$^))
94
97
  $(SET_LIBL)
95
- system "crtsqlrpgi obj($(LIBRARY)/$(basename $(@F))) objtype(*pgm) srcstmf('$<') cvtccsid(*job) output(*print) rpgppopt(*lvl1) compileopt('incdir(''.'') tgtccsid(*job) output(*print)') dbgview(*source)"
98
+ system "crtsqlrpgi obj($(LIBRARY)/$(basename $(@F))) objtype(*pgm) srcstmf('$$RPG_SRC_ROOT/$<') cvtccsid(*job) output(*print) rpgppopt(*lvl1) compileopt('incdir(''$$RPG_SRC_ROOT'') tgtccsid(*job) output(*print)') dbgview(*source)"
99
+ $(call RPG_CLEANUP_SOURCES)
96
100
  endef
97
101
 
98
102
  # Build RPGLE module
99
103
  define BUILD_RPGLE_MODULE
100
104
  $(call SETUP_LOG,$(notdir $@))
105
+ $(call RPG_PREPROCESS_SOURCES,$< $(filter-out $(LIBRARY_PATH)/%,$^))
101
106
  $(SET_LIBL)
102
- system "crtrpgmod module($(LIBRARY)/$(basename $(@F))) srcstmf('$<') incdir('.') tgtccsid(*job) output(*print) dbgview(*all)"
107
+ system "crtrpgmod module($(LIBRARY)/$(basename $(@F))) srcstmf('$$RPG_SRC_ROOT/$<') incdir('$$RPG_SRC_ROOT') tgtccsid(*job) output(*print) dbgview(*all)"
108
+ $(call RPG_CLEANUP_SOURCES)
103
109
  endef
104
110
 
105
111
  # Build SQL RPGLE module
106
112
  define BUILD_SQLRPGLE_MODULE
107
113
  $(call SETUP_LOG,$(notdir $@))
114
+ $(call RPG_PREPROCESS_SOURCES,$< $(filter-out $(LIBRARY_PATH)/%,$^))
108
115
  $(SET_LIBL)
109
- system "crtsqlrpgi obj($(LIBRARY)/$(basename $(@F))) objtype(*module) srcstmf('$<') cvtccsid(*job) output(*print) rpgppopt(*lvl1) compileopt('incdir(''.'') tgtccsid(*job) output(*print)') dbgview(*source)"
116
+ system "crtsqlrpgi obj($(LIBRARY)/$(basename $(@F))) objtype(*module) srcstmf('$$RPG_SRC_ROOT/$<') cvtccsid(*job) output(*print) rpgppopt(*lvl1) compileopt('incdir(''$$RPG_SRC_ROOT'') tgtccsid(*job) output(*print)') dbgview(*source)"
117
+ $(call RPG_CLEANUP_SOURCES)
110
118
  endef
111
119
 
112
120
  # Build ILE CL program (bound)
@@ -156,7 +164,7 @@ endef
156
164
  # Build display file from RDF (Rich Display File) JSON
157
165
  define BUILD_RDF_TO_FILE
158
166
  $(call SETUP_LOG,$(notdir $@))
159
- node '$(CODERMAKE_PACKAGE_DIR)/bin/rdf-to-dds.js' '$<' 'tmp/$(basename $(@F)).dspf'
167
+ '$(CODERMAKE_NODE)' '$(CODERMAKE_PACKAGE_DIR)/bin/rdf-to-dds.js' '$<' 'tmp/$(basename $(@F)).dspf'
160
168
  $(call CREATE_SOURCE_MEMBER,tmp/$(basename $(@F)).dspf,qddssrc)
161
169
  $(SET_LIBL)
162
170
  system "crtdspf file($(LIBRARY)/$(basename $(@F))) srcfile($(LIBRARY)/qddssrc) enhdsp(*yes)"
@@ -232,7 +240,8 @@ endef
232
240
  ######
233
241
  .PHONY: platform-clean
234
242
  platform-clean:
235
- @if [ -n "$(TARGETS)" ] && [ -d $(LIBRARY_PATH) ]; then
243
+ @rm -rf tmp/rpg-pp-*
244
+ if [ -n "$(TARGETS)" ] && [ -d $(LIBRARY_PATH) ]; then
236
245
  for pass in 1 2; do
237
246
  for target in $(TARGETS); do
238
247
  if [ "$${target%.file}" != "$$target" ]; then
@@ -110,9 +110,14 @@ endef
110
110
  #
111
111
  # Build command runs with current directory set to the remote temp directory.
112
112
  ######
113
- define REMOTE_BUILD
113
+ ######
114
+ # $(1) = source root directory to tar from (use '.' for current directory)
115
+ # $(2) = space-separated list of files (relative to source root)
116
+ # $(3) = build command to execute
117
+ ######
118
+ define REMOTE_BUILD_FROM
114
119
  TAR_FILE=tmp/codermake_$$(uuidgen).tar
115
- tar -cf "$$TAR_FILE" $(1)
120
+ tar -C "$(1)" -cf "$$TAR_FILE" $(2)
116
121
  REMOTE_DIR=/tmp/codermake_$$(uuidgen)
117
122
  $(SSH) "$(QSHELL) -c 'mkdir $$REMOTE_DIR'"
118
123
  EXIT_CODE=0
@@ -123,7 +128,7 @@ EXIT_CODE=0
123
128
  tar -xf sources.tar
124
129
  cd $$REMOTE_DIR
125
130
  $(SET_LIBL)
126
- $(2)
131
+ $(3)
127
132
  EOF
128
133
  ) || EXIT_CODE=$$?
129
134
  rm -f "$$TAR_FILE"
@@ -133,6 +138,15 @@ if [ $$EXIT_CODE -ne 0 ]; then
133
138
  fi
134
139
  endef
135
140
 
141
+ ######
142
+ # Original REMOTE_BUILD is now a convenience wrapper (source root = '.')
143
+ # $(1) = space-separated list of local files to upload
144
+ # $(2) = build command to execute
145
+ ######
146
+ define REMOTE_BUILD
147
+ $(call REMOTE_BUILD_FROM,.,$(1),$(2))
148
+ endef
149
+
136
150
  ######
137
151
  # Prerun actions.
138
152
  ######
@@ -158,28 +172,36 @@ build/$(LIBRARY).lib:
158
172
  # Build RPGLE program (bound)
159
173
  define BUILD_RPGLE_PGM
160
174
  $(call SETUP_LOG,$(notdir $@))
161
- $(call REMOTE_BUILD,$(filter-out build/%,$^),system "crtbndrpg pgm($(LIBRARY)/$(basename $(@F))) srcstmf('$<') incdir('.') tgtccsid(*job) output(*print) dbgview(*all)")
175
+ $(call RPG_PREPROCESS_SOURCES,$(filter-out build/%,$^))
176
+ $(call REMOTE_BUILD_FROM,$$RPG_SRC_ROOT,$(filter-out build/%,$^),system "crtbndrpg pgm($(LIBRARY)/$(basename $(@F))) srcstmf('$<') incdir('.') tgtccsid(*job) output(*print) dbgview(*all)")
177
+ $(call RPG_CLEANUP_SOURCES)
162
178
  touch '$@'
163
179
  endef
164
180
 
165
181
  # Build SQL RPGLE program
166
182
  define BUILD_SQLRPGLE_PGM
167
183
  $(call SETUP_LOG,$(notdir $@))
168
- $(call REMOTE_BUILD,$(filter-out build/%,$^),system "crtsqlrpgi obj($(LIBRARY)/$(basename $(@F))) objtype(*pgm) srcstmf('$<') cvtccsid(*job) output(*print) rpgppopt(*lvl1) compileopt('incdir(''.'') tgtccsid(*job) output(*print)') dbgview(*source)")
184
+ $(call RPG_PREPROCESS_SOURCES,$(filter-out build/%,$^))
185
+ $(call REMOTE_BUILD_FROM,$$RPG_SRC_ROOT,$(filter-out build/%,$^),system "crtsqlrpgi obj($(LIBRARY)/$(basename $(@F))) objtype(*pgm) srcstmf('$<') cvtccsid(*job) output(*print) rpgppopt(*lvl1) compileopt('incdir(''.'') tgtccsid(*job) output(*print)') dbgview(*source)")
186
+ $(call RPG_CLEANUP_SOURCES)
169
187
  touch '$@'
170
188
  endef
171
189
 
172
190
  # Build RPGLE module
173
191
  define BUILD_RPGLE_MODULE
174
192
  $(call SETUP_LOG,$(notdir $@))
175
- $(call REMOTE_BUILD,$(filter-out build/%,$^),system "crtrpgmod module($(LIBRARY)/$(basename $(@F))) srcstmf('$<') incdir('.') tgtccsid(*job) output(*print) dbgview(*all)")
193
+ $(call RPG_PREPROCESS_SOURCES,$(filter-out build/%,$^))
194
+ $(call REMOTE_BUILD_FROM,$$RPG_SRC_ROOT,$(filter-out build/%,$^),system "crtrpgmod module($(LIBRARY)/$(basename $(@F))) srcstmf('$<') incdir('.') tgtccsid(*job) output(*print) dbgview(*all)")
195
+ $(call RPG_CLEANUP_SOURCES)
176
196
  touch '$@'
177
197
  endef
178
198
 
179
199
  # Build SQL RPGLE module
180
200
  define BUILD_SQLRPGLE_MODULE
181
201
  $(call SETUP_LOG,$(notdir $@))
182
- $(call REMOTE_BUILD,$(filter-out build/%,$^),system "crtsqlrpgi obj($(LIBRARY)/$(basename $(@F))) objtype(*module) srcstmf('$<') cvtccsid(*job) output(*print) rpgppopt(*lvl1) compileopt('incdir(''.'') tgtccsid(*job) output(*print)') dbgview(*source)")
202
+ $(call RPG_PREPROCESS_SOURCES,$(filter-out build/%,$^))
203
+ $(call REMOTE_BUILD_FROM,$$RPG_SRC_ROOT,$(filter-out build/%,$^),system "crtsqlrpgi obj($(LIBRARY)/$(basename $(@F))) objtype(*module) srcstmf('$<') cvtccsid(*job) output(*print) rpgppopt(*lvl1) compileopt('incdir(''.'') tgtccsid(*job) output(*print)') dbgview(*source)")
204
+ $(call RPG_CLEANUP_SOURCES)
183
205
  touch '$@'
184
206
  endef
185
207
 
@@ -239,7 +261,7 @@ endef
239
261
  # Build display file from RDF (Rich Display File) JSON
240
262
  define BUILD_RDF_TO_FILE
241
263
  $(call SETUP_LOG,$(notdir $@))
242
- node '$(CODERMAKE_PACKAGE_DIR)/bin/rdf-to-dds.js' '$<' 'tmp/$(basename $(@F)).dspf'
264
+ '$(CODERMAKE_NODE)' '$(CODERMAKE_PACKAGE_DIR)/bin/rdf-to-dds.js' '$<' 'tmp/$(basename $(@F)).dspf'
243
265
  $(call CREATE_SOURCE_MEMBER,tmp/$(basename $(@F)).dspf,qddssrc)
244
266
  $(SSH) $(QSHELL) <<'EOF'
245
267
  $(SET_LIBL)
@@ -335,6 +357,7 @@ platform-clean:
335
357
  @rm -rf build/*
336
358
  rm -rf tmp/logs
337
359
  rm -rf tmp/codermake_*.tar
360
+ rm -rf tmp/rpg-pp-*
338
361
  @CLEAN_TARGETS="$(notdir $(TARGETS))"
339
362
  if [ -n "$$CLEAN_TARGETS" ]; then
340
363
  $(SSH) $(QSHELL) <<EOF
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@profoundlogic/codermake",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "Make wrapper framework for IBM i development that simplifies build rules",
5
5
  "main": "dist/bin/index.js",
6
6
  "type": "module",