Convert Actions File

Description

“Convert Actions File” is an actions files utility script using the JSON Action Manager scripting library, and more specifically its module jamActions.

This stand-alone script written in JavaScript is used to convert a Photoshop actions file (.atn) into a folder of directly executable scripts (.js) which can be further edited; they are made up of sequential calls to the function jamEngine.jsonPlay.

Please refer to the Photoshop Actions File Format document for detailed information about the structure of an actions file.

Convert Actions File Dialog (Mac OS X)

Tool-tips displaying their respective full path name are available while hovering over the actions file text field and the destination folder text field.

Actions File Help Tip (Mac OS X)Destination Folder Help Tip (Mac OS X)

Examples of scripts obtained from a converted actions file (Frames.atn):

Converted Action Set Folder (Mac OS X)

  • Waves Frame.js
// Application: Adobe Photoshop CS4 (11.0.2)
// Date: 2015-11-22T20:29:57+01:00
// Actions file: /Applications/Adobe Photoshop CS4/Presets/Actions/Frames.atn
// Action set: Frames
 
// jamEngine.jsxinc v4.4.4 (minified)
if(typeof jamEngine!=='object') {var jamEngine={};(function() {var that;jamEngine.meaningfulIds=false;jamEngine.parseFriendly=false;jamEngine.displayDialogs=DialogModes.ERROR;var conflictingStringIdStrs={"'Algn'":["align","alignment"],"'AntA'":["antiAlias","antiAliasedPICTAcquire"],"'BckL'":["backgroundLayer","backgroundLevel"],"'BlcG'":["blackGenerationType","blackGenerationCurve"],"'BlcL'":["blackLevel","blackLimit"],"'Blks'":["blacks","blocks"],"'BlrM'":["blurMethod","blurMore"],"'BrgC'":["brightnessEvent","brightnessContrast"],"'BrsD'":["brushDetail","brushesDefine"],"'Brsh'":["brush","brushes"],"'Clcl'":["calculation","calculations"],"'ClrP'":["colorPalette","coloredPencil"],"'Cnst'":["constant","constrain"],"'CntC'":["centerCropMarks","conteCrayon"],"'Cntr'":["center","contrast"],"'CrtD'":["createDroplet","createDuplicate"],"'CstP'":["customPalette","customPhosphors"],"'Cstm'":["custom","customPattern"],"'Drkn'":["darken","darkness"],"'Dstr'":["distort","distortion","distribute","distribution"],"'Dstt'":["desaturate","destWhiteMax"],"'FlIn'":["fileInfo","fillInverse"],"'Gd  '":["good","guide"],"'GnrP'":["generalPreferences","generalPrefs","preferencesClass"],"'GrSt'":["grainStippled","graySetup"],"'Grdn'":["gradientClassEvent","gridMinor"],"'Grn '":["grain","green"],"'Grns'":["graininess","greens"],"'HstP'":["historyPreferences","historyPrefs"],"'HstS'":["historyState","historyStateSourceType"],"'ImgP'":["imageCachePreferences","imagePoint"],"'In  '":["in","stampIn"],"'IntW'":["interfaceWhite","intersectWith"],"'Intr'":["interfaceIconFrameDimmed","interlace","interpolation","intersect"],"'JPEG'":["JPEG","JPEGFormat"],"'LghD'":["lightDirection","lightDirectional"],"'LghO'":["lightOmni","lightenOnly"],"'LghS'":["lightSource","lightSpot"],"'Lns '":["lens","lines"],"'Mgnt'":["magenta","magentas"],"'MrgL'":["mergeLayers","mergedLayers"],"'Mxm '":["maximum","maximumQuality"],"'NTSC'":["NTSC","NTSCColors"],"'NmbL'":["numberOfLayers","numberOfLevels"],"'PlgP'":["pluginPicker","pluginPrefs"],"'Pncl'":["pencilEraser","pencilWidth"],"'Pnt '":["paint","point"],"'Prsp'":["perspective","perspectiveIndex"],"'PrvM'":["previewMacThumbnail","previewMagenta"],"'Pstr'":["posterization","posterize"],"'RGBS'":["RGBSetup","RGBSetupSource"],"'Rds '":["radius","reds"],"'ScrD'":["scratchDisks","screenDot"],"'ShdI'":["shadingIntensity","shadowIntensity"],"'ShpC'":["shapeCurveType","shapingCurve"],"'ShrE'":["sharpenEdges","shearEd"],"'Shrp'":["sharpen","sharpness"],"'SplC'":["splitChannels","supplementalCategories"],"'Spot'":["spot","spotColor"],"'SprS'":["separationSetup","sprayedStrokes"],"'StrL'":["strokeLength","strokeLocation"],"'Strt'":["saturation","start"],"'TEXT'":["char","textType"],"'TIFF'":["TIFF","TIFFFormat"],"'TglO'":["toggleOptionsPalette","toggleOthers"],"'TrnG'":["transparencyGamutPreferences","transparencyGrid","transparencyGridSize"],"'TrnS'":["transferSpec","transparencyShape","transparencyStop"],"'Trns'":["transparency","transparent"],"'TxtC'":["textClickPoint","textureCoverage"],"'TxtF'":["textureFile","textureFill"],"'UsrM'":["userMaskEnabled","userMaskOptions"],"'c@#^'":["inherits","pInherits"],"'comp'":["comp","sInt64"],"'doub'":["floatType","IEEE64BitFloatingPoint","longFloat"],"'long'":["integer","longInteger","sInt32"],"'magn'":["magnitude","uInt32"],"'null'":["null","target"],"'shor'":["sInt16","sMInt","shortInteger"],"'sing'":["IEEE32BitFloatingPoint","sMFloat","shortFloat"]};jamEngine.getConflictingStringIdStrs=function(charIdStr) {return conflictingStringIdStrs[charIdStr]||null;};jamEngine.uniIdStrToId=function(uniIdStr) {var id=0;if(typeof uniIdStr==='string') {if((uniIdStr.length===(1+4+1))&&(uniIdStr.charAt(0)==="'")&&(uniIdStr.charAt(5)==="'")) {id=app.charIDToTypeID(uniIdStr.substring(1,5));} else {id=app.stringIDToTypeID(uniIdStr);}} return id;};var smallestHashValue=app.charIDToTypeID("    ");jamEngine.idToUniIdStrs=function(id) {var charIdStr="";var stringIdStr=app.typeIDToStringID(id);if(id>=smallestHashValue) {charIdStr="'"+app.typeIDToCharID(id)+"'";if(stringIdStr!=="") {if(charIdStr in conflictingStringIdStrs) {stringIdStr=conflictingStringIdStrs[charIdStr];}}} return[charIdStr,stringIdStr];};jamEngine.equivalentUniIdStrs=function(uniIdStr1,uniIdStr2) {return this.uniIdStrToId(uniIdStr1)===this.uniIdStrToId(uniIdStr2);};function putInReference(ref,containers) {if(containers.constructor===Array) {var count=containers.length;for(var i=0;i<count;i++) {var container=that.parseCompact(containers[i]);var desiredClassId=that.uniIdStrToId(container[0]);var typedValue=that.parseCompact(container[1]);var form=typedValue[0];var value=typedValue[1];switch(form) {case"<class>":ref.putClass(desiredClassId);break;case"<enumerated>":var enumerated=that.parseCompact(value);ref.putEnumerated(desiredClassId,that.uniIdStrToId(enumerated[0]),that.uniIdStrToId(enumerated[1]));break;case"<identifier>":ref.putIdentifier(desiredClassId,value);break;case"<index>":ref.putIndex(desiredClassId,value);break;case"<name>":ref.putName(desiredClassId,value);break;case"<offset>":ref.putOffset(desiredClassId,value);break;case"<property>":ref.putProperty(desiredClassId,that.uniIdStrToId(value));break;default:throw new Error("[jamEngine putInReference] Unknown reference form: "+form);break;}}} else {throw new Error("[jamEngine putInReference] JavaScript array expected");}} function putInList(list,items) {if(items.constructor===Array) {var count=items.length;for(var i=0;i<count;i++) {var item=that.parseCompact(items[i]);var type=item[0];var value=item[1];switch(type) {case"<boolean>":list.putBoolean(value);break;case"<class>":list.putClass(that.uniIdStrToId(value));break;case"<data>":list.putData(value);break;case"<double>":list.putDouble(value);break;case"<enumerated>":var enumerated=that.parseCompact(value);list.putEnumerated(that.uniIdStrToId(enumerated[0]),that.uniIdStrToId(enumerated[1]));break;case"<integer>":list.putInteger(value);break;case"<largeInteger>":list.putLargeInteger(value);break;case"<list>":var actionList=new ActionList();putInList(actionList,value);list.putList(actionList);break;case"<object>":var object=that.parseCompact(value);if(object[1]) {var actionDescriptor=new ActionDescriptor();putInDescriptor(actionDescriptor,object[1]);list.putObject(that.uniIdStrToId(object[0]),actionDescriptor);} else {list.putClass(that.uniIdStrToId(object[0]));} break;case"<path>":var fileRef=new File(value);list.putPath(fileRef);break;case"<reference>":var actionReference=new ActionReference();putInReference(actionReference,value);list.putReference(actionReference);break;case"<string>":list.putString(value);break;case"<unitDouble>":var unitDouble=that.parseCompact(value);list.putUnitDouble(that.uniIdStrToId(unitDouble[0]),unitDouble[1]);break;default:throw new Error("[jamEngine putInList] Unknown list type: "+type);break;}}} else {throw new Error("[jamEngine putInList] JavaScript array expected");}} function putInDescriptor(desc,members) {if(members.constructor===Object) {for(var key in members) {if(members.hasOwnProperty(key)) {var keyID=that.uniIdStrToId(key);var member=that.parseCompact(members[key]);var type=member[0];var value=member[1];switch(type) {case"<boolean>":desc.putBoolean(keyID,value);break;case"<class>":desc.putClass(keyID,that.uniIdStrToId(value));break;case"<data>":desc.putData(keyID,value);break;case"<double>":desc.putDouble(keyID,value);break;case"<enumerated>":var enumerated=that.parseCompact(value);desc.putEnumerated(keyID,that.uniIdStrToId(enumerated[0]),that.uniIdStrToId(enumerated[1]));break;case"<integer>":desc.putInteger(keyID,value);break;case"<largeInteger>":desc.putLargeInteger(keyID,value);break;case"<list>":var actionList=new ActionList();putInList(actionList,value);desc.putList(keyID,actionList);break;case"<object>":var object=that.parseCompact(value);if(object[1]) {var actionDescriptor=new ActionDescriptor();putInDescriptor(actionDescriptor,object[1]);desc.putObject(keyID,that.uniIdStrToId(object[0]),actionDescriptor);} else {desc.putClass(keyID,that.uniIdStrToId(object[0]));} break;case"<path>":var fileRef=new File(value);desc.putPath(keyID,fileRef);break;case"<reference>":var actionReference=new ActionReference();putInReference(actionReference,value);desc.putReference(keyID,actionReference);break;case"<string>":desc.putString(keyID,value);break;case"<unitDouble>":var unitDouble=that.parseCompact(value);desc.putUnitDouble(keyID,that.uniIdStrToId(unitDouble[0]),unitDouble[1]);break;default:throw new Error("[jamEngine putInDescriptor] Unknown descriptor type: "+type);break;}}}} else {throw new Error("[jamEngine putInDescriptor] JavaScript object expected");}} var contextRules={"'Algn'":{"<classKey>":{"bevelEmboss":"align","frameFX":"align","gradientFill":"align","gradientLayer":"align","patternFill":"align","patternLayer":"align"},"<event>":"align","<key>":"alignment"},"'AntA'":{"<class>":"antiAliasedPICTAcquire","<key>":"antiAlias"},"'BckL'":{"<class>":"backgroundLayer","<key>":"backgroundLevel"},"'BlcG'":{"<enumType>":"blackGenerationType","<key>":"blackGenerationCurve"},"'BlcL'":{"<classKey>":{"'GEfc'":"blackLevel","CMYKSetup":"blackLimit"},"<eventKey>":{"reticulation":"blackLevel"}},"'Blks'":{"<typeValue>":{"colors":"blacks","extrudeType":"blocks"}},"'BlrM'":{"<enumType>":"blurMethod","<event>":"blurMore","<key>":"blurMethod"},"'BrgC'":{"<class>":"brightnessContrast","<event>":"brightnessContrast"},"'BrsD'":{"<enumValue>":"brushesDefine","<key>":"brushDetail"},"'Brsh'":{"<class>":"brush","<key>":"brushes"},"'Clcl'":{"<class>":"calculation","<enumValue>":"calculations","<key>":"calculation"},"'ClrP'":{"<typeValue>":{"'GEft'":"coloredPencil"},"<enumType>":"colorPalette","<event>":"coloredPencil"},"'Cnst'":{"<classKey>":{"channelMatrix":"constant"},"<unknown>":"constrain"},"'CntC'":{"<typeValue>":{"'GEft'":"conteCrayon"},"<event>":"conteCrayon","<key>":"centerCropMarks"},"'Cntr'":{"<classKey>":{"'GEfc'":"contrast","brightnessContrast":"contrast","document":"center","polygon":"center","quadrilateral":"center"},"<eventKey>":{"adaptCorrect":"contrast","brightnessEvent":"contrast","grain":"contrast","halftoneScreen":"contrast","sumie":"contrast","tornEdges":"contrast","waterPaper":"contrast"},"<enumValue>":"center"},"'CrtD'":{"<enumValue>":"createDuplicate","<event>":"createDroplet"},"'CstP'":{"<class>":"customPhosphors","<key>":"customPalette"},"'Cstm'":{"<enumValue>":"customPattern","<event>":"custom","<key>":"custom"},"'Drkn'":{"<enumValue>":"darken","<key>":"darkness"},"'Dstr'":{"<classKey>":{"'GEfc'":"distortion"},"<eventKey>":{"glass":"distortion","addNoise":"distribution"},"<enumType>":"distribution","<enumValue>":"distort","<event>":"distribute"},"'Dstt'":{"<enumValue>":"desaturate","<event>":"desaturate","<key>":"destWhiteMax"},"'FlIn'":{"<typeValue>":{"fillColor":"fillInverse","menuItemType":"fileInfo"},"<class>":"fileInfo","<key>":"fileInfo"},"'Gd  '":{"<class>":"guide","<enumValue>":"good"},"'GnrP'":{"<class>":"preferencesClass","<enumValue>":"generalPreferences","<key>":"generalPrefs"},"'GrSt'":{"<class>":"graySetup","<enumValue>":"grainStippled","<key>":"graySetup"},"'Grdn'":{"<class>":"gradientClassEvent","<event>":"gradientClassEvent","<key>":"gridMinor"},"'Grn '":{"<typeValue>":{"'GEft'":"grain"},"<classKey>":{"'GEfc'":"grain","RGBColor":"green","blackAndWhite":"green","channelMatrix":"green","channelMixer":"green"},"<eventKey>":{"blackAndWhite":"green","channelMixer":"green","filmGrain":"grain"},"<enumValue>":"green","<event>":"grain"},"'Grns'":{"<enumValue>":"greens","<key>":"graininess"},"'HstP'":{"<enumValue>":"historyPreferences","<key>":"historyPrefs"},"'HstS'":{"<class>":"historyState","<enumType>":"historyStateSourceType"},"'ImgP'":{"<class>":"imagePoint","<enumValue>":"imageCachePreferences"},"'In  '":{"<enumValue>":"stampIn","<key>":"in"},"'IntW'":{"<event>":"intersectWith","<key>":"interfaceWhite"},"'Intr'":{"<typeValue>":{"shapeOperation":"intersect"},"<classKey>":{"GIFFormat":"interlace","SaveForWeb":"interlace","application":"interfaceIconFrameDimmed","computedBrush":"interpolation","dBrush":"interpolation","gradientClassEvent":"interpolation","photoshopEPSFormat":"interpolation","sampledBrush":"interpolation"},"<eventKey>":{"convertMode":"interpolation","imageSize":"interpolation","transform":"interpolation"},"<event>":"intersect"},"'JPEG'":{"<class>":"JPEGFormat","<enumValue>":"JPEG"},"'LghD'":{"<enumType>":"lightDirection","<enumValue>":"lightDirectional","<key>":"lightDirection"},"'LghO'":{"<typeValue>":{"diffuseMode":"lightenOnly","lightType":"lightOmni"}},"'LghS'":{"<class>":"lightSource","<enumValue>":"lightSpot","<key>":"lightSource"},"'Lns '":{"<enumType>":"lens","<enumValue>":"lines","<key>":"lens"},"'Mgnt'":{"<typeValue>":{"channel":"magenta","colors":"magentas","guideGridColor":"magenta"},"<key>":"magenta"},"'MrgL'":{"<enumValue>":"mergedLayers","<event>":"mergeLayers"},"'Mxm '":{"<enumValue>":"maximumQuality","<event>":"maximum","<key>":"maximum"},"'NTSC'":{"<enumValue>":"NTSC","<event>":"NTSCColors"},"'NmbL'":{"<classKey>":{"'GEfc'":"numberOfLevels","document":"numberOfLayers"},"<eventKey>":{"cutout":"numberOfLevels"}},"'PlgP'":{"<class>":"pluginPrefs","<enumValue>":"pluginPicker","<key>":"pluginPrefs"},"'Pncl'":{"<enumValue>":"pencilEraser","<key>":"pencilWidth"},"'Pnt '":{"<typeValue>":{"textType":"point"},"<class>":"point","<event>":"paint"},"'Prsp'":{"<enumValue>":"perspective","<key>":"perspectiveIndex"},"'PrvM'":{"<enumValue>":"previewMagenta","<key>":"previewMacThumbnail"},"'Pstr'":{"<class>":"posterize","<event>":"posterize","<key>":"posterization"},"'RGBS'":{"<enumType>":"RGBSetupSource","<key>":"RGBSetup"},"'Rds '":{"<enumValue>":"reds","<key>":"radius"},"'ScrD'":{"<enumValue>":"screenDot","<key>":"scratchDisks"},"'ShdI'":{"<classKey>":{"'GEfc'":"shadowIntensity"},"<eventKey>":{"watercolor":"shadowIntensity"},"<unknown>":"shadingIntensity"},"'ShpC'":{"<classKey>":{"application":"shapingCurve"},"<class>":"shapingCurve","<key>":"shapeCurveType"},"'ShrE'":{"<event>":"sharpenEdges","<key>":"shearEd"},"'Shrp'":{"<event>":"sharpen","<key>":"sharpness"},"'SplC'":{"<event>":"splitChannels","<key>":"supplementalCategories"},"'Spot'":{"<enumValue>":"spotColor","<key>":"spot"},"'SprS'":{"<typeValue>":{"'GEft'":"sprayedStrokes"},"<enumValue>":"separationSetup","<event>":"sprayedStrokes"},"'StrL'":{"<enumType>":"strokeLocation","<key>":"strokeLength"},"'Strt'":{"<classKey>":{"currentToolOptions":"saturation","fileNamingRules":"start","HSBColorClass":"saturation","hueSatAdjustment":"saturation","hueSatAdjustmentV2":"saturation","lineClass":"start","range":"start","vibrance":"saturation"},"<eventKey>":{"replaceColor":"saturation","variations":"saturation","vibrance":"saturation"},"<enumValue>":"saturation"},"'TEXT'":{"<enumType>":"textType","<key>":"textType"},"'TIFF'":{"<class>":"TIFFFormat","<enumValue>":"TIFF"},"'TglO'":{"<enumValue>":"toggleOptionsPalette","<key>":"toggleOthers"},"'TrnG'":{"<classKey>":{"application":"transparencyGrid","transparencyPrefs":"transparencyGridSize"},"<enumType>":"transparencyGridSize","<enumValue>":"transparencyGamutPreferences"},"'TrnS'":{"<classKey>":{"bevelEmboss":"transparencyShape","dropShadow":"transparencyShape","innerGlow":"transparencyShape","innerShadow":"transparencyShape","outerGlow":"transparencyShape"},"<class>":"transparencyStop","<unknown>":"transferSpec"},"'Trns'":{"<enumValue>":"transparent","<key>":"transparency"},"'TxtC'":{"<classKey>":{"'GEfc'":"textureCoverage","textLayer":"textClickPoint"},"<eventKey>":{"underpainting":"textureCoverage"}},"'TxtF'":{"<event>":"textureFill","<key>":"textureFile"},"'UsrM'":{"<enumType>":"userMaskOptions","<key>":"userMaskEnabled"},"'null'":{"<class>":"null","<enumValue>":"null","<event>":"null","<key>":"target"}};function getFromId(context,parentContext) {var uniIdStr;var kind=context[0];var id=context[1];if(id<smallestHashValue) {uniIdStr=app.typeIDToStringID(id);} else {uniIdStr="'"+app.typeIDToCharID(id)+"'";if(that.meaningfulIds) {if(uniIdStr in contextRules) {function resolveIdStr(candidates) {var idStr="";for(var parentString in candidates) {if(candidates.hasOwnProperty(parentString)) {if(parentContext[1]===that.uniIdStrToId(parentString)) {idStr=candidates[parentString];break;}}} return idStr;} var resolvedIdStr="";var rule=contextRules[uniIdStr];if(parentContext) {switch(kind) {case"<key>":if((parentContext[0]==="<class>")&&("<classKey>"in rule)) {resolvedIdStr=resolveIdStr(rule["<classKey>"]);} else if((parentContext[0]==="<event>")&&("<eventKey>"in rule)) {resolvedIdStr=resolveIdStr(rule["<eventKey>"]);} break;case"<enumValue>":if((parentContext[0]==="<enumType>")&&("<typeValue>"in rule)) {resolvedIdStr=resolveIdStr(rule["<typeValue>"]);} break;}} if(resolvedIdStr!=="") {uniIdStr=resolvedIdStr;} else if(kind in rule) {uniIdStr=rule[kind];}} else {var stringIDStr=app.typeIDToStringID(id);if(stringIDStr!=="") {uniIdStr=stringIDStr;}}}} return uniIdStr;} var incompatiblePlatformPath="";var getEventId=app.stringIDToTypeID("get");var targetKeyId=app.stringIDToTypeID("target");var propertyClassId=app.stringIDToTypeID("property");function getFromReference(ref) {var propertyId=0;var arr=[];do {try{var desiredClassId=ref.getDesiredClass();}catch(e){break;} if(propertyId!==0) {var propertyCompact=that.buildCompact("<property>",getFromId(["<key>",propertyId],["<class>",desiredClassId]));arr.push(that.buildCompact(getFromId(["<class>",propertyClassId]),propertyCompact));propertyId=0;} var desiredCompact;var aFormID=ref.getForm();switch(aFormID) {case ReferenceFormType.CLASSTYPE:desiredCompact=that.buildCompact("<class>",null);break;case ReferenceFormType.ENUMERATED:var enumTypeContext=["<enumType>",ref.getEnumeratedType()];var enumValueContext=["<enumValue>",ref.getEnumeratedValue()];desiredCompact=that.buildCompact("<enumerated>",that.buildCompact(getFromId(enumTypeContext),getFromId(enumValueContext,enumTypeContext)));break;case ReferenceFormType.IDENTIFIER:desiredCompact=that.buildCompact("<identifier>",ref.getIdentifier());break;case ReferenceFormType.INDEX:desiredCompact=that.buildCompact("<index>",ref.getIndex());break;case ReferenceFormType.NAME:desiredCompact=that.buildCompact("<name>",ref.getName());break;case ReferenceFormType.OFFSET:desiredCompact=that.buildCompact("<offset>",ref.getOffset());break;case ReferenceFormType.PROPERTY:if(desiredClassId===propertyClassId) {propertyId=ref.getProperty();} else {desiredCompact=that.buildCompact("<property>",getFromId(["<key>",ref.getProperty()],["<class>",desiredClassId]));} break;default:throw new Error("[jamEngine getFromReference] Unknown reference form type: "+aFormID);break;} if(desiredClassId!==propertyClassId) {arr.push(that.buildCompact(getFromId(["<class>",desiredClassId]),desiredCompact));} ref=ref.getContainer();} while(ref);return arr;} function getFromList(list) {var arr=[];var itemCount=list.count;for(var itemIndex=0;itemIndex<itemCount;itemIndex++) {var itemCompact;var typeID;try{typeID=list.getType(itemIndex);}catch(e){continue;} switch(typeID) {case DescValueType.BOOLEANTYPE:itemCompact=that.buildCompact("<boolean>",list.getBoolean(itemIndex));break;case DescValueType.CLASSTYPE:itemCompact=that.buildCompact("<class>",getFromId(["<class>",list.getClass(itemIndex)]));break;case DescValueType.DOUBLETYPE:itemCompact=that.buildCompact("<double>",list.getDouble(itemIndex));break;case DescValueType.ENUMERATEDTYPE:var enumTypeContext=["<enumType>",list.getEnumerationType(itemIndex)];var enumValueContext=["<enumValue>",list.getEnumerationValue(itemIndex)];itemCompact=that.buildCompact("<enumerated>",that.buildCompact(getFromId(enumTypeContext),getFromId(enumValueContext,enumTypeContext)));break;case DescValueType.INTEGERTYPE:itemCompact=that.buildCompact("<integer>",list.getInteger(itemIndex));break;case DescValueType.LISTTYPE:itemCompact=that.buildCompact("<list>",getFromList(list.getList(itemIndex)));break;case DescValueType.OBJECTTYPE:var objectTypeContext=["<class>",list.getObjectType(itemIndex)];var objectValue=list.getObjectValue(itemIndex);itemCompact=that.buildCompact("<object>",that.buildCompact(getFromId(objectTypeContext),getFromDescriptor(objectValue,objectTypeContext)));break;case DescValueType.ALIASTYPE:try {var fileRef=list.getPath(itemIndex);itemCompact=that.buildCompact("<path>",fileRef.fsName);} catch(e) {itemCompact=that.buildCompact("<path>",incompatiblePlatformPath);} break;case DescValueType.REFERENCETYPE:itemCompact=that.buildCompact("<reference>",getFromReference(list.getReference(itemIndex)));break;case DescValueType.STRINGTYPE:itemCompact=that.buildCompact("<string>",list.getString(itemIndex));break;case DescValueType.UNITDOUBLE:var unitTypeContext=["<unit>",list.getUnitDoubleType(itemIndex)];var doubleValue=list.getUnitDoubleValue(itemIndex);itemCompact=that.buildCompact("<unitDouble>",that.buildCompact(getFromId(unitTypeContext),doubleValue));break;default:var isRawType;var isLargeIntegerType;try{isRawType=(typeID===DescValueType.RAWTYPE);}catch(e){} try{isLargeIntegerType=(typeID===DescValueType.LARGEINTEGERTYPE);}catch(e){} if(isRawType) {itemCompact=that.buildCompact("<data>",list.getData(itemIndex));} else if(isLargeIntegerType) {itemCompact=that.buildCompact("<largeInteger>",list.getLargeInteger(itemIndex));} else {throw new Error("[jamEngine getFromList] Unknown descriptor value type: "+typeID);} break;} arr[itemIndex]=itemCompact;} return arr;} function getFromDescriptor(desc,parentContext) {if(desc) {var obj={};var keyCount;try{keyCount=desc.count;}catch(e){return null;} for(var keyIndex=0;keyIndex<keyCount;keyIndex++) {var keyID=desc.getKey(keyIndex);var keyString=getFromId(["<key>",keyID],parentContext);var keyCompact;var typeID;try{typeID=desc.getType(keyID);}catch(e){continue;} switch(typeID) {case DescValueType.BOOLEANTYPE:keyCompact=that.buildCompact("<boolean>",desc.getBoolean(keyID));break;case DescValueType.CLASSTYPE:keyCompact=that.buildCompact("<class>",getFromId(["<class>",desc.getClass(keyID)]));break;case DescValueType.DOUBLETYPE:keyCompact=that.buildCompact("<double>",desc.getDouble(keyID));break;case DescValueType.ENUMERATEDTYPE:var enumTypeContext=["<enumType>",desc.getEnumerationType(keyID)];var enumValueContext=["<enumValue>",desc.getEnumerationValue(keyID)];keyCompact=that.buildCompact("<enumerated>",that.buildCompact(getFromId(enumTypeContext),getFromId(enumValueContext,enumTypeContext)));break;case DescValueType.INTEGERTYPE:keyCompact=that.buildCompact("<integer>",desc.getInteger(keyID));break;case DescValueType.LISTTYPE:keyCompact=that.buildCompact("<list>",getFromList(desc.getList(keyID)));break;case DescValueType.OBJECTTYPE:var objectTypeContext=["<class>",desc.getObjectType(keyID)];var objectValue=desc.getObjectValue(keyID);keyCompact=that.buildCompact("<object>",that.buildCompact(getFromId(objectTypeContext),getFromDescriptor(objectValue,objectTypeContext)));break;case DescValueType.ALIASTYPE:try {var fileRef=desc.getPath(keyID);keyCompact=that.buildCompact("<path>",fileRef.fsName);} catch(e) {keyCompact=that.buildCompact("<path>",incompatiblePlatformPath);} break;case DescValueType.REFERENCETYPE:keyCompact=that.buildCompact("<reference>",getFromReference(desc.getReference(keyID)));break;case DescValueType.STRINGTYPE:keyCompact=that.buildCompact("<string>",desc.getString(keyID));break;case DescValueType.UNITDOUBLE:var unitTypeContext=["<unit>",desc.getUnitDoubleType(keyID)];var doubleValue=desc.getUnitDoubleValue(keyID);keyCompact=that.buildCompact("<unitDouble>",that.buildCompact(getFromId(unitTypeContext),doubleValue));break;default:var isRawType;var isLargeIntegerType;try{isRawType=(typeID===DescValueType.RAWTYPE);}catch(e){} try{isLargeIntegerType=(typeID===DescValueType.LARGEINTEGERTYPE);}catch(e){} if(isRawType) {keyCompact=that.buildCompact("<data>",desc.getData(keyID));} else if(isLargeIntegerType) {keyCompact=that.buildCompact("<largeInteger>",desc.getLargeInteger(keyID));} else {throw new Error("[jamEngine getFromDescriptor] Unknown descriptor value type: "+typeID);} break;} obj[keyString]=keyCompact;} return obj;} else {return null;}} jamEngine.jsonToActionDescriptor=function(descriptorObj) {that=this;var actionDescriptor;if(descriptorObj) {actionDescriptor=new ActionDescriptor();putInDescriptor(actionDescriptor,descriptorObj);} return actionDescriptor;};jamEngine.jsonToActionReference=function(referenceArr) {that=this;var actionReference;if(referenceArr) {actionReference=new ActionReference();putInReference(actionReference,referenceArr);} return actionReference;};jamEngine.eventIdAndActionDescriptorToJson=function(eventId,actionDescriptor) {that=this;var eventIdContext=["<event>",eventId];return{"<event>":getFromId(eventIdContext),"<descriptor>":getFromDescriptor(actionDescriptor,eventIdContext)};};jamEngine.classIdAndActionDescriptorToJson=function(classId,actionDescriptor) {that=this;var classIdContext=["<class>",classId];return{"<class>":getFromId(classIdContext),"<descriptor>":getFromDescriptor(actionDescriptor,classIdContext)};};jamEngine.actionReferenceToJson=function(actionReference) {that=this;return getFromReference(actionReference);};function getReferenceClassId(ref) {classId=0;do {try{var desiredClassId=ref.getDesiredClass();}catch(e){break;} if(desiredClassId!==propertyClassId) {classId=desiredClassId;break;} ref=ref.getContainer();} while(ref);return classId;} jamEngine.jsonPlay=function(eventUniIdStr,descriptorObj,displayDialogs) {var eventId=this.uniIdStrToId(eventUniIdStr);var desc=this.jsonToActionDescriptor(descriptorObj);var parentContext;if(eventId===getEventId) {var ref=desc.getReference(targetKeyId);parentContext=["<class>",getReferenceClassId(ref)];} else {parentContext=["<event>",eventId];} return getFromDescriptor(app.executeAction(eventId,desc,displayDialogs||this.displayDialogs),parentContext);};jamEngine.jsonGet=function(referenceArr) {var ref=this.jsonToActionReference(referenceArr);return getFromDescriptor(app.executeActionGet(ref),["<class>",getReferenceClassId(ref)]);};jamEngine.normalizeJsonItem=function(item,options) {function normalizeItem(item) {var explicit=that.parseCompact(item);var type=explicit[0];var value=explicit[1];var normalizedValue;switch(type) {case"<boolean>":case"<data>":case"<double>":case"<identifier>":case"<index>":case"<integer>":case"<largeInteger>":case"<name>":case"<offset>":case"<path>":case"<string>":normalizedValue=value;break;case"<class>":normalizedValue=value&&getFromId(["<class>",that.uniIdStrToId(value)]);break;case"<enumerated>":var enumerated=that.parseCompact(value);var enumTypeContext=["<enumType>",that.uniIdStrToId(enumerated[0])];var enumValueContext=["<enumValue>",that.uniIdStrToId(enumerated[1])];normalizedValue=that.buildCompact(getFromId(enumTypeContext),getFromId(enumValueContext,enumTypeContext));break;case"<list>":normalizedValue=[];for(var i=0;i<value.length;i++) {normalizedValue.push(normalizeItem(value[i]));} break;case"<object>":var object=that.parseCompact(value);var objectClassContext=["<class>",that.uniIdStrToId(object[0])];var objectDescriptor=object[1];var normalizedDescriptor;if(objectDescriptor===null) {normalizedDescriptor=null;} else {normalizedDescriptor={};for(var key in objectDescriptor) {if(objectDescriptor.hasOwnProperty(key)) {var objectKeyContext=["<key>",that.uniIdStrToId(key)];normalizedDescriptor[getFromId(objectKeyContext,objectClassContext)]=normalizeItem(objectDescriptor[key]);}}} normalizedValue=that.buildCompact(getFromId(objectClassContext),normalizedDescriptor);break;case"<property>":normalizedValue=getFromId(["<key>",that.uniIdStrToId(value)]);break;case"<reference>":normalizedValue=[];for(var i=0;i<value.length;i++) {var container=that.parseCompact(value[i]);normalizedValue.push(that.buildCompact(getFromId(["<class>",that.uniIdStrToId(container[0])]),normalizeItem(container[1])));} break;case"<unitDouble>":var unitDouble=that.parseCompact(value);var unitTypeContext=["<unit>",that.uniIdStrToId(unitDouble[0])];normalizedValue=that.buildCompact(getFromId(unitTypeContext),unitDouble[1]);break;default:throw new Error("[jamEngine.normalizeJsonItem] Unknown item type: "+type);break;} return that.buildCompact(type,normalizedValue);} that=this;var saveMeaningfulIds=this.meaningfulIds;var saveParseFriendly=this.parseFriendly;if(options&&(options.constructor===Object)) {if(typeof options.meaningfulIds!=='undefined') {this.meaningfulIds=options.meaningfulIds;} if(typeof options.parseFriendly!=='undefined') {this.parseFriendly=options.parseFriendly;}} var normalizedItem=normalizeItem(item);this.meaningfulIds=saveMeaningfulIds;this.parseFriendly=saveParseFriendly;return normalizedItem;};function simplifyRef(ref) {var simplifiedRef=[];for(var i=0;i<ref.length;i++) {var element=ref[i];var simplifiedElement={};var desiredClass=element[0];var form=element[1][0];var value=element[1][1];switch(form) {case"<class>":case"<identifier>":case"<index>":case"<name>":case"<offset>":case"<property":simplifiedElement[desiredClass]=value;break;case"<enumerated>":simplifiedElement[desiredClass]=value[1];break;default:throw new Error("[jamEngine simplifyRef] Unexpected element form: "+form);break;} simplifiedRef.push(simplifiedElement);} return simplifiedRef;} function simplifyItem(item,hook) {var simplifiedItem;var type=item[0];var value=item[1];switch(type) {case"<boolean>":case"<class>":case"<data>":case"<double>":case"<integer>":case"<largeInteger>":case"<path>":case"<string>":simplifiedItem=value;break;case"<list>":simplifiedItem=simplifyList(value,hook);break;case"<enumerated>":case"<unitDouble>":simplifiedItem=value[1];break;case"<object>":simplifiedItem=simplifyDesc(value[1],hook);break;case"<reference>":simplifiedItem=simplifyRef(value);break;default:throw new Error("[jamEngine simplifyItem] Unexpected item type: "+type);break;} return simplifiedItem;} function simplifyList(list,hook) {var simplifiedList=[];for(var i=0;i<list.length;i++) {simplifiedList.push(simplifyItem(list[i],hook));} return simplifiedList;} function simplifyDesc(desc,hook) {var getDefaultValue=function(desc,key){return simplifyItem(desc[key],hook);};var simplifiedDesc={};for(var key in desc) {if(desc.hasOwnProperty(key)) {var value=undefined;if(typeof hook==='function') {value=hook(desc,key,getDefaultValue);} if(typeof value==='undefined') {value=simplifyItem(desc[key],hook);} simplifiedDesc[key]=value;}} return simplifiedDesc;} jamEngine.simplifyObject=function(object,hookFunction) {return simplifyDesc((this.normalizeJsonItem(object,{meaningfulIds:true,parseFriendly:true}))[1][1],hookFunction);};jamEngine.simplifyList=function(list,hookFunction) {return simplifyList((this.normalizeJsonItem(list,{meaningfulIds:true,parseFriendly:true}))[1],hookFunction);};jamEngine.parseCompact=function(compact) {var result=[];if(compact.constructor===Object) {var keys=[];for(var k in compact) {if(compact.hasOwnProperty(k)) {keys.push(k);}} if(keys.length===1) {result[0]=keys[0];result[1]=compact[keys[0]];} else {throw new Error("[jamEngine.parseCompact] Syntax error: "+compact.toSource());}} else if(compact.constructor===Array) {if(compact.length===2) {result[0]=compact[0];result[1]=compact[1];} else {throw new Error("[jamEngine.parseCompact] Syntax error: "+compact.toSource());}} else {throw new Error("[jamEngine.parseCompact] JavaScript object or array expected");} return result;};jamEngine.compactToExplicit=function(compact,typeKey,valueKey) {var explicit={};var typeValue=this.parseCompact(compact);explicit[typeKey||"<type>"]=typeValue[0];explicit[valueKey||"<value>"]=typeValue[1];return explicit;};jamEngine.buildCompact=function(type,value) {var compact;if(typeof type==='string') {if(this.parseFriendly) {compact=[type,value];} else {compact={};compact[type]=value;}} else {throw new Error("[jamEngine.buildCompact] String expected");} return compact;};jamEngine.explicitToCompact=function(explicit,typeKey,valueKey) {var compact;if(explicit.constructor===Object) {compact=this.buildCompact(explicit[typeKey||"<type>"],explicit[valueKey||"<value>"]);} else {throw new Error("[jamEngine.explicitToCompact] JavaScript object expected");} return compact;};for(var charIdStr in conflictingStringIdStrs) {if(conflictingStringIdStrs.hasOwnProperty(charIdStr)) {var stringIdStrs=conflictingStringIdStrs[charIdStr];for(var index=stringIdStrs.length-1;index>=0;index--) {var stringIdStr=stringIdStrs[index];if(!(app.charIDToTypeID(charIdStr.substring(1,5))===app.stringIDToTypeID(stringIdStr))) {stringIdStrs.splice(index,1);}} if(stringIdStrs.length<2) {delete conflictingStringIdStrs[charIdStr];}}} for(var charIdStr in contextRules) {if(contextRules.hasOwnProperty(charIdStr)) {if(charIdStr in conflictingStringIdStrs) {var rule=contextRules[charIdStr];for(var kind in rule) {if(rule.hasOwnProperty(kind)) {switch(kind) {case"<class>":case"<event>":case"<enumType>":case"<enumValue>":case"<key>":case"<unknown>":if(app.charIDToTypeID(charIdStr.substring(1,5))!=app.stringIDToTypeID(rule[kind])) {throw new Error("[jamEngine] "+"\""+charIdStr+"\" and \""+rule[kind]+"\" are not equivalent ID strings");} break;case"<classKey>":case"<eventKey>":case"<typeValue>":for(var parent in rule[kind]) {if(rule[kind].hasOwnProperty(parent)) {if(app.charIDToTypeID(charIdStr.substring(1,5))!=app.stringIDToTypeID(rule[kind][parent])) {throw new Error("[jamEngine] "+"\""+charIdStr+"\" and \""+rule[kind][parent]+"\" are not equivalent ID strings");}}} break;}}}} else {delete contextRules[charIdStr];}}}}());}
 
