@profoundlogic/codermake 3.1.3 → 3.2.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.
@@ -1 +1 @@
1
- const _0x535ac1=_0x5477;(function(_0x4071f9,_0x37f093){const _0x195a1a=_0x5477,_0xa87672=_0x4071f9();while(!![]){try{const _0x2f708f=-parseInt(_0x195a1a(0x1fe))/0x1*(-parseInt(_0x195a1a(0x200))/0x2)+parseInt(_0x195a1a(0x1ba))/0x3+parseInt(_0x195a1a(0x1eb))/0x4+parseInt(_0x195a1a(0x1cd))/0x5+-parseInt(_0x195a1a(0x1e5))/0x6+-parseInt(_0x195a1a(0x20e))/0x7*(-parseInt(_0x195a1a(0x1e8))/0x8)+parseInt(_0x195a1a(0x1f7))/0x9*(-parseInt(_0x195a1a(0x1bf))/0xa);if(_0x2f708f===_0x37f093)break;else _0xa87672['push'](_0xa87672['shift']());}catch(_0x10cca8){_0xa87672['push'](_0xa87672['shift']());}}}(_0x5413,0x8c456));import{COMMANDS,TGTRLS_COMMANDS}from'./config.js';const RECORD_SENTINEL=_0x535ac1(0x1b3),RECORD_LINE_PREFIX=':\x20'+RECORD_SENTINEL+'\x09';export const RECORD_FIELDS=[_0x535ac1(0x203),'library',_0x535ac1(0x20b),_0x535ac1(0x1f2),_0x535ac1(0x1e9),_0x535ac1(0x1af),'reason'];export const LIST_FORMATS=[_0x535ac1(0x1a7),_0x535ac1(0x1bd),'tsv'];const _0x1eb88a={};_0x1eb88a[_0x535ac1(0x1d8)]=_0x535ac1(0x1b4),_0x1eb88a[_0x535ac1(0x1c4)]='*module',_0x1eb88a['.srvpgm']=_0x535ac1(0x1c9),_0x1eb88a[_0x535ac1(0x1cc)]=_0x535ac1(0x1e3),_0x1eb88a[_0x535ac1(0x1b5)]=_0x535ac1(0x1c6),_0x1eb88a[_0x535ac1(0x1f9)]=_0x535ac1(0x1fd),_0x1eb88a['.bnddir']='*bnddir';const OBJECT_TYPES=_0x1eb88a,_0x5ced54={};_0x5ced54[_0x535ac1(0x203)]=_0x535ac1(0x1ac),_0x5ced54['library']='LIBRARY',_0x5ced54[_0x535ac1(0x20b)]=_0x535ac1(0x1cf),_0x5ced54[_0x535ac1(0x1f2)]=_0x535ac1(0x1df),_0x5ced54[_0x535ac1(0x1e9)]='SOURCE',_0x5ced54[_0x535ac1(0x1af)]='TGTRLS',_0x5ced54[_0x535ac1(0x1d2)]='REASON';const TEXT_HEADINGS=_0x5ced54,_0x1de7d5={};_0x1de7d5['BUILD_SQLRPGLE_PGM']='crtsqlrpgi',_0x1de7d5[_0x535ac1(0x1b6)]='crtbndrpg',_0x1de7d5[_0x535ac1(0x208)]=_0x535ac1(0x1da),_0x1de7d5['BUILD_CLLE_PGM']='crtbndcl',_0x1de7d5[_0x535ac1(0x1ec)]=_0x535ac1(0x1c5),_0x1de7d5['BUILD_CLP38_PGM']='qsys38/crtclpgm',_0x1de7d5[_0x535ac1(0x1d7)]='crtrpgpgm',_0x1de7d5[_0x535ac1(0x1fb)]=_0x535ac1(0x1ff),_0x1de7d5[_0x535ac1(0x1d5)]=_0x535ac1(0x1c8),_0x1de7d5[_0x535ac1(0x1bc)]=_0x535ac1(0x1c8),_0x1de7d5[_0x535ac1(0x1f6)]=_0x535ac1(0x1ab),_0x1de7d5[_0x535ac1(0x1b0)]=_0x535ac1(0x1d6),_0x1de7d5[_0x535ac1(0x205)]='crtrpgmod',_0x1de7d5[_0x535ac1(0x1b2)]=_0x535ac1(0x1ee),_0x1de7d5[_0x535ac1(0x1a4)]=_0x535ac1(0x1ed),_0x1de7d5['BUILD_MODULE_TO_SRVPGM']=_0x535ac1(0x1f4),_0x1de7d5[_0x535ac1(0x1ea)]=_0x535ac1(0x1f4),_0x1de7d5[_0x535ac1(0x1f0)]=_0x535ac1(0x1c8),_0x1de7d5[_0x535ac1(0x1d9)]=_0x535ac1(0x1c8),_0x1de7d5[_0x535ac1(0x1db)]='crtdspf',_0x1de7d5[_0x535ac1(0x204)]='crtdspf',_0x1de7d5[_0x535ac1(0x1c3)]=_0x535ac1(0x1b7),_0x1de7d5[_0x535ac1(0x1ca)]='crtlf',_0x1de7d5[_0x535ac1(0x207)]='crtprtf',_0x1de7d5[_0x535ac1(0x201)]='qsys38/crtdspf',_0x1de7d5[_0x535ac1(0x1f8)]=_0x535ac1(0x1c2),_0x1de7d5['BUILD_LF38_TO_FILE']=_0x535ac1(0x1a8),_0x1de7d5[_0x535ac1(0x209)]='qsys38/crtprtf',_0x1de7d5[_0x535ac1(0x1e4)]=_0x535ac1(0x1c8),_0x1de7d5[_0x535ac1(0x1c7)]=_0x535ac1(0x1c8),_0x1de7d5[_0x535ac1(0x1d0)]='runsqlstm',_0x1de7d5[_0x535ac1(0x1e0)]='',_0x1de7d5['BUILD_BNDDIR']='',_0x1de7d5[_0x535ac1(0x202)]=_0x535ac1(0x1b1);const RECIPE_COMMANDS=_0x1de7d5;export function objectTypeForExtension(_0x260001){return OBJECT_TYPES[_0x260001]||null;}export function recipeAcceptsTargetRelease(_0x3a8e4d){const _0x5558f6=_0x535ac1,_0x797ab1=RECIPE_COMMANDS[_0x3a8e4d];return!!_0x797ab1&&TGTRLS_COMMANDS[_0x5558f6(0x1e1)](_0x797ab1);}export function commandForRecipe(_0x5d53a2){return RECIPE_COMMANDS[_0x5d53a2];}export const KNOWN_COMMANDS=COMMANDS;export function renderRecordRecipe({target:_0x3336a4,library:_0x2a282a,object:_0x409515,type:_0x397261,source:_0x2c6275,withTargetRelease:_0x4b8937}){const _0x15d4e6=_0x535ac1,_0x23b3bd={};_0x23b3bd[_0x15d4e6(0x1a9)]=function(_0x94c8b9,_0x443ba5){return _0x94c8b9||_0x443ba5;},_0x23b3bd[_0x15d4e6(0x1dc)]=_0x15d4e6(0x1e7),_0x23b3bd[_0x15d4e6(0x20c)]='$(CODERMAKE_LIST_REASON)',_0x23b3bd[_0x15d4e6(0x1bb)]=_0x15d4e6(0x1b8);const _0x53b7d9=_0x23b3bd,_0xe5310a={'target':_0x3336a4,'library':_0x2a282a,'object':_0x409515,'type':_0x397261,'source':_0x53b7d9[_0x15d4e6(0x1a9)](_0x2c6275,''),'targetRelease':_0x4b8937?_0x53b7d9['XejkT']:'','reason':_0x53b7d9[_0x15d4e6(0x20c)]};for(const [_0x338a51,_0xdd2618]of Object['entries'](_0xe5310a)){if(/[\t\n]/[_0x15d4e6(0x1ce)](_0xdd2618))throw new Error(_0x15d4e6(0x1ad)+_0x3336a4+_0x15d4e6(0x1e6)+_0x338a51+'\x20contains\x20a\x20tab\x20or\x20newline,\x20'+_0x53b7d9[_0x15d4e6(0x1bb)]);}const _0x55a2b3=RECORD_FIELDS[_0x15d4e6(0x1c0)](_0x1ac38f=>_0xe5310a[_0x1ac38f]);return _0x15d4e6(0x1c1)+RECORD_SENTINEL+'\x09'+_0x55a2b3[_0x15d4e6(0x1d4)]('\x09');}export function isRecordLine(_0x40cba1){const _0xe78e28=_0x535ac1;return _0x40cba1[_0xe78e28(0x1f1)](RECORD_LINE_PREFIX);}export function parseRecords(_0x4d815b){const _0x6578c6=_0x535ac1,_0x1c588c={'RLXZC':function(_0x3bf50b,_0x4c324b){return _0x3bf50b(_0x4c324b);},'sTkQm':function(_0x3878bc,_0x36772b){return _0x3878bc!==_0x36772b;}},_0x5add5b=[];for(const _0x4b6978 of _0x4d815b['split']('\x0a')){const _0x3e2e03=_0x4b6978[_0x6578c6(0x1aa)](/\r$/,'');if(!_0x1c588c[_0x6578c6(0x1ae)](isRecordLine,_0x3e2e03))continue;const _0x2ce428=_0x3e2e03[_0x6578c6(0x20f)](RECORD_LINE_PREFIX['length'])[_0x6578c6(0x1be)]('\x09');if(_0x1c588c[_0x6578c6(0x20d)](_0x2ce428[_0x6578c6(0x1a5)],RECORD_FIELDS[_0x6578c6(0x1a5)]))throw new Error(_0x6578c6(0x1a6)+RECORD_FIELDS[_0x6578c6(0x1a5)]+'\x20fields,\x20got\x20'+_0x2ce428[_0x6578c6(0x1a5)]+_0x6578c6(0x210)+_0x3e2e03);const _0x4f04fc={};RECORD_FIELDS[_0x6578c6(0x1e2)]((_0x32c08b,_0x5aa6f3)=>{_0x4f04fc[_0x32c08b]=_0x2ce428[_0x5aa6f3];}),_0x5add5b[_0x6578c6(0x206)](_0x4f04fc);}return _0x5add5b;}function _0x5477(_0x4d2d22,_0xc08cf5){_0x4d2d22=_0x4d2d22-0x1a3;const _0x5413ed=_0x5413();let _0x5477e5=_0x5413ed[_0x4d2d22];if(_0x5477['QtLLpW']===undefined){var _0x5b828a=function(_0x444420){const _0x389929='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3ba3a0='',_0x5bc88d='';for(let _0x59e95=0x0,_0x2991b9,_0x32d7cb,_0x46c712=0x0;_0x32d7cb=_0x444420['charAt'](_0x46c712++);~_0x32d7cb&&(_0x2991b9=_0x59e95%0x4?_0x2991b9*0x40+_0x32d7cb:_0x32d7cb,_0x59e95++%0x4)?_0x3ba3a0+=String['fromCharCode'](0xff&_0x2991b9>>(-0x2*_0x59e95&0x6)):0x0){_0x32d7cb=_0x389929['indexOf'](_0x32d7cb);}for(let _0x5d206f=0x0,_0x27f6ca=_0x3ba3a0['length'];_0x5d206f<_0x27f6ca;_0x5d206f++){_0x5bc88d+='%'+('00'+_0x3ba3a0['charCodeAt'](_0x5d206f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bc88d);};_0x5477['REDtXu']=_0x5b828a,_0x5477['qoMFBj']={},_0x5477['QtLLpW']=!![];}const _0x545710=_0x5413ed[0x0],_0x92bd80=_0x4d2d22+_0x545710,_0x442410=_0x5477['qoMFBj'][_0x92bd80];return!_0x442410?(_0x5477e5=_0x5477['REDtXu'](_0x5477e5),_0x5477['qoMFBj'][_0x92bd80]=_0x5477e5):_0x5477e5=_0x442410,_0x5477e5;}function formatTsv(_0x5d77cb){const _0x4709b6=_0x535ac1;return _0x5d77cb[_0x4709b6(0x1c0)](_0x539bd9=>RECORD_FIELDS[_0x4709b6(0x1c0)](_0x22c322=>_0x539bd9[_0x22c322])[_0x4709b6(0x1d4)]('\x09'))[_0x4709b6(0x1d4)]('\x0a');}function _0x5413(){const _0x4831d2=['qLvjterFrfnqrJm4x1rpx0zjteu','qLvjterFtuvovq','DgfYz2v0','qLvjterFrfnqrL9ut19gsuXf','qLvjterFuLbhtevFtu9evuXf','ChvZAa','qLvjterFufjurL9ut19gsuXf','qLvjterFq0jmtevFueDn','qLvjterFufjurJm4x1rpx0zjteu','DMvYC2LVBG','B2jQzwn0','r1bpqNu','C1rRuw0','mteYvNr3weXA','C3vIC3rYAw5N','ktOG','Dhn2','qLvjterFq0Xmrv9nt0rvteu','BgvUz3rO','twfSzM9YBwvKihrHCMDLDcbSAxn0Aw5NihjLy29YzcaOzxHWzwn0zwqG','Dgv4Da','Cxn5CZm4l2nYDgXM','DwLyDxO','CMvWBgfJzq','y3j0CgDT','vefsr0vu','q2fUBM90igXPC3qGDgfYz2v0icC','uKXywKm','DgfYz2v0uMvSzwfZzq','qLvjterFu1fmuLbhtevFtu9evuXf','y3j0Bw51','qLvjterFq0jmtevFtu9evuXf','q09ervjnquTfx1rbuKDfva','kNbNBq','lM1LBNu','qLvjterFuLbhtevFueDn','y3j0Cgy','D2HPy2GGDgHLihjLy29YzcbMB3jTyxqGDxnLCYbHCYbZzxbHCMf0B3jZlG','vw5RBM93BIb0yxjNzxqGBgLZDgLUzYbMB3jTyxq6ia','mZqZmZiWm2XHAxfpqW','qK1yrxi','qLvjterFu1fmvfjjr0DfuL9ut19qr00','ANnVBG','C3bSAxq','mtC5mdbXq3zzu24','BwfW','cua6ia','Cxn5CZm4l2nYDhbM','qLvjterFuezFve9FrKLmrq','lM1VzhvSzq','y3j0y2XWz20','kM1LBNu','qLvjterFu1fmsu5ervHFve9FrKLmrq','CNvUC3fSC3rT','kNnYDNbNBq','qLvjterFtezFve9FrKLmrq','yuLjsMS','lMzPBgu','mtCXnZy5mhrNsNf3wG','DgvZDa','t0jkrunu','qLvjterFu1fmvKLfv19ut19gsuXf','Bwf4','CMvHC29U','sw90Bu0','AM9PBG','qLvjterFu1fmufjpq19ut19qr00','y3j0C3fSCNbNAq','qLvjterFuLbhx1bhtq','lNbNBq','qLvjterFu1fmvurgx1rpx1nsvLbhtq','y3j0yM5Ky2jS','qLvjterFuKrgx1rpx0zjteu','wgvQA1q','C3rYAw5NAwz5','tM8GDgfYz2v0CYbHzMzLy3rLzcaOzxzLCNL0AgLUzYbPCYb1Ccb0BYbKyxrLks4','vfLqrq','qLvjterFtvnhrG','AgfZ','zM9YrwfJAa','kMzPBgu','qLvjterFu1fmvefctevFve9FrKLmrq','nJKYntK4tgzXveL2','jZOGAxrZia','jcHdt0rfuK1bs0vFveDuuKXtkq','mtCZode2CufbuLPV','C291CMnL','qLvjterFtu9evuXfx1rpx1nsvLbhtv9bteW','mZeWnJmWog90yLL4wa','qLvjterFq0Xqx1bhtq','y3j0y2XTB2q','y3j0y2jSBw9K','uxH3rfq','qLvjterFu1fmufjpq19ut19tuLzqr00','C3rHCNrZv2L0Aa','DhLWzq','DgfYz2v0CW','y3j0C3j2CgDT','y291BNq','qLvjterFtu9evuXfx1rpx1bhtq','mtaYndjjEvLVwMy','qLvjterFueyZof9ut19gsuXf','lM1Zz2y','CM9bAKe','qLvjterFuLbhmZHFueDn','DhjPBuvUza','kM1Zz2y','mJK0nwvYs0Xfzq','Cxn5CZm4l2nYDhjWz3bNBq','nZHHtLP3rfC'];_0x5413=function(){return _0x4831d2;};return _0x5413();}function formatJson(_0x85bbc){const _0x48e794=_0x535ac1,_0x6de874={};_0x6de874['aIIJk']=function(_0x23915a,_0xa6a626){return _0x23915a===_0xa6a626;};const _0x3411ab=_0x6de874,_0x12e825=_0x85bbc[_0x48e794(0x1c0)](_0x30d78=>{const _0x259e98=_0x48e794,_0x36cea1={};for(const _0x1961e4 of RECORD_FIELDS){_0x36cea1[_0x1961e4]=_0x3411ab[_0x259e98(0x1cb)](_0x30d78[_0x1961e4],'')?null:_0x30d78[_0x1961e4];}return _0x36cea1;}),_0x24958a={};return _0x24958a[_0x48e794(0x20a)]=0x1,_0x24958a[_0x48e794(0x1f5)]=_0x12e825[_0x48e794(0x1a5)],_0x24958a[_0x48e794(0x1f3)]=_0x12e825,JSON[_0x48e794(0x1dd)](_0x24958a,null,0x2);}function formatText(_0x2974eb){const _0x139fd1=_0x535ac1,_0x405009={'QxwDT':_0x139fd1(0x1de),'BeBix':function(_0xa9e996,_0x422c95){return _0xa9e996(_0x422c95);}};if(_0x2974eb['length']===0x0)return _0x405009[_0x139fd1(0x1ef)];const _0x37bbd3=RECORD_FIELDS[_0x139fd1(0x1c0)](_0x561923=>Math[_0x139fd1(0x1d1)](TEXT_HEADINGS[_0x561923][_0x139fd1(0x1a5)],..._0x2974eb[_0x139fd1(0x1c0)](_0x262514=>_0x262514[_0x561923][_0x139fd1(0x1a5)]))),_0x2d0f43=_0x40976a=>_0x40976a[_0x139fd1(0x1c0)]((_0x27d528,_0x20552f)=>_0x20552f===_0x40976a[_0x139fd1(0x1a5)]-0x1?_0x27d528:_0x27d528['padEnd'](_0x37bbd3[_0x20552f]))[_0x139fd1(0x1d4)]('\x20\x20')[_0x139fd1(0x1fc)](),_0x3c6fc5=_0x2974eb[_0x139fd1(0x1a5)]===0x1?'target':'targets';return[_0x2974eb[_0x139fd1(0x1a5)]+'\x20'+_0x3c6fc5+'\x20affected\x20(dependency\x20order)','',_0x405009['BeBix'](_0x2d0f43,RECORD_FIELDS[_0x139fd1(0x1c0)](_0x1f6aaa=>TEXT_HEADINGS[_0x1f6aaa])),..._0x2974eb[_0x139fd1(0x1c0)](_0x582b8c=>_0x2d0f43(RECORD_FIELDS[_0x139fd1(0x1c0)](_0x3e39c8=>_0x582b8c[_0x3e39c8])))][_0x139fd1(0x1d4)]('\x0a');}export function formatRecords(_0x13a8b8,_0x3da4d6){const _0x1818f0=_0x535ac1,_0x1eb530={'roAjA':_0x1818f0(0x1a3),'NMrfz':function(_0x278e53,_0x4aa806){return _0x278e53(_0x4aa806);},'IotmM':function(_0x49d4a8,_0x4f66ed){return _0x49d4a8(_0x4f66ed);},'SFjiT':_0x1818f0(0x1a7)};switch(_0x3da4d6){case _0x1eb530[_0x1818f0(0x1fa)]:return _0x1eb530['NMrfz'](formatTsv,_0x13a8b8);case _0x1818f0(0x1bd):return _0x1eb530[_0x1818f0(0x1d3)](formatJson,_0x13a8b8);case _0x1eb530['SFjiT']:return formatText(_0x13a8b8);default:throw new Error(_0x1818f0(0x1b9)+_0x3da4d6);}}
1
+ const _0x354d40=_0x2abf;(function(_0x731bb2,_0x11093c){const _0xb2246e=_0x2abf,_0x278e77=_0x731bb2();while(!![]){try{const _0x2a5040=-parseInt(_0xb2246e(0x154))/0x1+-parseInt(_0xb2246e(0x1a1))/0x2*(parseInt(_0xb2246e(0x14b))/0x3)+parseInt(_0xb2246e(0x1b8))/0x4*(-parseInt(_0xb2246e(0x15c))/0x5)+-parseInt(_0xb2246e(0x195))/0x6+-parseInt(_0xb2246e(0x17c))/0x7*(parseInt(_0xb2246e(0x18f))/0x8)+-parseInt(_0xb2246e(0x1c8))/0x9*(parseInt(_0xb2246e(0x19e))/0xa)+parseInt(_0xb2246e(0x14e))/0xb;if(_0x2a5040===_0x11093c)break;else _0x278e77['push'](_0x278e77['shift']());}catch(_0x2c0a2a){_0x278e77['push'](_0x278e77['shift']());}}}(_0x563b,0xa32b2));import{COMMANDS,TGTRLS_COMMANDS}from'./config.js';const RECORD_SENTINEL=_0x354d40(0x196),RECORD_LINE_PREFIX=':\x20'+RECORD_SENTINEL+'\x09';export const RECORD_FIELDS=[_0x354d40(0x19c),_0x354d40(0x159),_0x354d40(0x158),_0x354d40(0x161),_0x354d40(0x1a6),_0x354d40(0x172),_0x354d40(0x1a9)];export const LIST_FORMATS=[_0x354d40(0x1b5),_0x354d40(0x18e),_0x354d40(0x192)];const _0x534633={};_0x534633[_0x354d40(0x1b0)]=_0x354d40(0x1a8),_0x534633['.module']='*module',_0x534633['.srvpgm']=_0x354d40(0x15d),_0x534633[_0x354d40(0x19d)]=_0x354d40(0x1ad),_0x534633[_0x354d40(0x19a)]=_0x354d40(0x1c0),_0x534633[_0x354d40(0x191)]=_0x354d40(0x16d),_0x534633[_0x354d40(0x163)]=_0x354d40(0x14a);function _0x2abf(_0x13e789,_0x3762d8){_0x13e789=_0x13e789-0x14a;const _0x563b7a=_0x563b();let _0x2abf74=_0x563b7a[_0x13e789];if(_0x2abf['CDpWcA']===undefined){var _0x17088c=function(_0x2c6cd2){const _0x3e5ab8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x38ad00='',_0x283907='';for(let _0x45c0ed=0x0,_0x14117a,_0x5e409d,_0x2996aa=0x0;_0x5e409d=_0x2c6cd2['charAt'](_0x2996aa++);~_0x5e409d&&(_0x14117a=_0x45c0ed%0x4?_0x14117a*0x40+_0x5e409d:_0x5e409d,_0x45c0ed++%0x4)?_0x38ad00+=String['fromCharCode'](0xff&_0x14117a>>(-0x2*_0x45c0ed&0x6)):0x0){_0x5e409d=_0x3e5ab8['indexOf'](_0x5e409d);}for(let _0x374963=0x0,_0x4c7bf6=_0x38ad00['length'];_0x374963<_0x4c7bf6;_0x374963++){_0x283907+='%'+('00'+_0x38ad00['charCodeAt'](_0x374963)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x283907);};_0x2abf['exFSxx']=_0x17088c,_0x2abf['Xtswuc']={},_0x2abf['CDpWcA']=!![];}const _0x5af41a=_0x563b7a[0x0],_0x168558=_0x13e789+_0x5af41a,_0x59eaa3=_0x2abf['Xtswuc'][_0x168558];return!_0x59eaa3?(_0x2abf74=_0x2abf['exFSxx'](_0x2abf74),_0x2abf['Xtswuc'][_0x168558]=_0x2abf74):_0x2abf74=_0x59eaa3,_0x2abf74;}const OBJECT_TYPES=_0x534633,_0x6374cd={};_0x6374cd['target']=_0x354d40(0x199),_0x6374cd['library']=_0x354d40(0x1a5),_0x6374cd[_0x354d40(0x158)]=_0x354d40(0x193),_0x6374cd['type']='TYPE',_0x6374cd[_0x354d40(0x1a6)]='SOURCE',_0x6374cd[_0x354d40(0x172)]=_0x354d40(0x1b3),_0x6374cd['reason']=_0x354d40(0x18a);const TEXT_HEADINGS=_0x6374cd,_0x2c5167={};_0x2c5167[_0x354d40(0x165)]='crtsqlrpgi',_0x2c5167[_0x354d40(0x1ab)]=_0x354d40(0x171),_0x2c5167[_0x354d40(0x1b6)]=_0x354d40(0x1c1),_0x2c5167[_0x354d40(0x1ba)]=_0x354d40(0x151),_0x2c5167[_0x354d40(0x1b9)]=_0x354d40(0x15b),_0x2c5167[_0x354d40(0x169)]=_0x354d40(0x1a3),_0x2c5167['BUILD_SQLCBL_PGM']='crtsqlcbl',_0x2c5167['BUILD_CLLE_PGM']=_0x354d40(0x16b),_0x2c5167[_0x354d40(0x175)]=_0x354d40(0x18b),_0x2c5167[_0x354d40(0x1bb)]=_0x354d40(0x180),_0x2c5167[_0x354d40(0x1a4)]=_0x354d40(0x166),_0x2c5167[_0x354d40(0x152)]=_0x354d40(0x167),_0x2c5167[_0x354d40(0x164)]=_0x354d40(0x15a),_0x2c5167[_0x354d40(0x178)]=_0x354d40(0x15a),_0x2c5167[_0x354d40(0x18d)]=_0x354d40(0x1bc),_0x2c5167[_0x354d40(0x17a)]='crtsqlrpgi',_0x2c5167[_0x354d40(0x1c5)]=_0x354d40(0x1b1),_0x2c5167[_0x354d40(0x184)]=_0x354d40(0x1c4),_0x2c5167[_0x354d40(0x185)]=_0x354d40(0x151),_0x2c5167[_0x354d40(0x162)]=_0x354d40(0x1c7),_0x2c5167[_0x354d40(0x187)]=_0x354d40(0x186),_0x2c5167[_0x354d40(0x17d)]='crtsrvpgm',_0x2c5167[_0x354d40(0x16a)]='runsqlstm',_0x2c5167[_0x354d40(0x16e)]='runsqlstm',_0x2c5167[_0x354d40(0x1af)]=_0x354d40(0x16c),_0x2c5167[_0x354d40(0x1be)]='crtdspf',_0x2c5167[_0x354d40(0x1ca)]=_0x354d40(0x1ac),_0x2c5167[_0x354d40(0x1b4)]=_0x354d40(0x1c3),_0x2c5167[_0x354d40(0x1ae)]=_0x354d40(0x1aa),_0x2c5167[_0x354d40(0x17f)]=_0x354d40(0x16f),_0x2c5167['BUILD_PF38_TO_FILE']='qsys38/crtpf',_0x2c5167['BUILD_LF38_TO_FILE']=_0x354d40(0x183),_0x2c5167[_0x354d40(0x176)]='qsys38/crtprtf',_0x2c5167[_0x354d40(0x177)]=_0x354d40(0x15a),_0x2c5167[_0x354d40(0x160)]=_0x354d40(0x15a),_0x2c5167[_0x354d40(0x1c9)]=_0x354d40(0x15a),_0x2c5167[_0x354d40(0x19f)]='',_0x2c5167[_0x354d40(0x1a2)]='',_0x2c5167['BUILD_MENU']=_0x354d40(0x1cb);const RECIPE_COMMANDS=_0x2c5167;export function objectTypeForExtension(_0x20e7c4){return OBJECT_TYPES[_0x20e7c4]||null;}export function recipeAcceptsTargetRelease(_0x4392f7){const _0x162dbd=_0x354d40,_0x9c9c50=RECIPE_COMMANDS[_0x4392f7];return!!_0x9c9c50&&TGTRLS_COMMANDS[_0x162dbd(0x15f)](_0x9c9c50);}export function commandForRecipe(_0x3c513f){return RECIPE_COMMANDS[_0x3c513f];}export const KNOWN_COMMANDS=COMMANDS;export function renderRecordRecipe({target:_0x2ec724,library:_0x350048,object:_0x3f9bbc,type:_0xc2e8ad,source:_0x308e7f,withTargetRelease:_0x5675fd}){const _0x566301=_0x354d40,_0x250373={};_0x250373[_0x566301(0x14d)]=function(_0x4f30b0,_0x1b9834){return _0x4f30b0+_0x1b9834;};const _0x33fc49=_0x250373,_0x47a907={};_0x47a907[_0x566301(0x19c)]=_0x2ec724,_0x47a907[_0x566301(0x159)]=_0x350048,_0x47a907['object']=_0x3f9bbc,_0x47a907[_0x566301(0x161)]=_0xc2e8ad,_0x47a907['source']=_0x308e7f||'',_0x47a907[_0x566301(0x172)]=_0x5675fd?_0x566301(0x17b):'',_0x47a907['reason']=_0x566301(0x1c2);const _0x96c178=_0x47a907;for(const [_0x1c7fa2,_0x224abb]of Object['entries'](_0x96c178)){if(/[\t\n]/[_0x566301(0x190)](_0x224abb))throw new Error(_0x33fc49[_0x566301(0x14d)]('Cannot\x20list\x20target\x20\x27'+_0x2ec724+_0x566301(0x188)+_0x1c7fa2+_0x566301(0x179),_0x566301(0x181)));}const _0x9de05a=RECORD_FIELDS[_0x566301(0x14c)](_0x3953e3=>_0x96c178[_0x3953e3]);return'\x09@:\x20'+RECORD_SENTINEL+'\x09'+_0x9de05a[_0x566301(0x15e)]('\x09');}export function isRecordLine(_0x403764){const _0x2e2842=_0x354d40;return _0x403764[_0x2e2842(0x1b2)](RECORD_LINE_PREFIX);}export function parseRecords(_0x3c8fb1){const _0x11f18c=_0x354d40,_0x3ac543={'FROmh':function(_0x4af874,_0x4957f5){return _0x4af874(_0x4957f5);},'eLqIE':function(_0x2425a2,_0x5a0d37){return _0x2425a2!==_0x5a0d37;}},_0xd8aba7=[];for(const _0x12cbb8 of _0x3c8fb1[_0x11f18c(0x182)]('\x0a')){const _0x55a442=_0x12cbb8[_0x11f18c(0x18c)](/\r$/,'');if(!_0x3ac543[_0x11f18c(0x194)](isRecordLine,_0x55a442))continue;const _0x5b9240=_0x55a442[_0x11f18c(0x14f)](RECORD_LINE_PREFIX[_0x11f18c(0x189)])[_0x11f18c(0x182)]('\x09');if(_0x3ac543['eLqIE'](_0x5b9240[_0x11f18c(0x189)],RECORD_FIELDS[_0x11f18c(0x189)]))throw new Error(_0x11f18c(0x153)+RECORD_FIELDS[_0x11f18c(0x189)]+'\x20fields,\x20got\x20'+_0x5b9240[_0x11f18c(0x189)]+_0x11f18c(0x1a0)+_0x55a442);const _0xb1cc41={};RECORD_FIELDS[_0x11f18c(0x19b)]((_0x436a02,_0x1c693f)=>{_0xb1cc41[_0x436a02]=_0x5b9240[_0x1c693f];}),_0xd8aba7[_0x11f18c(0x173)](_0xb1cc41);}return _0xd8aba7;}function formatTsv(_0x223e6b){const _0x5e19e9=_0x354d40;return _0x223e6b[_0x5e19e9(0x14c)](_0x96b0ec=>RECORD_FIELDS['map'](_0x571562=>_0x96b0ec[_0x571562])[_0x5e19e9(0x15e)]('\x09'))[_0x5e19e9(0x15e)]('\x0a');}function formatJson(_0x25f37f){const _0x169c11=_0x354d40,_0x195cfe={};_0x195cfe['nYVdf']=function(_0x477a8e,_0x459d71){return _0x477a8e===_0x459d71;};const _0x5eb23e=_0x195cfe,_0x56dfcb=_0x25f37f[_0x169c11(0x14c)](_0x71f9cb=>{const _0x38cf8b=_0x169c11,_0x155b57={};for(const _0x4a04e7 of RECORD_FIELDS){_0x155b57[_0x4a04e7]=_0x5eb23e[_0x38cf8b(0x198)](_0x71f9cb[_0x4a04e7],'')?null:_0x71f9cb[_0x4a04e7];}return _0x155b57;}),_0x877c66={};return _0x877c66[_0x169c11(0x155)]=0x1,_0x877c66['count']=_0x56dfcb[_0x169c11(0x189)],_0x877c66[_0x169c11(0x1c6)]=_0x56dfcb,JSON[_0x169c11(0x156)](_0x877c66,null,0x2);}function formatText(_0x2e563e){const _0x3f44e6=_0x354d40,_0x53b89d={'QSIBg':function(_0x329e5c,_0x135caa){return _0x329e5c===_0x135caa;},'SLlXQ':'No\x20targets\x20affected\x20(everything\x20is\x20up\x20to\x20date).','mTXEH':function(_0x46dbf3,_0x48beb5){return _0x46dbf3===_0x48beb5;},'JjqRq':_0x3f44e6(0x1c6),'OVKNn':function(_0x253c1f,_0xf3b6aa){return _0x253c1f(_0xf3b6aa);}};if(_0x53b89d[_0x3f44e6(0x1b7)](_0x2e563e[_0x3f44e6(0x189)],0x0))return _0x53b89d[_0x3f44e6(0x1cc)];const _0x5c0c0d=RECORD_FIELDS[_0x3f44e6(0x14c)](_0x772139=>Math[_0x3f44e6(0x174)](TEXT_HEADINGS[_0x772139][_0x3f44e6(0x189)],..._0x2e563e[_0x3f44e6(0x14c)](_0x11936f=>_0x11936f[_0x772139][_0x3f44e6(0x189)]))),_0x55cdd9=_0x5dec14=>_0x5dec14[_0x3f44e6(0x14c)]((_0x321c16,_0x458bdf)=>_0x458bdf===_0x5dec14[_0x3f44e6(0x189)]-0x1?_0x321c16:_0x321c16[_0x3f44e6(0x17e)](_0x5c0c0d[_0x458bdf]))['join']('\x20\x20')['trimEnd'](),_0x19eca7=_0x53b89d[_0x3f44e6(0x1a7)](_0x2e563e[_0x3f44e6(0x189)],0x1)?'target':_0x53b89d[_0x3f44e6(0x197)];return[_0x2e563e[_0x3f44e6(0x189)]+'\x20'+_0x19eca7+_0x3f44e6(0x168),'',_0x53b89d[_0x3f44e6(0x170)](_0x55cdd9,RECORD_FIELDS['map'](_0xe55a61=>TEXT_HEADINGS[_0xe55a61])),..._0x2e563e[_0x3f44e6(0x14c)](_0x3989e8=>_0x55cdd9(RECORD_FIELDS['map'](_0x176cfa=>_0x3989e8[_0x176cfa])))]['join']('\x0a');}export function formatRecords(_0x4b7fe8,_0x168c0a){const _0x4bd0dd=_0x354d40,_0x3d1474={'mNvcH':function(_0x5f44a8,_0x549e74){return _0x5f44a8(_0x549e74);},'HPBov':_0x4bd0dd(0x18e),'iIzCn':function(_0x56226f,_0x1f084c){return _0x56226f(_0x1f084c);}};switch(_0x168c0a){case _0x4bd0dd(0x192):return _0x3d1474[_0x4bd0dd(0x157)](formatTsv,_0x4b7fe8);case _0x3d1474[_0x4bd0dd(0x1bf)]:return formatJson(_0x4b7fe8);case'text':return _0x3d1474[_0x4bd0dd(0x1bd)](formatText,_0x4b7fe8);default:throw new Error(_0x4bd0dd(0x150)+_0x168c0a);}}function _0x563b(){const _0x5824f0=['kM1LBNu','y3j0yM5Ky2jS','jcHdt0rfuK1bs0vFteLtvf9sruftt04P','y3j0Bgy','y3j0y2jSBw9K','qLvjterFuLbhtevFtu9evuXf','DgfYz2v0CW','y3j0y2XTB2q','ounzD0TezG','qLvjterFu1fmvKLfv19ut19gsuXf','qLvjterFuezFve9FrKLmrq','y3j0Bw51','u0XSwfe','kMjUzgrPCG','mtaZmtCWrLDPt3DI','BwfW','zLfJzue','ndeXmJuWnJjJwK9KyMS','C3vIC3rYAw5N','vw5RBM93BIb0yxjNzxqGBgLZDgLUzYbMB3jTyxq6ia','y3j0C3fSy2jSAq','qLvjterFuLbhmZHFueDn','twfSzM9YBwvKihrHCMDLDcbSAxn0Aw5NihjLy29YzcaOzxHWzwn0zwqG','oda3otC5EKrbBK5M','DMvYC2LVBG','C3rYAw5NAwz5','Bu52y0G','B2jQzwn0','BgLICMfYEq','CNvUC3fSC3rT','y3j0y2jSCgDT','mte1t2fsq2ny','kNnYDNbNBq','AM9PBG','AgfZ','qLvjterFu1fmsu5ervHFve9FrKLmrq','DhLWzq','qLvjterFq0Xmrv9nt0rvteu','lMjUzgrPCG','qLvjterFu1fmufjpq19ut19qr00','qLvjterFu1fmuLbhtevFueDn','y3j0CNbNCgDT','Cxn5CZm4l2nYDhjWz3bNBq','igfMzMvJDgvKicHKzxbLBMrLBMn5ig9YzgvYkq','qLvjterFq0jmmZHFueDn','qLvjterFu1fmufjpq19ut19tuLzqr00','y3j0yM5Ky2W','y3j0zhnWzG','kM1Zz2y','qLvjterFu1fmvurgx1rpx1nsvLbhtq','Cxn5CZm4l2nYDgrZCgy','t1zltM4','y3j0yM5KCNbN','DgfYz2v0uMvSzwfZzq','ChvZAa','Bwf4','qLvjterFq0Xqx1bhtq','qLvjterFufjurJm4x1rpx0zjteu','qLvjterFu1fmvefctevFve9FrKLmrq','qLvjterFu1fmvfjjr0DfuL9ut19qr00','ignVBNrHAw5ZigeGDgfIig9Yig5LD2XPBMuSia','qLvjterFu1fmuLbhtevFtu9evuXf','jcHdt0rfuK1bs0vFveDuuKXtkq','mJmXtLbYsNLR','qLvjterFtu9evuXfx1rpx1nsvLbhtv9bteW','CgfKrw5K','qLvjterFrfnqrJm4x1rpx0zjteu','Cxn5CZm4l2nYDgnSCgDT','D2HPy2GGDgHLihjLy29YzcbMB3jTyxqGDxnLCYbHCYbZzxbHCMf0B3jZlG','C3bSAxq','Cxn5CZm4l2nYDgXM','qLvjterFq0jmtevFtu9evuXf','qLvjterFu1fmq0jmtevFtu9evuXf','y3j0C3j2CgDT','qLvjterFtu9evuXfx1rpx1nsvLbhtq','jZOGAxrZia','BgvUz3rO','uKvbu09o','y3j0y2XWz20','CMvWBgfJzq','qLvjterFtu9evuXfx1rpx1bhtq','ANnVBG','ndmWotzVBMj6yMm','DgvZDa','lM1Zz2y','Dhn2','t0jkrunu','rLjpBwG','odqWmtyYv3PszKvW','q09ervjnquTfx1rbuKDfva','sMPXuNe','BLLwzgy','vefsr0vu','lM1LBNu','zM9YrwfJAa','DgfYz2v0','lMzPBgu','nZq0ndiZmezMuLjhra','qLvjterFtvnhrG','ktOG','ntbvANbHzKK','qLvjterFqK5ereLs','Cxn5CZm4l2nYDgnIBhbNBq','qLvjterFuLbhx1bhtq','teLcuKfswq','C291CMnL','BvryruG','kNbNBq','CMvHC29U','y3j0Chj0zG','qLvjterFuLbhtevFueDn','y3j0Cgy','kMzPBgu','qLvjterFufjurL9ut19gsuXf','qLvjterFuKrgx1rpx0zjteu','lNbNBq','y3j0CNbNBw9K','C3rHCNrZv2L0Aa','veDuuKXt','qLvjterFtezFve9FrKLmrq','Dgv4Da','qLvjterFq0jmtevFueDn','uvnjqMC','ntKXotjTthzJD2i','qLvjterFq0jmx1bhtq','qLvjterFu1fmq0jmtevFueDn','qLvjterFq0XqmZHFueDn','y3j0CgDT','AuL6q24','qLvjterFrfnqrL9ut19gsuXf','sfbcB3y'];_0x563b=function(){return _0x5824f0;};return _0x563b();}
@@ -1 +1 @@
1
- (function(_0x8b6e5b,_0x59c5e5){const _0x311a3a=_0x2f66,_0x37db0b=_0x8b6e5b();while(!![]){try{const _0x50f688=-parseInt(_0x311a3a(0xcc))/0x1*(-parseInt(_0x311a3a(0xd6))/0x2)+-parseInt(_0x311a3a(0xd7))/0x3+parseInt(_0x311a3a(0xd5))/0x4+parseInt(_0x311a3a(0xdb))/0x5*(-parseInt(_0x311a3a(0xca))/0x6)+-parseInt(_0x311a3a(0xda))/0x7*(-parseInt(_0x311a3a(0xec))/0x8)+-parseInt(_0x311a3a(0xd3))/0x9*(parseInt(_0x311a3a(0xc5))/0xa)+parseInt(_0x311a3a(0xe4))/0xb;if(_0x50f688===_0x59c5e5)break;else _0x37db0b['push'](_0x37db0b['shift']());}catch(_0x4b5a63){_0x37db0b['push'](_0x37db0b['shift']());}}}(_0xa7dd,0x754d9));import{writeFileSync,mkdirSync,existsSync}from'fs';import{join}from'path';function _0xa7dd(){const _0x293fc2=['vMrzDgu','DgfYz2v0lw1HChbPBMCUANnVBG','ntKZndm3ow5IqNrzyq','BgjmtLK','y29UzMLNlM1R','C3rYAw5NAwz5','idO9ia','CNvSzxngAwXL','vefsr0vuuYa6psa','zuz3DgW','odiXnNzzvK1oAG','oti2nZbVEeDNr2e','ChvZAa','q09ervjnquTfx0vnufrzidO9','CMvJDxjZAxzL','CMvWBgfJzq','ntm1nJK1mhHusxvABq','yvnqt1m','mLPQAxfnDG','u2nlB2W','ugDjvgC','BwfWCgLUz0zPBgu','DgfYz2v0CY5TAW','DhH0u0u','zgjeAhq','mJK3uMzUsgvQ','DxrMoa','mZu0nJCXnKLYsKnMqG','mty1ndzSBNLstw8','mtu2mtuXmMfYBhb6vG','DgfYz2v0C0zPBgu','t2fQBhC','nte1oxPMsLDZBW','nxfZtLnozW','A05gBuS','q1DYsKW','AM9PBG','CNvSzxmUBwS','Dg1WrgLY','wvvPs1u'];_0xa7dd=function(){return _0x293fc2;};return _0xa7dd();}import{randomUUID}from'crypto';import{tmpdir}from'os';function _0x2f66(_0x12cb20,_0x3ba039){_0x12cb20=_0x12cb20-0xc5;const _0xa7dde5=_0xa7dd();let _0x2f663a=_0xa7dde5[_0x12cb20];if(_0x2f66['ljTyGu']===undefined){var _0x41ef1a=function(_0x39fc7d){const _0x8643fd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3965b5='',_0x55ae30='';for(let _0x1c7903=0x0,_0x402a42,_0x59a552,_0x26906a=0x0;_0x59a552=_0x39fc7d['charAt'](_0x26906a++);~_0x59a552&&(_0x402a42=_0x1c7903%0x4?_0x402a42*0x40+_0x59a552:_0x59a552,_0x1c7903++%0x4)?_0x3965b5+=String['fromCharCode'](0xff&_0x402a42>>(-0x2*_0x1c7903&0x6)):0x0){_0x59a552=_0x8643fd['indexOf'](_0x59a552);}for(let _0x18939c=0x0,_0x5a90cf=_0x3965b5['length'];_0x18939c<_0x5a90cf;_0x18939c++){_0x55ae30+='%'+('00'+_0x3965b5['charCodeAt'](_0x18939c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x55ae30);};_0x2f66['ntKqgZ']=_0x41ef1a,_0x2f66['qEMCgU']={},_0x2f66['ljTyGu']=!![];}const _0x5eacba=_0xa7dde5[0x0],_0x35354b=_0x12cb20+_0x5eacba,_0x2fd114=_0x2f66['qEMCgU'][_0x35354b];return!_0x2fd114?(_0x2f663a=_0x2f66['ntKqgZ'](_0x2f663a),_0x2f66['qEMCgU'][_0x35354b]=_0x2f663a):_0x2f663a=_0x2fd114,_0x2f663a;}function ensureDir(_0x4eff42){const _0x197241=_0x2f66,_0x3e44ad={'YUiKU':function(_0x35b229,_0x34d4df){return _0x35b229(_0x34d4df);}};if(!_0x3e44ad[_0x197241(0xe1)](existsSync,_0x4eff42)){const _0x2e1e57={};_0x2e1e57[_0x197241(0xc8)]=!![],mkdirSync(_0x4eff42,_0x2e1e57);}}export function writeRules(_0x10f09a,_0x3df40d,_0x349b51={},_0x1e95d2=null){const _0x182864=_0x2f66,_0x45d601={'PgITg':function(_0x27600a){return _0x27600a();},'kNFmK':function(_0x404f91,_0x1133b7,_0x49f31d){return _0x404f91(_0x1133b7,_0x49f31d);},'aSPOS':function(_0x88ee44,_0x5cf6f9){return _0x88ee44(_0x5cf6f9);},'VdYte':function(_0x5da9f9,_0x513931,_0x3f9914){return _0x5da9f9(_0x513931,_0x3f9914);},'YviNy':_0x182864(0xdf),'lbLNY':function(_0x531bb0,_0x1d944d,_0x13126d){return _0x531bb0(_0x1d944d,_0x13126d);},'kBjpM':function(_0x4744bf,_0xfb86f1,_0x3e3d7d){return _0x4744bf(_0xfb86f1,_0x3e3d7d);},'txtSE':function(_0x4699f4,_0x518fdb){return _0x4699f4+_0x518fdb;},'eFwtl':function(_0x22de4e,_0x419bc9,_0x2e9d5d,_0x55e3a3){return _0x22de4e(_0x419bc9,_0x2e9d5d,_0x55e3a3);},'CWrJL':_0x182864(0xd4)};if(!_0x1e95d2){const _0x37c6f3=_0x45d601[_0x182864(0xce)](randomUUID)[_0x182864(0xc9)](/-/g,'');_0x1e95d2=_0x45d601[_0x182864(0xdc)](join,tmpdir(),'cm-'+_0x37c6f3);}_0x45d601[_0x182864(0xcb)](ensureDir,_0x1e95d2);const _0x532d26=_0x45d601[_0x182864(0xe2)](join,_0x1e95d2,_0x45d601['YviNy']),_0x45a11e=_0x45d601[_0x182864(0xe5)](join,_0x1e95d2,_0x182864(0xd0)),_0x9c633c=_0x45d601['kBjpM'](join,_0x1e95d2,_0x182864(0xe3)),_0x3266e0=_0x45d601[_0x182864(0xd1)](_0x10f09a[_0x182864(0xde)]('\x0a'),'\x0a');_0x45d601[_0x182864(0xeb)](writeFileSync,_0x532d26,_0x3266e0,_0x182864(0xd4));const _0x1cb5df=_0x182864(0xea)+_0x3df40d[_0x182864(0xde)]('\x20')+'\x0a';writeFileSync(_0x45a11e,_0x1cb5df,_0x182864(0xd4));const _0x5662a9=JSON[_0x182864(0xe7)](_0x349b51,null,0x2);_0x45d601['eFwtl'](writeFileSync,_0x9c633c,_0x5662a9,_0x45d601[_0x182864(0xdd)]);const _0x407444={};return _0x407444[_0x182864(0xe9)]=_0x532d26,_0x407444[_0x182864(0xd8)]=_0x45a11e,_0x407444[_0x182864(0xcf)]=_0x9c633c,_0x407444[_0x182864(0xe0)]=_0x1e95d2,_0x407444;}export function writeConfigMk(_0x3408a4,_0x1f7f4a){const _0x340477=_0x2f66,_0x2ddd20={'ScKol':function(_0x15a912,_0x138c5e){return _0x15a912===_0x138c5e;},'dbDht':function(_0x5693bc,_0x3dcd4b,_0x4c69be){return _0x5693bc(_0x3dcd4b,_0x4c69be);},'OtyOH':_0x340477(0xc7),'Oajlw':_0x340477(0xd4)};if(!_0x1f7f4a||_0x2ddd20[_0x340477(0xcd)](_0x1f7f4a['size'],0x0))return null;ensureDir(_0x3408a4);const _0x4a7d8b=_0x2ddd20[_0x340477(0xd2)](join,_0x3408a4,_0x340477(0xe6)),_0x4f798b=[_0x2ddd20['OtyOH']];for(const [_0x10bfe5,_0x265edb]of _0x1f7f4a){_0x4f798b[_0x340477(0xc6)](_0x10bfe5+_0x340477(0xe8)+_0x265edb);}return writeFileSync(_0x4a7d8b,_0x4f798b['join']('\x0a')+'\x0a',_0x2ddd20[_0x340477(0xd9)]),_0x4a7d8b;}
1
+ (function(_0x2b15a0,_0x2ae34d){const _0x2d5d0d=_0x2c7f,_0x58a95d=_0x2b15a0();while(!![]){try{const _0x22ae1d=parseInt(_0x2d5d0d(0x101))/0x1+-parseInt(_0x2d5d0d(0x100))/0x2*(-parseInt(_0x2d5d0d(0xf3))/0x3)+parseInt(_0x2d5d0d(0xf6))/0x4*(parseInt(_0x2d5d0d(0x10c))/0x5)+parseInt(_0x2d5d0d(0x108))/0x6*(-parseInt(_0x2d5d0d(0xf7))/0x7)+parseInt(_0x2d5d0d(0x10f))/0x8*(parseInt(_0x2d5d0d(0xfc))/0x9)+parseInt(_0x2d5d0d(0x102))/0xa*(parseInt(_0x2d5d0d(0x110))/0xb)+-parseInt(_0x2d5d0d(0x116))/0xc;if(_0x22ae1d===_0x2ae34d)break;else _0x58a95d['push'](_0x58a95d['shift']());}catch(_0x13f8f9){_0x58a95d['push'](_0x58a95d['shift']());}}}(_0x4c0c,0xa7c11));import{writeFileSync,mkdirSync,existsSync}from'fs';import{join}from'path';import{randomUUID}from'crypto';import{tmpdir}from'os';function _0x2c7f(_0x3525fd,_0x1aafac){_0x3525fd=_0x3525fd-0xf3;const _0x4c0cd4=_0x4c0c();let _0x2c7f07=_0x4c0cd4[_0x3525fd];if(_0x2c7f['aXBXRW']===undefined){var _0x123905=function(_0x3b9490){const _0x2c7087='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x44e629='',_0x4718d9='';for(let _0x392b46=0x0,_0x3a3daa,_0x3f4843,_0x187d56=0x0;_0x3f4843=_0x3b9490['charAt'](_0x187d56++);~_0x3f4843&&(_0x3a3daa=_0x392b46%0x4?_0x3a3daa*0x40+_0x3f4843:_0x3f4843,_0x392b46++%0x4)?_0x44e629+=String['fromCharCode'](0xff&_0x3a3daa>>(-0x2*_0x392b46&0x6)):0x0){_0x3f4843=_0x2c7087['indexOf'](_0x3f4843);}for(let _0x381d68=0x0,_0x35c019=_0x44e629['length'];_0x381d68<_0x35c019;_0x381d68++){_0x4718d9+='%'+('00'+_0x44e629['charCodeAt'](_0x381d68)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4718d9);};_0x2c7f['aIkAEs']=_0x123905,_0x2c7f['TtVwny']={},_0x2c7f['aXBXRW']=!![];}const _0x31d256=_0x4c0cd4[0x0],_0x1a2629=_0x3525fd+_0x31d256,_0x46fece=_0x2c7f['TtVwny'][_0x1a2629];return!_0x46fece?(_0x2c7f07=_0x2c7f['aIkAEs'](_0x2c7f07),_0x2c7f['TtVwny'][_0x1a2629]=_0x2c7f07):_0x2c7f07=_0x46fece,_0x2c7f07;}function ensureDir(_0x244381){const _0x52929f=_0x2c7f,_0x2bec73={'Ytzfn':function(_0x1e37c9,_0x2187e4,_0x2fe488){return _0x1e37c9(_0x2187e4,_0x2fe488);}};if(!existsSync(_0x244381)){const _0x40f2f2={};_0x40f2f2[_0x52929f(0xfe)]=!![],_0x2bec73[_0x52929f(0x10a)](mkdirSync,_0x244381,_0x40f2f2);}}export function writeRules(_0x3147ec,_0xebf656,_0x408def={},_0x216444=null){const _0x3f666f=_0x2c7f,_0x40756d={'iHneN':function(_0x41de14){return _0x41de14();},'qAors':function(_0x39c9fe){return _0x39c9fe();},'LxSdV':function(_0x7cfc9e,_0x5cecde){return _0x7cfc9e(_0x5cecde);},'BktQc':'rules.mk','tLyIT':_0x3f666f(0xfa),'ofONW':_0x3f666f(0x117),'EcKfQ':_0x3f666f(0x109),'bDxtM':function(_0x1e4cff,_0x3d708c,_0x291564,_0x5eac24){return _0x1e4cff(_0x3d708c,_0x291564,_0x5eac24);}};if(!_0x216444){const _0x73e7f6=_0x40756d[_0x3f666f(0x10b)](randomUUID)[_0x3f666f(0x115)](/-/g,'');_0x216444=join(_0x40756d[_0x3f666f(0xf5)](tmpdir),_0x3f666f(0xff)+_0x73e7f6);}_0x40756d[_0x3f666f(0x10d)](ensureDir,_0x216444);const _0x4c2c1a=join(_0x216444,_0x40756d[_0x3f666f(0x107)]),_0x566b1b=join(_0x216444,_0x40756d[_0x3f666f(0xfd)]),_0x3f3a42=join(_0x216444,_0x40756d[_0x3f666f(0x114)]),_0xc08842=_0x3147ec[_0x3f666f(0xfb)]('\x0a')+'\x0a';writeFileSync(_0x4c2c1a,_0xc08842,_0x40756d[_0x3f666f(0x113)]);const _0x17be99=_0x3f666f(0x112)+_0xebf656[_0x3f666f(0xfb)]('\x20')+'\x0a';writeFileSync(_0x566b1b,_0x17be99,_0x40756d[_0x3f666f(0x113)]);const _0x207986=JSON[_0x3f666f(0x111)](_0x408def,null,0x2);_0x40756d['bDxtM'](writeFileSync,_0x3f3a42,_0x207986,_0x3f666f(0x109));const _0x1af84c={};return _0x1af84c[_0x3f666f(0xf9)]=_0x4c2c1a,_0x1af84c['targetsFile']=_0x566b1b,_0x1af84c[_0x3f666f(0x105)]=_0x3f3a42,_0x1af84c['tmpDir']=_0x216444,_0x1af84c;}export function writeConfigMk(_0x259314,_0xde8c31){const _0x4f82b6=_0x2c7f,_0x211eaf={};_0x211eaf[_0x4f82b6(0x106)]=function(_0x42c000,_0x1569b9){return _0x42c000===_0x1569b9;},_0x211eaf[_0x4f82b6(0x10e)]=_0x4f82b6(0xf8),_0x211eaf[_0x4f82b6(0x103)]=function(_0x1e674c,_0xee3d3c){return _0x1e674c+_0xee3d3c;},_0x211eaf['Zvwjz']='utf8';const _0x1266d4=_0x211eaf;if(!_0xde8c31||_0x1266d4[_0x4f82b6(0x106)](_0xde8c31[_0x4f82b6(0xf4)],0x0))return null;ensureDir(_0x259314);const _0x537836=join(_0x259314,'config.mk'),_0x5e15cc=[_0x1266d4[_0x4f82b6(0x10e)]];for(const [_0x5bbd58,_0x16786d]of _0xde8c31){_0x5e15cc['push'](_0x5bbd58+_0x4f82b6(0x104)+_0x16786d);}return writeFileSync(_0x537836,_0x1266d4['MwvtN'](_0x5e15cc[_0x4f82b6(0xfb)]('\x0a'),'\x0a'),_0x1266d4['Zvwjz']),_0x537836;}function _0x4c0c(){const _0x250ee7=['DgfYz2v0lw1HChbPBMCUANnVBG','m0DJEuvmsW','C2L6zq','CufVCNm','oeHHwKvquq','n0LRDgLVCa','q09ervjnquTfx0vnufrzidO9','CNvSzxngAwXL','DgfYz2v0CY5TAW','AM9PBG','ndm1otm1n3bJs0LsuG','DeX5svq','CMvJDxjZAxzL','y20T','mteXnZqWB2zmre9Q','mta4ntiWn0rvAvvAsa','mJaWoteYmerMCe5xvq','txD2De4','idO9ia','BwfWCgLUz0zPBgu','t1nJqvG','qMT0uwm','nde2mJi2uNbqBK5o','DxrMoa','wxr6zM4','AuHUzu4','mJe4ntyWCu1uwu9q','thHtzfy','q2rttvy','oefQzgjJqG','mtfRD1bXvxa','C3rYAw5NAwz5','vefsr0vuuYa6psa','rwnlzLe','B2zptLC','CMvWBgfJzq','mtm4odC1mJHUzKj2Awi'];_0x4c0c=function(){return _0x250ee7;};return _0x4c0c();}
@@ -111,6 +111,38 @@ define RPG_CLEANUP_SOURCES
111
111
  if [ "$$RPG_SRC_ROOT" != "." ]; then rm -rf "$$RPG_SRC_ROOT"; fi
112
112
  endef
113
113
 
114
+ ######
115
+ # COBOL source staging for the source types that compile from stream files
116
+ # (.cblle, .sqlcblle). Rewrites source member style COPY statements to IFS
117
+ # paths and writes copy files with CRLF line endings, which the ILE COBOL
118
+ # compiler needs whenever the primary source reaches it as a source member —
119
+ # the shape CRTSQLCBLI produces after precompiling a stream file. See
120
+ # design/COBOL_COPY_PREPROCESSING.md.
121
+ #
122
+ # $(1) = the recipe's COBOL sources, PRIMARY SOURCE FIRST (use $(CBL_SOURCES))
123
+ # Sets shell variable CBL_SRC_ROOT to the effective source root:
124
+ # '.' if nothing had to be staged, or a generated temp dir path otherwise
125
+ ######
126
+ define COBOL_PREPROCESS_SOURCES
127
+ CBL_SRC_ROOT=$$('$(CODERMAKE_NODE)' '$(CODERMAKE_PACKAGE_DIR)/bin/preprocess-cobol-copy.js' $(call shell_escape_dollars,$(1)) --temp-prefix tmp/cbl-pp)
128
+ endef
129
+
130
+ ######
131
+ # Cleanup COBOL staging temp dir (only if staging created one)
132
+ ######
133
+ define COBOL_CLEANUP_SOURCES
134
+ if [ "$$CBL_SRC_ROOT" != "." ]; then rm -rf "$$CBL_SRC_ROOT"; fi
135
+ endef
136
+
137
+ ######
138
+ # The COBOL sources of the current rule: the primary source plus every COBOL
139
+ # copy/include prerequisite. $< is always the first entry of $^, so the primary
140
+ # source stays first, which is what the staging tool and the compile command
141
+ # both assume. Object prerequisites (display files, service programs) are
142
+ # excluded by matching on source extensions rather than filtering paths.
143
+ ######
144
+ CBL_SOURCES = $(filter %.cblle %.sqlcblle %.cpy %.cbl %.cbl38 %.sqlcbl,$^)
145
+
114
146
  ######
115
147
  # Binding parameter generation from prerequisites.
116
148
  # Expands to CL parameters when matching prerequisites exist, empty otherwise.
@@ -169,6 +201,13 @@ endef
169
201
  # prerequisite except the main program source ($<).
170
202
  RPG3_COPY_MEMBERS = $(filter-out $<,$(filter %.rpg %.rpg38,$^))
171
203
 
204
+ # The COPY prerequisites of an OPM COBOL rule (.cbl / .cbl38 / .sqlcbl). Those
205
+ # compilers read a source member, so a COPY statement resolves through the
206
+ # library list at compile time and the copybook only has to exist as a member.
207
+ # Staging works exactly like the RPG III case: every COBOL prerequisite except
208
+ # the main program source, with the path encoding member, source file, and library.
209
+ CBL_COPY_MEMBERS = $(filter-out $<,$(filter %.cpy %.cbl %.cbl38 %.sqlcbl,$^))
210
+
172
211
  # Source physical file name for a /COPY prerequisite = its immediate parent dir.
173
212
  copy_src_file = $(notdir $(patsubst %/,%,$(dir $(1))))
174
213
 
@@ -162,18 +162,92 @@ system "crtsqlrpgi obj($(TARGET_LIB)/$(call ibmi_name_sh,$@)) objtype(*module) s
162
162
  $(call RPG_CLEANUP_SOURCES)
163
163
  endef
164
164
 
165
+ # Compile from the staged root: COBOL searches the current directory before
166
+ # INCDIR. Compiling from the project root would pick original LF copybooks
167
+ # instead of their staged CRLF copies. A subshell preserves the recipe cwd for
168
+ # cleanup and subsequent targets.
165
169
  # Build ILE COBOL program (bound)
166
170
  define BUILD_CBLLE_PGM
167
171
  $(call SETUP_LOG,$(notdir $@))
172
+ $(call COBOL_PREPROCESS_SOURCES,$(CBL_SOURCES))
168
173
  $(SET_LIBL)
169
- system "crtbndcbl pgm($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcstmf('$(call shell_escape_dollars,$<)') tgtccsid(*job) output(*print)$(CODERMAKE_OPTS_crtbndcbl)"
174
+ (
175
+ cd "$$CBL_SRC_ROOT"
176
+ system "crtbndcbl pgm($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcstmf('$(call shell_escape_dollars,$<)') incdir('.') tgtccsid(*job) output(*print)$(CODERMAKE_OPTS_crtbndcbl)"
177
+ )
178
+ $(call COBOL_CLEANUP_SOURCES)
170
179
  endef
171
180
 
172
181
  # Build ILE COBOL module
173
182
  define BUILD_CBLLE_MODULE
174
183
  $(call SETUP_LOG,$(notdir $@))
184
+ $(call COBOL_PREPROCESS_SOURCES,$(CBL_SOURCES))
185
+ $(SET_LIBL)
186
+ (
187
+ cd "$$CBL_SRC_ROOT"
188
+ system "crtcblmod module($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcstmf('$(call shell_escape_dollars,$<)') incdir('.') tgtccsid(*job) output(*print)$(CODERMAKE_OPTS_crtcblmod)"
189
+ )
190
+ $(call COBOL_CLEANUP_SOURCES)
191
+ endef
192
+
193
+ # Build ILE COBOL program with embedded SQL (CRTSQLCBLI OBJTYPE(*PGM)).
194
+ # The precompiler hands the COBOL compiler a source member, so COPY files are
195
+ # staged with CRLF line endings (see COBOL_PREPROCESS_SOURCES).
196
+ define BUILD_SQLCBLLE_PGM
197
+ $(call SETUP_LOG,$(notdir $@))
198
+ $(call COBOL_PREPROCESS_SOURCES,$(CBL_SOURCES))
199
+ $(SET_LIBL)
200
+ (
201
+ cd "$$CBL_SRC_ROOT"
202
+ system "crtsqlcbli obj($(TARGET_LIB)/$(call ibmi_name_sh,$@)) objtype(*pgm) srcstmf('$(call shell_escape_dollars,$<)') cvtccsid(*job) output(*print) compileopt('incdir(''.'') tgtccsid(*job) output(*print)$(CODERMAKE_COMPILEOPT_crtsqlcbli)')$(CODERMAKE_OPTS_crtsqlcbli)"
203
+ )
204
+ $(call COBOL_CLEANUP_SOURCES)
205
+ endef
206
+
207
+ # Build ILE COBOL module with embedded SQL (CRTSQLCBLI OBJTYPE(*MODULE))
208
+ define BUILD_SQLCBLLE_MODULE
209
+ $(call SETUP_LOG,$(notdir $@))
210
+ $(call COBOL_PREPROCESS_SOURCES,$(CBL_SOURCES))
211
+ $(SET_LIBL)
212
+ (
213
+ cd "$$CBL_SRC_ROOT"
214
+ system "crtsqlcbli obj($(TARGET_LIB)/$(call ibmi_name_sh,$@)) objtype(*module) srcstmf('$(call shell_escape_dollars,$<)') cvtccsid(*job) output(*print) compileopt('incdir(''.'') tgtccsid(*job) output(*print)$(CODERMAKE_COMPILEOPT_crtsqlcbli)')$(CODERMAKE_OPTS_crtsqlcbli)"
215
+ )
216
+ $(call COBOL_CLEANUP_SOURCES)
217
+ endef
218
+
219
+ # Build OPM COBOL program (CRTCBLPGM). OPM COBOL cannot compile from a stream
220
+ # file, so the program source is staged as a member in QCBLSRC, along with a
221
+ # source member for every COPY prerequisite.
222
+ define BUILD_CBL_PGM
223
+ $(call SETUP_LOG,$(notdir $@))
224
+ $(call CREATE_SOURCE_MEMBER,$<,qcblsrc)
225
+ $(foreach c,$(CBL_COPY_MEMBERS),$(call CREATE_COPY_MEMBER,$(c),$(call copy_src_file,$(c)),$(call copy_src_lib,$(c)))$(NL))
226
+ $(SET_LIBL)
227
+ system "crtcblpgm pgm($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcfile($(TARGET_LIB)/qcblsrc) srcmbr($(call ibmi_name_sh,$<)) option(*source$(CODERMAKE_OPTVALS_crtcblpgm)) replace(*yes)$(CODERMAKE_OPTS_crtcblpgm)"
228
+ endef
229
+
230
+ # Build System/38 compatible COBOL program (QSYS38/CRTCBLPGM).
231
+ # QSYS38/CRTCBLPGM has no REPLACE parameter and fails if the program exists, so
232
+ # delete any existing program object first. Also creates COPY source members.
233
+ define BUILD_CBL38_PGM
234
+ $(call SETUP_LOG,$(notdir $@))
235
+ $(call CREATE_SOURCE_MEMBER,$<,qcblsrc)
236
+ $(foreach c,$(CBL_COPY_MEMBERS),$(call CREATE_COPY_MEMBER,$(c),$(call copy_src_file,$(c)),$(call copy_src_lib,$(c)))$(NL))
237
+ $(SET_LIBL)
238
+ if test -e '$(TARGET_LIB_PATH)/$(call ibmi_name,$@).pgm'; then system "dltpgm $(TARGET_LIB)/$(call ibmi_name_sh,$@)"; fi
239
+ system "qsys38/crtcblpgm pgm($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcfile($(TARGET_LIB)/qcblsrc) srcmbr($(call ibmi_name_sh,$<)) option(*source$(CODERMAKE_OPTVALS_qsys38_crtcblpgm))$(CODERMAKE_OPTS_qsys38_crtcblpgm)"
240
+ endef
241
+
242
+ # Build OPM COBOL program with embedded SQL (CRTSQLCBL). Like CRTCBLPGM it has
243
+ # no SRCSTMF parameter, so the source is staged as a member — in QLBLSRC, the
244
+ # command's own default source file — along with every COPY prerequisite.
245
+ define BUILD_SQLCBL_PGM
246
+ $(call SETUP_LOG,$(notdir $@))
247
+ $(call CREATE_SOURCE_MEMBER,$<,qlblsrc)
248
+ $(foreach c,$(CBL_COPY_MEMBERS),$(call CREATE_COPY_MEMBER,$(c),$(call copy_src_file,$(c)),$(call copy_src_lib,$(c)))$(NL))
175
249
  $(SET_LIBL)
176
- system "crtcblmod module($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcstmf('$(call shell_escape_dollars,$<)') tgtccsid(*job) output(*print)$(CODERMAKE_OPTS_crtcblmod)"
250
+ system "crtsqlcbl pgm($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcfile($(TARGET_LIB)/qlblsrc) srcmbr($(call ibmi_name_sh,$<)) option(*source$(CODERMAKE_OPTVALS_crtsqlcbl)) replace(*yes)$(CODERMAKE_OPTS_crtsqlcbl)"
177
251
  endef
178
252
 
179
253
  # Build ILE CL program (bound)
@@ -418,6 +492,7 @@ endef
418
492
  .PHONY: platform-clean
419
493
  platform-clean:
420
494
  @rm -rf tmp/rpg-pp-*
495
+ rm -rf tmp/cbl-pp-*
421
496
  if [ -n "$(call shell_escape_dollars,$(TARGETS))" ]; then
422
497
  for pass in 1 2; do
423
498
  for target in $(call shell_escape_dollars,$(TARGETS)); do
@@ -263,14 +263,83 @@ endef
263
263
  # Build ILE COBOL program (bound)
264
264
  define BUILD_CBLLE_PGM
265
265
  $(call SETUP_LOG,$(notdir $@))
266
- $(call REMOTE_BUILD,$(filter-out build/%,$^),system "crtbndcbl pgm($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcstmf('$(call shell_escape_dollars,$<)') tgtccsid(*job) output(*print)$(CODERMAKE_OPTS_crtbndcbl)")
266
+ $(call COBOL_PREPROCESS_SOURCES,$(CBL_SOURCES))
267
+ $(call REMOTE_BUILD_FROM,$$CBL_SRC_ROOT,$(CBL_SOURCES),system "crtbndcbl pgm($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcstmf('$(call shell_escape_dollars,$<)') incdir('.') tgtccsid(*job) output(*print)$(CODERMAKE_OPTS_crtbndcbl)")
268
+ $(call COBOL_CLEANUP_SOURCES)
267
269
  touch '$@'
268
270
  endef
269
271
 
270
272
  # Build ILE COBOL module
271
273
  define BUILD_CBLLE_MODULE
272
274
  $(call SETUP_LOG,$(notdir $@))
273
- $(call REMOTE_BUILD,$(filter-out build/%,$^),system "crtcblmod module($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcstmf('$(call shell_escape_dollars,$<)') tgtccsid(*job) output(*print)$(CODERMAKE_OPTS_crtcblmod)")
275
+ $(call COBOL_PREPROCESS_SOURCES,$(CBL_SOURCES))
276
+ $(call REMOTE_BUILD_FROM,$$CBL_SRC_ROOT,$(CBL_SOURCES),system "crtcblmod module($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcstmf('$(call shell_escape_dollars,$<)') incdir('.') tgtccsid(*job) output(*print)$(CODERMAKE_OPTS_crtcblmod)")
277
+ $(call COBOL_CLEANUP_SOURCES)
278
+ touch '$@'
279
+ endef
280
+
281
+ # Build ILE COBOL program with embedded SQL (CRTSQLCBLI OBJTYPE(*PGM)).
282
+ # The precompiler hands the COBOL compiler a source member, so COPY files are
283
+ # staged with CRLF line endings (see COBOL_PREPROCESS_SOURCES).
284
+ define BUILD_SQLCBLLE_PGM
285
+ $(call SETUP_LOG,$(notdir $@))
286
+ $(call COBOL_PREPROCESS_SOURCES,$(CBL_SOURCES))
287
+ $(call REMOTE_BUILD_FROM,$$CBL_SRC_ROOT,$(CBL_SOURCES),system "crtsqlcbli obj($(TARGET_LIB)/$(call ibmi_name_sh,$@)) objtype(*pgm) srcstmf('$(call shell_escape_dollars,$<)') cvtccsid(*job) output(*print) compileopt('incdir(''.'') tgtccsid(*job) output(*print)$(CODERMAKE_COMPILEOPT_crtsqlcbli)')$(CODERMAKE_OPTS_crtsqlcbli)")
288
+ $(call COBOL_CLEANUP_SOURCES)
289
+ touch '$@'
290
+ endef
291
+
292
+ # Build ILE COBOL module with embedded SQL (CRTSQLCBLI OBJTYPE(*MODULE))
293
+ define BUILD_SQLCBLLE_MODULE
294
+ $(call SETUP_LOG,$(notdir $@))
295
+ $(call COBOL_PREPROCESS_SOURCES,$(CBL_SOURCES))
296
+ $(call REMOTE_BUILD_FROM,$$CBL_SRC_ROOT,$(CBL_SOURCES),system "crtsqlcbli obj($(TARGET_LIB)/$(call ibmi_name_sh,$@)) objtype(*module) srcstmf('$(call shell_escape_dollars,$<)') cvtccsid(*job) output(*print) compileopt('incdir(''.'') tgtccsid(*job) output(*print)$(CODERMAKE_COMPILEOPT_crtsqlcbli)')$(CODERMAKE_OPTS_crtsqlcbli)")
297
+ $(call COBOL_CLEANUP_SOURCES)
298
+ touch '$@'
299
+ endef
300
+
301
+ # Build OPM COBOL program (CRTCBLPGM). OPM COBOL cannot compile from a stream
302
+ # file, so the program source is staged as a member in QCBLSRC, along with a
303
+ # source member for every COPY prerequisite.
304
+ define BUILD_CBL_PGM
305
+ $(call SETUP_LOG,$(notdir $@))
306
+ $(call CREATE_SOURCE_MEMBER,$<,qcblsrc)
307
+ $(foreach c,$(CBL_COPY_MEMBERS),$(call CREATE_COPY_MEMBER,$(c),$(call copy_src_file,$(c)),$(call copy_src_lib,$(c)))$(NL))
308
+ $(SSH) $(QSHELL) <<'EOF'
309
+ $(SET_LIBL)
310
+ system "crtcblpgm pgm($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcfile($(TARGET_LIB)/qcblsrc) srcmbr($(call ibmi_name_sh,$<)) option(*source$(CODERMAKE_OPTVALS_crtcblpgm)) replace(*yes)$(CODERMAKE_OPTS_crtcblpgm)"
311
+ EOF
312
+ touch '$@'
313
+ endef
314
+
315
+ # Build System/38 compatible COBOL program (QSYS38/CRTCBLPGM).
316
+ # QSYS38/CRTCBLPGM has no REPLACE parameter and fails if the program exists, so
317
+ # delete any existing program object first. Also creates COPY source members.
318
+ define BUILD_CBL38_PGM
319
+ $(call SETUP_LOG,$(notdir $@))
320
+ $(call CREATE_SOURCE_MEMBER,$<,qcblsrc)
321
+ $(foreach c,$(CBL_COPY_MEMBERS),$(call CREATE_COPY_MEMBER,$(c),$(call copy_src_file,$(c)),$(call copy_src_lib,$(c)))$(NL))
322
+ $(SSH) $(QSHELL) <<'EOF'
323
+ $(SET_LIBL)
324
+ if [ -e '$(TARGET_LIB_PATH)/$(call ibmi_name,$@).pgm' ]; then
325
+ system "dltpgm $(TARGET_LIB)/$(call ibmi_name_sh,$@)"
326
+ fi
327
+ system "qsys38/crtcblpgm pgm($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcfile($(TARGET_LIB)/qcblsrc) srcmbr($(call ibmi_name_sh,$<)) option(*source$(CODERMAKE_OPTVALS_qsys38_crtcblpgm))$(CODERMAKE_OPTS_qsys38_crtcblpgm)"
328
+ EOF
329
+ touch '$@'
330
+ endef
331
+
332
+ # Build OPM COBOL program with embedded SQL (CRTSQLCBL). Like CRTCBLPGM it has
333
+ # no SRCSTMF parameter, so the source is staged as a member — in QLBLSRC, the
334
+ # command's own default source file — along with every COPY prerequisite.
335
+ define BUILD_SQLCBL_PGM
336
+ $(call SETUP_LOG,$(notdir $@))
337
+ $(call CREATE_SOURCE_MEMBER,$<,qlblsrc)
338
+ $(foreach c,$(CBL_COPY_MEMBERS),$(call CREATE_COPY_MEMBER,$(c),$(call copy_src_file,$(c)),$(call copy_src_lib,$(c)))$(NL))
339
+ $(SSH) $(QSHELL) <<'EOF'
340
+ $(SET_LIBL)
341
+ system "crtsqlcbl pgm($(TARGET_LIB)/$(call ibmi_name_sh,$@)) srcfile($(TARGET_LIB)/qlblsrc) srcmbr($(call ibmi_name_sh,$<)) option(*source$(CODERMAKE_OPTVALS_crtsqlcbl)) replace(*yes)$(CODERMAKE_OPTS_crtsqlcbl)"
342
+ EOF
274
343
  touch '$@'
275
344
  endef
276
345
 
@@ -578,6 +647,7 @@ platform-clean:
578
647
  rm -rf tmp/logs
579
648
  rm -rf tmp/codermake_*.tar
580
649
  rm -rf tmp/rpg-pp-*
650
+ rm -rf tmp/cbl-pp-*
581
651
  @if [ -n "$(call shell_escape_dollars,$(TARGETS))" ]; then
582
652
  $(SSH) $(QSHELL) <<EOF
583
653
  # Two passes over all targets so dependent objects (e.g. SQL views/indexes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@profoundlogic/codermake",
3
- "version": "3.1.3",
3
+ "version": "3.2.0",
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",
@@ -206,6 +206,11 @@ ENDPGMEXP
206
206
  | `.sqlrpgle` | `.module` | Module (*MODULE) | `CRTSQLRPGI OBJTYPE(*MODULE)` |
207
207
  | `.cblle` | `.pgm` | Program (*PGM) | `CRTBNDCBL` |
208
208
  | `.cblle` | `.module` | Module (*MODULE) | `CRTCBLMOD` |
209
+ | `.sqlcblle` | `.pgm` | Program (*PGM) | `CRTSQLCBLI OBJTYPE(*PGM)` |
210
+ | `.sqlcblle` | `.module` | Module (*MODULE) | `CRTSQLCBLI OBJTYPE(*MODULE)` |
211
+ | `.cbl` | `.pgm` | Program (*PGM) | `CRTCBLPGM ... REPLACE(*YES)` (OPM COBOL, QCBLSRC member) |
212
+ | `.cbl38` | `.pgm` | Program (*PGM) | `QSYS38/CRTCBLPGM` (System/38 COBOL, delete-then-create) |
213
+ | `.sqlcbl` | `.pgm` | Program (*PGM) | `CRTSQLCBL ... REPLACE(*YES)` (OPM COBOL + SQL, QLBLSRC member) |
209
214
  | `.clle` | `.pgm` | Program (*PGM) | `CRTBNDCL` |
210
215
  | `.clle` | `.module` | Module (*MODULE) | `CRTCLMOD` |
211
216
  | `.clp` / `.cl` | `.pgm` | Program (*PGM) | `CRTCLPGM` |
@@ -34,6 +34,63 @@ mypgm.pgm: mypgm.cblle
34
34
 
35
35
  **CL command:** `CRTBNDCBL PGM(LIB/MYPGM) SRCSTMF('src/mypgm.cblle')`
36
36
 
37
+ COBOL `COPY` statements are resolved at compile time — see
38
+ [COBOL copy sources](#cobol-copy-sources) below.
39
+
40
+ ### SQL ILE COBOL program from .sqlcblle
41
+
42
+ Compiles an ILE COBOL source file with embedded SQL into a bound program. Two-phase compilation: SQL precompile, then COBOL compile (whose parameters are passed through `COMPILEOPT`).
43
+
44
+ ```makefile
45
+ mypgm.pgm: mypgm.sqlcblle
46
+ ```
47
+
48
+ **CL command:** `CRTSQLCBLI OBJ(LIB/MYPGM) OBJTYPE(*PGM) SRCSTMF('src/mypgm.sqlcblle')`
49
+
50
+ The SQL precompiler does not expand `COPY` statements, so host variables must be declared in the program itself (or pulled in with `EXEC SQL INCLUDE`).
51
+
52
+ ### OPM COBOL program from .cbl
53
+
54
+ OPM COBOL cannot compile from stream files, so the source is staged as a member in
55
+ `QCBLSRC` first, then compiled with `CRTCBLPGM`. `COPY` statements reference source
56
+ members; list each copybook as a prerequisite so codermake creates it as a source
57
+ member too (in the source file named by the prereq's parent directory, in the
58
+ program's library — or, in multi-library output mode, the library mapped from the
59
+ prereq's leading library-directory segment).
60
+
61
+ ```makefile
62
+ mypgm.pgm: mypgm.cbl
63
+ mycpy.pgm: mycpy.cbl qcpysrc/cpybook.cpy # COPY CPYBOOK OF QCPYSRC staged as QCPYSRC/CPYBOOK
64
+ ```
65
+
66
+ **CL command:** `CRTCBLPGM PGM(LIB/MYPGM) SRCFILE(LIB/QCBLSRC) SRCMBR(MYPGM) OPTION(*SOURCE) REPLACE(*YES)`
67
+
68
+ ### System/38 COBOL program from .cbl38
69
+
70
+ Like `.cbl`, but compiled with `QSYS38/CRTCBLPGM` and the staged member is tagged
71
+ `CBL38`. `QSYS38/CRTCBLPGM` has no `REPLACE` parameter, so the recipe deletes any
72
+ existing program object first. `COPY` members are handled the same way as `.cbl`.
73
+ The System/38 compiler is ANSI 74 COBOL, so its reserved word list differs from
74
+ ILE COBOL's.
75
+
76
+ ```makefile
77
+ mypgm.pgm: mypgm.cbl38
78
+ ```
79
+
80
+ **CL command:** `QSYS38/CRTCBLPGM PGM(LIB/MYPGM) SRCFILE(LIB/QCBLSRC) SRCMBR(MYPGM) OPTION(*SOURCE)`
81
+
82
+ ### OPM COBOL program with embedded SQL from .sqlcbl
83
+
84
+ `CRTSQLCBL` has no `SRCSTMF` parameter either, so the source is staged as a member
85
+ in `QLBLSRC` (the command's own default source file), with `COPY` prerequisites
86
+ staged as members.
87
+
88
+ ```makefile
89
+ mypgm.pgm: mypgm.sqlcbl
90
+ ```
91
+
92
+ **CL command:** `CRTSQLCBL PGM(LIB/MYPGM) SRCFILE(LIB/QLBLSRC) SRCMBR(MYPGM) OPTION(*SOURCE) REPLACE(*YES)`
93
+
37
94
  ### ILE CL program from .clle
38
95
 
39
96
  Compiles an ILE CL source file into a bound program.
@@ -161,6 +218,14 @@ mymod.module: mymod.cblle
161
218
 
162
219
  **CL command:** `CRTCBLMOD MODULE(LIB/MYMOD) SRCSTMF('src/mymod.cblle')`
163
220
 
221
+ ### SQL ILE COBOL module from .sqlcblle
222
+
223
+ ```makefile
224
+ mymod.module: mymod.sqlcblle
225
+ ```
226
+
227
+ **CL command:** `CRTSQLCBLI OBJ(LIB/MYMOD) OBJTYPE(*MODULE) SRCSTMF('src/mymod.sqlcblle')`
228
+
164
229
  ### ILE CL module from .clle
165
230
 
166
231
  ```makefile
@@ -386,3 +451,32 @@ ADDBNDDIRE BNDDIR($LIBRARY/$NAME) OBJ(($LIBRARY/MYSRVPGM *SRVPGM))
386
451
  ```
387
452
 
388
453
  Binding directories are almost always used as order-only prerequisites (`|`) because they must exist at compile time but should not trigger rebuilds when their content changes.
454
+
455
+ ## COBOL copy sources
456
+
457
+ COBOL copybooks (`.cpy`, or any COBOL source extension) are resolved differently
458
+ by the two compiler families, but the rule you write is the same: **list the
459
+ copybook as a prerequisite**. That is what ships it to IBM i for a remote build
460
+ and what makes a change to it rebuild the program.
461
+
462
+ **ILE COBOL** (`.cblle`, `.sqlcblle`) compiles from a stream file and resolves
463
+ `COPY` against the compile-time include path:
464
+
465
+ ```makefile
466
+ # COPY 'qcpysrc/cpybook.cpy'. <- IFS style, used as written
467
+ # COPY CPYBOOK OF QCPYSRC. <- source member style, rewritten to the path above
468
+ mypgm.pgm: mypgm.cblle qcpysrc/cpybook.cpy
469
+ ```
470
+
471
+ **OPM COBOL** (`.cbl`, `.cbl38`, `.sqlcbl`) compiles from a source member, so the
472
+ `COPY` statement is left exactly as written and codermake creates the member it
473
+ names (`QCPYSRC/CPYBOOK` for the example below) before compiling:
474
+
475
+ ```makefile
476
+ # COPY CPYBOOK OF QCPYSRC.
477
+ mypgm.pgm: mypgm.cbl qcpysrc/cpybook.cpy
478
+ ```
479
+
480
+ A bare `COPY NAME.` is never rewritten: ILE COBOL resolves it against the include
481
+ path on its own. Use the `OF`/`IN` form when the copybook lives in a source file
482
+ directory.