@profoundlogic/codermake 1.3.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/bin/index.js +1 -1
- package/dist/bin/preprocess-rpg-copy.js +1 -1
- package/dist/bin/rdf-to-dds.js +1 -1
- package/dist/lib/discovery.js +1 -1
- package/dist/lib/executor.js +1 -1
- package/dist/lib/generate-rdf-dds.js +1 -1
- package/dist/lib/license.js +1 -1
- package/dist/lib/makefile-generator.js +1 -1
- package/dist/lib/platform.js +1 -1
- package/dist/lib/preprocessor.js +1 -1
- package/dist/lib/rdf-to-post-data.js +1 -1
- package/dist/lib/rpg-copy-preprocessor.js +1 -1
- package/dist/lib/ssh.js +1 -1
- package/dist/lib/writer.js +1 -1
- package/dist/makefiles/base.mk +8 -0
- package/dist/makefiles/ibmi.mk +2 -2
- package/dist/makefiles/unix.mk +2 -2
- package/package.json +1 -1
- package/skills/codermake/SKILL.md +10 -2
- package/skills/codermake/references/file-types.md +16 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x5a93cf,_0x487adb){const _0x5a62ba=_0xb3b0,_0x5d5fe1=_0x5a93cf();while(!![]){try{const _0x59d040=-parseInt(_0x5a62ba(0xe1))/0x1+parseInt(_0x5a62ba(0xe2))/0x2+-parseInt(_0x5a62ba(0xfa))/0x3+-parseInt(_0x5a62ba(0xee))/0x4+parseInt(_0x5a62ba(0xdb))/0x5*(parseInt(_0x5a62ba(0xfc))/0x6)+-parseInt(_0x5a62ba(0xcc))/0x7*(parseInt(_0x5a62ba(0xd8))/0x8)+parseInt(_0x5a62ba(0xcb))/0x9;if(_0x59d040===_0x487adb)break;else _0x5d5fe1['push'](_0x5d5fe1['shift']());}catch(_0x80fb9a){_0x5d5fe1['push'](_0x5d5fe1['shift']());}}}(_0x3b19,0xc5fc5));import{readFileSync,writeFileSync,mkdirSync,copyFileSync,readdirSync}from'fs';import{dirname,join}from'path';import{randomUUID}from'crypto';export function detectFormat(_0x24dbed){const _0xfb5afd=_0xb3b0,_0x1add3b={};_0x1add3b['NYTUG']='fixed';const _0xc52f6e=_0x1add3b;if(/^\*\*free$/i['test'](_0x24dbed[_0xfb5afd(0xe9)]()))return'free';return _0xc52f6e[_0xfb5afd(0xed)];}export function extractDirective(_0x57bd41,_0xfc83d1){const _0x1456cc=_0xb3b0,_0x2f598e={};_0x2f598e[_0x1456cc(0xf4)]=function(_0x3b04c9,_0x58442b){return _0x3b04c9+_0x58442b;},_0x2f598e['jligu']=function(_0x253e45,_0x4c5a5a){return _0x253e45<_0x4c5a5a;},_0x2f598e[_0x1456cc(0x102)]=function(_0x73ebc7,_0x4883a3){return _0x73ebc7!==_0x4883a3;},_0x2f598e[_0x1456cc(0x10e)]=function(_0x41efc4,_0x1b7502){return _0x41efc4===_0x1b7502;};const _0x5ca974=_0x2f598e;let _0x5a94d0,_0x4b2abb;if(_0xfc83d1===_0x1456cc(0x104)){const _0x1b880c=_0x57bd41[_0x1456cc(0xec)](/^\s*\/(copy|include) (\S)/i);if(!_0x1b880c)return null;const _0x285f67=_0x57bd41[_0x1456cc(0x107)]();if(_0x285f67['startsWith']('//'))return null;_0x5a94d0=_0x1b880c[0x1][_0x1456cc(0xf6)](),_0x4b2abb=_0x57bd41[_0x1456cc(0xe5)](_0x5ca974[_0x1456cc(0xf4)](_0x1b880c[_0x1456cc(0xf1)],_0x1b880c[0x0][_0x1456cc(0xf9)])-0x1);}else{if(_0x5ca974[_0x1456cc(0x110)](_0x57bd41[_0x1456cc(0xf9)],0x7))return null;if(_0x5ca974[_0x1456cc(0x102)](_0x57bd41[0x6],'/'))return null;const _0x420744=_0x57bd41[_0x1456cc(0xe5)](0x7),_0x3a1148=_0x420744[_0x1456cc(0xec)](/^(copy|include) (\S)/i);if(!_0x3a1148)return null;_0x5a94d0=_0x3a1148[0x1][_0x1456cc(0xf6)](),_0x4b2abb=_0x420744[_0x1456cc(0xe5)](_0x3a1148[0x0][_0x1456cc(0xf9)]-0x1);}let _0x39d2f2;if(_0x4b2abb[_0x1456cc(0xfb)]('\x27')){const _0x4758f4=_0x4b2abb[_0x1456cc(0xe0)]('\x27',0x1);_0x39d2f2=_0x5ca974['XcZeF'](_0x4758f4,-0x1)?_0x4b2abb[_0x1456cc(0xfe)]():_0x4b2abb['substring'](0x0,_0x5ca974[_0x1456cc(0xf4)](_0x4758f4,0x1));}else{if(_0x4b2abb[_0x1456cc(0xfb)]('\x22')){const _0x398cef=_0x4b2abb['indexOf']('\x22',0x1);_0x39d2f2=_0x398cef===-0x1?_0x4b2abb[_0x1456cc(0xfe)]():_0x4b2abb['substring'](0x0,_0x398cef+0x1);}else _0x39d2f2=_0x4b2abb[_0x1456cc(0xf0)](/\s/)[0x0];}const _0x39fa77={};return _0x39fa77[_0x1456cc(0xef)]=_0x5a94d0,_0x39fa77[_0x1456cc(0x10c)]=_0x39d2f2,_0x39fa77;}export function classifyDirectiveOperand(_0x2be67a){const _0x5dac9a=_0xb3b0,_0x1d523b={};_0x1d523b[_0x5dac9a(0xf3)]=_0x5dac9a(0x108),_0x1d523b[_0x5dac9a(0xd0)]=function(_0x263b92,_0xb04e5e){return _0x263b92+_0xb04e5e;},_0x1d523b[_0x5dac9a(0xfd)]=function(_0x4cf753,_0x47cd31){return _0x4cf753!==_0x47cd31;},_0x1d523b[_0x5dac9a(0xf5)]=_0x5dac9a(0xf2);const _0x4a49a8=_0x1d523b;if(_0x2be67a[_0x5dac9a(0xfb)]('\x27')||_0x2be67a['startsWith']('\x22')){const _0x50ef8d={};return _0x50ef8d[_0x5dac9a(0x101)]=_0x4a49a8['FNpQY'],_0x50ef8d;}if(_0x2be67a[_0x5dac9a(0xde)](',')){const _0x453106=_0x2be67a['indexOf'](','),_0x1a63f3=_0x2be67a['substring'](0x0,_0x453106),_0x11ee9d=_0x2be67a[_0x5dac9a(0xe5)](_0x4a49a8['iRdDW'](_0x453106,0x1)),_0x16f9e6=_0x1a63f3[_0x5dac9a(0xe0)]('/');if(_0x4a49a8[_0x5dac9a(0xfd)](_0x16f9e6,-0x1)){const _0x1872ba=_0x1a63f3[_0x5dac9a(0xe5)](0x0,_0x16f9e6),_0x29b672=/^\*libl$/i['test'](_0x1872ba)?null:_0x1872ba;return{'type':_0x4a49a8['xssaV'],'library':_0x29b672,'fileName':_0x1a63f3[_0x5dac9a(0xe5)](_0x16f9e6+0x1),'memberName':_0x11ee9d};}const _0x513476={};return _0x513476[_0x5dac9a(0x101)]=_0x5dac9a(0xf2),_0x513476['library']=null,_0x513476['fileName']=_0x1a63f3,_0x513476[_0x5dac9a(0xe4)]=_0x11ee9d,_0x513476;}if(_0x2be67a[_0x5dac9a(0xde)]('/')){const _0x2e9ff1={};return _0x2e9ff1[_0x5dac9a(0x101)]=_0x4a49a8['FNpQY'],_0x2e9ff1;}if(/\.rpgle$/i['test'](_0x2be67a)||/\.sqlrpgle$/i[_0x5dac9a(0xd9)](_0x2be67a)){const _0x2b8faf={};return _0x2b8faf[_0x5dac9a(0x101)]=_0x5dac9a(0x108),_0x2b8faf;}const _0x1969b7={};return _0x1969b7['type']=_0x4a49a8['xssaV'],_0x1969b7[_0x5dac9a(0xd5)]=null,_0x1969b7[_0x5dac9a(0xdd)]=null,_0x1969b7[_0x5dac9a(0xe4)]=_0x2be67a,_0x1969b7;}function findFileInsensitive(_0xe94f44,_0x5323c3){const _0x4c389c=_0xb3b0;let _0x388c76;try{_0x388c76=readdirSync(_0xe94f44);}catch{return null;}if(_0x388c76[_0x4c389c(0xde)](_0x5323c3))return _0x5323c3;const _0x66cb9=_0x5323c3[_0x4c389c(0xf6)]();return _0x388c76[_0x4c389c(0x100)](_0xd39d58=>_0xd39d58[_0x4c389c(0xf6)]()===_0x66cb9)||null;}function findDirInsensitive(_0x1e14af,_0x5a263d){const _0x415a49=_0xb3b0;let _0x13e8bd;try{_0x13e8bd=readdirSync(_0x1e14af);}catch{return null;}if(_0x13e8bd['includes'](_0x5a263d))return _0x5a263d;const _0x29c2c7=_0x5a263d[_0x415a49(0xf6)]();return _0x13e8bd[_0x415a49(0x100)](_0x828a0a=>_0x828a0a[_0x415a49(0xf6)]()===_0x29c2c7)||null;}export function resolveSourceMember(_0x2eac72,_0x2f48f8){const _0x1f811c=_0xb3b0,_0xbcc0e1={};_0xbcc0e1[_0x1f811c(0xe6)]=function(_0x4582e0,_0x1f4746){return _0x4582e0===_0x1f4746;},_0xbcc0e1['pmOOe']='qrpglesrc',_0xbcc0e1[_0x1f811c(0xd7)]='.rpgle',_0xbcc0e1['VdOuL']=_0x1f811c(0x109);const _0x42a06f=_0xbcc0e1,{library:_0x2fb892,fileName:_0x47a2f2,memberName:_0x1126a4}=_0x2eac72;let _0x623055;if(_0x42a06f[_0x1f811c(0xe6)](_0x47a2f2,null))_0x623055=_0x42a06f[_0x1f811c(0xda)];else _0x2fb892!==null?_0x623055=_0x2fb892+'/'+_0x47a2f2:_0x623055=_0x47a2f2;const _0x481006=_0x623055[_0x1f811c(0xf0)]('/');let _0x2fd2fc=_0x2f48f8;const _0x28c4b3=[];for(const _0x4c115b of _0x481006){const _0xed7aad=findDirInsensitive(_0x2fd2fc,_0x4c115b);if(!_0xed7aad)throw new Error(_0x1f811c(0xd1)+_0x623055+_0x1f811c(0xeb)+_0x4c115b+_0x1f811c(0xce)+_0x2fd2fc+'\x27)');_0x28c4b3[_0x1f811c(0xcd)](_0xed7aad),_0x2fd2fc=join(_0x2fd2fc,_0xed7aad);}const _0x7d7a9a=_0x28c4b3[_0x1f811c(0xd3)]('/'),_0xd2ef9e=[_0x42a06f[_0x1f811c(0xd7)],_0x42a06f[_0x1f811c(0xdf)]];for(const _0x5a1bf8 of _0xd2ef9e){const _0x13e10c=_0x1126a4+_0x5a1bf8,_0x3805b6=findFileInsensitive(join(_0x2f48f8,_0x7d7a9a),_0x13e10c);if(_0x3805b6)return _0x7d7a9a+'/'+_0x3805b6;}throw new Error('Source\x20member\x20not\x20found:\x20'+_0x1126a4+_0x1f811c(0x105)+_0x7d7a9a+_0x1f811c(0xd2));}export function preprocessFileContent(_0x4436af,_0x28f21f){const _0xb570ee=_0xb3b0,_0x3d2eda={'vsENk':function(_0x117742,_0x3c7534){return _0x117742===_0x3c7534;},'WzYcT':function(_0x1f50f3,_0xcd1ecd){return _0x1f50f3<_0xcd1ecd;},'UmgXn':function(_0x4bb4d2,_0x2c1bbd){return _0x4bb4d2(_0x2c1bbd);},'amNqx':function(_0xa21dcb,_0x1719a6,_0x1da896){return _0xa21dcb(_0x1719a6,_0x1da896);},'WrvAs':function(_0x58d25e,_0x357b0f){return _0x58d25e+_0x357b0f;},'RmYhn':function(_0x2cf30a,_0x5054b3){return _0x2cf30a===_0x5054b3;},'FQKmn':_0xb570ee(0x104),'yrNNH':function(_0x3ecd61,_0x3a9479){return _0x3ecd61+_0x3a9479;}},_0x2f64ef=_0x4436af['split']('\x0a'),_0x51b1ef={};_0x51b1ef[_0xb570ee(0x10b)]=_0x4436af,_0x51b1ef[_0xb570ee(0x111)]=![];if(_0x3d2eda[_0xb570ee(0xe3)](_0x2f64ef[_0xb570ee(0xf9)],0x0))return _0x51b1ef;const _0x3f9d77=detectFormat(_0x2f64ef[0x0]);let _0xff2bd9=![];const _0x34e204=[];for(let _0x416f65=0x0;_0x3d2eda[_0xb570ee(0xe7)](_0x416f65,_0x2f64ef[_0xb570ee(0xf9)]);_0x416f65++){const _0x3a71d7=_0x2f64ef[_0x416f65],_0xa588d=extractDirective(_0x3a71d7,_0x3f9d77);if(!_0xa588d){_0x34e204[_0xb570ee(0xcd)](_0x3a71d7);continue;}const _0x2a7d08=_0x3d2eda[_0xb570ee(0x106)](classifyDirectiveOperand,_0xa588d[_0xb570ee(0x10c)]);if(_0x2a7d08['type']===_0xb570ee(0x108)){_0x34e204[_0xb570ee(0xcd)](_0x3a71d7);continue;}let _0x5175da;try{_0x5175da=_0x3d2eda[_0xb570ee(0x10a)](resolveSourceMember,_0x2a7d08,_0x28f21f);}catch(_0x3f1d1c){const _0x5902bb=_0x3d2eda[_0xb570ee(0xcf)](_0x416f65,0x1);throw new Error(_0x3f1d1c[_0xb570ee(0x10d)]+'\x0a'+(_0xb570ee(0xe8)+_0x5902bb+'\x0a')+('\x20\x20Directive:\x20'+_0x3a71d7[_0xb570ee(0x107)]()));}let _0xd9dbc6;if(_0x3d2eda['RmYhn'](_0x3f9d77,_0x3d2eda[_0xb570ee(0xd4)])){const _0x1c566a=_0x3a71d7['match'](/^(\s*\/)(copy|include) /i),_0x27552a=_0x1c566a[0x1],_0x530c16=_0x1c566a[0x2],_0x454196=_0x3a71d7['substring'](_0x1c566a[0x0][_0xb570ee(0xf9)]+_0xa588d[_0xb570ee(0x10c)][_0xb570ee(0xf9)]);_0xd9dbc6=''+_0x27552a+_0x530c16+'\x20'+_0x5175da+_0x454196;}else{const _0x4be3aa=_0x3a71d7['substring'](0x0,0x6),_0x17b2dc=_0x3a71d7[_0xb570ee(0xe5)](0x7)['match'](/^(copy|include) /i),_0xc4bc46=_0x17b2dc[0x1],_0x1ba5fb=_0x3d2eda[_0xb570ee(0xcf)](0x7,_0x17b2dc[0x0][_0xb570ee(0xf9)]),_0x50e8b9=_0x3a71d7[_0xb570ee(0xe5)](_0x3d2eda[_0xb570ee(0xc9)](_0x1ba5fb,_0xa588d['operand'][_0xb570ee(0xf9)]));_0xd9dbc6=_0x4be3aa+'/'+_0xc4bc46+'\x20'+_0x5175da+_0x50e8b9;}_0x34e204['push'](_0xd9dbc6),_0xff2bd9=!![];}return{'content':_0x34e204[_0xb570ee(0xd3)]('\x0a'),'modified':_0xff2bd9};}function _0xb3b0(_0x478ec4,_0xfc8789){_0x478ec4=_0x478ec4-0xc9;const _0x3b1992=_0x3b19();let _0xb3b09a=_0x3b1992[_0x478ec4];if(_0xb3b0['MTPsGH']===undefined){var _0x281690=function(_0xe9771f){const _0x5893c6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x392651='',_0x4cb252='';for(let _0x2cadb5=0x0,_0x38b65b,_0x275e11,_0x1e6eb4=0x0;_0x275e11=_0xe9771f['charAt'](_0x1e6eb4++);~_0x275e11&&(_0x38b65b=_0x2cadb5%0x4?_0x38b65b*0x40+_0x275e11:_0x275e11,_0x2cadb5++%0x4)?_0x392651+=String['fromCharCode'](0xff&_0x38b65b>>(-0x2*_0x2cadb5&0x6)):0x0){_0x275e11=_0x5893c6['indexOf'](_0x275e11);}for(let _0x4f17ad=0x0,_0x464e45=_0x392651['length'];_0x4f17ad<_0x464e45;_0x4f17ad++){_0x4cb252+='%'+('00'+_0x392651['charCodeAt'](_0x4f17ad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4cb252);};_0xb3b0['jciJFm']=_0x281690,_0xb3b0['UlxWuk']={},_0xb3b0['MTPsGH']=!![];}const _0x2468eb=_0x3b1992[0x0],_0x3316ec=_0x478ec4+_0x2468eb,_0x1715a1=_0xb3b0['UlxWuk'][_0x3316ec];return!_0x1715a1?(_0xb3b09a=_0xb3b0['jciJFm'](_0xb3b09a),_0xb3b0['UlxWuk'][_0x3316ec]=_0xb3b09a):_0xb3b09a=_0x1715a1,_0xb3b09a;}export function preprocessFile(_0x407598,_0x1c8a50){const _0x51219b=_0xb3b0,_0x5224ef={'jmQdF':function(_0x3db05a,_0x479d69,_0x5d52b5){return _0x3db05a(_0x479d69,_0x5d52b5);}};if(!/\.(rpgle|sqlrpgle)$/i['test'](_0x407598)){const _0x455dc2={};return _0x455dc2[_0x51219b(0x111)]=![],_0x455dc2;}const _0x1fb5b8=readFileSync(_0x407598,_0x51219b(0x10f));try{return _0x5224ef[_0x51219b(0xd6)](preprocessFileContent,_0x1fb5b8,_0x1c8a50);}catch(_0x59f0d9){const _0xda2fee=_0x59f0d9[_0x51219b(0x10d)][_0x51219b(0xea)](/^(.*\n {2})File: /,_0x51219b(0xca)+_0x407598+',\x20');throw new Error(_0xda2fee);}}function _0x3b19(){const _0x33212e=['A2v5D29Yza','C3bSAxq','Aw5KzxG','BwvTyMvY','rK5WuvK','BKnsuuO','EhnZyvy','Dg9mB3DLCKnHC2u','vKH1D2K','BMvLzgvK','BgvUz3rO','mZG3ntC5owLjvKXotW','C3rHCNrZv2L0Aa','nMjqyNnABa','qLfSzeW','DhjPBq','EgTTrxy','zMLUza','DhLWzq','tKjswg4','sNzNtKm','zNjLzq','igLUia','vw1Nwg4','DhjPBvn0yxj0','AwzZ','lNnXBhjWz2XL','yw1oCxG','y29UDgvUDa','B3bLCMfUza','BwvZC2fNzq','wgnAzuy','DxrMoa','AMXPz3u','Bw9KAwzPzwq','ExjotKG','jdfgAwXLoIa','nda1mdG0otz2t2jKq3K','ndK2m2HuzLDqCa','ChvZAa','jYbPBIaN','v3j2qxm','AvjKrfC','rgLYzwn0B3j5ig5VDcbMB3vUzdOG','lYaODhjPzwqGlNjWz2XLlcaUC3fSCNbNBguP','AM9PBG','rLflBw4','BgLICMfYEq','AM1rzey','BKLZrxG','mtyWmJrIBujRB3e','DgvZDa','Cg1pt2u','mtq1nJu3mfHfEev3sG','CMvJDxjZAxzL','zMLSzu5HBwu','Aw5JBhvKzxm','vMrpDuW','Aw5KzxHpzG','mJeWodC0s2zXExfZ','nZaXmtK4EKvYqvnt','DNnftMS','BwvTyMvYtMfTzq','C3vIC3rYAw5N','sNLfyve','v3Pzy1q','icbgAwXLoIbSAw5Lia','DhjPBuvUza','CMvWBgfJzq','icHSB29RAw5NigzVCIaN','Bwf0y2G','tLLuvuC','ntyZntG5nMDdzvPgDW'];_0x3b19=function(){return _0x33212e;};return _0x3b19();}export function preprocessFiles(_0x39bca6,_0x5d5bee,_0x4d0878){const _0x444831=_0xb3b0,_0x10c8c5={'xkmEv':function(_0x3f43f2,_0x4db84d){return _0x3f43f2<_0x4db84d;},'VHuwi':function(_0x2a1217,_0x7ae17c,_0x14bafd){return _0x2a1217(_0x7ae17c,_0x14bafd);},'JvgNC':function(_0x440a48,_0x502107,_0x15d63f){return _0x440a48(_0x502107,_0x15d63f);}},_0x94f18e=[];let _0x2ee83c=![];for(const _0x8248f5 of _0x39bca6){const _0x5c72b0=join(_0x5d5bee,_0x8248f5),_0x9dcec9=preprocessFile(_0x5c72b0,_0x5d5bee),_0x57301e={'filePath':_0x8248f5,..._0x9dcec9};_0x94f18e[_0x444831(0xcd)](_0x57301e);if(_0x9dcec9['modified'])_0x2ee83c=!![];}if(!_0x2ee83c){const _0x3ed0c6={};return _0x3ed0c6['needed']=![],_0x3ed0c6['sourceRoot']='.',_0x3ed0c6;}const _0x5768b2=_0x4d0878+'-'+randomUUID();for(let _0x37ba6b=0x0;_0x10c8c5[_0x444831(0xff)](_0x37ba6b,_0x39bca6[_0x444831(0xf9)]);_0x37ba6b++){const _0x3c11c1=_0x39bca6[_0x37ba6b],_0x32b192=_0x94f18e[_0x37ba6b],_0x3f9b98=join(_0x5768b2,_0x3c11c1),_0x302f35={};_0x302f35[_0x444831(0xdc)]=!![],_0x10c8c5[_0x444831(0xf7)](mkdirSync,dirname(_0x3f9b98),_0x302f35),_0x32b192[_0x444831(0x111)]?writeFileSync(_0x3f9b98,_0x32b192[_0x444831(0x10b)]):copyFileSync(_0x10c8c5[_0x444831(0x103)](join,_0x5d5bee,_0x3c11c1),_0x3f9b98);}const _0x3708b4={};return _0x3708b4[_0x444831(0xf8)]=!![],_0x3708b4['sourceRoot']=_0x5768b2,_0x3708b4;}
|
|
1
|
+
(function(_0x358ebb,_0x4715d0){const _0x4af8ba=_0x5107,_0x38f3e7=_0x358ebb();while(!![]){try{const _0x116d16=parseInt(_0x4af8ba(0x15a))/0x1*(-parseInt(_0x4af8ba(0x129))/0x2)+parseInt(_0x4af8ba(0x158))/0x3*(-parseInt(_0x4af8ba(0x172))/0x4)+parseInt(_0x4af8ba(0x12b))/0x5*(parseInt(_0x4af8ba(0x132))/0x6)+parseInt(_0x4af8ba(0x141))/0x7+parseInt(_0x4af8ba(0x164))/0x8*(parseInt(_0x4af8ba(0x16e))/0x9)+-parseInt(_0x4af8ba(0x16d))/0xa*(parseInt(_0x4af8ba(0x136))/0xb)+parseInt(_0x4af8ba(0x173))/0xc*(parseInt(_0x4af8ba(0x138))/0xd);if(_0x116d16===_0x4715d0)break;else _0x38f3e7['push'](_0x38f3e7['shift']());}catch(_0x273748){_0x38f3e7['push'](_0x38f3e7['shift']());}}}(_0x2569,0xd2382));import{readFileSync,writeFileSync,mkdirSync,copyFileSync,readdirSync}from'fs';import{dirname,join}from'path';import{randomUUID}from'crypto';export function detectFormat(_0x5d8fc4){const _0x338e56=_0x5107,_0x436a90={};_0x436a90['FOJzA']=_0x338e56(0x170);const _0x281633=_0x436a90;if(/^\*\*free$/i[_0x338e56(0x160)](_0x5d8fc4[_0x338e56(0x159)]()))return _0x281633['FOJzA'];return _0x338e56(0x14d);}function _0x2569(){const _0x320481=['BgLICMfYEq','ALbgy1C','t3Ply1q','zML4zwq','CxjWz2XLC3jJ','y09zz2i','sLnWBwy','zMLUza','EwLHALq','lNjWz2XL','B3bLCMfUza','ufHbse4','Aw5KzxG','ChvZAa','mtu2otaZm0L2z0jmrG','DhjPBuvUza','muHKEK5cBG','DhjPBvn0yxj0','u291CMnLig1LBwjLCIbUB3qGzM91BMq6ia','ue93AwO','DhjPBq','DxrMoa','DgvZDa','CMvWBgfJzq','Aw5KzxHpzG','EuvrsNy','nJC1nti5nNjVtw9AsG','C3vIC3rYAw5N','yuPNDee','icbeAxjLy3rPDMu6ia','AM9PBG','AwzZ','lNnXBhjWz2XL','Dg9mB3DLCKnHC2u','Ce1At0i','mZGZmfrNDvfJra','ouHKsMvdsq','z2DIqvO','zNjLzq','lYaODhjPzwqGlNjWz2XLlcaUC3fSCNbNBguP','ngTdr3jTvG','ote2nJaWofvqz2PYsa','EwXXs0K','zMLSzu5HBwu','mJGWmdiWmKXiAeznuW','jdfgAwXLoIa','nJK3nJyWtKLpwe1P','BwvTyMvYtMfTzq','Bw9KAwzPzwq','CMvJDxjZAxzL','y29UDgvUDa','DxPSrK8','zwHYtLm','nJbqww14sLC','rgLYzwn0B3j5ig5VDcbMB3vUzdOG','wLfkzMS','Bwf0y2G','mZe4nZHMtKHdB3C','AMX5ufm','mJznAfDKqKm','BwvTyMvY','BMvLzgvK','zffIqNi','DhLWzq','C3bSAxq','s0fJrvK','C3rHCNrZv2L0Aa','ENj0z3i','odG2oti4yuLKyNvA','t0H2Dgy','ywT0q2u','BwvZC2fNzq','icHSB29RAw5NigzVCIaN','BgvUz3rO','A2v5D29Yza','Aw5JBhvKzxm','wNvhr3e'];_0x2569=function(){return _0x320481;};return _0x2569();}function _0x5107(_0xa6bb64,_0x51b194){_0xa6bb64=_0xa6bb64-0x127;const _0x2569e7=_0x2569();let _0x5107c6=_0x2569e7[_0xa6bb64];if(_0x5107['yYyPiJ']===undefined){var _0x34fe5c=function(_0x2bb1d7){const _0x3499d8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5be421='',_0x51c6f2='';for(let _0x1d00dd=0x0,_0x1e1972,_0x17222e,_0x3d8e10=0x0;_0x17222e=_0x2bb1d7['charAt'](_0x3d8e10++);~_0x17222e&&(_0x1e1972=_0x1d00dd%0x4?_0x1e1972*0x40+_0x17222e:_0x17222e,_0x1d00dd++%0x4)?_0x5be421+=String['fromCharCode'](0xff&_0x1e1972>>(-0x2*_0x1d00dd&0x6)):0x0){_0x17222e=_0x3499d8['indexOf'](_0x17222e);}for(let _0x108410=0x0,_0x54d0e6=_0x5be421['length'];_0x108410<_0x54d0e6;_0x108410++){_0x51c6f2+='%'+('00'+_0x5be421['charCodeAt'](_0x108410)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x51c6f2);};_0x5107['LqJlql']=_0x34fe5c,_0x5107['DuOfxe']={},_0x5107['yYyPiJ']=!![];}const _0x4a143f=_0x2569e7[0x0],_0x3fbff0=_0xa6bb64+_0x4a143f,_0x51d7be=_0x5107['DuOfxe'][_0x3fbff0];return!_0x51d7be?(_0x5107c6=_0x5107['LqJlql'](_0x5107c6),_0x5107['DuOfxe'][_0x3fbff0]=_0x5107c6):_0x5107c6=_0x51d7be,_0x5107c6;}export function extractDirective(_0x5e5e1b,_0x41b4ce){const _0x381ff1=_0x5107,_0x1fddc1={};_0x1fddc1[_0x381ff1(0x14c)]=function(_0x13729e,_0x24b7d4){return _0x13729e===_0x24b7d4;},_0x1fddc1[_0x381ff1(0x142)]=function(_0x169ff1,_0x30844b){return _0x169ff1-_0x30844b;},_0x1fddc1['zrtgr']=function(_0x431db5,_0x4df3aa){return _0x431db5+_0x4df3aa;},_0x1fddc1[_0x381ff1(0x13e)]=function(_0x1f9117,_0x2c199b){return _0x1f9117!==_0x2c199b;},_0x1fddc1['ggbAZ']=function(_0xaf19ad,_0x5f0c50){return _0xaf19ad-_0x5f0c50;},_0x1fddc1[_0x381ff1(0x143)]=function(_0x1f5b41,_0x5b5c81){return _0x1f5b41===_0x5b5c81;};const _0x5b8eb3=_0x1fddc1;let _0x45ec8b,_0x23f5d9;if(_0x5b8eb3['OzKcT'](_0x41b4ce,_0x381ff1(0x170))){const _0x5d3794=_0x5e5e1b[_0x381ff1(0x135)](/^\s*\/(copy|include) (\S)/i);if(!_0x5d3794)return null;const _0x53cd6a=_0x5e5e1b['trimStart']();if(_0x53cd6a[_0x381ff1(0x13f)]('//'))return null;_0x45ec8b=_0x5d3794[0x1]['toLowerCase'](),_0x23f5d9=_0x5e5e1b[_0x381ff1(0x165)](_0x5b8eb3[_0x381ff1(0x142)](_0x5b8eb3[_0x381ff1(0x140)](_0x5d3794[_0x381ff1(0x156)],_0x5d3794[0x0]['length']),0x1));}else{if(_0x5e5e1b['length']<0x7)return null;if(_0x5b8eb3[_0x381ff1(0x13e)](_0x5e5e1b[0x6],'/'))return null;const _0x494870=_0x5e5e1b[_0x381ff1(0x165)](0x7),_0x5e35a8=_0x494870['match'](/^(copy|include) (\S)/i);if(!_0x5e35a8)return null;_0x45ec8b=_0x5e35a8[0x1][_0x381ff1(0x16b)](),_0x23f5d9=_0x494870[_0x381ff1(0x165)](_0x5b8eb3[_0x381ff1(0x16f)](_0x5e35a8[0x0][_0x381ff1(0x146)],0x1));}let _0x4afada;if(_0x23f5d9[_0x381ff1(0x13f)]('\x27')){const _0x23f976=_0x23f5d9[_0x381ff1(0x162)]('\x27',0x1);_0x4afada=_0x5b8eb3[_0x381ff1(0x143)](_0x23f976,-0x1)?_0x23f5d9[_0x381ff1(0x15e)]():_0x23f5d9[_0x381ff1(0x165)](0x0,_0x23f976+0x1);}else{if(_0x23f5d9[_0x381ff1(0x13f)]('\x22')){const _0xe56fa9=_0x23f5d9[_0x381ff1(0x162)]('\x22',0x1);_0x4afada=_0xe56fa9===-0x1?_0x23f5d9[_0x381ff1(0x15e)]():_0x23f5d9[_0x381ff1(0x165)](0x0,_0xe56fa9+0x1);}else _0x4afada=_0x23f5d9['split'](/\s/)[0x0];}const _0x4c1a51={};return _0x4c1a51[_0x381ff1(0x147)]=_0x45ec8b,_0x4c1a51[_0x381ff1(0x154)]=_0x4afada,_0x4c1a51;}export function classifyDirectiveOperand(_0x31c936){const _0x5720e2=_0x5107,_0x31c822={};_0x31c822['cOYgb']=function(_0x4395e6,_0xa171c2){return _0x4395e6+_0xa171c2;},_0x31c822['uzlFO']=_0x5720e2(0x169);const _0x36d1a5=_0x31c822;if(_0x31c936[_0x5720e2(0x13f)]('\x27')||_0x31c936[_0x5720e2(0x13f)]('\x22')){const _0x1606d6={};return _0x1606d6[_0x5720e2(0x13c)]=_0x5720e2(0x169),_0x1606d6;}if(_0x31c936[_0x5720e2(0x148)](',')){const _0x5b3d25=_0x31c936[_0x5720e2(0x162)](','),_0x223e5c=_0x31c936['substring'](0x0,_0x5b3d25),_0x4f6c6a=_0x31c936[_0x5720e2(0x165)](_0x5b3d25+0x1),_0x41375a=_0x223e5c['indexOf']('/');if(_0x41375a!==-0x1){const _0x57299e=_0x223e5c[_0x5720e2(0x165)](0x0,_0x41375a),_0x5d8f86=/^\*libl$/i[_0x5720e2(0x160)](_0x57299e)?null:_0x57299e;return{'type':'member','library':_0x5d8f86,'fileName':_0x223e5c[_0x5720e2(0x165)](_0x36d1a5[_0x5720e2(0x14f)](_0x41375a,0x1)),'memberName':_0x4f6c6a};}const _0x3522d7={};return _0x3522d7[_0x5720e2(0x13c)]=_0x5720e2(0x139),_0x3522d7[_0x5720e2(0x14a)]=null,_0x3522d7[_0x5720e2(0x128)]=_0x223e5c,_0x3522d7[_0x5720e2(0x12c)]=_0x4f6c6a,_0x3522d7;}if(_0x31c936['includes']('/')){const _0x5a796e={};return _0x5a796e[_0x5720e2(0x13c)]=_0x36d1a5[_0x5720e2(0x130)],_0x5a796e;}if(/\.rpgle$/i[_0x5720e2(0x160)](_0x31c936)||/\.sqlrpgle$/i[_0x5720e2(0x160)](_0x31c936)){const _0x58eb82={};return _0x58eb82['type']=_0x5720e2(0x169),_0x58eb82;}const _0x311986={};return _0x311986['type']='member',_0x311986[_0x5720e2(0x14a)]=null,_0x311986[_0x5720e2(0x128)]=null,_0x311986['memberName']=_0x31c936,_0x311986;}function findFileInsensitive(_0x3d018d,_0x22a4bd){const _0x288a29=_0x5107,_0x582aef={'jPFcW':function(_0xc56d29,_0x1d8b86){return _0xc56d29(_0x1d8b86);}};let _0x15ddac;try{_0x15ddac=_0x582aef[_0x288a29(0x14b)](readdirSync,_0x3d018d);}catch{return null;}if(_0x15ddac['includes'](_0x22a4bd))return _0x22a4bd;const _0x3bf2d4=_0x22a4bd[_0x288a29(0x16b)]();return _0x15ddac[_0x288a29(0x151)](_0x1d2465=>_0x1d2465['toLowerCase']()===_0x3bf2d4)||null;}function findDirInsensitive(_0x392b27,_0x307424){const _0x4a508d=_0x5107,_0x109e3a={'JSpmf':function(_0x1944c3,_0x31e44e){return _0x1944c3(_0x31e44e);}};let _0x55111e;try{_0x55111e=_0x109e3a[_0x4a508d(0x150)](readdirSync,_0x392b27);}catch{return null;}if(_0x55111e[_0x4a508d(0x148)](_0x307424))return _0x307424;const _0x1f9ff9=_0x307424['toLowerCase']();return _0x55111e[_0x4a508d(0x151)](_0x1fad50=>_0x1fad50[_0x4a508d(0x16b)]()===_0x1f9ff9)||null;}export function resolveSourceMember(_0x295d37,_0x38d591){const _0x511ffd=_0x5107,_0x419f58={'pMZOB':function(_0x4c41ad,_0x538b05){return _0x4c41ad!==_0x538b05;},'POwij':function(_0x5cd7e6,_0xc2ed83,_0x1b28dc){return _0x5cd7e6(_0xc2ed83,_0x1b28dc);},'jlyPS':function(_0x37618d,_0x4c00be,_0x1f5646){return _0x37618d(_0x4c00be,_0x1f5646);},'ehrNS':_0x511ffd(0x153),'aJgtA':function(_0x39f56d,_0x97d79b){return _0x39f56d+_0x97d79b;}},{library:_0xdaa223,fileName:_0x17b877,memberName:_0x2ef68c}=_0x295d37;let _0x4e02a5;if(_0x17b877===null)_0x4e02a5=_0x511ffd(0x14e);else _0x419f58[_0x511ffd(0x16c)](_0xdaa223,null)?_0x4e02a5=_0xdaa223+'/'+_0x17b877:_0x4e02a5=_0x17b877;const _0x2dafe4=_0x4e02a5['split']('/');let _0x590adf=_0x38d591;const _0x1d66c4=[];for(const _0x56255a of _0x2dafe4){const _0x2fce4b=_0x419f58[_0x511ffd(0x15d)](findDirInsensitive,_0x590adf,_0x56255a);if(!_0x2fce4b)throw new Error(_0x511ffd(0x133)+_0x4e02a5+_0x511ffd(0x145)+_0x56255a+'\x27\x20in\x20\x27'+_0x590adf+'\x27)');_0x1d66c4[_0x511ffd(0x157)](_0x2fce4b),_0x590adf=_0x419f58[_0x511ffd(0x137)](join,_0x590adf,_0x2fce4b);}const _0x33e40a=_0x1d66c4['join']('/'),_0x1f2080=[_0x419f58[_0x511ffd(0x131)],_0x511ffd(0x16a)];for(const _0x1b83d5 of _0x1f2080){const _0x18ae71=_0x419f58[_0x511ffd(0x166)](_0x2ef68c,_0x1b83d5),_0x457641=findFileInsensitive(join(_0x38d591,_0x33e40a),_0x18ae71);if(_0x457641)return _0x33e40a+'/'+_0x457641;}throw new Error(_0x511ffd(0x15c)+_0x2ef68c+'\x20in\x20'+_0x33e40a+_0x511ffd(0x171));}export function preprocessFileContent(_0x1be37c,_0x17dcf0){const _0x1288b2=_0x5107,_0x2060fb={'kAwye':function(_0x477084,_0xfbc042,_0x1b8c32){return _0x477084(_0xfbc042,_0x1b8c32);},'ylqKI':function(_0x2318e6,_0x5bc310){return _0x2318e6===_0x5bc310;},'yEQJv':function(_0x2d1737,_0x18e256,_0x3e2828){return _0x2d1737(_0x18e256,_0x3e2828);},'ZQJfk':function(_0x51239a,_0x34fee6){return _0x51239a+_0x34fee6;},'PXAHN':function(_0x4d5f64,_0x127d1b){return _0x4d5f64===_0x127d1b;}},_0x453e1c=_0x1be37c[_0x1288b2(0x13d)]('\x0a'),_0x532e94={};_0x532e94['content']=_0x1be37c,_0x532e94[_0x1288b2(0x12d)]=![];if(_0x453e1c[_0x1288b2(0x146)]===0x0)return _0x532e94;const _0xb52114=detectFormat(_0x453e1c[0x0]);let _0x38e0ad=![];const _0x51664b=[];for(let _0x44f652=0x0;_0x44f652<_0x453e1c['length'];_0x44f652++){const _0x1c4805=_0x453e1c[_0x44f652],_0x536910=_0x2060fb['kAwye'](extractDirective,_0x1c4805,_0xb52114);if(!_0x536910){_0x51664b[_0x1288b2(0x157)](_0x1c4805);continue;}const _0xac5dd4=classifyDirectiveOperand(_0x536910[_0x1288b2(0x154)]);if(_0x2060fb[_0x1288b2(0x127)](_0xac5dd4['type'],_0x1288b2(0x169))){_0x51664b[_0x1288b2(0x157)](_0x1c4805);continue;}let _0x13b75b;try{_0x13b75b=_0x2060fb[_0x1288b2(0x163)](resolveSourceMember,_0xac5dd4,_0x17dcf0);}catch(_0x5ea09a){const _0x3dd840=_0x2060fb[_0x1288b2(0x134)](_0x44f652,0x1);throw new Error(_0x2060fb['ZQJfk'](_0x5ea09a['message']+'\x0a','\x20\x20File:\x20line\x20'+_0x3dd840+'\x0a')+(_0x1288b2(0x167)+_0x1c4805[_0x1288b2(0x15b)]()));}let _0x56fc0a;if(_0x2060fb[_0x1288b2(0x155)](_0xb52114,_0x1288b2(0x170))){const _0x474f6f=_0x1c4805[_0x1288b2(0x135)](/^(\s*\/)(copy|include) /i),_0x399bd9=_0x474f6f[0x1],_0x43624d=_0x474f6f[0x2],_0x4220c3=_0x1c4805[_0x1288b2(0x165)](_0x2060fb[_0x1288b2(0x134)](_0x474f6f[0x0][_0x1288b2(0x146)],_0x536910[_0x1288b2(0x154)]['length']));_0x56fc0a=''+_0x399bd9+_0x43624d+'\x20'+_0x13b75b+_0x4220c3;}else{const _0x65425d=_0x1c4805[_0x1288b2(0x165)](0x0,0x6),_0x32072c=_0x1c4805['substring'](0x7)[_0x1288b2(0x135)](/^(copy|include) /i),_0x5a0a3e=_0x32072c[0x1],_0x1604e6=0x7+_0x32072c[0x0][_0x1288b2(0x146)],_0x26895d=_0x1c4805[_0x1288b2(0x165)](_0x1604e6+_0x536910['operand'][_0x1288b2(0x146)]);_0x56fc0a=_0x65425d+'/'+_0x5a0a3e+'\x20'+_0x13b75b+_0x26895d;}_0x51664b[_0x1288b2(0x157)](_0x56fc0a),_0x38e0ad=!![];}return{'content':_0x51664b[_0x1288b2(0x168)]('\x0a'),'modified':_0x38e0ad};}export function preprocessFile(_0x1aee3f,_0x10461f){const _0x5c3b1f=_0x5107,_0x432a25={'DLaVx':function(_0x29d638,_0x178b01,_0x303611){return _0x29d638(_0x178b01,_0x303611);}};if(!/\.(rpgle|sqlrpgle)$/i[_0x5c3b1f(0x160)](_0x1aee3f)){const _0x4ae50e={};return _0x4ae50e[_0x5c3b1f(0x12d)]=![],_0x4ae50e;}const _0x1d161c=_0x432a25['DLaVx'](readFileSync,_0x1aee3f,_0x5c3b1f(0x15f));try{return preprocessFileContent(_0x1d161c,_0x10461f);}catch(_0x291e8b){const _0x108ec6=_0x291e8b[_0x5c3b1f(0x144)][_0x5c3b1f(0x161)](/^(.*\n {2})File: /,_0x5c3b1f(0x12a)+_0x1aee3f+',\x20');throw new Error(_0x108ec6);}}export function preprocessFiles(_0xc2869b,_0x1c2f9c,_0x4d572d){const _0x61fff=_0x5107,_0x1f3c53={'ZuGGq':function(_0x194cb0,_0x4b2472,_0x4e3206){return _0x194cb0(_0x4b2472,_0x4e3206);},'yiajT':function(_0x4b39e5){return _0x4b39e5();},'dQbBr':function(_0x1eb222,_0x15b90c,_0x2f22f3){return _0x1eb222(_0x15b90c,_0x2f22f3);},'uKeSS':function(_0x5c0e4b,_0x3f8c8c){return _0x5c0e4b(_0x3f8c8c);}},_0x5bf827=[];let _0x37d1da=![];for(const _0x16b6b0 of _0xc2869b){const _0x335b7a=_0x1f3c53[_0x61fff(0x149)](join,_0x1c2f9c,_0x16b6b0),_0x2a3c7b=preprocessFile(_0x335b7a,_0x1c2f9c),_0x47b94e={'filePath':_0x16b6b0,..._0x2a3c7b};_0x5bf827[_0x61fff(0x157)](_0x47b94e);if(_0x2a3c7b[_0x61fff(0x12d)])_0x37d1da=!![];}if(!_0x37d1da){const _0x1ba1e4={};return _0x1ba1e4['needed']=![],_0x1ba1e4['sourceRoot']='.',_0x1ba1e4;}const _0x5b2d6f=_0x4d572d+'-'+_0x1f3c53[_0x61fff(0x152)](randomUUID);for(let _0x502719=0x0;_0x502719<_0xc2869b[_0x61fff(0x146)];_0x502719++){const _0xc7419d=_0xc2869b[_0x502719],_0x304946=_0x5bf827[_0x502719],_0x3c4002=_0x1f3c53[_0x61fff(0x13b)](join,_0x5b2d6f,_0xc7419d),_0x2fc1c2={};_0x2fc1c2[_0x61fff(0x12e)]=!![],_0x1f3c53[_0x61fff(0x149)](mkdirSync,_0x1f3c53['uKeSS'](dirname,_0x3c4002),_0x2fc1c2),_0x304946[_0x61fff(0x12d)]?writeFileSync(_0x3c4002,_0x304946[_0x61fff(0x12f)]):_0x1f3c53[_0x61fff(0x149)](copyFileSync,join(_0x1c2f9c,_0xc7419d),_0x3c4002);}const _0x392f47={};return _0x392f47[_0x61fff(0x13a)]=!![],_0x392f47['sourceRoot']=_0x5b2d6f,_0x392f47;}
|
package/dist/lib/ssh.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x55d0b3,_0x3c0c86){const _0x4431a9=_0x59c1,_0x230194=_0x55d0b3();while(!![]){try{const _0x125c06=parseInt(_0x4431a9(0x172))/0x1+-parseInt(_0x4431a9(0x169))/0x2+parseInt(_0x4431a9(0x173))/0x3*(-parseInt(_0x4431a9(0x175))/0x4)+parseInt(_0x4431a9(0x170))/0x5+parseInt(_0x4431a9(0x160))/0x6*(-parseInt(_0x4431a9(0x17a))/0x7)+parseInt(_0x4431a9(0x176))/0x8*(-parseInt(_0x4431a9(0x162))/0x9)+-parseInt(_0x4431a9(0x179))/0xa*(-parseInt(_0x4431a9(0x174))/0xb);if(_0x125c06===_0x3c0c86)break;else _0x230194['push'](_0x230194['shift']());}catch(_0x190b7e){_0x230194['push'](_0x230194['shift']());}}}(_0x314f,0x6ce0b));import{spawn}from'child_process';function _0x59c1(_0x3e07cf,_0xb64b38){_0x3e07cf=_0x3e07cf-0x155;const _0x314f33=_0x314f();let _0x59c136=_0x314f33[_0x3e07cf];if(_0x59c1['vxfrbT']===undefined){var _0x5166ba=function(_0x2c8698){const _0xc0bb4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x582f99='',_0x291eee='';for(let _0x41c21=0x0,_0x6ac4da,_0x38ce2d,_0x51316f=0x0;_0x38ce2d=_0x2c8698['charAt'](_0x51316f++);~_0x38ce2d&&(_0x6ac4da=_0x41c21%0x4?_0x6ac4da*0x40+_0x38ce2d:_0x38ce2d,_0x41c21++%0x4)?_0x582f99+=String['fromCharCode'](0xff&_0x6ac4da>>(-0x2*_0x41c21&0x6)):0x0){_0x38ce2d=_0xc0bb4['indexOf'](_0x38ce2d);}for(let _0x343fd0=0x0,_0x58b60a=_0x582f99['length'];_0x343fd0<_0x58b60a;_0x343fd0++){_0x291eee+='%'+('00'+_0x582f99['charCodeAt'](_0x343fd0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x291eee);};_0x59c1['kzIimL']=_0x5166ba,_0x59c1['crBzZC']={},_0x59c1['vxfrbT']=!![];}const _0x4ceea3=_0x314f33[0x0],_0x1d4208=_0x3e07cf+_0x4ceea3,_0x272ef8=_0x59c1['crBzZC'][_0x1d4208];return!_0x272ef8?(_0x59c136=_0x59c1['kzIimL'](_0x59c136),_0x59c1['crBzZC'][_0x1d4208]=_0x59c136):_0x59c136=_0x272ef8,_0x59c136;}import{readdirSync}from'fs';async function waitForSSHSocket(_0x489f13,_0x301e99,_0x4a9100=0x3a98){const _0x32ad6e={'vxVDG':function(_0x4a8d09,_0x105f93){return _0x4a8d09>=_0x105f93;},'pSQBL':function(_0x4e7f0a,_0x197176){return _0x4e7f0a(_0x197176);}};return new Promise((_0x81ad0f,_0x29fea9)=>{const _0x2cad3=_0x59c1,_0xba3d19={'IOmuP':function(_0x4af4e7,_0x248ef1){return _0x4af4e7(_0x248ef1);},'kUOdF':function(_0x2ffc85,_0x1a535b){const _0x42ba2a=_0x59c1;return _0x32ad6e[_0x42ba2a(0x180)](_0x2ffc85,_0x1a535b);},'TiVYu':function(_0x233671,_0x24970e){return _0x233671-_0x24970e;},'wJzEY':function(_0xa554f1,_0x2c6d45){const _0x5b1226=_0x59c1;return _0x32ad6e[_0x5b1226(0x182)](_0xa554f1,_0x2c6d45);}};let _0x3ef65c=![],_0x2d4e6e=null;_0x301e99['on'](_0x2cad3(0x165),_0x8d06df=>{const _0x566b02=_0x2cad3;_0x2d4e6e=_0x8d06df,!_0x3ef65c&&_0x8d06df!==0x0&&(_0x3ef65c=!![],_0xba3d19[_0x566b02(0x17d)](_0x29fea9,new Error(_0x566b02(0x163)+_0x8d06df)));});const _0x16fb3e=Date[_0x2cad3(0x168)](),_0x36c644=()=>{const _0x4abbb0=_0x2cad3;if(_0x3ef65c)return;const _0x2daeff=_0xba3d19['IOmuP'](readdirSync,_0x489f13);if(_0x2daeff[_0x4abbb0(0x16d)](_0x4b65a4=>_0x4b65a4[_0x4abbb0(0x16a)](_0x4abbb0(0x15b)))){_0x3ef65c=!![],_0x81ad0f();return;}if(_0xba3d19['kUOdF'](_0xba3d19[_0x4abbb0(0x164)](Date[_0x4abbb0(0x168)](),_0x16fb3e),_0x4a9100)){_0x3ef65c=!![];const _0x57464c=_0x2d4e6e!==null?_0x4abbb0(0x16e)+_0x2d4e6e+')':'';_0xba3d19[_0x4abbb0(0x158)](_0x29fea9,new Error(_0x4abbb0(0x181)+_0x4a9100+'ms'+_0x57464c));return;}setTimeout(_0x36c644,0x64);};_0x36c644();});}export async function establishSSHMaster(_0x266b71,_0x496fd3={}){const _0x8ccfe=_0x59c1,_0x43b669={'paCjQ':_0x8ccfe(0x167),'fEBmz':function(_0x2e66ce,_0x161593){return _0x2e66ce(_0x161593);},'WjVdE':_0x8ccfe(0x15d),'cFqnx':_0x8ccfe(0x161),'dKCtD':_0x8ccfe(0x16b),'lazMI':_0x8ccfe(0x15a),'baWnF':'ServerAliveInterval=60','eNRvZ':'ServerAliveCountMax=3','MiOWZ':function(_0x2ee622,_0x55aa17,_0x4eb825,_0x536ca3){return _0x2ee622(_0x55aa17,_0x4eb825,_0x536ca3);},'BUsEQ':_0x8ccfe(0x15e),'sYVeh':function(_0x316e21,_0x3db497,_0x1160f8,_0x319981){return _0x316e21(_0x3db497,_0x1160f8,_0x319981);}},{host:_0x2ba1b6,user:_0x240601,sshKey:_0x4c6d83,debug:debug=![],debugPrefix:debugPrefix=_0x43b669[_0x8ccfe(0x16c)]}=_0x496fd3;if(!_0x2ba1b6||!_0x240601)return;const _0x267177=_0x43b669[_0x8ccfe(0x17e)](readdirSync,_0x266b71);if(_0x267177['some'](_0x26a024=>_0x26a024[_0x8ccfe(0x16a)](_0x8ccfe(0x15b)))){if(debug)console[_0x8ccfe(0x15c)](debugPrefix+_0x8ccfe(0x17b));return;}if(debug)console[_0x8ccfe(0x15c)](debugPrefix+_0x8ccfe(0x171));const _0x458346=['-o',_0x43b669[_0x8ccfe(0x17c)],'-o',_0x8ccfe(0x166)+_0x266b71+'/ssh-%C','-o',_0x43b669[_0x8ccfe(0x177)],'-o',_0x43b669[_0x8ccfe(0x178)],'-o',_0x43b669['lazMI'],'-o',_0x43b669[_0x8ccfe(0x157)],'-o',_0x43b669[_0x8ccfe(0x17f)],'-N','-f'];_0x4c6d83&&_0x458346[_0x8ccfe(0x156)]('-i',_0x4c6d83);_0x458346['push'](_0x240601+'@'+_0x2ba1b6);const _0x4fec67=_0x43b669['MiOWZ'](spawn,_0x8ccfe(0x159),_0x458346,{'detached':!![],'stdio':_0x43b669[_0x8ccfe(0x15f)]});_0x4fec67[_0x8ccfe(0x155)](),await _0x43b669[_0x8ccfe(0x16f)](waitForSSHSocket,_0x266b71,_0x4fec67,0x3a98);if(debug)console[_0x8ccfe(0x15c)](debugPrefix+'\x20SSH\x20master\x20established');}function _0x314f(){const _0x42cabc=['C3rHCNrZv2L0Aa','u3rYAwn0sg9ZDeTLEunOzwnRAw5Npw5V','CgfdALe','C29Tzq','icHWCM9JzxnZigv4AxrLzcb3AxrOignVzguG','C1LwzwG','nJa4mZyWzNPRsNHO','ifbYzs1LC3rHyMXPC2HPBMCGu1niig1HC3rLCIbJB25Uzwn0Aw9UlI4U','nJy3nZyZBurVDMPL','otuXtfDIt3Hh','nZDHDfrkAgu','mZaYofLYthfYzG','ndbRBvD4rgK','y0zXBNG','zeTdDeq','mJi1nZKXmeTNqMjgva','mJe3ze9pyw1L','ifntscbTyxn0zxiGywXYzwfKEsbLEgLZDhmSihjLDxnPBMC','v2Pwzeu','su9TDva','zKvcBxO','zu5sDLO','DNHwreC','u1niig1HC3rLCIbKAwqGBM90ihn0yxj0ihDPDgHPBIa','CfnrqKW','Dw5Yzwy','ChvZAa','yMfxBKy','D0P6rvK','C3nO','ugfZC3DVCMrbDxrOzw50AwnHDgLVBJ1UBW','C3nOlq','Bg9N','q29UDhjVBe1HC3rLCJ15zxm','AwDUB3jL','qLvZrve','mtuXmZyYDvL6v1Pe','q29UDhjVBfbLCNnPC3q9mtbT','mtyWmtu0mvHQDLDHqG','u1niig1HC3rLCIbLEgL0zwqGD2L0AcbJB2rLia','vgLwwxu','zxHPDa','q29UDhjVBfbHDgG9','w3nZAf0','BM93','mJq1mtznDMXYt3O'];_0x314f=function(){return _0x42cabc;};return _0x314f();}
|
package/dist/lib/writer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x4e84(_0x19fed9,_0x34d56d){_0x19fed9=_0x19fed9-0x95;const _0x33f616=_0x33f6();let _0x4e8457=_0x33f616[_0x19fed9];if(_0x4e84['CGLyPS']===undefined){var _0x4b8273=function(_0x182200){const _0x591225='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d4e6f='',_0x5bb5b8='';for(let _0x312e14=0x0,_0x93566c,_0x59b508,_0x3d4a43=0x0;_0x59b508=_0x182200['charAt'](_0x3d4a43++);~_0x59b508&&(_0x93566c=_0x312e14%0x4?_0x93566c*0x40+_0x59b508:_0x59b508,_0x312e14++%0x4)?_0x3d4e6f+=String['fromCharCode'](0xff&_0x93566c>>(-0x2*_0x312e14&0x6)):0x0){_0x59b508=_0x591225['indexOf'](_0x59b508);}for(let _0x536602=0x0,_0x32a256=_0x3d4e6f['length'];_0x536602<_0x32a256;_0x536602++){_0x5bb5b8+='%'+('00'+_0x3d4e6f['charCodeAt'](_0x536602)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bb5b8);};_0x4e84['sHdAfs']=_0x4b8273,_0x4e84['Gtxrio']={},_0x4e84['CGLyPS']=!![];}const _0x5648dc=_0x33f616[0x0],_0x45f5c1=_0x19fed9+_0x5648dc,_0x338a6e=_0x4e84['Gtxrio'][_0x45f5c1];return!_0x338a6e?(_0x4e8457=_0x4e84['sHdAfs'](_0x4e8457),_0x4e84['Gtxrio'][_0x45f5c1]=_0x4e8457):_0x4e8457=_0x338a6e,_0x4e8457;}(function(_0x2a1f0b,_0x28c53c){const _0xc133e7=_0x4e84,_0x4792f0=_0x2a1f0b();while(!![]){try{const _0x56b0ec=parseInt(_0xc133e7(0x9d))/0x1+-parseInt(_0xc133e7(0x9b))/0x2*(parseInt(_0xc133e7(0xa2))/0x3)+-parseInt(_0xc133e7(0xa5))/0x4+-parseInt(_0xc133e7(0x96))/0x5+-parseInt(_0xc133e7(0x9e))/0x6+-parseInt(_0xc133e7(0xa8))/0x7*(-parseInt(_0xc133e7(0x97))/0x8)+parseInt(_0xc133e7(0xa3))/0x9;if(_0x56b0ec===_0x28c53c)break;else _0x4792f0['push'](_0x4792f0['shift']());}catch(_0x2f2b4e){_0x4792f0['push'](_0x4792f0['shift']());}}}(_0x33f6,0x4cf4c));function _0x33f6(){const _0x11334b=['odiZnty5q3fRs0Lq','ntG4nte1ngnnvevKwa','C3rYAw5NAwz5','mJa5ntKZmMrVu3jrvG','Dg1WrgLY','DgfYz2v0CY5TAW','nde4odfhwgX3vwO','CNvSzxmUBwS','AM9PBG','CMvJDxjZAxzL','nJKWmJGWq1LRuxDO','nZm2zw1SELPl','DgfYz2v0C0zPBgu','vefsr0vuuYa6psa','zLHLqKS','mMfys0PIDa','vfzbDgK','ntG5nJuWrfvkBMTS','mZi1mZmWoezcwfPksq','vfLrv3e','CMvWBgfJzq','DxrMoa'];_0x33f6=function(){return _0x11334b;};return _0x33f6();}import{writeFileSync,mkdirSync,existsSync}from'fs';import{join}from'path';import{randomUUID}from'crypto';import{tmpdir}from'os';function ensureDir(_0x34baf3){const _0x424384=_0x4e84;if(!existsSync(_0x34baf3)){const _0xf9cea2={};_0xf9cea2[_0x424384(0x95)]=!![],mkdirSync(_0x34baf3,_0xf9cea2);}}export function writeRules(_0x456f81,_0x43fa80,_0xd23f86={},_0x3ecc89=null){const _0x27203e=_0x4e84,_0x4550d9={'NJQpg':function(_0x40d39f,_0x273eb9){return _0x40d39f(_0x273eb9);},'TVAti':'target-mapping.json','KMEtw':function(_0x1796c8,_0x2fb15c){return _0x1796c8+_0x2fb15c;},'fXeBK':function(_0x379351,_0x4cadd2,_0x151225,_0x12b78d){return _0x379351(_0x4cadd2,_0x151225,_0x12b78d);},'TYQWq':'utf8'};if(!_0x3ecc89){const _0x44b024=randomUUID()[_0x27203e(0xa0)](/-/g,'');_0x3ecc89=join(tmpdir(),'cm-'+_0x44b024);}_0x4550d9['NJQpg'](ensureDir,_0x3ecc89);const _0xe21245=join(_0x3ecc89,_0x27203e(0xa9)),_0xe62848=join(_0x3ecc89,_0x27203e(0xa7)),_0x41ec1c=join(_0x3ecc89,_0x4550d9[_0x27203e(0x9c)]),_0x446c50=_0x4550d9['KMEtw'](_0x456f81[_0x27203e(0xaa)]('\x0a'),'\x0a');_0x4550d9[_0x27203e(0x9a)](writeFileSync,_0xe21245,_0x446c50,_0x27203e(0xa1));const _0x568e23=_0x27203e(0x99)+_0x43fa80[_0x27203e(0xaa)]('\x20')+'\x0a';_0x4550d9[_0x27203e(0x9a)](writeFileSync,_0xe62848,_0x568e23,_0x4550d9[_0x27203e(0x9f)]);const _0x4f7d73=JSON[_0x27203e(0xa4)](_0xd23f86,null,0x2);writeFileSync(_0x41ec1c,_0x4f7d73,_0x4550d9[_0x27203e(0x9f)]);const _0x452469={};return _0x452469['rulesFile']=_0xe21245,_0x452469[_0x27203e(0x98)]=_0xe62848,_0x452469['mappingFile']=_0x41ec1c,_0x452469[_0x27203e(0xa6)]=_0x3ecc89,_0x452469;}
|
package/dist/makefiles/base.mk
CHANGED
|
@@ -39,3 +39,11 @@ endef
|
|
|
39
39
|
define RPG_CLEANUP_SOURCES
|
|
40
40
|
if [ "$$RPG_SRC_ROOT" != "." ]; then rm -rf "$$RPG_SRC_ROOT"; fi
|
|
41
41
|
endef
|
|
42
|
+
|
|
43
|
+
######
|
|
44
|
+
# Binding parameter generation from prerequisites.
|
|
45
|
+
# Expands to CL parameters when matching prerequisites exist, empty otherwise.
|
|
46
|
+
# Used by BUILD_MODULE_TO_PGM (CRTPGM) and BUILD_MODULE_TO_SRVPGM (CRTSRVPGM).
|
|
47
|
+
######
|
|
48
|
+
BNDSRVPGM_PARM = $(if $(filter %.srvpgm,$^),bndsrvpgm($(foreach s,$(filter %.srvpgm,$^),$(basename $(notdir $(s))))),)
|
|
49
|
+
BNDDIR_PARM = $(if $(filter %.bnddir,$^ $|),bnddir($(foreach d,$(filter %.bnddir,$^ $|),$(basename $(notdir $(d))))),)
|
package/dist/makefiles/ibmi.mk
CHANGED
|
@@ -143,14 +143,14 @@ endef
|
|
|
143
143
|
define BUILD_MODULE_TO_PGM
|
|
144
144
|
$(call SETUP_LOG,$(notdir $@))
|
|
145
145
|
$(SET_LIBL)
|
|
146
|
-
system "crtpgm pgm($(LIBRARY)/$(basename $(@F))) module($(foreach m,$(filter %.module,$^),$(basename $(notdir $(m)))))"
|
|
146
|
+
system "crtpgm pgm($(LIBRARY)/$(basename $(@F))) module($(foreach m,$(filter %.module,$^),$(basename $(notdir $(m))))) $(BNDSRVPGM_PARM) $(BNDDIR_PARM)"
|
|
147
147
|
endef
|
|
148
148
|
|
|
149
149
|
# Build service program from modules
|
|
150
150
|
define BUILD_MODULE_TO_SRVPGM
|
|
151
151
|
$(call SETUP_LOG,$(notdir $@))
|
|
152
152
|
$(SET_LIBL)
|
|
153
|
-
system "crtsrvpgm srvpgm($(LIBRARY)/$(basename $(@F))) module($(foreach m,$(filter %.module,$^),$(basename $(notdir $(m))))) export(*srcfile) srcstmf('$(filter %.exports,$^)')"
|
|
153
|
+
system "crtsrvpgm srvpgm($(LIBRARY)/$(basename $(@F))) module($(foreach m,$(filter %.module,$^),$(basename $(notdir $(m))))) export(*srcfile) srcstmf('$(filter %.exports %.bnd,$^)') $(BNDSRVPGM_PARM) $(BNDDIR_PARM)"
|
|
154
154
|
endef
|
|
155
155
|
|
|
156
156
|
# Build display file
|
package/dist/makefiles/unix.mk
CHANGED
|
@@ -235,7 +235,7 @@ define BUILD_MODULE_TO_PGM
|
|
|
235
235
|
$(call SETUP_LOG,$(notdir $@))
|
|
236
236
|
$(SSH) $(QSHELL) <<'EOF'
|
|
237
237
|
$(SET_LIBL)
|
|
238
|
-
system "crtpgm pgm($(LIBRARY)/$(basename $(@F))) module($(foreach m,$(filter %.module,$^),$(basename $(notdir $(m)))))"
|
|
238
|
+
system "crtpgm pgm($(LIBRARY)/$(basename $(@F))) module($(foreach m,$(filter %.module,$^),$(basename $(notdir $(m))))) $(BNDSRVPGM_PARM) $(BNDDIR_PARM)"
|
|
239
239
|
EOF
|
|
240
240
|
touch '$@'
|
|
241
241
|
endef
|
|
@@ -243,7 +243,7 @@ endef
|
|
|
243
243
|
# Build service program from modules
|
|
244
244
|
define BUILD_MODULE_TO_SRVPGM
|
|
245
245
|
$(call SETUP_LOG,$(notdir $@))
|
|
246
|
-
$(call REMOTE_BUILD,$(filter-out build/%,$^),system "crtsrvpgm srvpgm($(LIBRARY)/$(basename $(@F))) module($(foreach m,$(filter %.module,$^),$(basename $(notdir $(m))))) export(*srcfile) srcstmf('$(filter %.exports,$^)')")
|
|
246
|
+
$(call REMOTE_BUILD,$(filter-out build/%,$^),system "crtsrvpgm srvpgm($(LIBRARY)/$(basename $(@F))) module($(foreach m,$(filter %.module,$^),$(basename $(notdir $(m))))) export(*srcfile) srcstmf('$(filter %.exports %.bnd,$^)') $(BNDSRVPGM_PARM) $(BNDDIR_PARM)")
|
|
247
247
|
touch '$@'
|
|
248
248
|
endef
|
|
249
249
|
|
package/package.json
CHANGED
|
@@ -103,11 +103,19 @@ mymod.module: mymod.rpgle
|
|
|
103
103
|
# Link modules into a program
|
|
104
104
|
mypgm.pgm: mod1.module mod2.module
|
|
105
105
|
|
|
106
|
+
# Link with automatic BNDSRVPGM parameter
|
|
107
|
+
calc.pgm: calc.module utils.srvpgm
|
|
108
|
+
|
|
109
|
+
# Link with automatic BNDDIR parameter (order-only prereq)
|
|
110
|
+
calcd.pgm: calcd.module | app.bnddir
|
|
111
|
+
|
|
106
112
|
# Create a service program from modules + export list
|
|
107
113
|
mysrvpgm.srvpgm: mymod.module mymod.exports
|
|
108
114
|
```
|
|
109
115
|
|
|
110
|
-
|
|
116
|
+
When `.srvpgm` or `.bnddir` appear as prerequisites on `.pgm` or `.srvpgm` targets built via CRTPGM/CRTSRVPGM, the corresponding `BNDSRVPGM()` and `BNDDIR()` parameters are automatically added to the compile command.
|
|
117
|
+
|
|
118
|
+
The `.exports` (or `.bnd`) file is a text file listing exported procedure symbols:
|
|
111
119
|
|
|
112
120
|
```
|
|
113
121
|
STRPGMEXP PGMLVL(*CURRENT) SIGNATURE(*GEN)
|
|
@@ -129,7 +137,7 @@ ENDPGMEXP
|
|
|
129
137
|
| `.clp` / `.cl` | `.pgm` | Program (*PGM) | `CRTCLPGM` |
|
|
130
138
|
| `.proc.sql` | `.pgm` | SQL Procedure (*PGM) | `RUNSQLSTM` |
|
|
131
139
|
| `.module` (1+) | `.pgm` | Program (*PGM) | `CRTPGM` |
|
|
132
|
-
| `.module` + `.exports` | `.srvpgm` | Service Program (*SRVPGM) | `CRTSRVPGM` |
|
|
140
|
+
| `.module` + `.exports` or `.bnd` | `.srvpgm` | Service Program (*SRVPGM) | `CRTSRVPGM` |
|
|
133
141
|
| `.dspf` | `.file` | Display File (*FILE) | `CRTDSPF` |
|
|
134
142
|
| `.json` (RDF) | `.file` | Display File (*FILE) | `CRTDSPF` |
|
|
135
143
|
| `.pf` | `.file` | Physical File (*FILE) | `CRTPF` |
|
|
@@ -56,14 +56,18 @@ getcount.pgm: getcount.proc.sql
|
|
|
56
56
|
|
|
57
57
|
### Program from modules
|
|
58
58
|
|
|
59
|
-
Links one or more compiled modules into a program.
|
|
59
|
+
Links one or more compiled modules into a program. Prerequisites include `.module` targets, and optionally `.srvpgm` (normal) and `.bnddir` (order-only) for automatic binding.
|
|
60
60
|
|
|
61
61
|
```makefile
|
|
62
62
|
mypgm.pgm: mod1.module mod2.module
|
|
63
|
+
calc.pgm: calc.module utils.srvpgm
|
|
64
|
+
calcd.pgm: calcd.module | app.bnddir
|
|
63
65
|
```
|
|
64
66
|
|
|
65
67
|
**CL command:** `CRTPGM PGM(LIB/MYPGM) MODULE(LIB/MOD1 LIB/MOD2)`
|
|
66
68
|
|
|
69
|
+
When `.srvpgm` prerequisites are present, `BNDSRVPGM(name ...)` is appended. When `.bnddir` prerequisites are present (normal or order-only), `BNDDIR(name ...)` is appended.
|
|
70
|
+
|
|
67
71
|
## Modules (.module)
|
|
68
72
|
|
|
69
73
|
Modules are intermediate compile units that are linked into programs or service programs.
|
|
@@ -94,7 +98,7 @@ mymod.module: mymod.clle
|
|
|
94
98
|
|
|
95
99
|
## Service programs (.srvpgm)
|
|
96
100
|
|
|
97
|
-
A service program is created from one or more modules plus an export list (`.exports` file). The export list defines which procedures are visible to callers.
|
|
101
|
+
A service program is created from one or more modules plus an export list (`.exports` or `.bnd` file). The export list defines which procedures are visible to callers.
|
|
98
102
|
|
|
99
103
|
```makefile
|
|
100
104
|
mymod.module: mymod.rpgle
|
|
@@ -103,9 +107,17 @@ mysrvpgm.srvpgm: mymod.module mysrvpgm.exports
|
|
|
103
107
|
|
|
104
108
|
**CL command:** `CRTSRVPGM SRVPGM(LIB/MYSRVPGM) MODULE(LIB/MYMOD) EXPORT(*SRCFILE) SRCSTMF('src/mysrvpgm.exports')`
|
|
105
109
|
|
|
106
|
-
|
|
110
|
+
Service programs can also depend on other service programs or binding directories for automatic binding:
|
|
111
|
+
|
|
112
|
+
```makefile
|
|
113
|
+
mysrvpgm.srvpgm: mymod.module mysrvpgm.exports dep.srvpgm
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
This appends `BNDSRVPGM(DEP)` to the CRTSRVPGM command. `.bnddir` prerequisites (normal or order-only) append `BNDDIR(name)`.
|
|
117
|
+
|
|
118
|
+
### .exports / .bnd file format
|
|
107
119
|
|
|
108
|
-
The exports file is a plain text file with the following structure:
|
|
120
|
+
The exports file (using either `.exports` or `.bnd` extension) is a plain text file with the following structure:
|
|
109
121
|
|
|
110
122
|
```
|
|
111
123
|
STRPGMEXP PGMLVL(*CURRENT) SIGNATURE(*GEN)
|