@profoundlogic/codermake 3.2.0-rc.0 → 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 _0x3b2f3e=_0x3ba2;(function(_0x352182,_0x46f48c){const _0x420f04=_0x3ba2,_0x41455e=_0x352182();while(!![]){try{const _0x43434f=parseInt(_0x420f04(0x158))/0x1*(-parseInt(_0x420f04(0x14d))/0x2)+-parseInt(_0x420f04(0x149))/0x3*(-parseInt(_0x420f04(0x14a))/0x4)+parseInt(_0x420f04(0x16b))/0x5*(parseInt(_0x420f04(0x18b))/0x6)+-parseInt(_0x420f04(0x176))/0x7*(-parseInt(_0x420f04(0x16a))/0x8)+parseInt(_0x420f04(0x168))/0x9*(parseInt(_0x420f04(0x13b))/0xa)+parseInt(_0x420f04(0x139))/0xb*(-parseInt(_0x420f04(0x1a4))/0xc)+-parseInt(_0x420f04(0x191))/0xd;if(_0x43434f===_0x46f48c)break;else _0x41455e['push'](_0x41455e['shift']());}catch(_0x500d2f){_0x41455e['push'](_0x41455e['shift']());}}}(_0x22ee,0x18c37));import{COMMANDS,TGTRLS_COMMANDS}from'./config.js';function _0x3ba2(_0x36d996,_0x44554){_0x36d996=_0x36d996-0x134;const _0x22ee9d=_0x22ee();let _0x3ba22a=_0x22ee9d[_0x36d996];if(_0x3ba2['SIflCO']===undefined){var _0x3d9f97=function(_0x206f11){const _0x3b528d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5bfb60='',_0x1753f5='';for(let _0xcaac09=0x0,_0x15985f,_0x3f83bc,_0x5b10d4=0x0;_0x3f83bc=_0x206f11['charAt'](_0x5b10d4++);~_0x3f83bc&&(_0x15985f=_0xcaac09%0x4?_0x15985f*0x40+_0x3f83bc:_0x3f83bc,_0xcaac09++%0x4)?_0x5bfb60+=String['fromCharCode'](0xff&_0x15985f>>(-0x2*_0xcaac09&0x6)):0x0){_0x3f83bc=_0x3b528d['indexOf'](_0x3f83bc);}for(let _0x1b32b9=0x0,_0x24f163=_0x5bfb60['length'];_0x1b32b9<_0x24f163;_0x1b32b9++){_0x1753f5+='%'+('00'+_0x5bfb60['charCodeAt'](_0x1b32b9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1753f5);};_0x3ba2['CwiylN']=_0x3d9f97,_0x3ba2['sFaVQo']={},_0x3ba2['SIflCO']=!![];}const _0x5a1159=_0x22ee9d[0x0],_0x4876d3=_0x36d996+_0x5a1159,_0x424ce2=_0x3ba2['sFaVQo'][_0x4876d3];return!_0x424ce2?(_0x3ba22a=_0x3ba2['CwiylN'](_0x3ba22a),_0x3ba2['sFaVQo'][_0x4876d3]=_0x3ba22a):_0x3ba22a=_0x424ce2,_0x3ba22a;}const RECORD_SENTINEL=_0x3b2f3e(0x162),RECORD_LINE_PREFIX=':\x20'+RECORD_SENTINEL+'\x09';export const RECORD_FIELDS=['target',_0x3b2f3e(0x155),_0x3b2f3e(0x19a),_0x3b2f3e(0x17c),'source',_0x3b2f3e(0x151),_0x3b2f3e(0x1a0)];export const LIST_FORMATS=[_0x3b2f3e(0x192),_0x3b2f3e(0x188),_0x3b2f3e(0x1a2)];const _0x3ac779={};_0x3ac779[_0x3b2f3e(0x171)]=_0x3b2f3e(0x17a),_0x3ac779['.module']=_0x3b2f3e(0x159),_0x3ac779[_0x3b2f3e(0x19e)]='*srvpgm',_0x3ac779[_0x3b2f3e(0x18f)]=_0x3b2f3e(0x1a7),_0x3ac779[_0x3b2f3e(0x185)]=_0x3b2f3e(0x17f),_0x3ac779[_0x3b2f3e(0x136)]=_0x3b2f3e(0x195),_0x3ac779['.bnddir']=_0x3b2f3e(0x142);const OBJECT_TYPES=_0x3ac779,_0x28ff49={};_0x28ff49['target']=_0x3b2f3e(0x141),_0x28ff49[_0x3b2f3e(0x155)]=_0x3b2f3e(0x134),_0x28ff49[_0x3b2f3e(0x19a)]=_0x3b2f3e(0x13c),_0x28ff49[_0x3b2f3e(0x17c)]=_0x3b2f3e(0x15c),_0x28ff49[_0x3b2f3e(0x137)]=_0x3b2f3e(0x170),_0x28ff49[_0x3b2f3e(0x151)]='TGTRLS',_0x28ff49[_0x3b2f3e(0x1a0)]=_0x3b2f3e(0x15b);const TEXT_HEADINGS=_0x28ff49,_0x3c9dde={};_0x3c9dde[_0x3b2f3e(0x1a3)]=_0x3b2f3e(0x157),_0x3c9dde[_0x3b2f3e(0x1a9)]='crtbndrpg',_0x3c9dde[_0x3b2f3e(0x13a)]=_0x3b2f3e(0x16e),_0x3c9dde[_0x3b2f3e(0x194)]='crtbndcl',_0x3c9dde[_0x3b2f3e(0x18e)]=_0x3b2f3e(0x15e),_0x3c9dde['BUILD_CLP38_PGM']=_0x3b2f3e(0x1a5),_0x3c9dde['BUILD_RPG_PGM']=_0x3b2f3e(0x13e),_0x3c9dde[_0x3b2f3e(0x156)]='qsys38/crtrpgpgm',_0x3c9dde['BUILD_SQLPROC_TO_PGM']=_0x3b2f3e(0x17b),_0x3c9dde['BUILD_SQLTRIGGER_TO_PGM']=_0x3b2f3e(0x17b),_0x3c9dde[_0x3b2f3e(0x153)]=_0x3b2f3e(0x177),_0x3c9dde['BUILD_SQLRPGLE_MODULE']=_0x3b2f3e(0x157),_0x3c9dde[_0x3b2f3e(0x13d)]=_0x3b2f3e(0x189),_0x3c9dde[_0x3b2f3e(0x184)]=_0x3b2f3e(0x150),_0x3c9dde[_0x3b2f3e(0x19d)]=_0x3b2f3e(0x198),_0x3c9dde[_0x3b2f3e(0x173)]=_0x3b2f3e(0x14b),_0x3c9dde[_0x3b2f3e(0x143)]=_0x3b2f3e(0x14b),_0x3c9dde['BUILD_SQLPROC_TO_SRVPGM']=_0x3b2f3e(0x17b),_0x3c9dde[_0x3b2f3e(0x144)]=_0x3b2f3e(0x17b),_0x3c9dde[_0x3b2f3e(0x15f)]=_0x3b2f3e(0x193),_0x3c9dde[_0x3b2f3e(0x163)]=_0x3b2f3e(0x193),_0x3c9dde[_0x3b2f3e(0x175)]=_0x3b2f3e(0x16c),_0x3c9dde[_0x3b2f3e(0x169)]=_0x3b2f3e(0x147),_0x3c9dde[_0x3b2f3e(0x17d)]=_0x3b2f3e(0x1a1),_0x3c9dde[_0x3b2f3e(0x14c)]=_0x3b2f3e(0x138),_0x3c9dde['BUILD_PF38_TO_FILE']='qsys38/crtpf',_0x3c9dde[_0x3b2f3e(0x1aa)]=_0x3b2f3e(0x1a8),_0x3c9dde[_0x3b2f3e(0x181)]=_0x3b2f3e(0x1ab),_0x3c9dde['BUILD_SQLTABLE_TO_FILE']=_0x3b2f3e(0x17b),_0x3c9dde['BUILD_SQLINDEX_TO_FILE']=_0x3b2f3e(0x17b),_0x3c9dde[_0x3b2f3e(0x14e)]='runsqlstm',_0x3c9dde[_0x3b2f3e(0x152)]='',_0x3c9dde[_0x3b2f3e(0x140)]='',_0x3c9dde[_0x3b2f3e(0x135)]='crtmnu';const RECIPE_COMMANDS=_0x3c9dde;export function objectTypeForExtension(_0x5503ac){return OBJECT_TYPES[_0x5503ac]||null;}export function recipeAcceptsTargetRelease(_0x14c65a){const _0x176e1d=_0x3b2f3e,_0x1b9c81=RECIPE_COMMANDS[_0x14c65a];return!!_0x1b9c81&&TGTRLS_COMMANDS[_0x176e1d(0x148)](_0x1b9c81);}function _0x22ee(){const _0x228d41=['BwfW','kM1LBNu','C3vIC3rYAw5N','qLvjterFufjurJm4x1rpx0zjteu','vw5RBM93BIb0yxjNzxqGBgLZDgLUzYbMB3jTyxq6ia','tM8GDgfYz2v0CYbHzMzLy3rLzcaOzxzLCNL0AgLUzYbPCYb1Ccb0BYbKyxrLks4','qLvjterFq0jmtevFtu9evuXf','lM1LBNu','Bwf4','EgTXy1G','ANnVBG','y3j0CNbNBw9K','twfSzM9YBwvKihrHCMDLDcbSAxn0Aw5NihjLy29YzcaOzxHWzwn0zwqG','mJa0r1HVs2zd','u2DHz0i','igfMzMvJDgvKicHKzxbLBMrLBMn5ig9YzgvYkq','qLvjterFq0Xqx1bhtq','lMzPBgu','AM9PBG','mZeYmti2mwXLDMHIqW','Dgv4Da','y3j0zhnWzG','qLvjterFq0Xmrv9qr00','kM1Zz2y','DhLcuge','C3rHCNrZv2L0Aa','y3j0y2XTB2q','DgvZDa','B2jQzwn0','DgfYz2v0CW','C3bSAxq','qLvjterFq0Xmrv9nt0rvteu','lNnYDNbNBq','q2fUBM90igXPC3qGDgfYz2v0icC','CMvHC29U','y3j0Chj0zG','Dhn2','qLvjterFu1fmuLbhtevFueDn','mtKYqxzfCLjR','Cxn5CZm4l2nYDgnSCgDT','cua6ia','kMzPBgu','Cxn5CZm4l2nYDgXM','qLvjterFuLbhtevFueDn','qLvjterFteyZof9ut19gsuXf','Cxn5CZm4l2nYDhbYDgy','teLcuKfswq','qLvjterFtuvovq','lM1Zz2y','C291CMnL','Cxn5CZm4l2nYDgrZCgy','oduZodjcBhvkr2S','qLvjterFq0jmtevFueDn','mtK3mejADfLjuq','t0jkrunu','qLvjterFuLbhtevFtu9evuXf','y3j0CNbNCgDT','zM9YrwfJAa','qLvjterFqK5ereLs','vefsr0vu','kMjUzgrPCG','qLvjterFtu9evuXfx1rpx1nsvLbhtv9bteW','qLvjterFu1fmvurgx1rpx1nsvLbhtq','ktOG','uwvvyuq','y3j0Bgy','AgfZ','ndK1A2DSDKvz','mZiZnMvWCeD5zW','y3j0C3j2CgDT','qLvjterFrfnqrJm4x1rpx0zjteu','ndu2nJjhtuTfAM4','qLvjterFu1fmvKLfv19ut19gsuXf','D2HPy2GGDgHLihjLy29YzcbMB3jTyxqGDxnLCYbHCYbZzxbHCMf0B3jZlG','y3j0y2jSBw9K','DgfYz2v0uMvSzwfZzq','qLvjterFtvnhrG','qLvjterFtu9evuXfx1rpx1bhtq','C3rYAw5NAwz5','BgLICMfYEq','qLvjterFuLbhmZHFueDn','y3j0C3fSCNbNAq','nMzStMjOAW','kM1VzhvSzq','CMvWBgfJzq','uKvbu09o','vfLqrq','DMvYC2LVBG','y3j0y2XWz20','qLvjterFuKrgx1rpx0zjteu','DhjPBuvUza','vwnovKe','q09ervjnquTfx1rbuKDfva','qLvjterFrfnqrL9ut19gsuXf','twDkEge','DgfYz2v0','wg93tfy','sNHPAee','nJK1n0jfru5bBa','qLvjterFtezFve9FrKLmrq','odCZodr2BxfSAfa','mtC2otvnr3Hlyxq','y3j0Cgy','zw50CMLLCW','y3j0yM5Ky2jS','y291BNq','u09vuKnf','lNbNBq','ChvZAa','qLvjterFtu9evuXfx1rpx1nsvLbhtq','BgvUz3rO','qLvjterFuezFve9FrKLmrq','mti2EwD0EMnZ','y3j0CgDT','ignVBNrHAw5ZigeGDgfIig9Yig5LD2XPBMuSia','jcHdt0rfuK1bs0vFteLtvf9sruftt04P','kNbNBq','CNvUC3fSC3rT','DhLWzq','qLvjterFufjurL9ut19gsuXf'];_0x22ee=function(){return _0x228d41;};return _0x22ee();}export function commandForRecipe(_0x5d3569){return RECIPE_COMMANDS[_0x5d3569];}export const KNOWN_COMMANDS=COMMANDS;export function renderRecordRecipe({target:_0x81b09e,library:_0x2bcd4a,object:_0x3d22da,type:_0x475543,source:_0x1bab3b,withTargetRelease:_0x3c9fd1}){const _0x2522e6=_0x3b2f3e,_0x4ec6c5={};_0x4ec6c5[_0x2522e6(0x196)]='$(CODERMAKE_TGTRLS)',_0x4ec6c5[_0x2522e6(0x161)]=_0x2522e6(0x179);const _0x116b79=_0x4ec6c5,_0x11652b={};_0x11652b['target']=_0x81b09e,_0x11652b[_0x2522e6(0x155)]=_0x2bcd4a,_0x11652b[_0x2522e6(0x19a)]=_0x3d22da,_0x11652b['type']=_0x475543,_0x11652b[_0x2522e6(0x137)]=_0x1bab3b||'',_0x11652b['targetRelease']=_0x3c9fd1?_0x116b79['tyBPa']:'',_0x11652b[_0x2522e6(0x1a0)]=_0x116b79[_0x2522e6(0x161)];const _0x4991ff=_0x11652b;for(const [_0xb34b17,_0x3e87d5]of Object[_0x2522e6(0x16d)](_0x4991ff)){if(/[\t\n]/[_0x2522e6(0x199)](_0x3e87d5))throw new Error(_0x2522e6(0x19f)+_0x81b09e+'\x27:\x20its\x20'+_0xb34b17+_0x2522e6(0x178)+_0x2522e6(0x14f));}const _0xfb6569=RECORD_FIELDS['map'](_0x1095ef=>_0x4991ff[_0x1095ef]);return _0x2522e6(0x1a6)+RECORD_SENTINEL+'\x09'+_0xfb6569[_0x2522e6(0x190)]('\x09');}export function isRecordLine(_0x242663){const _0x1daa47=_0x3b2f3e;return _0x242663[_0x1daa47(0x197)](RECORD_LINE_PREFIX);}export function parseRecords(_0x58e2fc){const _0x46851a=_0x3b2f3e,_0x3b3765={};_0x3b3765[_0x46851a(0x146)]=function(_0x22a519,_0x33f974){return _0x22a519!==_0x33f974;};const _0x505a27=_0x3b3765,_0xacd2d8=[];for(const _0x2efaff of _0x58e2fc[_0x46851a(0x19c)]('\x0a')){const _0x99e3a=_0x2efaff[_0x46851a(0x15a)](/\r$/,'');if(!isRecordLine(_0x99e3a))continue;const _0x586291=_0x99e3a[_0x46851a(0x180)](RECORD_LINE_PREFIX[_0x46851a(0x174)])[_0x46851a(0x19c)]('\x09');if(_0x505a27[_0x46851a(0x146)](_0x586291['length'],RECORD_FIELDS['length']))throw new Error(_0x46851a(0x18a)+RECORD_FIELDS['length']+'\x20fields,\x20got\x20'+_0x586291[_0x46851a(0x174)]+_0x46851a(0x145)+_0x99e3a);const _0x1a3f16={};RECORD_FIELDS[_0x46851a(0x13f)]((_0x1a0f28,_0x27f456)=>{_0x1a3f16[_0x1a0f28]=_0x586291[_0x27f456];}),_0xacd2d8[_0x46851a(0x172)](_0x1a3f16);}return _0xacd2d8;}function formatTsv(_0x13dd30){const _0x3ea0a5=_0x3b2f3e;return _0x13dd30[_0x3ea0a5(0x17e)](_0x43340e=>RECORD_FIELDS['map'](_0x5a4107=>_0x43340e[_0x5a4107])[_0x3ea0a5(0x190)]('\x09'))['join']('\x0a');}function formatJson(_0x1a95e4){const _0x2113f0=_0x3b2f3e,_0x48a34b={};_0x48a34b[_0x2113f0(0x187)]=function(_0x52a65a,_0x221561){return _0x52a65a===_0x221561;};const _0x4398cb=_0x48a34b,_0x2ecffe=_0x1a95e4[_0x2113f0(0x17e)](_0x50757a=>{const _0x268e87=_0x2113f0,_0x22e883={};for(const _0x4ecc32 of RECORD_FIELDS){_0x22e883[_0x4ecc32]=_0x4398cb[_0x268e87(0x187)](_0x50757a[_0x4ecc32],'')?null:_0x50757a[_0x4ecc32];}return _0x22e883;}),_0xfd737c={};return _0xfd737c[_0x2113f0(0x15d)]=0x1,_0xfd737c[_0x2113f0(0x16f)]=_0x2ecffe[_0x2113f0(0x174)],_0xfd737c['targets']=_0x2ecffe,JSON[_0x2113f0(0x154)](_0xfd737c,null,0x2);}function formatText(_0x25d9d4){const _0x32f599=_0x3b2f3e,_0x886db6={};_0x886db6[_0x32f599(0x18c)]=function(_0x3417e3,_0x339a4b){return _0x3417e3===_0x339a4b;},_0x886db6[_0x32f599(0x167)]=_0x32f599(0x183),_0x886db6['XowLV']=_0x32f599(0x165),_0x886db6[_0x32f599(0x164)]=_0x32f599(0x19b);const _0x260e12=_0x886db6;if(_0x260e12[_0x32f599(0x18c)](_0x25d9d4[_0x32f599(0x174)],0x0))return _0x260e12[_0x32f599(0x167)];const _0x5558fd=RECORD_FIELDS[_0x32f599(0x17e)](_0x3a2ad0=>Math[_0x32f599(0x186)](TEXT_HEADINGS[_0x3a2ad0]['length'],..._0x25d9d4[_0x32f599(0x17e)](_0x440ab3=>_0x440ab3[_0x3a2ad0][_0x32f599(0x174)]))),_0x45b28c=_0x33a00a=>_0x33a00a[_0x32f599(0x17e)]((_0x566d68,_0x2469d1)=>_0x2469d1===_0x33a00a[_0x32f599(0x174)]-0x1?_0x566d68:_0x566d68['padEnd'](_0x5558fd[_0x2469d1]))[_0x32f599(0x190)]('\x20\x20')[_0x32f599(0x160)](),_0x50a95d=_0x25d9d4[_0x32f599(0x174)]===0x1?_0x260e12[_0x32f599(0x166)]:_0x260e12[_0x32f599(0x164)];return[_0x25d9d4[_0x32f599(0x174)]+'\x20'+_0x50a95d+_0x32f599(0x18d),'',_0x45b28c(RECORD_FIELDS[_0x32f599(0x17e)](_0x4152da=>TEXT_HEADINGS[_0x4152da])),..._0x25d9d4[_0x32f599(0x17e)](_0x1047c4=>_0x45b28c(RECORD_FIELDS[_0x32f599(0x17e)](_0x26060a=>_0x1047c4[_0x26060a])))]['join']('\x0a');}export function formatRecords(_0x29fa9c,_0x26efeb){const _0x2955da=_0x3b2f3e,_0x2cd372={'XvHJp':_0x2955da(0x192),'VwzuQ':function(_0x117728,_0x109ceb){return _0x117728(_0x109ceb);}};switch(_0x26efeb){case _0x2955da(0x1a2):return formatTsv(_0x29fa9c);case _0x2955da(0x188):return formatJson(_0x29fa9c);case _0x2cd372['XvHJp']:return _0x2cd372['VwzuQ'](formatText,_0x29fa9c);default:throw new Error(_0x2955da(0x182)+_0x26efeb);}}
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(_0x4957c4,_0x59462b){const _0x4b0c1e=_0x3e1e,_0x12643a=_0x4957c4();while(!![]){try{const _0x46a417=parseInt(_0x4b0c1e(0x151))/0x1*(-parseInt(_0x4b0c1e(0x164))/0x2)+parseInt(_0x4b0c1e(0x162))/0x3*(parseInt(_0x4b0c1e(0x15d))/0x4)+-parseInt(_0x4b0c1e(0x16b))/0x5+-parseInt(_0x4b0c1e(0x168))/0x6+parseInt(_0x4b0c1e(0x166))/0x7+-parseInt(_0x4b0c1e(0x160))/0x8*(-parseInt(_0x4b0c1e(0x15e))/0x9)+parseInt(_0x4b0c1e(0x156))/0xa;if(_0x46a417===_0x59462b)break;else _0x12643a['push'](_0x12643a['shift']());}catch(_0x28e05f){_0x12643a['push'](_0x12643a['shift']());}}}(_0x2d66,0x20da8));function _0x3e1e(_0x34e55d,_0x2dd1b0){_0x34e55d=_0x34e55d-0x149;const _0x2d6618=_0x2d66();let _0x3e1e60=_0x2d6618[_0x34e55d];if(_0x3e1e['TQEjdj']===undefined){var _0x443fc2=function(_0x1a5d55){const _0x5917a4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x21ffeb='',_0x253dac='';for(let _0x21d6d9=0x0,_0x346787,_0x2167f6,_0x43aea7=0x0;_0x2167f6=_0x1a5d55['charAt'](_0x43aea7++);~_0x2167f6&&(_0x346787=_0x21d6d9%0x4?_0x346787*0x40+_0x2167f6:_0x2167f6,_0x21d6d9++%0x4)?_0x21ffeb+=String['fromCharCode'](0xff&_0x346787>>(-0x2*_0x21d6d9&0x6)):0x0){_0x2167f6=_0x5917a4['indexOf'](_0x2167f6);}for(let _0x1cddb4=0x0,_0x3df3be=_0x21ffeb['length'];_0x1cddb4<_0x3df3be;_0x1cddb4++){_0x253dac+='%'+('00'+_0x21ffeb['charCodeAt'](_0x1cddb4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x253dac);};_0x3e1e['JNRdUS']=_0x443fc2,_0x3e1e['UdnljU']={},_0x3e1e['TQEjdj']=!![];}const _0x1c4ff2=_0x2d6618[0x0],_0x3dc745=_0x34e55d+_0x1c4ff2,_0x1f0811=_0x3e1e['UdnljU'][_0x3dc745];return!_0x1f0811?(_0x3e1e60=_0x3e1e['JNRdUS'](_0x3e1e60),_0x3e1e['UdnljU'][_0x3dc745]=_0x3e1e60):_0x3e1e60=_0x1f0811,_0x3e1e60;}import{writeFileSync,mkdirSync,existsSync}from'fs';import{join}from'path';import{randomUUID}from'crypto';import{tmpdir}from'os';function _0x2d66(){const _0x4e6ac7=['C3rYAw5NAwz5','mte0qurlzhLg','DgfYz2v0CY5TAW','q0rOtwq','CMvWBgfJzq','y29UzMLNlM1R','mtGWndKWme5mB0DhAW','AM9PBG','BwfWCgLUz0zPBgu','vefsr0vuuYa6psa','CMvJDxjZAxzL','y20T','idO9ia','nhPMBgflzW','mJmZndzSA25tB0O','DgfYz2v0C0zPBgu','ntm2vfPUzeHh','DxrMoa','mtKXode3uenADwvH','s0Xwtg8','mtq1oePcru5psG','C2L6zq','nJqZndGYwgPgweTH','z01itfC','nJi4mZGWtxHlyNr5','wK14z04','AKf0v1a','otm4nZq1rKnZshjj','rfP6yum','CxbXvKS','sLrsrvK','q09ervjnquTfx0vnufrzidO9','q1jKyKO','rfH4zwG','CNvSzxngAwXL'];_0x2d66=function(){return _0x4e6ac7;};return _0x2d66();}function ensureDir(_0x1f9ccb){const _0x1c8d7=_0x3e1e,_0x9a4562={'jAtWP':function(_0x1b3835,_0x309d14){return _0x1b3835(_0x309d14);},'alizY':function(_0x311312,_0x163338,_0x44a665){return _0x311312(_0x163338,_0x44a665);}};if(!_0x9a4562[_0x1c8d7(0x16a)](existsSync,_0x1f9ccb)){const _0x5c4156={};_0x5c4156[_0x1c8d7(0x15a)]=!![],_0x9a4562['alizY'](mkdirSync,_0x1f9ccb,_0x5c4156);}}export function writeRules(_0x3b2324,_0x3261bd,_0x743cea={},_0x574414=null){const _0xef8b2f=_0x3e1e,_0x3388bb={'CDhMd':function(_0x4f1c4b){return _0x4f1c4b();},'ZMxgN':function(_0x56317a,_0x521ef6,_0x2eb479){return _0x56317a(_0x521ef6,_0x2eb479);},'rqPvt':'rules.mk','qpqVK':function(_0x2fb403,_0x87907a,_0x2ec02d){return _0x2fb403(_0x87907a,_0x2ec02d);},'DXxeh':function(_0x1da062,_0x29601c){return _0x1da062+_0x29601c;},'DZzaC':'utf8','KLVLo':function(_0x2ae072,_0x2af3e4,_0x33fc72,_0x4083b3){return _0x2ae072(_0x2af3e4,_0x33fc72,_0x4083b3);}};if(!_0x574414){const _0x1020f2=_0x3388bb[_0xef8b2f(0x153)](randomUUID)[_0xef8b2f(0x154)](/-/g,'');_0x574414=_0x3388bb[_0xef8b2f(0x169)](join,tmpdir(),_0xef8b2f(0x15b)+_0x1020f2);}ensureDir(_0x574414);const _0x542d19=join(_0x574414,_0x3388bb['rqPvt']),_0x449006=_0x3388bb[_0xef8b2f(0x169)](join,_0x574414,_0xef8b2f(0x152)),_0xd184e8=_0x3388bb[_0xef8b2f(0x14a)](join,_0x574414,'target-mapping.json'),_0x11e3b7=_0x3388bb[_0xef8b2f(0x14e)](_0x3b2324[_0xef8b2f(0x157)]('\x0a'),'\x0a');writeFileSync(_0x542d19,_0x11e3b7,_0x3388bb[_0xef8b2f(0x149)]);const _0x8aebe=_0xef8b2f(0x159)+_0x3261bd[_0xef8b2f(0x157)]('\x20')+'\x0a';writeFileSync(_0x449006,_0x8aebe,_0x3388bb[_0xef8b2f(0x149)]);const _0x7d42bd=JSON[_0xef8b2f(0x150)](_0x743cea,null,0x2);_0x3388bb[_0xef8b2f(0x163)](writeFileSync,_0xd184e8,_0x7d42bd,_0x3388bb[_0xef8b2f(0x149)]);const _0x4f4111={};return _0x4f4111[_0xef8b2f(0x14f)]=_0x542d19,_0x4f4111[_0xef8b2f(0x15f)]=_0x449006,_0x4f4111[_0xef8b2f(0x158)]=_0xd184e8,_0x4f4111['tmpDir']=_0x574414,_0x4f4111;}export function writeConfigMk(_0xb031aa,_0x1a70ca){const _0x11464d=_0x3e1e,_0x40995a={'JTREY':function(_0x5584bc,_0x27287f){return _0x5584bc===_0x27287f;},'gMHLW':function(_0x75f5f5,_0x439478){return _0x75f5f5(_0x439478);},'DNnFB':function(_0x39444a,_0x363388,_0x51a090,_0x446c4b){return _0x39444a(_0x363388,_0x51a090,_0x446c4b);},'CRdbJ':function(_0x4ef5b0,_0x249170){return _0x4ef5b0+_0x249170;}};if(!_0x1a70ca||_0x40995a[_0x11464d(0x14b)](_0x1a70ca[_0x11464d(0x165)],0x0))return null;_0x40995a[_0x11464d(0x167)](ensureDir,_0xb031aa);const _0x573efe=join(_0xb031aa,_0x11464d(0x155)),_0x5e6a49=[_0x11464d(0x14c)];for(const [_0x57582f,_0x1999de]of _0x1a70ca){_0x5e6a49['push'](_0x57582f+_0x11464d(0x15c)+_0x1999de);}return _0x40995a['DNnFB'](writeFileSync,_0x573efe,_0x40995a[_0x11464d(0x14d)](_0x5e6a49[_0x11464d(0x157)]('\x0a'),'\x0a'),_0x11464d(0x161)),_0x573efe;}
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.2.0-rc.0",
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",
@@ -32,8 +32,7 @@
32
32
  "javascript-obfuscator": "^5.1.0"
33
33
  },
34
34
  "publishConfig": {
35
- "access": "public",
36
- "tag": "rc"
35
+ "access": "public"
37
36
  },
38
37
  "files": [
39
38
  "dist/bin/",
@@ -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.