jamEngine.meaningfulIds = true;
jamEngine.parseFriendly = false;
 
// Action “Waves Frame”
try
{
    // Make
    if (true)
    {
        jamEngine.jsonPlay
        (
            "make",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "snapshotClass":
                            {
                                "<class>": null
                            }
                        }
                    ]
                },
                "from":
                {
                    "<reference>":
                    [
                        {
                            "historyState":
                            {
                                "<property>": "currentHistoryState"
                            }
                        }
                    ]
                },
                "using":
                {
                    "<enumerated>":
                    {
                        "historyStateSourceType": "fullDocument"
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Convert Mode
    if (true)
    {
        jamEngine.jsonPlay
        (
            "convertMode",
            {
                "to":
                {
                    "<class>": "RGBColorMode"
                }
            },
            DialogModes.NO
        );
    }
    // Reset
    if (true)
    {
        jamEngine.jsonPlay
        (
            "reset",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "color":
                            {
                                "<property>": "colors"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Set
    if (true)
    {
        jamEngine.jsonPlay
        (
            "set",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<property>": "selection"
                            }
                        }
                    ]
                },
                "to":
                {
                    "<enumerated>":
                    {
                        "ordinal": "allEnum"
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Duplicate
    if (true)
    {
        jamEngine.jsonPlay
        (
            "duplicate",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<property>": "selection"
                            }
                        }
                    ]
                },
                "name":
                {
                    "<string>": "shape"
                }
            },
            DialogModes.NO
        );
    }
    // Canvas Size
    if (true)
    {
        jamEngine.jsonPlay
        (
            "canvasSize",
            {
                "width":
                {
                    "<unitDouble>":
                    {
                        "percentUnit": 115.046296296296
                    }
                },
                "height":
                {
                    "<unitDouble>":
                    {
                        "percentUnit": 115
                    }
                },
                "horizontal":
                {
                    "<enumerated>":
                    {
                        "horizontalLocation": "center"
                    }
                },
                "vertical":
                {
                    "<enumerated>":
                    {
                        "verticalLocation": "center"
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Set
    if (true)
    {
        jamEngine.jsonPlay
        (
            "set",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<property>": "selection"
                            }
                        }
                    ]
                },
                "to":
                {
                    "<enumerated>":
                    {
                        "ordinal": "allEnum"
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Duplicate
    if (true)
    {
        jamEngine.jsonPlay
        (
            "duplicate",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "layer":
                            {
                                "<enumerated>":
                                {
                                    "ordinal": "targetEnum"
                                }
                            }
                        }
                    ]
                },
                "name":
                {
                    "<string>": "waves"
                }
            },
            DialogModes.NO
        );
    }
    // Show
    if (true)
    {
        jamEngine.jsonPlay
        (
            "show",
            {
                "target":
                {
                    "<list>":
                    [
                        {
                            "<reference>":
                            [
                                {
                                    "layer":
                                    {
                                        "<enumerated>":
                                        {
                                            "ordinal": "targetEnum"
                                        }
                                    }
                                }
                            ]
                        }
                    ]
                },
                "toggleOthers":
                {
                    "<boolean>": true
                }
            },
            DialogModes.NO
        );
    }
    // Make
    if (true)
    {
        jamEngine.jsonPlay
        (
            "make",
            {
                "new":
                {
                    "<class>": "channel"
                },
                "at":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<enumerated>":
                                {
                                    "channel": "mask"
                                }
                            }
                        }
                    ]
                },
                "using":
                {
                    "<enumerated>":
                    {
                        "userMaskOptions": "revealAll"
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Set
    if (true)
    {
        jamEngine.jsonPlay
        (
            "set",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<property>": "selection"
                            }
                        }
                    ]
                },
                "to":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<name>": "shape"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Contract
    if (true)
    {
        jamEngine.jsonPlay
        (
            "contract",
            {
                "by":
                {
                    "<unitDouble>":
                    {
                        "pixelsUnit": 15
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Inverse
    if (true)
    {
        jamEngine.jsonPlay
        (
            "inverse",
            null,
            DialogModes.NO
        );
    }
    // Fill
    if (true)
    {
        jamEngine.jsonPlay
        (
            "fill",
            {
                "using":
                {
                    "<enumerated>":
                    {
                        "fillContents": "black"
                    }
                },
                "opacity":
                {
                    "<unitDouble>":
                    {
                        "percentUnit": 100
                    }
                },
                "mode":
                {
                    "<enumerated>":
                    {
                        "blendMode": "normal"
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Set
    if (true)
    {
        jamEngine.jsonPlay
        (
            "set",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<property>": "selection"
                            }
                        }
                    ]
                },
                "to":
                {
                    "<enumerated>":
                    {
                        "ordinal": "none"
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Wave
    if (true)
    {
        jamEngine.jsonPlay
        (
            "wave",
            {
                "waveType":
                {
                    "<enumerated>":
                    {
                        "waveType": "waveSine"
                    }
                },
                "numberOfGenerators":
                {
                    "<integer>": 1
                },
                "wavelengthMin":
                {
                    "<integer>": 2
                },
                "wavelengthMax":
                {
                    "<integer>": 25
                },
                "amplitudeMin":
                {
                    "<integer>": 1
                },
                "amplitudeMax":
                {
                    "<integer>": 26
                },
                "scaleHorizontal":
                {
                    "<integer>": 39
                },
                "scaleVertical":
                {
                    "<integer>": 39
                },
                "undefinedArea":
                {
                    "<enumerated>":
                    {
                        "undefinedArea": "wrapAround"
                    }
                },
                "randomSeed":
                {
                    "<integer>": 953241
                }
            },
            DialogModes.NO
        );
    }
    // Make
    if (true)
    {
        jamEngine.jsonPlay
        (
            "make",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "layer":
                            {
                                "<class>": null
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Fill
    if (true)
    {
        jamEngine.jsonPlay
        (
            "fill",
            {
                "using":
                {
                    "<enumerated>":
                    {
                        "fillContents": "white"
                    }
                },
                "opacity":
                {
                    "<unitDouble>":
                    {
                        "percentUnit": 100
                    }
                },
                "mode":
                {
                    "<enumerated>":
                    {
                        "blendMode": "normal"
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Move
    if (true)
    {
        jamEngine.jsonPlay
        (
            "move",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "layer":
                            {
                                "<enumerated>":
                                {
                                    "ordinal": "targetEnum"
                                }
                            }
                        }
                    ]
                },
                "to":
                {
                    "<reference>":
                    [
                        {
                            "layer":
                            {
                                "<enumerated>":
                                {
                                    "ordinal": "previous"
                                }
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Select
    if (true)
    {
        jamEngine.jsonPlay
        (
            "select",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "layer":
                            {
                                "<enumerated>":
                                {
                                    "ordinal": "forwardEnum"
                                }
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Merge Layers
    if (true)
    {
        jamEngine.jsonPlay
        (
            "mergeLayers",
            null,
            DialogModes.NO
        );
    }
    // Set
    if (true)
    {
        jamEngine.jsonPlay
        (
            "set",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<property>": "selection"
                            }
                        }
                    ]
                },
                "to":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<name>": "shape"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Crop
    if (true)
    {
        jamEngine.jsonPlay
        (
            "crop",
            null,
            DialogModes.NO
        );
    }
    // Delete
    if (true)
    {
        jamEngine.jsonPlay
        (
            "delete",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<name>": "shape"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Set
    if (true)
    {
        jamEngine.jsonPlay
        (
            "set",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<property>": "selection"
                            }
                        }
                    ]
                },
                "to":
                {
                    "<enumerated>":
                    {
                        "ordinal": "none"
                    }
                }
            },
            DialogModes.NO
        );
    }
}
catch (e)
{
    if (e.number !== 8007)  // Not a user cancel error
    {
        try
        {
            jamEngine.jsonPlay
            (
                "stop",
                {
                    "message":
                    {
                        "<string>": e.message.replace (/^.*\n- /, "")
                    }
                },
                DialogModes.ALL
            );
        }
        catch (e)
        {
        }
    }
}
  • Wood Frame – 50 pixel.js
// Application: Adobe Photoshop CS4 (11.0.2)
// Date: 2015-11-22T20:29:58+01:00
// Actions file: /Applications/Adobe Photoshop CS4/Presets/Actions/Frames.atn
// Action set: Frames
 
// jamEngine.jsxinc v4.4.4 (minified)
if(typeof jamEngine!=='object') {var jamEngine={};(function() {var that;jamEngine.meaningfulIds=false;jamEngine.parseFriendly=false;jamEngine.displayDialogs=DialogModes.ERROR;var conflictingStringIdStrs={"'Algn'":["align","alignment"],"'AntA'":["antiAlias","antiAliasedPICTAcquire"],"'BckL'":["backgroundLayer","backgroundLevel"],"'BlcG'":["blackGenerationType","blackGenerationCurve"],"'BlcL'":["blackLevel","blackLimit"],"'Blks'":["blacks","blocks"],"'BlrM'":["blurMethod","blurMore"],"'BrgC'":["brightnessEvent","brightnessContrast"],"'BrsD'":["brushDetail","brushesDefine"],"'Brsh'":["brush","brushes"],"'Clcl'":["calculation","calculations"],"'ClrP'":["colorPalette","coloredPencil"],"'Cnst'":["constant","constrain"],"'CntC'":["centerCropMarks","conteCrayon"],"'Cntr'":["center","contrast"],"'CrtD'":["createDroplet","createDuplicate"],"'CstP'":["customPalette","customPhosphors"],"'Cstm'":["custom","customPattern"],"'Drkn'":["darken","darkness"],"'Dstr'":["distort","distortion","distribute","distribution"],"'Dstt'":["desaturate","destWhiteMax"],"'FlIn'":["fileInfo","fillInverse"],"'Gd  '":["good","guide"],"'GnrP'":["generalPreferences","generalPrefs","preferencesClass"],"'GrSt'":["grainStippled","graySetup"],"'Grdn'":["gradientClassEvent","gridMinor"],"'Grn '":["grain","green"],"'Grns'":["graininess","greens"],"'HstP'":["historyPreferences","historyPrefs"],"'HstS'":["historyState","historyStateSourceType"],"'ImgP'":["imageCachePreferences","imagePoint"],"'In  '":["in","stampIn"],"'IntW'":["interfaceWhite","intersectWith"],"'Intr'":["interfaceIconFrameDimmed","interlace","interpolation","intersect"],"'JPEG'":["JPEG","JPEGFormat"],"'LghD'":["lightDirection","lightDirectional"],"'LghO'":["lightOmni","lightenOnly"],"'LghS'":["lightSource","lightSpot"],"'Lns '":["lens","lines"],"'Mgnt'":["magenta","magentas"],"'MrgL'":["mergeLayers","mergedLayers"],"'Mxm '":["maximum","maximumQuality"],"'NTSC'":["NTSC","NTSCColors"],"'NmbL'":["numberOfLayers","numberOfLevels"],"'PlgP'":["pluginPicker","pluginPrefs"],"'Pncl'":["pencilEraser","pencilWidth"],"'Pnt '":["paint","point"],"'Prsp'":["perspective","perspectiveIndex"],"'PrvM'":["previewMacThumbnail","previewMagenta"],"'Pstr'":["posterization","posterize"],"'RGBS'":["RGBSetup","RGBSetupSource"],"'Rds '":["radius","reds"],"'ScrD'":["scratchDisks","screenDot"],"'ShdI'":["shadingIntensity","shadowIntensity"],"'ShpC'":["shapeCurveType","shapingCurve"],"'ShrE'":["sharpenEdges","shearEd"],"'Shrp'":["sharpen","sharpness"],"'SplC'":["splitChannels","supplementalCategories"],"'Spot'":["spot","spotColor"],"'SprS'":["separationSetup","sprayedStrokes"],"'StrL'":["strokeLength","strokeLocation"],"'Strt'":["saturation","start"],"'TEXT'":["char","textType"],"'TIFF'":["TIFF","TIFFFormat"],"'TglO'":["toggleOptionsPalette","toggleOthers"],"'TrnG'":["transparencyGamutPreferences","transparencyGrid","transparencyGridSize"],"'TrnS'":["transferSpec","transparencyShape","transparencyStop"],"'Trns'":["transparency","transparent"],"'TxtC'":["textClickPoint","textureCoverage"],"'TxtF'":["textureFile","textureFill"],"'UsrM'":["userMaskEnabled","userMaskOptions"],"'c@#^'":["inherits","pInherits"],"'comp'":["comp","sInt64"],"'doub'":["floatType","IEEE64BitFloatingPoint","longFloat"],"'long'":["integer","longInteger","sInt32"],"'magn'":["magnitude","uInt32"],"'null'":["null","target"],"'shor'":["sInt16","sMInt","shortInteger"],"'sing'":["IEEE32BitFloatingPoint","sMFloat","shortFloat"]};jamEngine.getConflictingStringIdStrs=function(charIdStr) {return conflictingStringIdStrs[charIdStr]||null;};jamEngine.uniIdStrToId=function(uniIdStr) {var id=0;if(typeof uniIdStr==='string') {if((uniIdStr.length===(1+4+1))&&(uniIdStr.charAt(0)==="'")&&(uniIdStr.charAt(5)==="'")) {id=app.charIDToTypeID(uniIdStr.substring(1,5));} else {id=app.stringIDToTypeID(uniIdStr);}} return id;};var smallestHashValue=app.charIDToTypeID("    ");jamEngine.idToUniIdStrs=function(id) {var charIdStr="";var stringIdStr=app.typeIDToStringID(id);if(id>=smallestHashValue) {charIdStr="'"+app.typeIDToCharID(id)+"'";if(stringIdStr!=="") {if(charIdStr in conflictingStringIdStrs) {stringIdStr=conflictingStringIdStrs[charIdStr];}}} return[charIdStr,stringIdStr];};jamEngine.equivalentUniIdStrs=function(uniIdStr1,uniIdStr2) {return this.uniIdStrToId(uniIdStr1)===this.uniIdStrToId(uniIdStr2);};function putInReference(ref,containers) {if(containers.constructor===Array) {var count=containers.length;for(var i=0;i<count;i++) {var container=that.parseCompact(containers[i]);var desiredClassId=that.uniIdStrToId(container[0]);var typedValue=that.parseCompact(container[1]);var form=typedValue[0];var value=typedValue[1];switch(form) {case"<class>":ref.putClass(desiredClassId);break;case"<enumerated>":var enumerated=that.parseCompact(value);ref.putEnumerated(desiredClassId,that.uniIdStrToId(enumerated[0]),that.uniIdStrToId(enumerated[1]));break;case"<identifier>":ref.putIdentifier(desiredClassId,value);break;case"<index>":ref.putIndex(desiredClassId,value);break;case"<name>":ref.putName(desiredClassId,value);break;case"<offset>":ref.putOffset(desiredClassId,value);break;case"<property>":ref.putProperty(desiredClassId,that.uniIdStrToId(value));break;default:throw new Error("[jamEngine putInReference] Unknown reference form: "+form);break;}}} else {throw new Error("[jamEngine putInReference] JavaScript array expected");}} function putInList(list,items) {if(items.constructor===Array) {var count=items.length;for(var i=0;i<count;i++) {var item=that.parseCompact(items[i]);var type=item[0];var value=item[1];switch(type) {case"<boolean>":list.putBoolean(value);break;case"<class>":list.putClass(that.uniIdStrToId(value));break;case"<data>":list.putData(value);break;case"<double>":list.putDouble(value);break;case"<enumerated>":var enumerated=that.parseCompact(value);list.putEnumerated(that.uniIdStrToId(enumerated[0]),that.uniIdStrToId(enumerated[1]));break;case"<integer>":list.putInteger(value);break;case"<largeInteger>":list.putLargeInteger(value);break;case"<list>":var actionList=new ActionList();putInList(actionList,value);list.putList(actionList);break;case"<object>":var object=that.parseCompact(value);if(object[1]) {var actionDescriptor=new ActionDescriptor();putInDescriptor(actionDescriptor,object[1]);list.putObject(that.uniIdStrToId(object[0]),actionDescriptor);} else {list.putClass(that.uniIdStrToId(object[0]));} break;case"<path>":var fileRef=new File(value);list.putPath(fileRef);break;case"<reference>":var actionReference=new ActionReference();putInReference(actionReference,value);list.putReference(actionReference);break;case"<string>":list.putString(value);break;case"<unitDouble>":var unitDouble=that.parseCompact(value);list.putUnitDouble(that.uniIdStrToId(unitDouble[0]),unitDouble[1]);break;default:throw new Error("[jamEngine putInList] Unknown list type: "+type);break;}}} else {throw new Error("[jamEngine putInList] JavaScript array expected");}} function putInDescriptor(desc,members) {if(members.constructor===Object) {for(var key in members) {if(members.hasOwnProperty(key)) {var keyID=that.uniIdStrToId(key);var member=that.parseCompact(members[key]);var type=member[0];var value=member[1];switch(type) {case"<boolean>":desc.putBoolean(keyID,value);break;case"<class>":desc.putClass(keyID,that.uniIdStrToId(value));break;case"<data>":desc.putData(keyID,value);break;case"<double>":desc.putDouble(keyID,value);break;case"<enumerated>":var enumerated=that.parseCompact(value);desc.putEnumerated(keyID,that.uniIdStrToId(enumerated[0]),that.uniIdStrToId(enumerated[1]));break;case"<integer>":desc.putInteger(keyID,value);break;case"<largeInteger>":desc.putLargeInteger(keyID,value);break;case"<list>":var actionList=new ActionList();putInList(actionList,value);desc.putList(keyID,actionList);break;case"<object>":var object=that.parseCompact(value);if(object[1]) {var actionDescriptor=new ActionDescriptor();putInDescriptor(actionDescriptor,object[1]);desc.putObject(keyID,that.uniIdStrToId(object[0]),actionDescriptor);} else {desc.putClass(keyID,that.uniIdStrToId(object[0]));} break;case"<path>":var fileRef=new File(value);desc.putPath(keyID,fileRef);break;case"<reference>":var actionReference=new ActionReference();putInReference(actionReference,value);desc.putReference(keyID,actionReference);break;case"<string>":desc.putString(keyID,value);break;case"<unitDouble>":var unitDouble=that.parseCompact(value);desc.putUnitDouble(keyID,that.uniIdStrToId(unitDouble[0]),unitDouble[1]);break;default:throw new Error("[jamEngine putInDescriptor] Unknown descriptor type: "+type);break;}}}} else {throw new Error("[jamEngine putInDescriptor] JavaScript object expected");}} var contextRules={"'Algn'":{"<classKey>":{"bevelEmboss":"align","frameFX":"align","gradientFill":"align","gradientLayer":"align","patternFill":"align","patternLayer":"align"},"<event>":"align","<key>":"alignment"},"'AntA'":{"<class>":"antiAliasedPICTAcquire","<key>":"antiAlias"},"'BckL'":{"<class>":"backgroundLayer","<key>":"backgroundLevel"},"'BlcG'":{"<enumType>":"blackGenerationType","<key>":"blackGenerationCurve"},"'BlcL'":{"<classKey>":{"'GEfc'":"blackLevel","CMYKSetup":"blackLimit"},"<eventKey>":{"reticulation":"blackLevel"}},"'Blks'":{"<typeValue>":{"colors":"blacks","extrudeType":"blocks"}},"'BlrM'":{"<enumType>":"blurMethod","<event>":"blurMore","<key>":"blurMethod"},"'BrgC'":{"<class>":"brightnessContrast","<event>":"brightnessContrast"},"'BrsD'":{"<enumValue>":"brushesDefine","<key>":"brushDetail"},"'Brsh'":{"<class>":"brush","<key>":"brushes"},"'Clcl'":{"<class>":"calculation","<enumValue>":"calculations","<key>":"calculation"},"'ClrP'":{"<typeValue>":{"'GEft'":"coloredPencil"},"<enumType>":"colorPalette","<event>":"coloredPencil"},"'Cnst'":{"<classKey>":{"channelMatrix":"constant"},"<unknown>":"constrain"},"'CntC'":{"<typeValue>":{"'GEft'":"conteCrayon"},"<event>":"conteCrayon","<key>":"centerCropMarks"},"'Cntr'":{"<classKey>":{"'GEfc'":"contrast","brightnessContrast":"contrast","document":"center","polygon":"center","quadrilateral":"center"},"<eventKey>":{"adaptCorrect":"contrast","brightnessEvent":"contrast","grain":"contrast","halftoneScreen":"contrast","sumie":"contrast","tornEdges":"contrast","waterPaper":"contrast"},"<enumValue>":"center"},"'CrtD'":{"<enumValue>":"createDuplicate","<event>":"createDroplet"},"'CstP'":{"<class>":"customPhosphors","<key>":"customPalette"},"'Cstm'":{"<enumValue>":"customPattern","<event>":"custom","<key>":"custom"},"'Drkn'":{"<enumValue>":"darken","<key>":"darkness"},"'Dstr'":{"<classKey>":{"'GEfc'":"distortion"},"<eventKey>":{"glass":"distortion","addNoise":"distribution"},"<enumType>":"distribution","<enumValue>":"distort","<event>":"distribute"},"'Dstt'":{"<enumValue>":"desaturate","<event>":"desaturate","<key>":"destWhiteMax"},"'FlIn'":{"<typeValue>":{"fillColor":"fillInverse","menuItemType":"fileInfo"},"<class>":"fileInfo","<key>":"fileInfo"},"'Gd  '":{"<class>":"guide","<enumValue>":"good"},"'GnrP'":{"<class>":"preferencesClass","<enumValue>":"generalPreferences","<key>":"generalPrefs"},"'GrSt'":{"<class>":"graySetup","<enumValue>":"grainStippled","<key>":"graySetup"},"'Grdn'":{"<class>":"gradientClassEvent","<event>":"gradientClassEvent","<key>":"gridMinor"},"'Grn '":{"<typeValue>":{"'GEft'":"grain"},"<classKey>":{"'GEfc'":"grain","RGBColor":"green","blackAndWhite":"green","channelMatrix":"green","channelMixer":"green"},"<eventKey>":{"blackAndWhite":"green","channelMixer":"green","filmGrain":"grain"},"<enumValue>":"green","<event>":"grain"},"'Grns'":{"<enumValue>":"greens","<key>":"graininess"},"'HstP'":{"<enumValue>":"historyPreferences","<key>":"historyPrefs"},"'HstS'":{"<class>":"historyState","<enumType>":"historyStateSourceType"},"'ImgP'":{"<class>":"imagePoint","<enumValue>":"imageCachePreferences"},"'In  '":{"<enumValue>":"stampIn","<key>":"in"},"'IntW'":{"<event>":"intersectWith","<key>":"interfaceWhite"},"'Intr'":{"<typeValue>":{"shapeOperation":"intersect"},"<classKey>":{"GIFFormat":"interlace","SaveForWeb":"interlace","application":"interfaceIconFrameDimmed","computedBrush":"interpolation","dBrush":"interpolation","gradientClassEvent":"interpolation","photoshopEPSFormat":"interpolation","sampledBrush":"interpolation"},"<eventKey>":{"convertMode":"interpolation","imageSize":"interpolation","transform":"interpolation"},"<event>":"intersect"},"'JPEG'":{"<class>":"JPEGFormat","<enumValue>":"JPEG"},"'LghD'":{"<enumType>":"lightDirection","<enumValue>":"lightDirectional","<key>":"lightDirection"},"'LghO'":{"<typeValue>":{"diffuseMode":"lightenOnly","lightType":"lightOmni"}},"'LghS'":{"<class>":"lightSource","<enumValue>":"lightSpot","<key>":"lightSource"},"'Lns '":{"<enumType>":"lens","<enumValue>":"lines","<key>":"lens"},"'Mgnt'":{"<typeValue>":{"channel":"magenta","colors":"magentas","guideGridColor":"magenta"},"<key>":"magenta"},"'MrgL'":{"<enumValue>":"mergedLayers","<event>":"mergeLayers"},"'Mxm '":{"<enumValue>":"maximumQuality","<event>":"maximum","<key>":"maximum"},"'NTSC'":{"<enumValue>":"NTSC","<event>":"NTSCColors"},"'NmbL'":{"<classKey>":{"'GEfc'":"numberOfLevels","document":"numberOfLayers"},"<eventKey>":{"cutout":"numberOfLevels"}},"'PlgP'":{"<class>":"pluginPrefs","<enumValue>":"pluginPicker","<key>":"pluginPrefs"},"'Pncl'":{"<enumValue>":"pencilEraser","<key>":"pencilWidth"},"'Pnt '":{"<typeValue>":{"textType":"point"},"<class>":"point","<event>":"paint"},"'Prsp'":{"<enumValue>":"perspective","<key>":"perspectiveIndex"},"'PrvM'":{"<enumValue>":"previewMagenta","<key>":"previewMacThumbnail"},"'Pstr'":{"<class>":"posterize","<event>":"posterize","<key>":"posterization"},"'RGBS'":{"<enumType>":"RGBSetupSource","<key>":"RGBSetup"},"'Rds '":{"<enumValue>":"reds","<key>":"radius"},"'ScrD'":{"<enumValue>":"screenDot","<key>":"scratchDisks"},"'ShdI'":{"<classKey>":{"'GEfc'":"shadowIntensity"},"<eventKey>":{"watercolor":"shadowIntensity"},"<unknown>":"shadingIntensity"},"'ShpC'":{"<classKey>":{"application":"shapingCurve"},"<class>":"shapingCurve","<key>":"shapeCurveType"},"'ShrE'":{"<event>":"sharpenEdges","<key>":"shearEd"},"'Shrp'":{"<event>":"sharpen","<key>":"sharpness"},"'SplC'":{"<event>":"splitChannels","<key>":"supplementalCategories"},"'Spot'":{"<enumValue>":"spotColor","<key>":"spot"},"'SprS'":{"<typeValue>":{"'GEft'":"sprayedStrokes"},"<enumValue>":"separationSetup","<event>":"sprayedStrokes"},"'StrL'":{"<enumType>":"strokeLocation","<key>":"strokeLength"},"'Strt'":{"<classKey>":{"currentToolOptions":"saturation","fileNamingRules":"start","HSBColorClass":"saturation","hueSatAdjustment":"saturation","hueSatAdjustmentV2":"saturation","lineClass":"start","range":"start","vibrance":"saturation"},"<eventKey>":{"replaceColor":"saturation","variations":"saturation","vibrance":"saturation"},"<enumValue>":"saturation"},"'TEXT'":{"<enumType>":"textType","<key>":"textType"},"'TIFF'":{"<class>":"TIFFFormat","<enumValue>":"TIFF"},"'TglO'":{"<enumValue>":"toggleOptionsPalette","<key>":"toggleOthers"},"'TrnG'":{"<classKey>":{"application":"transparencyGrid","transparencyPrefs":"transparencyGridSize"},"<enumType>":"transparencyGridSize","<enumValue>":"transparencyGamutPreferences"},"'TrnS'":{"<classKey>":{"bevelEmboss":"transparencyShape","dropShadow":"transparencyShape","innerGlow":"transparencyShape","innerShadow":"transparencyShape","outerGlow":"transparencyShape"},"<class>":"transparencyStop","<unknown>":"transferSpec"},"'Trns'":{"<enumValue>":"transparent","<key>":"transparency"},"'TxtC'":{"<classKey>":{"'GEfc'":"textureCoverage","textLayer":"textClickPoint"},"<eventKey>":{"underpainting":"textureCoverage"}},"'TxtF'":{"<event>":"textureFill","<key>":"textureFile"},"'UsrM'":{"<enumType>":"userMaskOptions","<key>":"userMaskEnabled"},"'null'":{"<class>":"null","<enumValue>":"null","<event>":"null","<key>":"target"}};function getFromId(context,parentContext) {var uniIdStr;var kind=context[0];var id=context[1];if(id<smallestHashValue) {uniIdStr=app.typeIDToStringID(id);} else {uniIdStr="'"+app.typeIDToCharID(id)+"'";if(that.meaningfulIds) {if(uniIdStr in contextRules) {function resolveIdStr(candidates) {var idStr="";for(var parentString in candidates) {if(candidates.hasOwnProperty(parentString)) {if(parentContext[1]===that.uniIdStrToId(parentString)) {idStr=candidates[parentString];break;}}} return idStr;} var resolvedIdStr="";var rule=contextRules[uniIdStr];if(parentContext) {switch(kind) {case"<key>":if((parentContext[0]==="<class>")&&("<classKey>"in rule)) {resolvedIdStr=resolveIdStr(rule["<classKey>"]);} else if((parentContext[0]==="<event>")&&("<eventKey>"in rule)) {resolvedIdStr=resolveIdStr(rule["<eventKey>"]);} break;case"<enumValue>":if((parentContext[0]==="<enumType>")&&("<typeValue>"in rule)) {resolvedIdStr=resolveIdStr(rule["<typeValue>"]);} break;}} if(resolvedIdStr!=="") {uniIdStr=resolvedIdStr;} else if(kind in rule) {uniIdStr=rule[kind];}} else {var stringIDStr=app.typeIDToStringID(id);if(stringIDStr!=="") {uniIdStr=stringIDStr;}}}} return uniIdStr;} var incompatiblePlatformPath="";var getEventId=app.stringIDToTypeID("get");var targetKeyId=app.stringIDToTypeID("target");var propertyClassId=app.stringIDToTypeID("property");function getFromReference(ref) {var propertyId=0;var arr=[];do {try{var desiredClassId=ref.getDesiredClass();}catch(e){break;} if(propertyId!==0) {var propertyCompact=that.buildCompact("<property>",getFromId(["<key>",propertyId],["<class>",desiredClassId]));arr.push(that.buildCompact(getFromId(["<class>",propertyClassId]),propertyCompact));propertyId=0;} var desiredCompact;var aFormID=ref.getForm();switch(aFormID) {case ReferenceFormType.CLASSTYPE:desiredCompact=that.buildCompact("<class>",null);break;case ReferenceFormType.ENUMERATED:var enumTypeContext=["<enumType>",ref.getEnumeratedType()];var enumValueContext=["<enumValue>",ref.getEnumeratedValue()];desiredCompact=that.buildCompact("<enumerated>",that.buildCompact(getFromId(enumTypeContext),getFromId(enumValueContext,enumTypeContext)));break;case ReferenceFormType.IDENTIFIER:desiredCompact=that.buildCompact("<identifier>",ref.getIdentifier());break;case ReferenceFormType.INDEX:desiredCompact=that.buildCompact("<index>",ref.getIndex());break;case ReferenceFormType.NAME:desiredCompact=that.buildCompact("<name>",ref.getName());break;case ReferenceFormType.OFFSET:desiredCompact=that.buildCompact("<offset>",ref.getOffset());break;case ReferenceFormType.PROPERTY:if(desiredClassId===propertyClassId) {propertyId=ref.getProperty();} else {desiredCompact=that.buildCompact("<property>",getFromId(["<key>",ref.getProperty()],["<class>",desiredClassId]));} break;default:throw new Error("[jamEngine getFromReference] Unknown reference form type: "+aFormID);break;} if(desiredClassId!==propertyClassId) {arr.push(that.buildCompact(getFromId(["<class>",desiredClassId]),desiredCompact));} ref=ref.getContainer();} while(ref);return arr;} function getFromList(list) {var arr=[];var itemCount=list.count;for(var itemIndex=0;itemIndex<itemCount;itemIndex++) {var itemCompact;var typeID;try{typeID=list.getType(itemIndex);}catch(e){continue;} switch(typeID) {case DescValueType.BOOLEANTYPE:itemCompact=that.buildCompact("<boolean>",list.getBoolean(itemIndex));break;case DescValueType.CLASSTYPE:itemCompact=that.buildCompact("<class>",getFromId(["<class>",list.getClass(itemIndex)]));break;case DescValueType.DOUBLETYPE:itemCompact=that.buildCompact("<double>",list.getDouble(itemIndex));break;case DescValueType.ENUMERATEDTYPE:var enumTypeContext=["<enumType>",list.getEnumerationType(itemIndex)];var enumValueContext=["<enumValue>",list.getEnumerationValue(itemIndex)];itemCompact=that.buildCompact("<enumerated>",that.buildCompact(getFromId(enumTypeContext),getFromId(enumValueContext,enumTypeContext)));break;case DescValueType.INTEGERTYPE:itemCompact=that.buildCompact("<integer>",list.getInteger(itemIndex));break;case DescValueType.LISTTYPE:itemCompact=that.buildCompact("<list>",getFromList(list.getList(itemIndex)));break;case DescValueType.OBJECTTYPE:var objectTypeContext=["<class>",list.getObjectType(itemIndex)];var objectValue=list.getObjectValue(itemIndex);itemCompact=that.buildCompact("<object>",that.buildCompact(getFromId(objectTypeContext),getFromDescriptor(objectValue,objectTypeContext)));break;case DescValueType.ALIASTYPE:try {var fileRef=list.getPath(itemIndex);itemCompact=that.buildCompact("<path>",fileRef.fsName);} catch(e) {itemCompact=that.buildCompact("<path>",incompatiblePlatformPath);} break;case DescValueType.REFERENCETYPE:itemCompact=that.buildCompact("<reference>",getFromReference(list.getReference(itemIndex)));break;case DescValueType.STRINGTYPE:itemCompact=that.buildCompact("<string>",list.getString(itemIndex));break;case DescValueType.UNITDOUBLE:var unitTypeContext=["<unit>",list.getUnitDoubleType(itemIndex)];var doubleValue=list.getUnitDoubleValue(itemIndex);itemCompact=that.buildCompact("<unitDouble>",that.buildCompact(getFromId(unitTypeContext),doubleValue));break;default:var isRawType;var isLargeIntegerType;try{isRawType=(typeID===DescValueType.RAWTYPE);}catch(e){} try{isLargeIntegerType=(typeID===DescValueType.LARGEINTEGERTYPE);}catch(e){} if(isRawType) {itemCompact=that.buildCompact("<data>",list.getData(itemIndex));} else if(isLargeIntegerType) {itemCompact=that.buildCompact("<largeInteger>",list.getLargeInteger(itemIndex));} else {throw new Error("[jamEngine getFromList] Unknown descriptor value type: "+typeID);} break;} arr[itemIndex]=itemCompact;} return arr;} function getFromDescriptor(desc,parentContext) {if(desc) {var obj={};var keyCount;try{keyCount=desc.count;}catch(e){return null;} for(var keyIndex=0;keyIndex<keyCount;keyIndex++) {var keyID=desc.getKey(keyIndex);var keyString=getFromId(["<key>",keyID],parentContext);var keyCompact;var typeID;try{typeID=desc.getType(keyID);}catch(e){continue;} switch(typeID) {case DescValueType.BOOLEANTYPE:keyCompact=that.buildCompact("<boolean>",desc.getBoolean(keyID));break;case DescValueType.CLASSTYPE:keyCompact=that.buildCompact("<class>",getFromId(["<class>",desc.getClass(keyID)]));break;case DescValueType.DOUBLETYPE:keyCompact=that.buildCompact("<double>",desc.getDouble(keyID));break;case DescValueType.ENUMERATEDTYPE:var enumTypeContext=["<enumType>",desc.getEnumerationType(keyID)];var enumValueContext=["<enumValue>",desc.getEnumerationValue(keyID)];keyCompact=that.buildCompact("<enumerated>",that.buildCompact(getFromId(enumTypeContext),getFromId(enumValueContext,enumTypeContext)));break;case DescValueType.INTEGERTYPE:keyCompact=that.buildCompact("<integer>",desc.getInteger(keyID));break;case DescValueType.LISTTYPE:keyCompact=that.buildCompact("<list>",getFromList(desc.getList(keyID)));break;case DescValueType.OBJECTTYPE:var objectTypeContext=["<class>",desc.getObjectType(keyID)];var objectValue=desc.getObjectValue(keyID);keyCompact=that.buildCompact("<object>",that.buildCompact(getFromId(objectTypeContext),getFromDescriptor(objectValue,objectTypeContext)));break;case DescValueType.ALIASTYPE:try {var fileRef=desc.getPath(keyID);keyCompact=that.buildCompact("<path>",fileRef.fsName);} catch(e) {keyCompact=that.buildCompact("<path>",incompatiblePlatformPath);} break;case DescValueType.REFERENCETYPE:keyCompact=that.buildCompact("<reference>",getFromReference(desc.getReference(keyID)));break;case DescValueType.STRINGTYPE:keyCompact=that.buildCompact("<string>",desc.getString(keyID));break;case DescValueType.UNITDOUBLE:var unitTypeContext=["<unit>",desc.getUnitDoubleType(keyID)];var doubleValue=desc.getUnitDoubleValue(keyID);keyCompact=that.buildCompact("<unitDouble>",that.buildCompact(getFromId(unitTypeContext),doubleValue));break;default:var isRawType;var isLargeIntegerType;try{isRawType=(typeID===DescValueType.RAWTYPE);}catch(e){} try{isLargeIntegerType=(typeID===DescValueType.LARGEINTEGERTYPE);}catch(e){} if(isRawType) {keyCompact=that.buildCompact("<data>",desc.getData(keyID));} else if(isLargeIntegerType) {keyCompact=that.buildCompact("<largeInteger>",desc.getLargeInteger(keyID));} else {throw new Error("[jamEngine getFromDescriptor] Unknown descriptor value type: "+typeID);} break;} obj[keyString]=keyCompact;} return obj;} else {return null;}} jamEngine.jsonToActionDescriptor=function(descriptorObj) {that=this;var actionDescriptor;if(descriptorObj) {actionDescriptor=new ActionDescriptor();putInDescriptor(actionDescriptor,descriptorObj);} return actionDescriptor;};jamEngine.jsonToActionReference=function(referenceArr) {that=this;var actionReference;if(referenceArr) {actionReference=new ActionReference();putInReference(actionReference,referenceArr);} return actionReference;};jamEngine.eventIdAndActionDescriptorToJson=function(eventId,actionDescriptor) {that=this;var eventIdContext=["<event>",eventId];return{"<event>":getFromId(eventIdContext),"<descriptor>":getFromDescriptor(actionDescriptor,eventIdContext)};};jamEngine.classIdAndActionDescriptorToJson=function(classId,actionDescriptor) {that=this;var classIdContext=["<class>",classId];return{"<class>":getFromId(classIdContext),"<descriptor>":getFromDescriptor(actionDescriptor,classIdContext)};};jamEngine.actionReferenceToJson=function(actionReference) {that=this;return getFromReference(actionReference);};function getReferenceClassId(ref) {classId=0;do {try{var desiredClassId=ref.getDesiredClass();}catch(e){break;} if(desiredClassId!==propertyClassId) {classId=desiredClassId;break;} ref=ref.getContainer();} while(ref);return classId;} jamEngine.jsonPlay=function(eventUniIdStr,descriptorObj,displayDialogs) {var eventId=this.uniIdStrToId(eventUniIdStr);var desc=this.jsonToActionDescriptor(descriptorObj);var parentContext;if(eventId===getEventId) {var ref=desc.getReference(targetKeyId);parentContext=["<class>",getReferenceClassId(ref)];} else {parentContext=["<event>",eventId];} return getFromDescriptor(app.executeAction(eventId,desc,displayDialogs||this.displayDialogs),parentContext);};jamEngine.jsonGet=function(referenceArr) {var ref=this.jsonToActionReference(referenceArr);return getFromDescriptor(app.executeActionGet(ref),["<class>",getReferenceClassId(ref)]);};jamEngine.normalizeJsonItem=function(item,options) {function normalizeItem(item) {var explicit=that.parseCompact(item);var type=explicit[0];var value=explicit[1];var normalizedValue;switch(type) {case"<boolean>":case"<data>":case"<double>":case"<identifier>":case"<index>":case"<integer>":case"<largeInteger>":case"<name>":case"<offset>":case"<path>":case"<string>":normalizedValue=value;break;case"<class>":normalizedValue=value&&getFromId(["<class>",that.uniIdStrToId(value)]);break;case"<enumerated>":var enumerated=that.parseCompact(value);var enumTypeContext=["<enumType>",that.uniIdStrToId(enumerated[0])];var enumValueContext=["<enumValue>",that.uniIdStrToId(enumerated[1])];normalizedValue=that.buildCompact(getFromId(enumTypeContext),getFromId(enumValueContext,enumTypeContext));break;case"<list>":normalizedValue=[];for(var i=0;i<value.length;i++) {normalizedValue.push(normalizeItem(value[i]));} break;case"<object>":var object=that.parseCompact(value);var objectClassContext=["<class>",that.uniIdStrToId(object[0])];var objectDescriptor=object[1];var normalizedDescriptor;if(objectDescriptor===null) {normalizedDescriptor=null;} else {normalizedDescriptor={};for(var key in objectDescriptor) {if(objectDescriptor.hasOwnProperty(key)) {var objectKeyContext=["<key>",that.uniIdStrToId(key)];normalizedDescriptor[getFromId(objectKeyContext,objectClassContext)]=normalizeItem(objectDescriptor[key]);}}} normalizedValue=that.buildCompact(getFromId(objectClassContext),normalizedDescriptor);break;case"<property>":normalizedValue=getFromId(["<key>",that.uniIdStrToId(value)]);break;case"<reference>":normalizedValue=[];for(var i=0;i<value.length;i++) {var container=that.parseCompact(value[i]);normalizedValue.push(that.buildCompact(getFromId(["<class>",that.uniIdStrToId(container[0])]),normalizeItem(container[1])));} break;case"<unitDouble>":var unitDouble=that.parseCompact(value);var unitTypeContext=["<unit>",that.uniIdStrToId(unitDouble[0])];normalizedValue=that.buildCompact(getFromId(unitTypeContext),unitDouble[1]);break;default:throw new Error("[jamEngine.normalizeJsonItem] Unknown item type: "+type);break;} return that.buildCompact(type,normalizedValue);} that=this;var saveMeaningfulIds=this.meaningfulIds;var saveParseFriendly=this.parseFriendly;if(options&&(options.constructor===Object)) {if(typeof options.meaningfulIds!=='undefined') {this.meaningfulIds=options.meaningfulIds;} if(typeof options.parseFriendly!=='undefined') {this.parseFriendly=options.parseFriendly;}} var normalizedItem=normalizeItem(item);this.meaningfulIds=saveMeaningfulIds;this.parseFriendly=saveParseFriendly;return normalizedItem;};function simplifyRef(ref) {var simplifiedRef=[];for(var i=0;i<ref.length;i++) {var element=ref[i];var simplifiedElement={};var desiredClass=element[0];var form=element[1][0];var value=element[1][1];switch(form) {case"<class>":case"<identifier>":case"<index>":case"<name>":case"<offset>":case"<property":simplifiedElement[desiredClass]=value;break;case"<enumerated>":simplifiedElement[desiredClass]=value[1];break;default:throw new Error("[jamEngine simplifyRef] Unexpected element form: "+form);break;} simplifiedRef.push(simplifiedElement);} return simplifiedRef;} function simplifyItem(item,hook) {var simplifiedItem;var type=item[0];var value=item[1];switch(type) {case"<boolean>":case"<class>":case"<data>":case"<double>":case"<integer>":case"<largeInteger>":case"<path>":case"<string>":simplifiedItem=value;break;case"<list>":simplifiedItem=simplifyList(value,hook);break;case"<enumerated>":case"<unitDouble>":simplifiedItem=value[1];break;case"<object>":simplifiedItem=simplifyDesc(value[1],hook);break;case"<reference>":simplifiedItem=simplifyRef(value);break;default:throw new Error("[jamEngine simplifyItem] Unexpected item type: "+type);break;} return simplifiedItem;} function simplifyList(list,hook) {var simplifiedList=[];for(var i=0;i<list.length;i++) {simplifiedList.push(simplifyItem(list[i],hook));} return simplifiedList;} function simplifyDesc(desc,hook) {var getDefaultValue=function(desc,key){return simplifyItem(desc[key],hook);};var simplifiedDesc={};for(var key in desc) {if(desc.hasOwnProperty(key)) {var value=undefined;if(typeof hook==='function') {value=hook(desc,key,getDefaultValue);} if(typeof value==='undefined') {value=simplifyItem(desc[key],hook);} simplifiedDesc[key]=value;}} return simplifiedDesc;} jamEngine.simplifyObject=function(object,hookFunction) {return simplifyDesc((this.normalizeJsonItem(object,{meaningfulIds:true,parseFriendly:true}))[1][1],hookFunction);};jamEngine.simplifyList=function(list,hookFunction) {return simplifyList((this.normalizeJsonItem(list,{meaningfulIds:true,parseFriendly:true}))[1],hookFunction);};jamEngine.parseCompact=function(compact) {var result=[];if(compact.constructor===Object) {var keys=[];for(var k in compact) {if(compact.hasOwnProperty(k)) {keys.push(k);}} if(keys.length===1) {result[0]=keys[0];result[1]=compact[keys[0]];} else {throw new Error("[jamEngine.parseCompact] Syntax error: "+compact.toSource());}} else if(compact.constructor===Array) {if(compact.length===2) {result[0]=compact[0];result[1]=compact[1];} else {throw new Error("[jamEngine.parseCompact] Syntax error: "+compact.toSource());}} else {throw new Error("[jamEngine.parseCompact] JavaScript object or array expected");} return result;};jamEngine.compactToExplicit=function(compact,typeKey,valueKey) {var explicit={};var typeValue=this.parseCompact(compact);explicit[typeKey||"<type>"]=typeValue[0];explicit[valueKey||"<value>"]=typeValue[1];return explicit;};jamEngine.buildCompact=function(type,value) {var compact;if(typeof type==='string') {if(this.parseFriendly) {compact=[type,value];} else {compact={};compact[type]=value;}} else {throw new Error("[jamEngine.buildCompact] String expected");} return compact;};jamEngine.explicitToCompact=function(explicit,typeKey,valueKey) {var compact;if(explicit.constructor===Object) {compact=this.buildCompact(explicit[typeKey||"<type>"],explicit[valueKey||"<value>"]);} else {throw new Error("[jamEngine.explicitToCompact] JavaScript object expected");} return compact;};for(var charIdStr in conflictingStringIdStrs) {if(conflictingStringIdStrs.hasOwnProperty(charIdStr)) {var stringIdStrs=conflictingStringIdStrs[charIdStr];for(var index=stringIdStrs.length-1;index>=0;index--) {var stringIdStr=stringIdStrs[index];if(!(app.charIDToTypeID(charIdStr.substring(1,5))===app.stringIDToTypeID(stringIdStr))) {stringIdStrs.splice(index,1);}} if(stringIdStrs.length<2) {delete conflictingStringIdStrs[charIdStr];}}} for(var charIdStr in contextRules) {if(contextRules.hasOwnProperty(charIdStr)) {if(charIdStr in conflictingStringIdStrs) {var rule=contextRules[charIdStr];for(var kind in rule) {if(rule.hasOwnProperty(kind)) {switch(kind) {case"<class>":case"<event>":case"<enumType>":case"<enumValue>":case"<key>":case"<unknown>":if(app.charIDToTypeID(charIdStr.substring(1,5))!=app.stringIDToTypeID(rule[kind])) {throw new Error("[jamEngine] "+"\""+charIdStr+"\" and \""+rule[kind]+"\" are not equivalent ID strings");} break;case"<classKey>":case"<eventKey>":case"<typeValue>":for(var parent in rule[kind]) {if(rule[kind].hasOwnProperty(parent)) {if(app.charIDToTypeID(charIdStr.substring(1,5))!=app.stringIDToTypeID(rule[kind][parent])) {throw new Error("[jamEngine] "+"\""+charIdStr+"\" and \""+rule[kind][parent]+"\" are not equivalent ID strings");}}} break;}}}} else {delete contextRules[charIdStr];}}}}());}
 
jamEngine.meaningfulIds = true;
jamEngine.parseFriendly = false;
 
// Action “Wood Frame - 50 pixel”
try
{
    // Action “Frame Channel - 50 pixel”
    if (true)
    {
        // Make
        if (true)
        {
            jamEngine.jsonPlay
            (
                "make",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "snapshotClass":
                                {
                                    "<class>": null
                                }
                            }
                        ]
                    },
                    "from":
                    {
                        "<reference>":
                        [
                            {
                                "historyState":
                                {
                                    "<property>": "currentHistoryState"
                                }
                            }
                        ]
                    },
                    "using":
                    {
                        "<enumerated>":
                        {
                            "historyStateSourceType": "fullDocument"
                        }
                    }
                },
                DialogModes.NO
            );
        }
        // Stop
        if (true)
        {
            jamEngine.jsonPlay
            (
                "stop",
                {
                    "message":
                    {
                        "<string>": "$$$/Presets/Actions/Frames_atn/FrameChannel50pixel/Msg/ImageSizeMin100=Image size must be a minimum of 100 pixels wide and tall."
                    },
                    "continue":
                    {
                        "<boolean>": true
                    }
                },
                DialogModes.ALL
            );
        }
        // Convert Mode
        if (true)
        {
            jamEngine.jsonPlay
            (
                "convertMode",
                {
                    "to":
                    {
                        "<class>": "RGBColorMode"
                    }
                },
                DialogModes.NO
            );
        }
        // Reset
        if (true)
        {
            jamEngine.jsonPlay
            (
                "reset",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "color":
                                {
                                    "<property>": "colors"
                                }
                            }
                        ]
                    }
                },
                DialogModes.NO
            );
        }
        // Set
        if (true)
        {
            jamEngine.jsonPlay
            (
                "set",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<property>": "selection"
                                }
                            }
                        ]
                    },
                    "to":
                    {
                        "<enumerated>":
                        {
                            "ordinal": "allEnum"
                        }
                    }
                },
                DialogModes.NO
            );
        }
        // Duplicate
        if (true)
        {
            jamEngine.jsonPlay
            (
                "duplicate",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<property>": "selection"
                                }
                            }
                        ]
                    },
                    "name":
                    {
                        "<string>": "photo edge"
                    }
                },
                DialogModes.NO
            );
        }
        // Canvas Size
        if (true)
        {
            jamEngine.jsonPlay
            (
                "canvasSize",
                {
                    "width":
                    {
                        "<unitDouble>":
                        {
                            "percentUnit": 200
                        }
                    },
                    "height":
                    {
                        "<unitDouble>":
                        {
                            "percentUnit": 200
                        }
                    },
                    "horizontal":
                    {
                        "<enumerated>":
                        {
                            "horizontalLocation": "center"
                        }
                    },
                    "vertical":
                    {
                        "<enumerated>":
                        {
                            "verticalLocation": "center"
                        }
                    }
                },
                DialogModes.NO
            );
        }
        // Select
        if (true)
        {
            jamEngine.jsonPlay
            (
                "select",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<name>": "photo edge"
                                }
                            }
                        ]
                    }
                },
                DialogModes.NO
            );
        }
        // Duplicate
        if (true)
        {
            jamEngine.jsonPlay
            (
                "duplicate",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<enumerated>":
                                    {
                                        "ordinal": "targetEnum"
                                    }
                                }
                            }
                        ]
                    },
                    "name":
                    {
                        "<string>": "new edge 1"
                    }
                },
                DialogModes.NO
            );
        }
        // Transform
        if (true)
        {
            jamEngine.jsonPlay
            (
                "transform",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "layer":
                                {
                                    "<enumerated>":
                                    {
                                        "ordinal": "targetEnum"
                                    }
                                }
                            }
                        ]
                    },
                    "position":
                    {
                        "<object>":
                        {
                            "point":
                            {
                                "horizontal":
                                {
                                    "<unitDouble>":
                                    {
                                        "pixelsUnit": 50
                                    }
                                },
                                "vertical":
                                {
                                    "<unitDouble>":
                                    {
                                        "pixelsUnit": 50
                                    }
                                }
                            }
                        }
                    },
                    "relative":
                    {
                        "<boolean>": true
                    }
                },
                DialogModes.NO
            );
        }
        // Select
        if (true)
        {
            jamEngine.jsonPlay
            (
                "select",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<name>": "photo edge"
                                }
                            }
                        ]
                    }
                },
                DialogModes.NO
            );
        }
        // Duplicate
        if (true)
        {
            jamEngine.jsonPlay
            (
                "duplicate",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<enumerated>":
                                    {
                                        "ordinal": "targetEnum"
                                    }
                                }
                            }
                        ]
                    },
                    "name":
                    {
                        "<string>": "new edge 2"
                    }
                },
                DialogModes.NO
            );
        }
        // Transform
        if (true)
        {
            jamEngine.jsonPlay
            (
                "transform",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "layer":
                                {
                                    "<enumerated>":
                                    {
                                        "ordinal": "targetEnum"
                                    }
                                }
                            }
                        ]
                    },
                    "position":
                    {
                        "<object>":
                        {
                            "point":
                            {
                                "horizontal":
                                {
                                    "<unitDouble>":
                                    {
                                        "pixelsUnit": -50
                                    }
                                },
                                "vertical":
                                {
                                    "<unitDouble>":
                                    {
                                        "pixelsUnit": -50
                                    }
                                }
                            }
                        }
                    },
                    "relative":
                    {
                        "<boolean>": true
                    }
                },
                DialogModes.NO
            );
        }
        // Select
        if (true)
        {
            jamEngine.jsonPlay
            (
                "select",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<name>": "photo edge"
                                }
                            }
                        ]
                    }
                },
                DialogModes.NO
            );
        }
        // Duplicate
        if (true)
        {
            jamEngine.jsonPlay
            (
                "duplicate",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<enumerated>":
                                    {
                                        "ordinal": "targetEnum"
                                    }
                                }
                            }
                        ]
                    },
                    "name":
                    {
                        "<string>": "new edge 3"
                    }
                },
                DialogModes.NO
            );
        }
        // Transform
        if (true)
        {
            jamEngine.jsonPlay
            (
                "transform",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "layer":
                                {
                                    "<enumerated>":
                                    {
                                        "ordinal": "targetEnum"
                                    }
                                }
                            }
                        ]
                    },
                    "position":
                    {
                        "<object>":
                        {
                            "point":
                            {
                                "horizontal":
                                {
                                    "<unitDouble>":
                                    {
                                        "pixelsUnit": -50
                                    }
                                },
                                "vertical":
                                {
                                    "<unitDouble>":
                                    {
                                        "pixelsUnit": 50
                                    }
                                }
                            }
                        }
                    },
                    "relative":
                    {
                        "<boolean>": true
                    }
                },
                DialogModes.NO
            );
        }
        // Select
        if (true)
        {
            jamEngine.jsonPlay
            (
                "select",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<name>": "photo edge"
                                }
                            }
                        ]
                    }
                },
                DialogModes.NO
            );
        }
        // Duplicate
        if (true)
        {
            jamEngine.jsonPlay
            (
                "duplicate",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<enumerated>":
                                    {
                                        "ordinal": "targetEnum"
                                    }
                                }
                            }
                        ]
                    },
                    "name":
                    {
                        "<string>": "new edge 4"
                    }
                },
                DialogModes.NO
            );
        }
        // Transform
        if (true)
        {
            jamEngine.jsonPlay
            (
                "transform",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "layer":
                                {
                                    "<enumerated>":
                                    {
                                        "ordinal": "targetEnum"
                                    }
                                }
                            }
                        ]
                    },
                    "position":
                    {
                        "<object>":
                        {
                            "point":
                            {
                                "horizontal":
                                {
                                    "<unitDouble>":
                                    {
                                        "pixelsUnit": 50
                                    }
                                },
                                "vertical":
                                {
                                    "<unitDouble>":
                                    {
                                        "pixelsUnit": -50
                                    }
                                }
                            }
                        }
                    },
                    "relative":
                    {
                        "<boolean>": true
                    }
                },
                DialogModes.NO
            );
        }
        // Make
        if (true)
        {
            jamEngine.jsonPlay
            (
                "make",
                {
                    "new":
                    {
                        "<object>":
                        {
                            "channel":
                            {
                                "name":
                                {
                                    "<string>": "Frame Edge"
                                },
                                "colorIndicates":
                                {
                                    "<enumerated>":
                                    {
                                        "maskIndicator": "maskedAreas"
                                    }
                                },
                                "color":
                                {
                                    "<object>":
                                    {
                                        "RGBColor":
                                        {
                                            "red":
                                            {
                                                "<double>": 255
                                            },
                                            "green":
                                            {
                                                "<double>": 0
                                            },
                                            "blue":
                                            {
                                                "<double>": 0
                                            }
                                        }
                                    }
                                },
                                "opacity":
                                {
                                    "<integer>": 50
                                }
                            }
                        }
                    }
                },
                DialogModes.NO
            );
        }
        // Set
        if (true)
        {
            jamEngine.jsonPlay
            (
                "set",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<property>": "selection"
                                }
                            }
                        ]
                    },
                    "to":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<name>": "new edge 4"
                                }
                            }
                        ]
                    }
                },
                DialogModes.NO
            );
        }
        // Add
        if (true)
        {
            jamEngine.jsonPlay
            (
                "add",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<name>": "new edge 3"
                                }
                            }
                        ]
                    },
                    "to":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<property>": "selection"
                                }
                            }
                        ]
                    }
                },
                DialogModes.NO
            );
        }
        // Add
        if (true)
        {
            jamEngine.jsonPlay
            (
                "add",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<name>": "new edge 2"
                                }
                            }
                        ]
                    },
                    "to":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<property>": "selection"
                                }
                            }
                        ]
                    }
                },
                DialogModes.NO
            );
        }
        // Add
        if (true)
        {
            jamEngine.jsonPlay
            (
                "add",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<name>": "new edge 1"
                                }
                            }
                        ]
                    },
                    "to":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<property>": "selection"
                                }
                            }
                        ]
                    }
                },
                DialogModes.NO
            );
        }
        // Subtract
        if (true)
        {
            jamEngine.jsonPlay
            (
                "subtract",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<name>": "photo edge"
                                }
                            }
                        ]
                    },
                    "from":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<property>": "selection"
                                }
                            }
                        ]
                    }
                },
                DialogModes.NO
            );
        }
        // Fill
        if (true)
        {
            jamEngine.jsonPlay
            (
                "fill",
                {
                    "using":
                    {
                        "<enumerated>":
                        {
                            "fillContents": "white"
                        }
                    },
                    "opacity":
                    {
                        "<unitDouble>":
                        {
                            "percentUnit": 100
                        }
                    },
                    "mode":
                    {
                        "<enumerated>":
                        {
                            "blendMode": "normal"
                        }
                    }
                },
                DialogModes.NO
            );
        }
        // Select
        if (true)
        {
            jamEngine.jsonPlay
            (
                "select",
                {
                    "target":
                    {
                        "<reference>":
                        [
                            {
                                "channel":
                                {
                                    "<enumerated>":
                                    {
                                        "channel": "RGB"
                                    }
                                }
                            }
                        ]
                    }
                },
                DialogModes.NO
            );
        }
    }
    // Make
    if (true)
    {
        jamEngine.jsonPlay
        (
            "make",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "layer":
                            {
                                "<class>": null
                            }
                        }
                    ]
                },
                "using":
                {
                    "<object>":
                    {
                        "layer":
                        {
                            "name":
                            {
                                "<string>": "frame"
                            }
                        }
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Set
    if (true)
    {
        jamEngine.jsonPlay
        (
            "set",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "color":
                            {
                                "<property>": "foregroundColor"
                            }
                        }
                    ]
                },
                "to":
                {
                    "<object>":
                    {
                        "CMYKColorClass":
                        {
                            "cyan":
                            {
                                "<double>": 18.8204776073854
                            },
                            "magenta":
                            {
                                "<double>": 27.8400854505226
                            },
                            "yellowColor":
                            {
                                "<double>": 37.6501106279088
                            },
                            "black":
                            {
                                "<double>": 31.3694972152285
                            }
                        }
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Fill
    if (true)
    {
        jamEngine.jsonPlay
        (
            "fill",
            {
                "using":
                {
                    "<enumerated>":
                    {
                        "fillContents": "foregroundColor"
                    }
                },
                "opacity":
                {
                    "<unitDouble>":
                    {
                        "percentUnit": 100
                    }
                },
                "mode":
                {
                    "<enumerated>":
                    {
                        "blendMode": "normal"
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Add Noise
    if (true)
    {
        jamEngine.jsonPlay
        (
            "addNoise",
            {
                "amount":
                {
                    "<integer>": 30
                },
                "distribution":
                {
                    "<enumerated>":
                    {
                        "distribution": "gaussianDistribution"
                    }
                },
                "monochromatic":
                {
                    "<boolean>": true
                }
            },
            DialogModes.NO
        );
    }
    // Motion Blur
    if (true)
    {
        jamEngine.jsonPlay
        (
            "motionBlur",
            {
                "angle":
                {
                    "<integer>": 0
                },
                "distance":
                {
                    "<integer>": 10
                }
            },
            DialogModes.NO
        );
    }
    // Set
    if (true)
    {
        jamEngine.jsonPlay
        (
            "set",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "property":
                            {
                                "<property>": "layerEffects"
                            }
                        },
                        {
                            "layer":
                            {
                                "<enumerated>":
                                {
                                    "ordinal": "targetEnum"
                                }
                            }
                        }
                    ]
                },
                "to":
                {
                    "<object>":
                    {
                        "layerEffects":
                        {
                            "globalLightingAngle":
                            {
                                "<unitDouble>":
                                {
                                    "angleUnit": -55
                                }
                            },
                            "bevelEmboss":
                            {
                                "<object>":
                                {
                                    "bevelEmboss":
                                    {
                                        "highlightOpacity":
                                        {
                                            "<unitDouble>":
                                            {
                                                "percentUnit": 55
                                            }
                                        },
                                        "shadowOpacity":
                                        {
                                            "<unitDouble>":
                                            {
                                                "percentUnit": 40
                                            }
                                        },
                                        "bevelStyle":
                                        {
                                            "<enumerated>":
                                            {
                                                "bevelEmbossStyle": "innerBevel"
                                            }
                                        },
                                        "strength":
                                        {
                                            "<unitDouble>":
                                            {
                                                "pixelsUnit": 15
                                            }
                                        },
                                        "blur":
                                        {
                                            "<unitDouble>":
                                            {
                                                "pixelsUnit": 8
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Set
    if (true)
    {
        jamEngine.jsonPlay
        (
            "set",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<property>": "selection"
                            }
                        }
                    ]
                },
                "to":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<name>": "photo edge"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Select
    if (true)
    {
        jamEngine.jsonPlay
        (
            "select",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "layer":
                            {
                                "<enumerated>":
                                {
                                    "ordinal": "forwardEnum"
                                }
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Fill
    if (true)
    {
        jamEngine.jsonPlay
        (
            "fill",
            {
                "using":
                {
                    "<enumerated>":
                    {
                        "fillContents": "gray"
                    }
                },
                "opacity":
                {
                    "<unitDouble>":
                    {
                        "percentUnit": 1
                    }
                },
                "mode":
                {
                    "<enumerated>":
                    {
                        "blendMode": "normal"
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Layer Via Copy
    if (true)
    {
        jamEngine.jsonPlay
        (
            "copyToLayer",
            null,
            DialogModes.NO
        );
    }
    // Set
    if (true)
    {
        jamEngine.jsonPlay
        (
            "set",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "property":
                            {
                                "<property>": "layerEffects"
                            }
                        },
                        {
                            "layer":
                            {
                                "<enumerated>":
                                {
                                    "ordinal": "targetEnum"
                                }
                            }
                        }
                    ]
                },
                "to":
                {
                    "<object>":
                    {
                        "layerEffects":
                        {
                            "innerShadow":
                            {
                                "<object>":
                                {
                                    "innerShadow":
                                    {
                                        "distance":
                                        {
                                            "<unitDouble>":
                                            {
                                                "pixelsUnit": 10
                                            }
                                        },
                                        "blur":
                                        {
                                            "<unitDouble>":
                                            {
                                                "pixelsUnit": 40
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            DialogModes.NO
        );
    }
    // Set
    if (true)
    {
        jamEngine.jsonPlay
        (
            "set",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<property>": "selection"
                            }
                        }
                    ]
                },
                "to":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<name>": "Frame Edge"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Add
    if (true)
    {
        jamEngine.jsonPlay
        (
            "add",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<name>": "photo edge"
                            }
                        }
                    ]
                },
                "to":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<property>": "selection"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Crop
    if (true)
    {
        jamEngine.jsonPlay
        (
            "crop",
            null,
            DialogModes.NO
        );
    }
    // Delete
    if (true)
    {
        jamEngine.jsonPlay
        (
            "delete",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<name>": "Frame Edge"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Delete
    if (true)
    {
        jamEngine.jsonPlay
        (
            "delete",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<name>": "new edge 4"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Delete
    if (true)
    {
        jamEngine.jsonPlay
        (
            "delete",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<name>": "new edge 3"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Delete
    if (true)
    {
        jamEngine.jsonPlay
        (
            "delete",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<name>": "new edge 2"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Delete
    if (true)
    {
        jamEngine.jsonPlay
        (
            "delete",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<name>": "new edge 1"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Delete
    if (true)
    {
        jamEngine.jsonPlay
        (
            "delete",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<name>": "photo edge"
                            }
                        }
                    ]
                }
            },
            DialogModes.NO
        );
    }
    // Set
    if (true)
    {
        jamEngine.jsonPlay
        (
            "set",
            {
                "target":
                {
                    "<reference>":
                    [
                        {
                            "channel":
                            {
                                "<property>": "selection"
                            }
                        }
                    ]
                },
                "to":
                {
                    "<enumerated>":
                    {
                        "ordinal": "none"
                    }
                }
            },
            DialogModes.NO
        );
    }
}
catch (e)
{
    if (e.number !== 8007)  // Not a user cancel error
    {
        try
        {
            jamEngine.jsonPlay
            (
                "stop",
                {
                    "message":
                    {
                        "<string>": e.message.replace (/^.*\n- /, "")
                    }
                },
                DialogModes.ALL
            );
        }
        catch (e)
        {
        }
    }
}

Requirements

This script can be used in Adobe Photoshop CS3 or later. It has been successfully tested in CS4 on Mac OS X, but should be platform agnostic.

Copyright

This Software is copyright © 2011-2015 by Michel MARIANI.

License

This Software is licensed under the GNU General Public License (GPL) v3.

Download

Installation

Download the Zip file and unzip it.

Move the entire script *FOLDER* (Convert Actions File Folder) with its contents into the Presets/Scripts folder in the default preset location of the Adobe Photoshop application. On next launch, the script will appear in the File>Automate submenu.

Version History

  • 2.1

    • Used new version 4.4.4 of jamEngine scripting library module.
  • 2.0

    • Used new version 4.4.1 of scripting library modules.
  • 1.9

    • Used new version 4.4 of scripting library modules.
  • 1.8

    • Replaced decodeURI () with File.decode () for the sake of consistency.
    • Used new version 4.1 of jamActions scripting library module.
    • Added test for successful opening of output files.
  • 1.7

    • Used new version 4.0 of scripting library modules.
  • 1.6

    • Used new version of jamEngine module.
  • 1.5

    • Replaced \r with \n in dialog text area.
  • 1.4

    • Used new version of scripting library modules.
  • 1.3

    • Used new version of scripting library modules.
  • 1.2

    • Removed the choice of not using a UTF-8 BOM.
  • 1.1

    • Added ‘TEXT’ Mac OS type to newly created JavaScript code files.
  • 1.0

    • Initial release.

Tags: , , , , ,

Comments are closed.