/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/choppy@1.8.50/choppy.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
#! /usr/bin/env node
var photoshop=require("./photoshop-0.5.2-edit/photoshop"),fs=require("fs"),path=require("path"),spawn=require("child_process").spawn,Choppy=function(){photoshop.invoke("function closeIfDupe(){\n\t\tvar doc = app.activeDocument;\n\t\tif (doc.name.substr(-5) == ' copy'){\n\t\t\tdoc.close(SaveOptions.DONOTSAVECHANGES);\n\t\t}\n\t}",[],(function(t){}));var t=this,e=new Date,a=e.getFullYear()+"-"+(e.getMonth()+1)+"-"+e.getDate(),o=e.getHours()+":"+e.getMinutes()+":"+e.getSeconds();t.pubtime=a+" "+o,t.TEMPLATE_DIR_NAME="tpl",t.CONFIG_FILENAME=".choppy",t.TEMPLATE_PARTS=["parse","header","main","inter","footer"],t.templateFiles=[],t.templateFilesCore=[];var r=__dirname+path.sep+t.TEMPLATE_DIR_NAME+path.sep;Choppy.addFilePathsInDirToArray(r,t.templateFilesCore),t.JSX_DIR_NAME="jsx",t.jsxPathsCore={},t.jsxPathsCore.pre=loadJsxPaths(path.join(__dirname,"jsx","pre")),t.jsxPathsCore.post=loadJsxPaths(path.join(__dirname,"jsx","post")),t.jsxPathsCore.standalone=loadJsxPaths(path.join(__dirname,"jsx","standalone")),t.psdPaths=[],t.verbose=!1,t.envVars={};var p={_:process.argv.slice(2)};t.standaloneCmds=[];for(var n=0;n<p._.length;n++)if("verbose"===String(p._[n]).toLowerCase())t.verbose=!0;else if(".psd"===path.extname(String(p._[n])).toLowerCase())t.psdPaths.push(p._[n]);else if(2==p._[n].split("=").length){var u=p._[n].split("=");t.envVars[u[0]]=u[1]}else t.standaloneCmds.push(p._[n]);t.psdIndex=-1,t.processNext()};function ensurePsdIsActiveDocumentJSX(t,e){if(null===t)return{path:app.activeDocument.path};var a,o=new File(t);try{a=app.activeDocument}catch(t){a=null}if(a){var r=new File(app.activeDocument.path+e+app.activeDocument.name);if(o.absoluteURI===r.absoluteURI)return{path:app.activeDocument.path};if(app.documents.length>1)for(var p=0;p<app.documents.length;p++){app.activeDocument=app.documents[p];r=new File(app.activeDocument.path+e+app.activeDocument.name);if(o.absoluteURI===r.absoluteURI)return{path:app.activeDocument.path}}}return app.open(o),{path:app.activeDocument.path}}function processJSX(stream,props){var console={log:function(){stream.writeln("log:"+JSON.stringify(arguments))}},IGNORE_PREFIX_CHARS={"`":!0},utilMsg="\n",doc=app.activeDocument,originalDoc=doc;doc=doc.duplicate();var tplData=props.tplData,pathSep=props.pathSep,baseConfigData=props.baseConfigData,TEMPLATE_PARTS=props.TEMPLATE_PARTS,jsxPaths=props.jsxPaths,envVars=props.envVars,pubtime=props.pubtime,PROP_DEFAULTS={alt:"",cropToBounds:!1,template:"img",ext:"jpg",quality:80,flipX:!1,flipY:!1,relativePath:"./",basePath:"./",matte:null,colors:256,scale:1,sizeFileHandle:"",sizeIndex:-1,sizes:null,reg:"TL",outputValueFactor:1,regX:0,regY:0,regPercX:0,regPercY:0,forceW:-1,forceH:-1,forceGrid:-1,roundOutputValues:!1,boundsComp:"",outputOriginX:0,outputOriginY:0,outputOriginLayer:null,placeholder:!1,reverseOrder:!1,tlX:0,tlY:0,wipeRelativePath:"",pre:"",post:"",parent:"",type:"",tfParams:null,flags:"",pubtime:pubtime,suffix:"",prefix:"",nestlevel:0},OBJ_PROP_DEFAULTS={tfParams:{align:"",text:"",font:"",alpha:1,color:"#000000",fontStyle:"",fontName:"",fontSize:"",visBoundsTLX:0,visBoundsTLY:0,visBoundsW:0,visBoundsH:0,boxW:0,boxH:0}},OUTPUT_VALUE_FACTOR_PROPS=["width","height","x","y","regX","regY","tlX","tlY","tfParams.fontSize","tfParams.visBoundsTLX","tfParams.visBoundsTLY","tfParams.visBoundsW","tfParams.visBoundsH","makeDir","postExecutePath","tfParams.boxW","tfParams.boxW"],BOOL_PROPS=["cropToBounds","flipX","flipY","roundOutputValues","placeholder","reverseOrder","makeDir"],NUM_PROPS=["quality","scale","forceW","forceH","forceGrid","outputOriginX","outputOriginX","tlX","tlY","nestlevel"],OBJ_PROPS=["tfParams"],NEWLINE_PROPS=["template"],DIR_PROPS=["relativePath","basePath"],CONFIG_PROP_DEFAULTS=baseConfigData,VALID_OUTPUT_EXTS=["jpg","png","gif"],CONFIG_LAYERCOMP_NAME="{choppy}",SIZE_FILEHANDLE_PLACEHOLDER="{s}",TEMPLATE_VAR_PRE="%",TEMPLATE_VAR_POST="%",TEMPLATE_MULTI_SEP=",",REG_LAYER_NAME="{reg}",BOUNDS_COMP_NEXT_KEYWORD="{next}",BOUNDS_COMP_PREV_KEYWORD="{prev}",DEFAULT_PRE=["cleanup-comps","nestlevel-shorthand","core-shorthand","parent-from-nestlevel","tf"],DEFAULT_POST=[],psdContainingDir=ensureDirPathHasTrailingSlash(originalDoc.path,pathSep),psdName=originalDoc.name,psdFullName=originalDoc.fullName,psdBounds=new Array(0,0,doc.width.value,doc.height.value),psdNameParts=psdName.split(".");psdNameParts.splice(psdNameParts.length-1,1);var psdBase=psdNameParts.join(".");if(PROP_DEFAULTS.psdBase=psdBase,PROP_DEFAULTS.psdWidth=doc.width.value,PROP_DEFAULTS.psdHeight=doc.height.value,!doc)throw new Error("No PSD document open.");app.togglePalettes();var configData=null,outputData=[],compNameCheck={},dupeCompNamesPresent=!1,delLayerComps=[],processLayerComps=function(configMode){for(var _configData=null,i=0;i<doc.layerComps.length;i++){var layerComp=doc.layerComps[i];dupeCompNamesPresent||(compNameCheck[layerComp.name]?dupeCompNamesPresent=!0:compNameCheck[layerComp.name]=!0);var compData={},totalProps=0;if(compData._nextLayerCompName="",i>0&&(compData._prevLayerCompName=doc.layerComps[i-1].name),i<doc.layerComps.length-1&&(compData._nextLayerCompName=doc.layerComps[i+1].name),IGNORE_PREFIX_CHARS[layerComp.name.charAt(0)])delLayerComps.push(layerComp);else if(configMode&&layerComp.name===CONFIG_LAYERCOMP_NAME||!configMode&&layerComp.name!==CONFIG_LAYERCOMP_NAME){if(layerComp.comment)for(var arr=layerComp.comment.split("\n"),j=0;j<arr.length;j++){var chunk=arr[j],chunkArr=chunk.split(":");if(chunkArr.length>1){var varName=chunkArr[0].split(" ").join("");chunkArr.splice(0,1);for(var varVal=chunkArr.join(":");" "===varVal.charAt(0);)varVal=varVal.substr(1);if(BOOL_PROPS.indexOf(varName)>=0){var tmpVarVal=varVal.toLowerCase(0);varVal=!1,"t"!==tmpVarVal.charAt(0)&&"y"!==tmpVarVal.charAt(0)&&"1"!==tmpVarVal.charAt(0)||(varVal=!0)}else if(NUM_PROPS.indexOf(varName)>=0){var tmpVarVal=Number(eval(varVal));isNaN(tmpVarVal)||(varVal=tmpVarVal)}else if(NEWLINE_PROPS.indexOf(varName)>=0)varVal=String(varVal).split("\\n").join("\n"),varVal=String(varVal).split("\\t").join("\t");else if(OBJ_PROPS.indexOf(varName)>=0)try{var varVal=JSON.parse(varVal)}catch(t){varVal=PROP_DEFAULTS[varName]}compData[varName]=varVal,totalProps++}}0==totalProps&&(compData={alt:layerComp.comment}),compData.relativePath&&(compData.relativePath=ensureDirPathHasTrailingSlash(compData.relativePath.split("/").join(pathSep),pathSep)),compData.placeholder||compData.type&&0!=compData.type.length||(compData.type="img"),compData.base=layerComp.name,compData.layerCompRef=layerComp,layerComp.name===CONFIG_LAYERCOMP_NAME?configMode&&(delete compData.base,_configData=compData,delLayerComps.push(layerComp)):(compData.selected=layerComp.selected,outputData.push(compData))}}if(configMode){for(var i=0;i<delLayerComps.length;i++)delLayerComps[i].remove();return _configData}};configData=processLayerComps(!0),configData=extendObjWithDefaults(null===configData?{}:configData,CONFIG_PROP_DEFAULTS),configData=extendObjWithDefaults(configData,PROP_DEFAULTS);var pre=DEFAULT_PRE;if(configData.pre&&"string"==typeof configData.pre&&configData.pre.length>0){pre=pre.concat(configData.pre.split(","));var index=pre.indexOf("layers-to-comps");index>0&&(pre.splice(index,1),pre.unshift("layers-to-comps"))}var post=DEFAULT_POST;configData.post&&"string"==typeof configData.post&&configData.post.length>0&&(post=post.concat(configData.post.split(",")));for(var anyDebugOutput=!1,i=0;i<pre.length;i++){var jsxScriptName=pre[i],extParts=jsxScriptName.split(".");if(extParts.length>1&&"jsx"==extParts[1].toLowerCase()&&(jsxScriptName=jsxScriptName.substr(0,jsxScriptName.length-1)),!jsxPaths.pre[jsxScriptName])throw new Error("JSX `pre` script not found `"+jsxScriptName+"`");var jsxPath=jsxPaths.pre[jsxScriptName],jsxFile=new File(jsxPath);if(!jsxFile.exists)throw new Error("JSX `pre` file not found `"+jsxScriptName+"`");var halt=!1,outputDebug=-1==DEFAULT_PRE.indexOf(jsxScriptName);if(outputDebug&&(anyDebugOutput=!0,stream.writeln("debug:Running *pre* hook `"+jsxScriptName+"`...")),$.evalFile(jsxFile),halt)return}if(anyDebugOutput&&stream.writeln("debug:*pre* hooks complete OK."),processLayerComps(),takeSnapshot(),configData.reverseOrder&&outputData.reverse(),configData.wipeRelativePath.length>0)for(var wipeRelativePaths=configData.wipeRelativePath.split(","),i=0;i<wipeRelativePaths.length;i++){var wipeRelativePath=wipeRelativePaths[i];wipeRelativePath=applyVarObjToTemplateString(configData,wipeRelativePath,TEMPLATE_VAR_PRE,TEMPLATE_VAR_POST,1,[]),wipeRelativePath=ensureDirPathHasTrailingSlash(wipeRelativePath,pathSep),configData.basePath=ensureDirPathHasTrailingSlash(configData.basePath,pathSep);var wipeDir=new Folder(psdContainingDir+configData.basePath+wipeRelativePath);wipeDir.exists&&deleteImgsFromDir(wipeDir)}for(var outputTemplates=configData.template.split(TEMPLATE_MULTI_SEP),splitProps=["outputFilePath","outputTagStart","outputTagEnd"],s1=0;s1<splitProps.length;s1++){var splitPropName=splitProps[s1];if(configData[splitPropName]&&(configData[splitPropName]=configData[splitPropName].split(TEMPLATE_MULTI_SEP),configData[splitPropName].length<outputTemplates.length))for(var s2=0;s2<outputTemplates.length;s2++)s2>=configData[splitPropName].length&&(configData[splitPropName][s2]=configData[splitPropName][0])}for(var output=[],templatePartsAdded=[],oct=0;oct<outputTemplates.length;oct++)output.push({}),templatePartsAdded.push({});var templateParseFnCache={},p;for(p=0;p<outputData.length;p++)if(outputData[p]=extendObjWithDefaults(outputData[p],configData),outputData[p]=extendObjWithDefaults(outputData[p],outputData[p]),outputData[p].base=outputData[p].prefix+outputData[p].base+outputData[p].suffix,outputData[p].sizes){var sizeLookup={},ppp;for(ppp in outputData[p]){var pppOrig=ppp;if(ppp=ppp.toLowerCase(),ppp.length>7&&"sizedef"===ppp.substr(0,7)){var sizeKey=ppp.substr(7);sizeLookup[sizeKey]=outputData[p][pppOrig]}}var sizeDefsDefined={},iii=0,anyUndef=!0;if(iii<10&&anyUndef){for(ppp in sizeLookup)if(!sizeDefsDefined[ppp]){anyUndef=!0;for(var arrSizesInDef=sizeLookup[ppp].split(","),arrAltered=!1,totUndefProps=0,ii=0;ii<arrSizesInDef.length;ii++)if(1===arrSizesInDef[ii].split(":").length){totUndefProps++;var lookupDef=String(arrSizesInDef[ii]).toLowerCase();if(!sizeLookup[lookupDef]||!sizeDefsDefined[lookupDef])break;arrSizesInDef[ii]=sizeLookup[lookupDef],arrAltered=!0}(0===totUndefProps||arrAltered)&&(sizeLookup[ppp]=arrSizesInDef.join(","),sizeDefsDefined[ppp]=!0)}iii++}var tmpVarValArr=String(outputData[p].sizes).split(",");outputData[p].sizes=[];for(var pp=0;pp<tmpVarValArr.length;pp++){var strObj=tmpVarValArr[pp];if(1===strObj.split(":").length){var sizeDef=String(strObj).toLowerCase();if(!sizeLookup[sizeDef])throw new Error('Size definition "'+ppp+'" not found');for(var sizePushArr=sizeLookup[sizeDef].split(","),jj=0;jj<sizePushArr.length;jj++)strObj=sizePushArr[jj],outputData[p].sizes.push({fileHandle:strObj.split(":")[0],scale:Number(eval(strObj.split(":")[1])),def:sizeDef})}else outputData[p].sizes.push({fileHandle:strObj.split(":")[0],scale:Number(eval(strObj.split(":")[1]))})}if(outputData[p].sizes.length>0){var layerCompRef=outputData[p].layerCompRef;delete outputData[p].layerCompRef;for(var s=0;s<outputData[p].sizes.length;s++){if(!outputData[p].sizes[s].scale)throw new Error("Invalid size scale ["+s+"]");var dataObj;dataObj=0===s?outputData[p]:dupeObj(outputData[p]),dataObj.layerCompRef=layerCompRef,dataObj.sizeIndex=s,dataObj.scale=eval(outputData[p].sizes[s].scale),dataObj.sizeFileHandle=outputData[p].sizes[s].fileHandle,s>0&&outputData.splice(p+s,0,dataObj)}outputData[p].sizes.length>1&&(p+=outputData[p].sizes.length-1)}}var layerBoundsCacheLayers={},cacheLayerCompBounds=!dupeCompNamesPresent,layerCompBoundsCache={},exportDirs=[],exportDirsTaken={};for(p=0;p<outputData.length;p++){outputData[p].index=p;var delProps=[];for(var q in outputData[p])"!"==q.charAt(0)&&qNoEx==q.substr(1)&&(outputData[p][qNoEx]||(outputData[p][qNoEx]=outputData[p][q]),delProps.push(q));for(var qq=0;qq<delProps.length;qq++)delete outputData[p][delProps[qq]];ensureDirPropsHaveTrailingSlash(outputData[p],DIR_PROPS,pathSep),outputData[p].alt&&0!=outputData[p].alt.length||(outputData[p].alt=""),outputData[p].base=cleanUpFileNameBase(outputData[p].base),outputData[p].relativePath=applyVarObjToTemplateString(outputData[p],outputData[p].relativePath,TEMPLATE_VAR_PRE,TEMPLATE_VAR_POST,outputData[p].outputValueFactor,OUTPUT_VALUE_FACTOR_PROPS,outputData[p].roundOutputValues);var fileNameSizeHandlePart="";if(outputData[p].sizeIndex>=0){var foundFileHandlePlaceholder=!1;2==outputData[p].base.split(SIZE_FILEHANDLE_PLACEHOLDER).length&&(foundFileHandlePlaceholder=!0,outputData[p].base=outputData[p].base.split(SIZE_FILEHANDLE_PLACEHOLDER).join(outputData[p].sizeFileHandle)),2==outputData[p].relativePath.split(SIZE_FILEHANDLE_PLACEHOLDER).length&&(foundFileHandlePlaceholder=!0,outputData[p].relativePath=outputData[p].relativePath.split(SIZE_FILEHANDLE_PLACEHOLDER).join(outputData[p].sizeFileHandle)),foundFileHandlePlaceholder||(fileNameSizeHandlePart=outputData[p].sizeFileHandle)}if(outputData[p].base=outputData[p].base.split(SIZE_FILEHANDLE_PLACEHOLDER).join(""),outputData[p].base=outputData[p].base+fileNameSizeHandlePart,outputData[p].relativePath=outputData[p].relativePath.split(SIZE_FILEHANDLE_PLACEHOLDER).join(""),outputData[p].srcFileName=outputData[p].base+"."+outputData[p].ext,outputData[p].src=outputData[p].placeholder?"":outputData[p].relativePath+outputData[p].srcFileName,outputData[p].exportPath=psdContainingDir+outputData[p].basePath+outputData[p].relativePath+outputData[p].srcFileName,outputData[p].makeDir){var containingDir=new Folder(psdContainingDir+outputData[p].basePath+outputData[p].relativePath);containingDir.exists||containingDir.create()}var exportDirPath=psdContainingDir+outputData[p].basePath+outputData[p].relativePath;if(exportDirsTaken[exportDirPath]||(exportDirs.push(exportDirPath),exportDirsTaken[exportDirPath]=!0),null!=outputData[p].outputOriginLayer&&outputData[p].outputOriginLayer.length>0)if(layerBoundsCacheLayers[outputData[p].outputOriginLayer])outputData[p].outputOriginX=layerBoundsCacheLayers[outputData[p].outputOriginLayer][0],outputData[p].outputOriginY=layerBoundsCacheLayers[outputData[p].outputOriginLayer][1];else{for(var alteredDoc=!1,foundLayer=!1,i=0;i<doc.layers.length;i++){var lyr=doc.layers[i];if(lyr.name==outputData[p].outputOriginLayer){if(foundLayer)throw new Error('|outputOriginLayer| "'+outputData[p].outputOriginLayer+'" is not unique');lyr.visible=!0,foundLayer=!0,alteredDoc=flattenTopLevelLayerAtIndex(i)}else lyr.visible=!1}if(!foundLayer)throw new Error('|outputOriginLayer| "'+outputData[p].outputOriginLayer+'" not found');var layerBounds=getVisibleBounds(doc);outputData[p].outputOriginX=layerBounds[0],outputData[p].outputOriginY=layerBounds[1],layerBoundsCacheLayers[outputData[p].outputOriginLayer]=layerBounds,revertSnapshot(doc)}var boundsCompBounds=null;if(outputData[p].boundsComp&&outputData[p].boundsComp.length>0){var targetLayerCompName;targetLayerCompName=outputData[p].boundsComp==BOUNDS_COMP_PREV_KEYWORD?outputData[p]._prevLayerCompName:outputData[p].boundsComp==BOUNDS_COMP_NEXT_KEYWORD?outputData[p]._nextLayerCompName:outputData[p].boundsComp;var cropToBoundsTarget=doc.layerComps.getByName(targetLayerCompName);if(cropToBoundsTarget)if(outputData[p].cropToBounds||(outputData[p].cropToBounds=!0),cacheLayerCompBounds&&layerCompBoundsCache[cropToBoundsTarget.name])boundsCompBounds=copyBounds(layerCompBoundsCache[cropToBoundsTarget.name]);else{cropToBoundsTarget.apply();for(var r=0;r<doc.layers.length;r++){var lyr=doc.layers[r];lyr.visible&&lyr.name&&lyr.name.length>=REG_LAYER_NAME.length&&lyr.name.substr(0,REG_LAYER_NAME.length)===REG_LAYER_NAME&&(lyr.visible=!1)}flattenTopLevelLayers(doc,!0,!1,null,IGNORE_PREFIX_CHARS),boundsCompBounds=getVisibleBounds(doc),revertSnapshot(doc),layerCompBoundsCache[cropToBoundsTarget.name]=copyBounds(boundsCompBounds)}}var layerComp=outputData[p].layerCompRef;layerComp.apply();for(var regPt=null,r=0;r<doc.layers.length;r++){var lyr=doc.layers[r];if(lyr.visible&&lyr.name&&lyr.name.length>=REG_LAYER_NAME.length&&lyr.name.substr(0,REG_LAYER_NAME.length)===REG_LAYER_NAME){lyr.visible=!1,regPt=getLayerCenterPoint(lyr),outputData[p].reg="(custom)";break}}var revertRequired=!1,outputBounds;outputData[p].cropToBounds?boundsCompBounds?outputBounds=boundsCompBounds:cacheLayerCompBounds&&layerCompBoundsCache[layerComp.name]?boundsCompBounds=copyBounds(layerCompBoundsCache[layerComp.name]):(flattenTopLevelLayers(doc,!0,!1,null,IGNORE_PREFIX_CHARS),revertRequired=!0,outputBounds=getVisibleBounds(doc),outputData[p].forceGrid>0&&(outputBounds[0]=Math.floor(outputBounds[0]/outputData[p].forceGrid)*outputData[p].forceGrid,outputBounds[1]=Math.floor(outputBounds[1]/outputData[p].forceGrid)*outputData[p].forceGrid,outputBounds[2]=Math.ceil(outputBounds[2]/outputData[p].forceGrid)*outputData[p].forceGrid,outputBounds[3]=Math.ceil(outputBounds[3]/outputData[p].forceGrid)*outputData[p].forceGrid)):outputBounds=copyBounds(psdBounds);var cropBounds=copyBounds(outputBounds),forceW,forceH;if(outputData[p].outputBounds=outputBounds,outputData[p].forceW>0||outputData[p].forceH>0){var cropW=getBoundsWidth(cropBounds),cropH=getBoundsHeight(cropBounds);forceW=outputData[p].forceW>0?outputData[p].forceW:cropW,forceH=outputData[p].forceH>0?outputData[p].forceH:cropH,outputBounds[0]=Math.round(outputBounds[0]-.5*(forceW-cropW)),outputBounds[1]=Math.round(outputBounds[1]-.5*(forceH-cropH)),outputBounds[2]=Math.round(outputBounds[2]+.5*(forceW-cropW)),outputBounds[3]=Math.round(outputBounds[3]+.5*(forceH-cropH))}if(regPt||"(custom)"===outputData[p].reg||(regPt=getRegPtFromRegStringAndBounds(outputData[p].reg,outputData[p].outputBounds)),regPt||(regPt={x:parseInt(outputBounds[0],10),y:parseInt(outputBounds[1],10)}),outputData[p].tlX=outputData[p].outputBounds[0]-outputData[p].outputOriginX,outputData[p].tlY=outputData[p].outputBounds[1]-outputData[p].outputOriginY,outputData[p].x=regPt.x-outputData[p].outputOriginX,outputData[p].y=regPt.y-outputData[p].outputOriginY,outputData[p].tfParams&&(outputData[p].tfParams.visBoundsTLX=outputData[p].tfParams.visBoundsTLX-regPt.x,outputData[p].tfParams.visBoundsTLY=outputData[p].tfParams.visBoundsTLY-regPt.y,outputData[p].tfParams.boxW=Math.round(outputData[p].tfParams.boxW),outputData[p].tfParams.boxH=Math.round(outputData[p].tfParams.boxH)),outputData[p].regX=regPt.x-outputData[p].outputBounds[0],outputData[p].regY=regPt.y-outputData[p].outputBounds[1],outputData[p].regPercX=(regPt.x-outputData[p].outputBounds[0])/(outputData[p].outputBounds[2]-outputData[p].outputBounds[0]),outputData[p].regPercY=(regPt.y-outputData[p].outputBounds[1])/(outputData[p].outputBounds[3]-outputData[p].outputBounds[1]),outputData[p].width=outputBounds[2]-outputBounds[0],outputData[p].height=outputBounds[3]-outputBounds[1],outputData[p].placeholder)1!=outputData[p].scale&&(outputData[p].width=String(Math.round(Number(outputData[p].width)*outputData[p].scale)),outputData[p].height=String(Math.round(Number(outputData[p].height)*outputData[p].scale)),outputData[p].x=outputData[p].x*outputData[p].scale,outputData[p].y=outputData[p].y*outputData[p].scale,outputData[p].regX=outputData[p].regX*outputData[p].scale,outputData[p].regY=outputData[p].regY*outputData[p].scale);else{areBoundsEqual(psdBounds,outputData[p].outputBounds)||(revertRequired=!0,doc.crop(cropBounds)),(outputData[p].forceW>0||outputData[p].forceH>0)&&doc.resizeCanvas(UnitValue(forceW,"px"),UnitValue(forceH,"px"),AnchorPosition.MIDDLECENTER),outputData[p].flipX&&(revertRequired=!0,doc.flipCanvas(Direction.HORIZONTAL)),outputData[p].flipY&&(revertRequired=!0,doc.flipCanvas(Direction.VERTICAL)),1!=outputData[p].scale&&(revertRequired=!0,doc.resizeImage(UnitValue(doc.width.value*outputData[p].scale,"px"),null,null,ResampleMethod.BICUBIC),outputData[p].width=String(doc.width.value),outputData[p].height=String(doc.height.value),outputData[p].x=outputData[p].x*outputData[p].scale,outputData[p].y=outputData[p].y*outputData[p].scale,outputData[p].regX=outputData[p].regX*outputData[p].scale,outputData[p].regY=outputData[p].regY*outputData[p].scale,outputData[p].tlX=outputData[p].tlX*outputData[p].scale,outputData[p].tlY=outputData[p].tlY*outputData[p].scale);var exportOptions=new ExportOptionsSaveForWeb;if(outputData[p].matte){var userMatteColor=hexToRGB(outputData[p].matte),matteColor=new RGBColor;matteColor.red=userMatteColor.r,matteColor.green=userMatteColor.g,matteColor.blue=userMatteColor.b,exportOptions.matteColor=matteColor}if("png"==outputData[p].ext)exportOptions.PNG8=!1,exportOptions.transparency=!0,exportOptions.interlaced=!1,exportOptions.quality=100,exportOptions.includeProfile=!1,exportOptions.format=SaveDocumentType.PNG;else if("jpg"==outputData[p].ext)exportOptions.format=SaveDocumentType.JPEG,exportOptions.quality=outputData[p].quality;else{if("gif"!=outputData[p].ext)throw new Error('Export format "'+outputData[p].ext+'" not found.');exportOptions.ditherAmount=0,exportOptions.dither=Dither.NOISE,exportOptions.palette=Palette.LOCALPERCEPTUAL,exportOptions.format=SaveDocumentType.COMPUSERVEGIF,exportOptions.forced=ForcedColors.BLACKWHITE,exportOptions.interlaced=!1,exportOptions.preserverExactColors=!0,exportOptions.colors=outputData[p].colors,exportOptions.transparency=!0}doc.exportDocument(new File(outputData[p].exportPath),ExportType.SAVEFORWEB,exportOptions)}revertRequired&&revertSnapshot(doc)}for(var nestLookup=[],mm=0;mm<outputData.length;mm++)nestLookup[outputData[mm].nestlevel]||(nestLookup[outputData[mm].nestlevel]={}),nestLookup[outputData[mm].nestlevel][outputData[mm].base]=mm;if(nestLookup.length>1)for(var nn=nestLookup.length-1;nn>=1;nn--)for(var base in nestLookup[nn]){var child=outputData[nestLookup[nn][base]],parent=outputData[nestLookup[nn-1][child.parent]];outputData[nestLookup[nn][base]].x-=parent.x,outputData[nestLookup[nn][base]].y-=parent.y}for(p=0;p<outputData.length;p++){var compTemplateSplit=outputData[p].template.split(TEMPLATE_MULTI_SEP);if(compTemplateSplit.length!=outputTemplates.length)throw new Error("Layer comp template list must be same length as config comp");for(var ote=0;ote<compTemplateSplit.length;ote++){var template=compTemplateSplit[ote],templateIsRawString=template.split(TEMPLATE_VAR_PRE).length>1&&template.split(TEMPLATE_VAR_POST).length>1,templateFound=!1;if(void 0!==tplData[template])for(var t=0;t<TEMPLATE_PARTS.length;t++){var part=TEMPLATE_PARTS[t];if(void 0!==tplData[template][part])if("parse"==part){if(void 0===templateParseFnCache[template]){var parse=null;if($.evalFile(tplData[template][part]),null===parse)throw new Error("Custom `parse` function not found at `"+tplData[template][part]+"`");templateParseFnCache[template]=parse}}else if(void 0===output[ote][part]&&(output[ote][part]=[]),templateFound=!0,"main"==part){var mainData=applyVarObjToTemplateString(outputData[p],tplData[template][part],TEMPLATE_VAR_PRE,TEMPLATE_VAR_POST,outputData[p].outputValueFactor,OUTPUT_VALUE_FACTOR_PROPS,outputData[p].roundOutputValues,templateParseFnCache[template]);void 0!==tplData[template].inter&&p>0&&(mainData=tplData[template].inter+mainData),output[ote][part].push(mainData)}else if("inter"!=part){var templatePartID=template+":"+part;if(!templatePartsAdded[ote][templatePartID]){var templateContent=tplData[template][part];configData&&(templateContent=applyVarObjToTemplateString(configData,templateContent,TEMPLATE_VAR_PRE,TEMPLATE_VAR_POST,1,[],!1,templateParseFnCache[template])),output[ote][part].push(templateContent),templatePartsAdded[ote][templatePartID]=!0}}}!templateFound&&templateIsRawString&&(void 0===output[ote].main&&(output[ote].main=[]),output[ote].main.push(applyVarObjToTemplateString(outputData[p],template,TEMPLATE_VAR_PRE,TEMPLATE_VAR_POST,outputData[p].outputValueFactor,OUTPUT_VALUE_FACTOR_PROPS,outputData[p].roundOutputValues)))}}revertSnapshot(doc),doc.close(SaveOptions.DONOTSAVECHANGES),doc=originalDoc;for(var responseDataAll=[],ote=0;ote<outputTemplates.length;ote++){for(var outputString="",t=0;t<TEMPLATE_PARTS.length;t++)void 0!==output[ote][TEMPLATE_PARTS[t]]&&(outputString+=output[ote][TEMPLATE_PARTS[t]].join(""));var outputFilePath="",outputTags={};if(configData&&configData.outputFilePath&&configData.outputFilePath[ote].length>0){configData.basePath=ensureDirPathHasTrailingSlash(configData.basePath,pathSep);var injectedOutputFilePath=applyVarObjToTemplateString(configData,configData.outputFilePath[ote],TEMPLATE_VAR_PRE,TEMPLATE_VAR_POST,1,[]);outputFilePath=configData.basePath+injectedOutputFilePath,configData.outputTagStart&&configData.outputTagEnd&&configData.outputTagStart[ote].length>0&&configData.outputTagEnd[ote].length>0&&(outputTags={start:configData.outputTagStart[ote],end:configData.outputTagEnd[ote]})}var responseData={outputData:cleanupOutputDataForOutput(outputData,["layerCompRef"]),outputString:outputString,outputFilePath:outputFilePath,outputTags:outputTags};responseDataAll.push(responseData)}for(var anyDebugOutput=!1,i=0;i<post.length;i++){var jsxScriptName=post[i],extParts=jsxScriptName.split(".");if(extParts.length>1&&"jsx"==extParts[1].toLowerCase()&&(jsxScriptName=jsxScriptName.substr(0,jsxScriptName.length-1)),!jsxPaths.post[jsxScriptName])throw new Error("JSX `post` script not found `"+jsxScriptName+"`");var jsxPath=jsxPaths.post[jsxScriptName],jsxFile=new File(jsxPath);if(!jsxFile.exists)throw new Error("JSX `post` file not found `"+jsxScriptName+"`");var outputDebug=-1==DEFAULT_POST.indexOf(jsxScriptName);outputDebug&&(anyDebugOutput=!0,stream.writeln("debug:Running *post* hook `"+jsxScriptName+"`...")),$.evalFile(jsxFile)}if(anyDebugOutput&&stream.writeln("debug:*post* hooks complete OK."),configData.postExecutePath&&trim(configData.postExecutePath).length>0)for(var exePaths=trim(configData.postExecutePath).split(","),ep=0;ep<exePaths.length;ep++){var exePath=trim(exePaths[ep]),execFile=new File(psdContainingDir+exePath);execFile.exists?(stream.writeln("debug:Executing `"+exePath+"`"),execFile.execute()):alert("postExecutePath not found: `"+psdContainingDir+exePath+"`")}function deleteImgsFromDir(t){t.exists||alert("Img dir not found: `"+t.fullName+"`");for(var e=t.getFiles(/.+\.(?:gif|jpg|jpeg|bmp|png|webp)$/i),a=0;a<e.length;a++)e[a].remove()}function getSelectedLayerLookup(t){return{}}function isLayerSelected(t,e){return e["name:"+t.name+",parent:"+t.parent.name]}function _getSelectedLayers(){var t=stringIDToTypeID("groupLayersEvent"),e=new ActionDescriptor,a=new ActionReference;a.putEnumerated(charIDToTypeID("Lyr "),charIDToTypeID("Ordn"),charIDToTypeID("Trgt")),e.putReference(charIDToTypeID("null"),a),executeAction(t,e,DialogModes.ALL);for(var o=new Array,r=0;r<app.activeDocument.activeLayer.layers.length;r++)o.push(app.activeDocument.activeLayer.layers[r]);var p=charIDToTypeID("slct"),n=new ActionDescriptor,u=charIDToTypeID("null"),s=new ActionReference,i=charIDToTypeID("HstS"),l=charIDToTypeID("Ordn"),c=charIDToTypeID("Prvs");return s.putEnumerated(i,l,c),n.putReference(u,s),executeAction(p,n,DialogModes.NO),o}function dupeObj(t){return JSON.parse(JSON.stringify(t))}function hexToRGB(t){var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}function getExt(t){var e="",a=(t=String(t)).split(".");return a.length>1&&(e=a[a.length-1]),e}function cleanUpFileNameBase(t){return t=t.split(" ").join("-")}function cleanupOutputDataForOutput(t,e){for(var a="+++"+e.join("+++")+"+++",o=0;o<t.length;o++){var r=t[o];for(var p in r)a.split("+++"+p+"+++").length>1&&(t[o][p]="...")}return t}function filenameBaseToAltText(t){return t.length>0&&(t=t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()),t=(t=t.split("-").join(" ")).split("_").join(" ")}function ensureDirPropsHaveTrailingSlash(t,e,a){for(var o=0;o<e.length;o++){var r=e[o];t[r]&&t[r].length>0&&(t[r]=ensureDirPathHasTrailingSlash(t[r],a))}}function ensureDirPathHasTrailingSlash(t,e){return(t=String(t)).charAt(t.length-1)!=e&&(t+=e),t}function copyBounds(t){for(var e=new Array,a=0;a<4;a++)e[a]=t[a];return e}function areBoundsEqual(t,e){for(var a=0;a<4;a++)if(t[a]!=e[a])return!1;return!0}function getLayerCenterPoint(t){return{x:t.bounds[0].value+.5*(t.bounds[2].value-t.bounds[0].value),y:t.bounds[1].value+.5*(t.bounds[3].value-t.bounds[1].value)}}function getBoundsWidth(t){return t[2]-t[0]}function getBoundsHeight(t){return t[3]-t[1]}function getRegPtFromRegStringAndBounds(t,e){var a=e[0],o=e[1],r=e[2]-e[0],p=e[3]-e[1],n=0,u=0;if("x"==t.charAt(0)&&2==t.split("y").length&&2==(s=t.substr(1,t.length-1).split("y")).length)return{x:Number(s[0]),y:Number(s[1])};if(2==t.split(",").length){var s=t.split(",");return{x:Number(s[0]),y:Number(s[1])}}if("C"==(t=(t=(t=t.toUpperCase()).split("M").join("C")).split("CC").join("C")))n=u=.5;else{var i=!1,l=!1;t.split("L").length>1?(n=0,i=!0):t.split("R").length>1&&(n=1,i=!0),t.split("T").length>1?(u=0,l=!0):t.split("B").length>1&&(u=1,l=!0),i&&!l&&t.split("C").length>1?u=.5:!i&&l&&t.split("C").length>1&&(n=.5)}return{x:a+r*n,y:o+p*u}}function setCommentProp(t,e,a){e=String(e),a=String(a);for(var o=t.comment?t.comment.split("\n"):[],r=e+": "+a,p=!1,n=0;n<o.length;n++)0==o[n].split(e)[0].length&&(o[n]=r,p=!0);p||o.push(r),t.comment=o.join("\n")}function getCommentProp(t,e){e=String(e);var a=t.comment?t.comment.split(e+":"):[];return a.length>1&&(0==a[0].length||"\n"==a[0].charAt(a[0].length-1))?trim(a[1].split("\n")[0]):null}function getCallSystem(){return system.callSystem}function getGlobalProp(t){for(var e in t=String(t),outputData)return outputData[e][t];return null}function getPsdBase(){}function deleteCommentProp(t,e){e=String(e);var a=t.comment?t.comment.split(e+":"):[];if(a.length>1&&(0==a[0].length||"\n"==a[0].charAt(a[0].length-1))){a[0].length>0&&(a[0]=a[0].substr(0,a[0].length-1));var o=a[1].split("\n");o.splice(0,1),a[1]=o.join("\n"),0==a[0].length&&a.splice(0,1),t.comment=a.join("\n")}}function trim(t){return trimEnd(trimStart(t))}function trimStart(t){for(var e=0,a=0;a<t.length;a++){var o=t.charAt(a);if(" "!=o&&"\t"!=o&&"\n"!=o)break;e++}return t.substr(e)}function trimEnd(t){for(var e=0,a=0;a<t.length;a++){var o=t.charAt(t.length-1-a);if(" "!=o&&"\t"!=o&&"\n"!=o)break;e++}return t.substr(0,t.length-e)}function getVisibleBounds(t){for(var e=new Array(0,0,t.width.value,t.height.value),a=copyBounds(e),o=!1,r=0;r<t.layers.length;r++){var p=t.layers[r];if(p.visible&&(0!=p.bounds[0].value||0!=p.bounds[1].value||0!=p.bounds[2].value||0!=p.bounds[3].value))if(o){if(p.bounds[0].value<a[0]&&(a[0]=p.bounds[0].value),p.bounds[1].value<a[1]&&(a[1]=p.bounds[1].value),p.bounds[2].value>a[2]&&(a[2]=Math.min(t.width.value,p.bounds[2].value)),p.bounds[3].value>a[3]&&(a[3]=p.bounds[3].value),areBoundsEqual(a,e))break}else a=copyBounds([p.bounds[0].value,p.bounds[1].value,p.bounds[2].value,p.bounds[3].value]),o=!0}return a[0]<0&&(a[0]=0),a[1]<0&&(a[1]=0),a[2]>t.width.value&&(a[2]=t.width.value),a[3]>t.height.value&&(a[3]=t.height.value),a}function applyVarObjToTemplateString(t,e,a,o,r,p,n,u,s){s=void 0!==s?s:"",u="function"==typeof u?u:null,e=String(e);var i="#"+p.join("#")+"#";for(var l in t){var c=t[l],h=(l=s+l,isNonArrObj(c)&&OBJ_PROPS.indexOf(l)>=0);if(2===i.split("#"+l+"#").length&&(c=Number(c)*r,n&&(c=Math.round(c))),h){var D={},d=!1;if(null!==c)for(var f in c)d=!0,D[f]=c[f];var g=dupeObj(D);for(var m in OBJ_PROP_DEFAULTS[l]){var v=l+"."+m;void 0===g[m]&&(g[m]=OBJ_PROP_DEFAULTS[l][m]),2===i.split("#"+v+"#").length&&(g[m]=Number(g[m])*r,n&&(g[m]=Math.round(g[m])),D&&"object"==typeof D&&void 0!==D[m]&&(D[m]=g[m]))}e=applyVarObjToTemplateString(g,e,a,o,1,[],!1,u,s+l+"."),c=d?JSON.stringify(D):""}null!==u&&(c=u(l,c)),e=e.split(a+l+o).join(c)}return e}function isNonArrObj(t){return"object"==typeof t&&!Array.isArray(t)}function rasterizeVectorMask(){try{var t=stringIDToTypeID("rasterizeLayer"),e=new ActionDescriptor,a=charIDToTypeID("null"),o=new ActionReference,r=charIDToTypeID("Lyr "),p=charIDToTypeID("Ordn"),n=charIDToTypeID("Trgt");o.putEnumerated(r,p,n),e.putReference(a,o);var u=charIDToTypeID("What"),s=stringIDToTypeID("rasterizeItem"),i=stringIDToTypeID("vectorMask");e.putEnumerated(u,s,i),executeAction(t,e,DialogModes.NO)}catch(t){}}function takeSnapshot(){var t=charIDToTypeID("Mk  "),e=new ActionDescriptor,a=charIDToTypeID("null"),o=new ActionReference,r=charIDToTypeID("SnpS");o.putClass(r),e.putReference(a,o);var p=charIDToTypeID("From"),n=new ActionReference,u=charIDToTypeID("HstS"),s=charIDToTypeID("CrnH");n.putProperty(u,s),e.putReference(p,n),executeAction(t,e,DialogModes.NO)}function revertSnapshot(t){for(var e=t.historyStates,a=e.length-1;a>-1;a--)if(e[a].snapshot){t.activeHistoryState=e.getByName("Snapshot "+a);break}}function getFileBaseName(t,e){e&&e.length>0&&t.substr(-e.length).toLowerCase()===e.toLowerCase()&&"."===(t=t.substr(0,t.length-e.length)).charAt(t.length-1)&&(t=t.substr(0,t.length-1));var a=(t=t.split("\\").join("/")).split("/");return a[a.length-1]}function extendObjWithDefaults(t,e,a){var o=a?"~"+a.join("~")+"~":"";for(var r in e){var p=!1,n=e[r];"!"==r.charAt(0)&&(p=!0,r=r.substr(1)),1===o.split("~"+r+"~").length&&(p||void 0===t[r])&&(t[r]=n)}return t}function flattenTopLevelLayers(t,e,a,o,r){for(var p=0,n=t.layers.length,u=0;u<n;u++){var s=t.layers[u];r[s.name.charAt(0)]||e&&!s.visible||a&&!isLayerSelected(s,o)||(t.activeLayer=s,("LayerSet"===s.typename||activeLayerHasLayerMask()||activeLayerHasVectorMask()||activeLayerHasFilterMask()||activeLayerHasStyle())&&(p++,createSmartObject(t,s)))}return{flattenedLayers:p,totalLayers:n}}function flattenTopLevelLayerAtIndex(t){var e=doc.layers[t],a=!1;return doc.activeLayer=e,("LayerSet"===e.typename||activeLayerHasLayerMask()||activeLayerHasVectorMask()||activeLayerHasFilterMask()||activeLayerHasStyle())&&(a=!0,createSmartObject(doc,e)),a}function createSmartObject(t,e){e=null!=e?e:t.activeLayer;t.activeLayer!=e&&(t.activeLayer=e);try{var a=stringIDToTypeID("newPlacedLayer");return executeAction(a,void 0,DialogModes.NO),t.activeLayer}catch(t){return}}function activeLayerHasLayerMask(){var t=!1;try{var e=new ActionReference,a=app.charIDToTypeID("UsrM");e.putProperty(app.charIDToTypeID("Prpr"),a),e.putEnumerated(app.charIDToTypeID("Lyr "),app.charIDToTypeID("Ordn"),app.charIDToTypeID("Trgt")),executeActionGet(e).hasKey(a)&&(t=!0)}catch(e){t=!1}return t}function activeLayerHasVectorMask(){var t=!1;try{var e=new ActionReference,a=app.stringIDToTypeID("vectorMask"),o=app.charIDToTypeID("Knd ");e.putEnumerated(app.charIDToTypeID("Path"),app.charIDToTypeID("Ordn"),a);var r=executeActionGet(e);if(r.hasKey(o))r.getEnumerationValue(o)==a&&(t=!0)}catch(e){t=!1}return t}function activeLayerHasFilterMask(){var t=!1;try{var e=new ActionReference,a=app.stringIDToTypeID("hasFilterMask");e.putProperty(app.charIDToTypeID("Prpr"),a),e.putEnumerated(app.charIDToTypeID("Lyr "),app.charIDToTypeID("Ordn"),app.charIDToTypeID("Trgt"));var o=executeActionGet(e);o.hasKey(a)&&o.getBoolean(a)&&(t=!0)}catch(e){t=!1}return t}function activeLayerHasStyle(){var t=!1;try{var e=new ActionReference,a=app.charIDToTypeID("Lefx");e.putProperty(app.charIDToTypeID("Prpr"),a),e.putEnumerated(app.charIDToTypeID("Lyr "),app.charIDToTypeID("Ordn"),app.charIDToTypeID("Trgt")),executeActionGet(e).hasKey(a)&&(t=!0)}catch(e){t=!1}return t}function debug(t){alert(JSON.stringify(t,null,2))}app.togglePalettes(),stream.writeln(JSON.stringify(responseDataAll))}function pr(t){console.log(JSON.stringify(t,null,2))}function getFilesWithExts(t,e){return fs.readdirSync(t).filter((function(a){return!fs.statSync(path.join(t,a)).isDirectory()&&isFileOfExtension(path.join(t,a),e)}))}function isFileOfExtension(t,e){return isExtofExtensions(path.extname(t),e)}function isExtofExtensions(t,e){t="."==(t=t.toLowerCase()).charAt(0)?t:"."+t,e=Array.isArray(e)?e:[String(e)];for(var a=0;a<e.length;a++){var o=e[a].toLowerCase();if("*"==o)return!0;if(t==(o="."==o.charAt(0)?o:"."+o))return!0}return!1}function loadJsxPaths(t,e={}){var a=e;if(fs.existsSync(t)&&fs.statSync(t).isDirectory())for(var o=getFilesWithExts(t,[".jsx"]),r=0;r<o.length;r++){var p=path.basename(o[r],path.extname(o[r])),n=path.join(t,o[r]);a[p]=n}return a}Choppy.simpleObjDupe=function(t){var e={};for(var a in t)e[a]=t[a];return e},Choppy.simpleArrDupe=function(t){for(var e=[],a=0;a<t.length;a++)e[a]=t[a];return e},Choppy.prototype.onPsdDone=function(){this.processNext()},Choppy.prototype.processNext=function(){this.psdIndex++;var t,e=this.psdPaths[this.psdIndex];if(0==this.psdPaths.length){if(t=!0,1==this.psdIndex)return}else{if(t=!1,null==e)return;var a=e;"~"===e.charAt(0)||e.charAt(0)===path.sep||(e=process.cwd()+path.sep+e,fs.existsSync(e)||(e=a))}var o=t?"Active document":path.basename(e);console.log("\nPSD "+String(this.psdIndex+1)+"/"+(t?"1":this.psdPaths.length)+" "+o+" ...");var r=this;photoshop.invoke(ensurePsdIsActiveDocumentJSX,[e,path.sep],(function(t,e){if(r.jsxPaths=Choppy.simpleObjDupe(r.jsxPathsCore),e||0==r.standaloneCmds.length){var a="";if(!e)throw new Error("Active document seems to be a dupe (activeDocument "+(e?"OK":"null")+",self.standaloneCmds.length="+r.standaloneCmds.length+")");var o=Choppy.ensureDirPathHasTrailingSlash(e.path,path.sep),p={},n=o+r.CONFIG_FILENAME;fs.existsSync(n)?(p=JSON.parse(fs.readFileSync(n,"utf8"))).basePath&&p.basePath.length>0&&(p.basePath=Choppy.ensureDirPathHasTrailingSlash(p.basePath,path.sep)):p={};var u=path.join(o,r.JSX_DIR_NAME);fs.existsSync(u)&&(r.jsxPaths.pre=loadJsxPaths(path.join(u,"pre"),r.jsxPaths.pre),r.jsxPaths.post=loadJsxPaths(path.join(u,"post"),r.jsxPaths.post),r.jsxPaths.standalone=loadJsxPaths(path.join(u,"standalone"),r.jsxPaths.standalone))}console.log("\n");for(var s=0;s<r.standaloneCmds.length;s++){var i=r.standaloneCmds[s],l=i.split(".");if(l.length>1&&"jsx"==l[1].toLowerCase()&&(i=i.substr(0,i.length-1)),!r.jsxPaths.standalone[i])throw new Error("JSX `standalone` script not found `"+i+"`");var c=r.jsxPaths.standalone[i];console.log("Running *standalone* cmd `"+i+"`..."),photoshop.invoke("function (jsxPath){\n\t\t\t\tvar jsxFile = new File(jsxPath);\n\t\t\t\tif (!jsxFile.exists){\n\t\t\t\t\tthrow new Error('JSX standalone file not found '+jsxScriptName+'');\n\t\t\t\t}\n\t\t\t\tvar halt = false;\n\t\t\t\t$.evalFile(jsxFile);\n\t\t\t}",[c],(function(t){if(t)throw t}))}if(r.standaloneCmds.length>0)console.log("Standalone cmd/s complete.\n");else{r.templateFiles=Choppy.simpleArrDupe(r.templateFilesCore);var h=o+r.TEMPLATE_DIR_NAME+path.sep;fs.existsSync(h)&&Choppy.addFilePathsInDirToArray(h,r.templateFiles);var D=r.getTemplateDataFromFiles(r.templateFiles);photoshop.createStream(processJSX,{tplData:D,pathSep:path.sep,baseConfigData:p,TEMPLATE_PARTS:r.TEMPLATE_PARTS,jsxPaths:r.jsxPaths,envVars:r.envVars,pubtime:r.pubtime}).on("data",(function(t){var e=t.toString();if("debug:"===e.substr(0,6))console.log(e.substr(6));else if("log:"===e.substr(0,4))try{console.log.apply(this,JSON.parse(e.substr(4)))}catch(t){}else a+=e})).on("end",(function(){var t;try{t=JSON.parse(a)}catch(t){return void console.log(a.toString())}t.push||(t=[t]);for(var e=t,p=0;p<e.length;p++){if(t=e[p],r.verbose&&console.log(JSON.stringify(t.outputData,null,2)),console.log("\n"+t.outputString+"\n"),t.outputFilePath&&t.outputFilePath.length>0){var n=t.outputString;if(t.outputTags&&t.outputTags.start&&t.outputTags.end&&t.outputTags.start.length>0&&t.outputTags.end.length>0)for(var u=0;u<2;u++){var s=fs.readFileSync(o+t.outputFilePath,"utf8"),i=new RegExp(t.outputTags.start.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")+"(.|[\r\n])*"+t.outputTags.end.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"gi");if(n=s.replace(i,t.outputTags.start+t.outputString+t.outputTags.end),null!==s.match(i)){console.log('Found tags: "'+t.outputTags.start+'" and "'+t.outputTags.end+'".\n');break}if(1==u)throw new Error("Output tags not found.");t.outputTags.start=t.outputTags.start.split("\\-").join("-"),t.outputTags.end=t.outputTags.end.split("\\-").join("-")}fs.writeFileSync(o+t.outputFilePath,n),console.log("Wrote to "+t.outputFilePath+"\n")}p==e.length-1&&r.onPsdDone()}}))}}))},Choppy.prototype.getTemplateDataFromFiles=function(t){for(var e={},a=0;a<t.length;a++){var o=t[a];path.basename(o);if(!fs.statSync(o).isDirectory()){var r=path.basename(o,path.extname(o));if("."!==r.charAt(0)){var p="main";if(1!==r.split(".").length)for(var n=0;n<this.TEMPLATE_PARTS.length;n++)if("main"!==this.TEMPLATE_PARTS[n]&&2===(r+".").split("."+this.TEMPLATE_PARTS[n]+".").length){r=(r+".").split("."+this.TEMPLATE_PARTS[n]+".").join(""),p=this.TEMPLATE_PARTS[n];break}if(e[r]||(e[r]={}),e[r][p])throw new Error("Template part already defined");if("parse"==p)e[r][p]=o;else{var u=fs.readFileSync(o,"utf8");e[r][p]=u}}}}for(var s in e)if(!e[s].main)throw new Error("Template missing a main part");return e},Choppy.addFilePathsInDirToArray=function(t,e){t=Choppy.ensureDirPathHasTrailingSlash(t,path.sep);var a=fs.readdirSync(t);for(var o in a){var r=t+a[o];e.push(r)}},Choppy.ensureDirPathHasTrailingSlash=function(t,e){return(t=String(t)).charAt(t.length-1)!==e&&(t+=e),t},module.exports=new Choppy;
//# sourceMappingURL=/sm/dabaef41c40a73c82ed4aa26943b448e01dee4813dd7b899ef878faa686cfa40.map