From dd1e467a1d4d549517fae30d2760d35537db2d79 Mon Sep 17 00:00:00 2001 From: Patrick Date: Mon, 14 Jun 2021 19:04:30 +0300 Subject: [PATCH 01/18] Add new sdk-code-generator compilation tests --- __TESTS__/unit/index.test.ts | 32 +- devTools/sanity/createTestFile.ts | 134 ++ devTools/sanity/index.ts | 75 + devTools/sanity/txList | 2153 +++++++++++++++++++++++++++++ package.json | 4 +- 5 files changed, 2394 insertions(+), 4 deletions(-) create mode 100644 devTools/sanity/createTestFile.ts create mode 100644 devTools/sanity/index.ts create mode 100644 devTools/sanity/txList diff --git a/__TESTS__/unit/index.test.ts b/__TESTS__/unit/index.test.ts index 54f8e156..c0ed95a8 100644 --- a/__TESTS__/unit/index.test.ts +++ b/__TESTS__/unit/index.test.ts @@ -1,7 +1,17 @@ +import { + CloudinaryImage, + CloudinaryVideo, + Transformation, + Cloudinary, + Qualifiers, + Actions, + ImageTransformation +} from '../../src/index'; +import {image} from "../../src/qualifiers/source"; +import {sepia} from "../../src/actions/effect"; +import {source} from "../../src/actions/overlay"; -import {CloudinaryImage, CloudinaryVideo, Transformation, Cloudinary, Qualifiers, Actions} from '../../src/index'; - -describe ('Ensures index exports correctly', () => { +describe('Ensures index exports correctly', () => { it('Exports correctly', () => { expect(CloudinaryImage).toBeDefined(); expect(CloudinaryVideo).toBeDefined(); @@ -11,3 +21,19 @@ describe ('Ensures index exports correctly', () => { expect(Actions).toBeDefined(); }); }); + + +/** + * @param urlToParse - the url to parse + */ +const foo = async (urlToParse: string) => {}; + +/** + * + */ +async function bar() { + +} + + + diff --git a/devTools/sanity/createTestFile.ts b/devTools/sanity/createTestFile.ts new file mode 100644 index 00000000..f7934176 --- /dev/null +++ b/devTools/sanity/createTestFile.ts @@ -0,0 +1,134 @@ +import {ITxResult} from "./index"; + +const fs = require('fs'); + +const prettier = require('prettier'); + +function createTestFile(txs: ITxResult[]){ + let file = ` + + import { Dither, checkerboard2x1Dither, circles5x5Black, circles5x5White, circles6x6Black, circles6x6White, circles7x7Black, circles7x7White } from "../src/qualifiers/dither"; +import { Variable, setString, setInteger, set, setAssetReference, setFloat, setFromContext, setFromMetadata } from "../src/actions/variable"; +import { Rotate, byAngle, mode } from "../src/actions/rotate"; +import { GradientDirection } from "../src/qualifiers/gradientDirection"; +import { ColorSpace } from "../src/qualifiers/colorSpace"; +import { Dpr, auto } from "../src/qualifiers/dpr"; +import { CustomFunction } from "../src/actions/customFunction"; +import { Extract } from "../src/actions/extract"; +import { ImproveMode } from "../src/qualifiers/improveMode"; +import { Source, video, image } from "../src/qualifiers/source"; +import { RoundCorners, max, byRadius } from "../src/actions/roundCorners"; +import { Format, auto, ai, arw, audioAac, audioAiff, audioAmr, audioFlac, audioM4a, audioMp3, audioOgg, audioOpus, audioWav, avif, bmp, cr2, djvu, eps, eps3, ept, flif, fxb, gif, glb, gltf, hdp, heic, heif, ico, indd, jp2, jpc, jpe, jpeg, jpg, jxr, pdf, png, ps, psd, spd, svg, tga, tif, tiff, usdz, video3g2, video3gp, videoAvi, videoFlv, videoM2ts, videoM3u8, videoMkv, videoMov, videoMp4, videoMpd, videoMpeg, videoMts, videoMxf, videoOgv, videoTs, videoWebm, videoWmv, wdp, webp} from "../src/qualifiers/format"; +import { Quality } from "../src/qualifiers/quality"; +import { ImageTransformation } from "../src/transformation/ImageTransformation"; +import { Transcode, audioCodec, audioFrequency, bitRate, fps, fpsRange, ITranscodeAction, keyframeInterval, streamingProfile, toAnimated, videoCodec } from "../src/actions/transcode"; +import { Overlay, source } from "../src/actions/overlay"; +import { AutoFocus } from "../src/qualifiers/autoFocus"; +import { ArtisticFilter, alDente, athena, audrey, aurora, daguerre, eucalyptus, fes, frost, hairspray, hokusai, incognito, linen, peacock, + , primavera, quartz, redRock, refresh, sizzle, sonnet, ukulele, zorro} from "../src/qualifiers/artisticFilter"; +import { Gravity, autoGravity, compass, focusOn, xyCenter } from "../src/qualifiers/gravity"; +import { AnimatedFormat } from "../src/qualifiers/animatedFormat"; +import { Background, auto, blurred, border, borderGradient, color, predominant, predominantGradient } from "../src/qualifiers/background"; +import { ChromaSubSampling } from "../src/qualifiers/chromaSubSampling"; +import { Position } from "../src/qualifiers/position"; +import { Resize, fill, thumbnail, scale, crop, fillPad, fit, imaggaCrop, imaggaScale, limitFill, limitFit, limitPad, minimumFit, minimumPad, pad} from "../src/actions/resize"; +import { Color } from "../src/qualifiers/color"; +import { BlendMode } from "../src/qualifiers/blendMode"; +import { CloudinaryMedia } from "../src/assets/CloudinaryMedia"; +import { Compass, center, east, north, northEast, northWest, south, southEast, southWest, west } from "../src/qualifiers/compass"; +import { Adjust, saturation, autoBrightness, autoColor, autoContrast, blue, brightness, brightnessHSB, by3dLut, contrast, fillLight, gamma, green, hue, IAdjustAction, improve, opacity, opacityThreshold, recolor, red, replaceColor, sharpen, tint, unsharpMask, vibrance, viesusCorrect } from "../src/actions/adjust"; +import { + RotationMode, + verticalFlip, + autoRight, +} from "../src/qualifiers/rotationMode"; +import { Region, ocr, faces, custom} from "../src/qualifiers/region"; +import { GradientFade } from "../src/qualifiers/GradientFade"; +import { Effect, vignette, sepia, accelerate, advancedRedEye, artisticFilter, assistColorBlind, blackwhite, blur, boomerang, cartoonify, colorize, deshake, dither, EffectActions, fadeIn, fadeOut, gradientFade, grayscale, loop, makeTransparent, negate, noise, oilPaint, outline, pixelate, redEye, removeBackground, reverse, shadow, simulateColorBlind, styleTransfer, theme, transition, vectorize} from "../src/actions/effect"; +import { Delivery, dpr, quality, colorSpace, colorSpaceFromICC, defaultImage, density, format} from "../src/actions/delivery"; +import { FocusOn, advancedEyes, advancedFace, advancedFaces, aeroplane, background, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, face, faces, horse, microwave, motorbike, FocusOnValue, ocr, person, pottedplant, refrigerator, sheep, sink, skateboard, sofa, train, tvmonitor } from "../src/qualifiers/focusOn"; +import { OutlineMode } from "../src/qualifiers/outlineMode"; +import { SimulateColorBlind } from "../src/qualifiers/simulateColorBlind"; +import { StreamingProfile } from "../src/qualifiers/streamingProfile"; +import { Underlay } from "../src/actions/underlay"; +import { VideoEdit, trim, volume, concatenate, preview } from "../src/actions/videoEdit"; +import { VideoTransformation } from "../src/transformation/VideoTransformation"; +import { Border, solid } from "../src/actions/border"; +import { Flag, custom, ignoreInitialAspectRatio, attachment, animated, animatedPng, animatedWebP, anyFormat, clip, clipEvenOdd, forceIcc, forceStrip, getInfo, hlsv3, ignoreMaskChannels, immutableCache, keepAttribution, keepDar, keepIptc, layerApply, lossy, mono, noOverflow, noStream, png8, png24, png32, preserveTransparency, progressive, rasterize, regionRelative, relative, sanitize, splice, streamingAttachment, stripProfile, +, tiff8Lzw, tiled, truncateTS, waveform} from "../src/qualifiers/flag"; +import { AudioCodec, none } from "../src/qualifiers/audioCodec"; +import { PSDTools } from "../src/actions/psdTools"; +import { TextDecoration } from "../src/qualifiers/textDecoration"; +import { Transformation } from "../src/transformation/Transformation"; +import { AutoGravity } from "../src/qualifiers/gravity/autoGravity/AutoGravity"; +import { Conditional, ConditionalAction, ifCondition } from "../src/actions/conditional"; +import { FontWeight } from "../src/qualifiers/fontWeight"; +import { AspectRatio, ar1X1, ar3X1, ar3X2, ar4X3, ar5X4, ar16X9, ignoreInitialAspectRatio} from "../src/qualifiers/aspectRatio"; +import { Timeline } from "../src/qualifiers/timeline"; +import { NamedTransformation, name } from "../src/actions/namedTransformation"; +import { Reshape, trim, cutByImage, distort, distortArc, shear } from "../src/actions/reshape"; +import { Expression, expression } from "../src/qualifiers/expression"; +import { Concatenate, videoSource } from "../src/qualifiers/concatenate"; +import { TextStyle } from "../src/qualifiers/textStyle"; +import { Volume, byDecibels, byPercent, mute } from "../src/qualifiers/volume"; +import { TextAlignment, center, end, justify, left, right, start } from "../src/qualifiers/textAlignment"; +import { Transition } from "../src/qualifiers/transition"; +import { VideoCodecLevel, vcl30, vcl31, vcl40, vcl41, vcl42, vcl50, vcl51, vcl52 } from "../src/qualifiers/videoCodecLevel"; +import { Progressive } from "../src/qualifiers/progressive"; +import { FontStyle, italic, normal } from "../src/qualifiers/fontStyle"; +import { VideoCodecProfile, baseline, high, main } from "../src/qualifiers/videoCodecProfile"; +import { ShakeStrength, pixels16, pixels32, pixels48, pixels64 } from "../src/qualifiers/shakeStrength"; +import { VideoCodec, auto, h264, h265, proRes, theora, vp8, vp9 } from "../src/qualifiers/videoCodec"; +import { FontAntialias, best, fast, good, gray, none, subpixel } from "../src/qualifiers/FontAntialias"; +const https = require("http"); + +const CloudinaryImage = CloudinaryMedia; +const CloudinaryVideo = CloudinaryMedia; + `; + + + file += `describe("Testing", () => {\n`; + + file += txs.map((txResult) => { + let test = `it("${txResult.txString}", () => {`; + test += `const parts = '${txResult.txString}'.replace(/\\//g, ',').split(',');\n\n`; + + test += `const tAsset = ${txResult.parsedCode}`; + + test += '\n})\n'; // Close it test + + // code += "let tAsset = " + described_class.generate_code(nil, :js_2, { + // :public_id => SAMPLE_ID, + // :transformation_string => transformation_string.rstrip, + // :format_code => false + // }) + // code += "\n\n" + // + // code += "\t\t\tparts.forEach((part) => { expect(tAsset.toString()).toContain(part)});\n\n" + // + // if ENV['FETCH_IMAGES'] && ENV['FETCH_IMAGES'].length > 0 + // code += " https.get(tAsset.toURL(), (resp:any) => {\n"; + // code += " expect(resp.headers['x-cld-error']).toBeUndefined();\n"; + // code += " done();\n"; + // code += " })\n"; + // else + // code += " done();\n"; + // end + + try { + return prettier.format(test, {parser:'babel'}); + } catch (e) { + return test; + } + }).join('\n'); + + file += `\n})\n`; + + try { + return prettier.format(file, {parser:'babel'}); + } catch (e) { + return file; + } +} + +module.exports = createTestFile; diff --git a/devTools/sanity/index.ts b/devTools/sanity/index.ts new file mode 100644 index 00000000..4f3ab031 --- /dev/null +++ b/devTools/sanity/index.ts @@ -0,0 +1,75 @@ +const fs = require('fs'); +const nodeFetch = require('node-fetch'); +const file = fs.readFileSync(`${__dirname}/txList`, 'utf-8'); +const createTestFile = require('./createTestFile'); + +export interface ITxResult { + error: string; + txString: string; + parsedCode: string; + actionsDTO:any; +} + +export interface ITXResults { + success: ITxResult[], + fail: ITxResult[] +} + +/** + * Remove duplicates and clean lines starting with # + * @type {string[]} + */ +const transformationStrings = ([...new Set(file.split('\n'))] as string[]) + .filter((a) => a[0] !== '#').filter((a) => a); + + +const baseURL = `http://localhost:3000/dev/sdk-code-gen`; + +const results:ITXResults = { + success:[], + fail: [] +}; + +console.log(`Attempting to generate code for ${transformationStrings.length} transformations\n`); +transformationStrings.forEach(async (txString, i) => { + // Space requests apart + await new Promise((res) => { + setTimeout(() => { + res(5 * i + 1); + }, 5 * i + 1); + }); + + console.log('Processing transformation:', i); + + const URL = `${baseURL}?url=https://res.cloudinary.com/demo/image/upload/${txString}/sample`; + + const res = await nodeFetch(URL).catch((e: Error) => { + console.log(e); + }); + + const obj = await res.json(); + + // Fail + if (obj.parsedCode.indexOf('Cannot parse') >= 0) { + results.fail.push({ + txString, + error: obj.parsedCode, + parsedCode: null, + actionsDTO: obj.actionsDTO + }); + } else { // Success + results.success.push({ + txString, + parsedCode: obj.parsedCode, + error: null, + actionsDTO: obj.actionsDTO + }); + } + + if (i === transformationStrings.length - 1) { + fs.writeFileSync(`${__dirname}/results.json`, JSON.stringify(results)); + fs.writeFileSync(`${__dirname}/../../__TESTS__/compilation.test.ts`, createTestFile(results.success)); + } +}); + + diff --git a/devTools/sanity/txList b/devTools/sanity/txList new file mode 100644 index 00000000..b58e0ca2 --- /dev/null +++ b/devTools/sanity/txList @@ -0,0 +1,2153 @@ +bo_5px_solid_black +bo_2px_solid_black,so_100 +bo_2px_solid_black,so_101 +bo_2px_solid_black,so_133 +bo_2px_solid_black,so_14 +bo_2px_solid_black,so_256 +bo_2px_solid_black,so_36 +bo_2px_solid_black,so_371 +bo_2px_solid_black,so_386,c_fill,w_230,h_129 +bo_2px_solid_black,so_48.5 +bo_2px_solid_black,so_63,c_fill,w_230,h_129 +bo_2px_solid_black,so_68 +bo_2px_solid_black,so_98 +a_-20 +a_180/w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0,du_5/fl_layer_apply +a_20 +a_90 +a_auto_right +a_vflip/a_20 +ac_none +ac_none/l_video:electronic,e_volume:-50 +af_22050 +af_96000 +ar_1,c_fill,r_max +ar_1.0,c_scale,g_liquid,w_1.0/w_500,h_500 +ar_1.5,c_crop +ar_16:9,c_fill +ar_16:9,c_fill/c_scale,w_auto/c_limit,w_1000 +ar_16:9,c_fill/c_scale,w_auto:breakpoints +ar_16:9,c_fill/c_scale,w_auto:breakpoints:json +ar_16:9,c_fill/c_scale,w_auto:breakpoints_200_1920_30_15 +ar_1:1,c_fill +ar_1:1,c_fill,g_auto,w_400 +ar_2.5,c_crop +ar_4:3,c_fill/c_scale,w_auto,dpr_auto +b_blue,c_pad,h_400,w_660 +b_lightblue +b_rgb:d5d2ca,h_300 +bo_1px_solid_black,a_0/f_auto,q_auto,dpr_auto +bo_1px_solid_black,a_0/f_auto,q_auto,dpr_auto,h_300 +bo_1px_solid_black,dpr_2,q_auto,f_auto,w_400 +bo_1px_solid_black,q_auto,dpr_2,f_auto +bo_1px_solid_gray +bo_1px_solid_gray,dpr_auto +bo_1px_solid_gray/dpr_auto +bo_1px_solid_gray/f_auto,dpr_2,q_auto/h_250 +bo_1px_solid_gray/f_auto,dpr_auto,q_auto +bo_1px_solid_gray/f_auto,q_auto,dpr_auto +bo_1px_solid_gray/f_auto,q_auto,w_350,dpr_2 +bo_1px_solid_gray/f_auto,q_auto,w_600,dpr_2 +bo_1px_solid_gray/f_auto,q_auto,w_700,dpr_2 +bo_1px_solid_gray/f_auto,w_250,dpr_2,q_auto +bo_1px_solid_gray/f_auto,w_300,dpr_2,q_auto +bo_1px_solid_gray/f_auto,w_350,dpr_2,q_auto +bo_1px_solid_gray/f_auto,w_500,dpr_2,q_auto +bo_1px_solid_gray/f_auto,w_600,dpr_2,q_auto +bo_1px_solid_gray/f_auto,w_650,dpr_2,q_auto +bo_1px_solid_gray/f_auto,w_700,dpr_2,q_auto +bo_1px_solid_gray/f_auto/q_auto +bo_1px_solid_gray/q_auto,h_450,f_auto,dpr_2 +bo_1px_solid_gray/q_auto,w_400,f_auto,dpr_2 +bo_1px_solid_gray/w_400,dpr_2,q_auto,f_auto +bo_1px_solid_gray/w_400,f_auto,q_auto,dpr_2 +bo_1px_solid_gray/w_450,f_auto,dpr_2,q_auto +bo_1px_solid_gray/w_500,f_auto,q_auto,dpr_2 +bo_1px_solid_gray/w_550,q_auto,dpr_2,f_auto +bo_1px_solid_gray/w_600,f_auto,q_auto,dpr_2 +bo_1px_solid_rgb:ccc,f_auto,dpr_2 +bo_2px_solid_black +bo_2px_solid_black,f_auto,q_auto +bo_2px_solid_black/c_fill,w_230,h_129 +bo_40px_solid_brown +bo_5px_solid_black,f_auto,q_auto/dpr_auto +bo_5px_solid_red +bo_60px_solid_rgb:00390b60 +#fn_render:w_500;h_500;du_18;vars_(tdur_1500;transition_s:hexagonalize;slides_((media_i:docs:shoppable_sunglasses;sdur_2000);(media_i:docs:shoppable_dress;sdur_4000);(media_i:docs:shoppable_bag2;sdur_3000);(media_i:docs:shoppable_bag;sdur_3000)))/f_auto,q_auto +#fn_render:w_500;h_500;du_20;vars_(sdur_3000;tdur_1500;transition_s:circlecrop;slides_((media_i:docs:shoppable_sunglasses);(media_i:docs:shoppable_dress);(media_i:docs:shoppable_bag2);(media_i:docs:shoppable_bag)))/f_auto,q_auto +#fn_render:w_640;h_480;du_20;vars_(sdur_3000;tdur_1500;transition_s:hexagonalize;slides_((media_v:hourglass_timer;type_s:video);(media_i:docs:shoppable_dress);(media_i:docs:shoppable_bag2);(media_i:docs:shoppable_bag)))/f_auto,q_auto +$award_!First!,$color_!rgb:FFFFFF!,$style_!Arial_45!/l_text:$style:%20%20$(award +# Due to color - TODO Add this +#$bcolor_!rgb:0000ff!/if_fc_gt_0,$bcolor_!red!/bo_5px_solid_$bcolor,c_fill,h_120,w_120 +$colors_5,fn_wasm:quantize.wasm +$img_current,$height_ih/if_w_lt_800/c_scale,e_blur:800,u_$img,w_800,h_$height/e_brightness:40,fl_layer_apply/if_end +#Due to color TODO Add this +#$img_current/e_grayscale/l_$img,w_0.3,bo_10px_solid_white/fl_layer_apply,g_north_west/q_auto,f_auto,dpr_2.0,w_900 +Due to position - TODO Add this +#$mainvideowidth_500/$overlaywidth_$mainvideowidth_div_3/w_$mainvideowidth/l_video:kitten_fighting,w_$overlaywidth,g_south_east +$newwidth_10_add_iw_mul_0.3,w_$newwidth +# Due to color - TODO Add this +#$overlay_ref:!docs:sale!/fn_wasm:docs:pnglayer.wasm/bo_1px_solid_black +$qualtag_!Pro!/if_$qualtag_in_tags,q_80/if_else,q_30/w_500 +$qualtag_!Pro!/if_$qualtag_in_tags,q_90/if_else,q_30/w_500 +$qualtag_!important!,$delwidth_450/t_highqual-if-tagged +$rating_!thumbs-down!/t_image_ratings +$rating_!thumbs-down!/t_image_ratings/w_200 +$rating_!thumbs-up!/t_image_ratings +$rating_!thumbs-up!/t_image_ratings/w_200 +$w_200,$ar_0.8/w_$w,ar_$ar,c_fill,g_face +$width_115/t_passport_photo +$width_140/t_passport_photo +$width_165/t_passport_photo +$width_60/t_passport_photo +$widthval_200,$arval_0.8/w_$widthval,ar_$arval,c_fill,g_face +br_250k +br_500000 +br_500k:constant +c_crop,ar_1.85356,so_813,g_south/c_fill,w_230,h_129 +c_crop,ar_1:1,w_1000,g_auto:cat +# Due to textStyle - TODO ADD THIS +#c_crop,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This +c_crop,e_viesus_correct,g_south,r_20,w_1000/c_scale,g_north_east,l_viesus_logo,o_50,w_100,x_10,y_10/c_scale,w_600 +c_crop,g_cat:dog +c_crop,g_cat:dog/w_0.25,c_scale +c_crop,g_dog:auto:bird,w_600,h_800 +c_crop,g_dog:auto:bird,w_600,h_800/w_0.25,c_scale +c_crop,g_dog:bird,w_600,h_800 +c_crop,g_dog:bird,w_600,h_800/w_0.25,c_scale +c_crop,g_dog:cat +c_crop,g_dog:cat/w_0.25,c_scale +c_crop,g_face +c_crop,g_face,h_150,w_150 +c_crop,g_face,h_400,w_400 +c_crop,g_face,r_75,bo_10px_solid_grey/l_young_couple,w_150,h_150,c_thumb,r_max,g_faces,bo_3px_solid_black/fl_layer_apply,g_north_east +# Zoom not supported with crop - Needs to be fixed by docs team +c_crop,g_face,z_1.2,h_150,w_150 +c_crop,g_microwave +c_crop,g_microwave,ar_1 +c_crop,g_microwave,ar_1/w_0.3,c_scale +c_crop,g_microwave/w_0.3,c_scale +c_crop,g_north,h_200,w_260 +c_crop,g_north_west,h_150,w_150 +c_crop,g_refrigerator +c_crop,g_refrigerator,ar_1 +c_crop,g_refrigerator,ar_1/w_0.3,c_scale +c_crop,g_refrigerator/w_0.3,c_scale +c_crop,g_sink +c_crop,g_sink,ar_1 +c_crop,g_sink,ar_1/w_0.3,c_scale +# Zoom not supported with crop - Needs to be fixed by docs team +c_crop,g_sink,z_0.8 +c_crop,g_sink/w_0.3,c_scale +c_crop,h_100,w_150,x_380,y_250/c_fill,h_100,w_130/a_20/c_scale,w_0.8 +c_crop,h_160,w_100 +c_crop,h_200,w_200 +c_crop,w_300,h_300/c_scale,w_150,r_max +c_crop,x_80,y_30,h_150,w_150 +c_fill,ar_0.7,w_200 +c_fill,ar_0.7,w_750 +c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This +c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This%20is%20my%20picture,y_20/a_20 +c_fill,e_style_transfer,h_700,l_lighthouse,w_700 +c_fill,e_style_transfer,h_700,l_lighthouse,w_700/c_scale,w_250 +c_fill,g_auto,h_250,w_250 +c_fill,g_auto,h_400,ar_0.8 +c_fill,g_auto,h_400,ar_0.8/h_300 +c_fill,g_auto,h_500,w_500 +c_fill,g_auto:classic,ar_0.7,w_200 +c_fill,g_auto:classic,ar_0.7,w_750 +c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8 +c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8/h_300 +c_fill,g_auto:subject,ar_0.7,w_200 +c_fill,g_auto:subject,ar_1:1 +c_fill,g_north,h_200,w_150 +c_fill,g_north,h_200,w_150/ +c_fill,g_ocr_text,h_250,w_250 +c_fill,g_ocr_text,h_500,w_500 +c_fill,g_south,h_250,w_400/l_nice_couple/c_crop,fl_region_relative,g_faces,h_1.3,w_1.3/e_saturation:50/e_vignette/c_scale,w_100/r_max/fl_layer_apply,g_center,x_-20,y_20/l_balloon/c_scale,h_55/e_hue:-20/a_5/fl_layer_apply,x_30,y_5/l_text:Cookie_40_bold:Love/co_rgb:F08,e_colorize/a_20/fl_layer_apply,x_-45,y_44/c_crop,h_250,w_300,x_30/r_60 +c_fill,h_100,w_150 +c_fill,h_150,q_jpegmini,w_200 +c_fill,h_150,w_100 +c_fill,h_150/l_video:dog,c_fill,h_150/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply +c_fill,h_200,w_200 +c_fill,h_200,w_200/e_brightness:100,h_200,u_site_bg,w_200 +c_fill,h_200,w_300,r_20 +c_fill,h_250,w_250 +c_fill,h_300,w_200 +c_fill,h_300,w_300 +c_fill,h_500,w_500 +c_fill,h_700,w_700/e_style_transfer:60,l_lighthouse +c_fill,h_700,w_700/e_style_transfer:preserve_color,l_lighthouse +c_fill,h_700,w_700/e_style_transfer:preserve_color:40,l_lighthouse +c_fill,h_700,w_700/e_style_transfer:preserve_color:40,l_lighthouse/w_250 +c_fill,r_50,w_400,h_400,g_north,f_auto,bo_2px_solid_rgb:999/e_shadow:20,co_rgb:ccc/a_30,co_rgb:ec9800,e_colorize,l_url2png_logo/ +c_fill,w_100,h_100 +c_fit,h_150,w_150 +c_fit,h_16,w_16/e_sepia +c_fit,w_10/a_15 +c_imagga_crop +c_imagga_crop,e_saturation:50,h_300,r_20,w_450/g_south_west,l_imagga_logo,o_80,w_100,x_10,y_10 +c_imagga_crop,h_380,w_380 +c_imagga_scale,h_150,w_150 +c_imagga_scale,h_200,w_150 +c_imagga_scale,h_240,w_260 +c_imagga_scale,w_150,h_200 +c_limit,w_300/if_iw_gt_300,co_white,g_south_east,l_text:Arial_15_bold:Image%20scaled%20down%20to%20300px +c_lpad,w_480,h_320,vs_2,q_70,br_1400k,vc_h264:baseline:3.0 +c_lpad,w_960,h_640,vs_2,q_70,br_5m,vc_h264:main:3.1 +c_pad,du_10,h_360,q_70,w_480 +c_pad,h_200,w_200,b_black +c_pad,h_300,w_400 +c_pad,h_320,w_480,b_blurred:400:15 +c_pad,h_360,w_480,q_70,du_10 +c_pad,h_360,w_480/du_10/q_70 +c_pad,h_360,w_480/du_10/q_70/vc_auto +c_pad,h_360,w_480/du_10/q_70/vc_h265 +c_pad,h_360,w_480/du_10/q_70/vc_vp9 +c_pad,w_200,h_200,e_saturation:50/e_shadow/bo_1px_solid_rgb:666 +c_pad,w_400 +c_scale,dl_1000,e_trim,w_700 +c_scale,e_grayscale,f_auto,q_auto,w_100 +c_scale,e_saturation:50,r_20,w_400/g_south_east,l_logo_jpegmini,o_80,w_100,x_10,y_10/q_jpegmini +c_scale,e_viesus_correct,w_400 +c_scale,e_viesus_correct,w_500 +c_scale,h_0.3 +c_scale,h_150 +c_scale,h_200,w_200 +c_scale,h_200,w_200/e_sepia +c_scale,q_jpegmini,w_400 +c_scale,q_jpegmini:1,w_400 +c_scale,w_0.5 +c_scale,w_100 +c_scale,w_200/r_max +c_scale,w_400 +c_scale,w_400/c_imagga_scale,h_150,l_family_bench.png,r_max,w_150 +c_scale,w_400/l_cloudinary_icon_blue,fl_no_overflow +c_scale,w_400/l_text:Arial_100:Big%20Flowers,co_yellow,fl_text_disallow_overflow +c_scale,w_400/l_text:Arial_100:Flowers,co_yellow,b_rgb:FEB61FC2 +c_thumb,g_adv_face,h_100,w_100 +c_thumb,g_adv_face,w_100,h_100 +c_thumb,g_adv_faces,w_150,h_150 +c_thumb,g_face,h_130,w_130/g_south_east,l_badge,w_40,x_20,y_-40 +c_thumb,g_face,h_150,w_150/g_north_east,l_badge,w_0.08,x_0.15,y_0.15 +c_thumb,g_face,h_150,w_150/r_20/e_sepia/l_cloudinary_icon_blue,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10 +c_thumb,g_face,h_150,w_150/r_20/e_sepia/l_cloudinary_icon_blue/e_brightness:100/o_60/c_scale,w_50/fl_layer_apply,g_south_east,x_5,y_5/a_10 +c_thumb,g_face,z_0.75,h_150,w_150 +c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,fl_relative,w_0.5,o_60/dpr_1.0 +c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,fl_relative,w_0.5,o_60/dpr_2.0 +c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,fl_relative,w_0.5,o_60/dpr_3.0 +c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,w_50,o_60/dpr_2.0 +co_lightblue,e_outline:outer:100 +co_orange,e_outline:outer:15:200 +co_rgb:009900,e_shadow:50,x_10,y_10 +co_rgb:1a8502,e_shadow:50,x_-15,y_15 +co_rgb:20a020,e_colorize:50 +cs_keep_cmyk +cs_srgb +d_avatar.png +dl_100 +dl_200 +dn_20 +dpr_2 +dpr_2,f_auto,q_auto,w_800 +dpr_2,f_auto,q_auto/bo_1px_solid_gray +dpr_2,q_auto,f_auto +dpr_2,q_auto,f_auto,bo_1px_solid_black +dpr_2,q_auto,f_auto,w_500,bo_1px_solid_gray +dpr_2,q_auto,f_auto,w_600 +dpr_2,q_auto,f_auto,w_600,bo_1px_solid_gray +dpr_2,q_auto,f_auto/bo_1px_solid_gray +dpr_auto,w_400/bo_1px_solid_gray +dpr_auto,w_600/bo_1px_solid_gray +dpr_auto/bo_1px_solid_gray +dpr_auto/bo_1px_solid_gray/h_300 +dpr_auto/h_300/bo_1px_solid_gray +du_2/e_volume:30 +du_2/e_volume:45 +du_3 +du_30,q_70:qmax_20 +du_5,w_300,h_200/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/e_accelerate:5s,a_180/fl_layer_apply/fl_layer_apply +du_50p,so_2 +e_accelerate:100 +e_adv_redeye +e_adv_redeye/w_300,h_80,c_thumb,g_adv_eyes +e_anti_removal:95,l_cloudinary_icon,g_north_west +e_art:al_dente +e_art:athena +e_art:audrey +e_art:aurora +e_art:daguerre +e_art:eucalyptus +e_art:fes +e_art:frost +e_art:hairspray +e_art:hokusai +e_art:incognito +e_art:linen +e_art:peacock +e_art:primavera +e_art:quartz +e_art:red_rock +e_art:refresh +e_art:sizzle +e_art:sonnet +e_art:ukulele +e_art:zorro +e_assist_colorblind:20 +e_assist_colorblind:8 +e_assist_colorblind:8/e_simulate_colorblind +e_assist_colorblind:xray +e_auto_brightness:80 +e_auto_color:80 +e_auto_contrast:80 +e_bgremoval +e_bgremoval:ffff00 +e_bgremoval:screen +e_blackwhite +e_blackwhite:40 +e_blue:90 +e_blur:100 +e_blur:300 +e_blur:500/l_video:dog,w_600/w_500 +e_blur:800 +e_blur_faces:800 +e_blur_region:1000,h_425,w_550,x_600,y_400 +e_blur_region:1500,y_0.75 +e_blur_region:800,g_ocr_text +e_blur_region:800,g_ocr_text/h_300 +e_brightness:60 +e_brightness_hsb:-50 +e_cartoonify/r_max/e_outline:100,co_lightblue/b_lightblue,h_300,c_pad +e_cartoonify/r_max/e_outline:100,co_lightblue/b_lightblue/h_300 +e_cartoonify:20:bw +e_cartoonify:70:80 +e_colorize:35,co_darkviolet +e_colorize:80 +e_contrast:-70 +e_cut_out,l_docs:logo:logo,g_south_west,w_200,x_20,y_20 +e_deshake:32 +e_displace,l_radialize,y_100 +e_distort:150:340:1500:10:1500:1550:50:1000 +e_distort:arc:180 +e_fade:2000 +e_fade:2000/e_fade:-4000 +e_fill_light:70:20 +e_gamma:50 +e_gradient_fade:symmetric:10,x_0.2,y_0.4 +e_grayscale +e_green:-30 +e_hue:40 +e_improve:50 +e_improve:indoor +e_improve:outdoor +e_lightroom:saturation_-100:clarity_25:contrast_73:vignetteamount_60 +e_lightroom:saturation_-100:clarity_25:contrast_73:vignetteamount_60/w_500,q_auto,e_distort:0:0:500:100:500:232:0:332 +e_lightroom:whitebalance_auto +e_lightroom:whitebalance_shade:clarity_25 +e_lightroom:whitebalance_tungsten +e_lightroom:xmp:authenticated:my_presets:warm_shadow_auth.xmp +e_lightroom:xmp:my_presets:warm_shadow.xmp +e_lightroom:xmp:soft_mist.xmp +e_lightroom:xmp:soft_mist.xmp/r_50,f_auto,q_auto,bo_40px_solid_orange/a_5/w_400 +e_lightroom:xmp:soft_mist.xmp/w_300 +e_lightroom:xmp:warm_shadow.xmp +e_lightroom:xmp:warm_shadow.xmp/w_300 +e_loop:2 +e_make_transparent:5 +e_multiply,l_cloudinary_icon_blue +e_negate +e_noise:100 +e_oil_paint:40 +e_oil_paint:70 +e_opacity_threshold:1/b_blue +e_ordered_dither:12 +e_outline,co_orange +e_outline:fill,co_orange +e_outline:inner,co_orange +e_outline:inner_fill,co_orange +e_outline:outer,co_orange +e_outline:outer:20:200 +e_outline:outer:20:200/e_red:50/e_sharpen/e_improve/o_70 +e_outline:outer:20:200/l_cloudinary_icon_white/e_red:50/e_sharpen/e_improve/o_70 +e_overlay,l_cloudinary_icon_blue +e_pixelate:20 +e_pixelate_faces:15 +e_pixelate_faces:9 +e_pixelate_region:25,y_0.75 +e_pixelate_region:35,h_425,w_550,x_600,y_400 +e_preview,fl_getinfo +e_preview:duration_12.0:max_seg_3:min_seg_dur_3.0 +e_preview:duration_5.0 +e_preview:duration_8/c_crop,w_1600,h_800,e_loop +e_progressbar:bar:blue:6 +e_progressbar:color_FF0000:width_12:type_frame +e_progressbar:frame:FF0000:12 +e_progressbar:frame:FF0000:6 +e_progressbar:type_bar:color_blue:width_6 +e_recolor:0.3:0.7:0.1:0.3:0.6:0.1:0.2:0.5:0.1 +e_red:50 +e_redeye +e_replace_color:2F4F4F:20 +e_replace_color:maroon:80:2b38aa +e_replace_color:maroon:80:2b38aa/w_250 +e_replace_color:saddlebrown +e_replace_color:silver:55:89b8ed +e_reverse +e_reverse,fl_splice,l_video:ski_jump/l_video:ski_jump,fl_splice,e_accelerate:-50/e_brightness:10,r_max +e_saturation:50 +e_saturation:70 +e_screen,l_cloudinary_icon_blue +e_sepia:50 +e_shadow:50,x_10,y_10 +e_sharpen +e_sharpen:400 +e_shear:20.0:0.0 +e_simulate_colorblind +e_simulate_colorblind/h_200 +e_simulate_colorblind:deuteranopia +e_simulate_colorblind:protanopia +e_style_transfer,l_davinci_mona_lisa +e_style_transfer,l_lighthouse +e_style_transfer:preserve_color:40,l_lighthouse +e_theme:color_black:photosensitivity_110 +e_theme:color_d3d3d3 +e_tint:100:red:blue:yellow +e_tint:20 +e_tint:50:red:blue +e_tint:equalize:80:red:50p:blue:60p:yellow:40p +e_tint:equalize:80:red:blue:yellow +e_trim:50:yellow +e_unsharp_mask:500 +e_vectorize:colors:3:detail:0.5 +e_vectorize:detail:200 +e_vectorize:colors:15:detail:200:despeckle:0.2:paths:90:corners:100 +e_vibrance:70 +e_viesus_correct +e_vignette:30 +e_volume:50 +eo_10 +f_auto +f_auto,dpr_auto +f_auto,q_auto +f_auto,q_auto,dpr_2 +f_auto,q_auto,dpr_2,h_200,bo_1px_solid_gray +f_auto,q_auto,dpr_2/bo_1px_solid_gray/w_500 +f_auto,q_auto,dpr_auto,w_300 +f_auto,q_auto,h_150,dpr_2,bo_1px_solid_gray +f_auto,q_auto,w_500,dpr_2,bo_1px_solid_gray +f_auto,q_auto/ +f_auto,w_150,dpr_2,q_auto +f_gif/ar_1,b_rgb:a17ec5,c_fill,fl_animated,h_200 +f_glb +f_jpg +f_mp4,w_300 +f_mp4/b_rgb:d5d2ca,h_300,fl_animated +f_png +f_png/a_90,ar_1,b_rgb:a17ec5,c_fill,g_auto,h_200 +f_png/w_800/l_text:Unkempt_250_bold:Water,fl_cutter,e_shadow +f_webm +fl_apng +fl_attachment +fl_attachment:pretty_flower,f_auto +fl_awebp +fl_clip,pg_2 +fl_clip,pg_name:stones +fl_clip_evenodd +fl_draco +fl_lossy +fl_lossy,q_50 +fl_region_relative,g_adv_eyes,l_glasses,w_1.5 +fl_region_relative,g_adv_eyes,l_glasses,w_1.7 +fl_region_relative,g_adv_faces,l_silver_face_mask,w_1.1 +fn_pre:remote:aHR0cHM6Ly9teS5wcmVwcm9jZXNzLmN1c3RvbS9mdW5jdGlvbg== +fn_remote:aHR0cHM6Ly9teS5leGFtcGxlLmN1c3RvbS9mdW5jdGlvbg== +fn_wasm:my_example.wasm +fps_1-5 +g_auto:subject,c_fill,ar_0.7,w_750 +g_auto:subject,c_fill,ar_0.7,w_750,fl_getinfo +g_face,c_crop +# No zoom with crop - Docs need to fix +g_face,c_crop,z_1.3 +g_face,c_thumb,w_150,h_150 +g_face,c_thumb,w_150,h_150,z_0.7 +g_face,w_500,c_thumb,fl_getinfo +g_north,l_text:arial_60:watchme,y_20 +g_south,l_text:Arial_200:Flower +g_south,l_text:Arial_200_bold_italic_stroke_letter_spacing_50:Smile!,co_yellow,bo_10px_solid_blue +h_100,w_190 +h_105/e_shadow:50,x_10,y_10 +h_120 +h_150 +h_150,c_scale,fl_ignore_aspect_ratio +h_150,dpr_2.0 +h_150,dpr_auto +h_150,w_150,c_pad,b_auto:predominant +h_150,w_150,c_pad,b_auto:predominant_gradient:2:diagonal_desc +h_150/e_progressbar:bar:blue:6/ac_none +h_150/e_progressbar:frame:FF0000:6/ac_none +h_150/l_play_icon2,w_0.1 +h_150/q_auto,f_auto,dpr_2/bo_1px_solid_gray +h_200 +h_200,c_scale/e_outline:15:200,co_orange +h_200,w_200,c_pad,b_auto:border +h_200,w_200,c_pad,b_auto:border_contrast +h_200,w_200,c_pad,b_auto:predominant +h_200,w_200,c_pad,b_auto:predominant_contrast +h_200,w_500,fl_waveform +h_200,w_500,fl_waveform,co_black,b_white +h_200,w_500,fl_waveform,co_darkblue,b_grey +h_200/u_docs:iphone_template,h_300,a_90 +h_200/u_docs:transparent_grid,w_1.0,h_1.0,fl_relative,c_crop,o_50 +h_225/q_auto,f_auto,bo_1px_solid_black +h_250 +h_250,w_150,c_fill,g_auto/f_auto/q_auto +h_250,w_400,fl_waveform,so_2,eo_4,co_blue,b_transparent +h_300 +h_300,ar_3:4,c_fill,g_auto:face +h_300,ar_3:4,c_fill,g_auto:faces +h_300,dpr_2.0 +h_300,q_auto,f_auto,dpr_2 +h_300,w_300 +h_300,w_300,c_pad,b_auto:predominant +h_300,w_300,c_pad,b_auto:predominant/e_gradient_fade:symmetric_pad,x_0.5 +h_300,w_300,c_pad,b_auto:predominant_gradient:2:diagonal_desc +h_300,w_300,c_pad,b_auto:predominant_gradient:4:palette_red_green_blue_orange +h_300,w_300,c_pad,b_auto:predominant_gradient_contrast:4 +h_310 +h_320,c_scale/c_pad,h_320,w_480,b_blurred:400:15/e_volume:mute/e_accelerate:100 +h_320,w_480/h_150 +h_350/q_auto,dpr_auto +h_375/u_docs:bg_beach,g_south,w_800 +h_375/u_docs:bg_beach,g_south,w_800/h_200 +h_375/u_docs:rainbow_field,g_south,w_800 +h_375/u_docs:rainbow_field,g_south,w_800/h_200 +h_400,ar_3:4,c_fill,g_auto:face +h_400,ar_9:16,c_fill_pad,g_auto/so_8 +h_400,w_244,c_fill +h_400,w_244,c_fill,so_1 +h_400,w_244,g_auto,c_fill +if_!sale:in_stock!_in_tags,l_sale_icon,w_180,g_south_east,x_30,y_30 +if_!sale:in_stock!_in_tags,l_sale_icon,w_180,g_south_east,x_30,y_30/w_250 +if_ar_gt_0.65_and_w_gt_1000,ar_0.65,h_1000,c_fill +if_ar_gt_1.2,c_pad,h_320,w_480,b_black/if_else,c_pad,h_320,w_480,b_blurred:400:15 +if_ar_gt_3:4_and_w_gt_300_and_h_gt_200,c_crop,w_300,h_200 +if_ar_lt_1.0,$height_300/if_else,$height_200/h_$height +if_ctx:!productType!_eq_!shoes!,w_200,ar_1:1,c_fill,g_auto +if_ils_gt_0.5,w_120,h_150,c_pad/if_else,w_120,h_150,c_fill +if_iw_lte_200,c_fill,h_120,w_80/if_else,c_fill,h_90,w_100 +if_w_gt_300,e_oil_paint +if_w_gt_400,l_thumbs-up-small,w_150,g_north_east,x_10,y_10/w_400,c_limit +if_w_lt_600/l_text:Arial_20:Image%20shown%20in%20full%20scale,co_white,g_south_east/c_scale,e_blur:400,u_small_dinosaur,w_600/if_end +if_w_lte_400/c_fill,h_220,w_180/e_red/if_else/c_fill,h_190,w_300/e_oil_paint/if_end +ki_0.15 +l_badge,o_60,w_500 +l_call_text,fl_region_relative,w_1.1,g_ocr_text +l_call_text,fl_region_relative,w_1.1,g_ocr_text/w_120 +l_cloudinary_icon,so_6.5,eo_10,o_50,e_brightness:100 +l_cloudinary_icon_blue +l_cloudinary_icon_blue,g_north_west,x_20,y_20 +l_cloudinary_icon_blue,w_0.3,fl_relative,g_north_east +l_cloudinary_icon_blue,w_0.5,c_scale,g_north_east,o_70,e_brightness:50 +l_cloudinary_icon_blue,w_0.8,fl_relative +l_cloudinary_icon_blue,w_200,g_east,so_1,eo_11/l_text:arial_40:Sample%20Video,g_south,y_60,so_2 +l_cloudinary_icon_white,so_6.5,eo_10,o_50,e_brightness:100 +l_cloudinary_icon_white,w_200,o_30,fl_tiled +l_cloudinary_icon_white,w_300,g_north_east,o_60 +l_couple/c_crop,g_faces,w_120,h_150/r_max/fl_layer_apply,g_north_east/l_cloudinary_icon_white,w_0.8,fl_relative,o_50,e_brightness:100/l_text:impact_40_bold:Sample%20image,g_south,y_20 +l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9sb2dvLnBuZw==,g_north_west,x_5,y_5 +l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9sb2dvLnBuZw==,g_north_west,x_5,y_5,eo_5 +l_fetch:aHR0cHM6Ly9yZXMuY2xvdWRpbmFyeS5jb20vZGVtby9pbWFnZS91cGxvYWQvbG9nb3MvY2xvdWRpbmFyeV9mdWxsX2xvZ29fd2hpdGVfc21hbGwucG5n +l_golden_star,g_faces,w_1.0,fl_region_relative +l_golden_star,g_faces,w_1.1,fl_region_relative +l_golden_star,g_north_west,w_20,x_314,y_148/w_500 +l_happy_smiley,w_1.3,fl_region_relative,g_faces +l_lut:iwltbap_aspen.3dl +l_lut:iwltbap_aspen.3dl/w_200 +l_lut:iwltbap_sedona.3dl +l_lut:iwltbap_sedona.3dl/w_200 +l_sample,fl_replace_image,e_cartoonify +l_subtitles:arial_20:sample_sub_en.srt +l_subtitles:arial_40:sample_sub_en.srt,co_yellow,b_black +l_subtitles:arial_70:sample_sub_en.srt,co_rgb:ffff00,b_black +l_subtitles:folder-permissions-tutorial.en-us.azure.transcript +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +l_subtitles:lincoln.transcript +l_subtitles:sample_sub_en.srt +l_subtitles:times_20:folder-permissions-tutorial.en-us.azure.transcript,co_blue,g_north +l_text:AlexBrush-Regular.ttf_100:Happy%20New%20Year%20%202017%20,co_white,g_north_west,x_30,y_30 +l_text:Arial_45_bold:John +l_text:arial_60:Cool%20Video,g_south,y_80,so_2,eo_5 +l_text:impact_150:Your%20Brand%20Name%20or%20Logo%20Here,e_distort:arc:-120,co_white,g_south,y_840,o_60 +l_video:dog,so_4.5,eo_8,a_90,w_200,g_east +l_video:dog,w_0.5 +l_video:electronic +l_video:kitten_fighting,e_fade:3000,w_100 +l_video:ski_jump,eo_6,c_scale,w_250,g_north_east +l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_brightness:10,r_max +l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_volume:mute/e_brightness:10,r_max +l_video:ski_jump,so_3,eo_6,c_scale,w_250,g_north_east +o_30 +p_home_thing_ +p_my_sprite_ +pg_2 +pg_2-4;6;8 +pg_2-4;6;8/w_300 +pg_embedded:3 +pg_embedded:3/w_300 +pg_embedded:7 +pg_embedded:name:skyline-3242040_1920 +pg_embedded:name:skyline-3242040_1920.jpg +pg_name:record_cover;Shadow +pg_name:record_cover;Shadow/w_300 +q_100 +q_20 +q_50 +q_60 +q_60:420 +q_80 +q_auto +q_auto,dpr_2,bo_1px_solid_black,f_auto +q_auto,dpr_2,f_auto +q_auto,dpr_2,f_auto,bo_1px_solid_black +q_auto,dpr_2,f_auto,bo_1px_solid_gray +q_auto,dpr_2,h_300,f_auto,bo_1px_solid_black +q_auto,dpr_2,w_150,f_auto +q_auto,dpr_auto +q_auto,f_auto +q_auto,f_auto,bo_1px_solid_black +q_auto,f_auto,bo_1px_solid_gray,dpr_2,h_450 +q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_250 +q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_660 +q_auto,f_auto,dpr_2 +q_auto,f_auto,dpr_2,bo_1px_solid_gray +q_auto,f_auto,dpr_2,c_crop,w_100,h_80/w_40 +q_auto,f_auto,dpr_2,h_300 +q_auto,f_auto,dpr_2,w_350,r_20/e_outline:1,co_black +q_auto,f_auto,dpr_2,w_400 +q_auto,f_auto,dpr_2/bo_1px_solid_gray +q_auto,f_auto,dpr_2/w_20 +q_auto,f_auto,dpr_auto +q_auto,f_auto,w_500 +q_auto,w_600,f_auto,dpr_2 +q_auto,w_800,f_auto +q_auto:best +q_auto:eco +q_auto:good +q_auto:low +q_jpegmini +r_20:0:40:60 +r_20:80 +r_max +so_0,du_3 +so_1 +so_10 +so_10p,du_30p +so_120 +so_21/bo_2px_solid_black +so_3 +so_3,eo_5,e_boomerang/e_loop +so_30/bo_2px_solid_black +so_4,w_350,h_350,c_crop,r_20,e_grayscale,bo_5px_solid_black +so_43,du_10/fl_mono +so_5 +so_6.5,eo_10 +so_62 +so_7/h_400,ar_9:16,c_fill,g_auto +so_7/h_400,ar_9:16,c_fill_pad,g_auto +so_8 +so_8.5 +sp_custom_square +sp_full_hd +sp_hd +t_demo_combined +t_fit_100x150 +t_jpg_with_quality_30,w_100,h_50,c_fit +t_jpg_with_quality_30/t_crop_400x400/t_fit_100x150 +t_vignette_angle +u_docs:iphone_template,h_300,a_90 +u_site_bg,w_1.0,h_1.0,fl_relative +vc_auto +vc_h264:baseline:3.1 +vs_1.1s,dl_200,w_200,e_loop:2 +vs_10,dl_100,w_250,fl_awebp,fl_animated +vs_40 +vs_40,dl_200,h_200,e_loop +w_0.25,c_scale +w_0.4,a_20/l_cloudinary_icon_white,w_60,o_50,g_south_east,y_15,x_60 +w_0.5 +w_10/a_10 +w_100 +w_100,h_100,c_fill +w_100,h_100,c_fill,dpr_2.0 +w_100,h_100,c_fill,dpr_2.0,g_face +w_100,h_100,c_pad,dpr_2.0 +w_100,h_150,c_fill +w_100,h_150,c_fill,g_faces +w_100,h_40,c_thumb,g_adv_eyes +w_100/a_-20 +w_100/a_90 +w_100/a_vflip/a_45 +w_100/dpr_1.0 +w_100/dpr_2.0 +w_100/dpr_3.0 +w_1000 +w_1000,f_auto,q_auto:best +w_115,h_135,c_thumb,g_faces +w_120 +w_123/a_45 +w_150,c_scale +w_150,e_art:al_dente +w_150,e_art:athena +w_150,e_art:audrey +w_150,e_art:aurora +w_150,e_art:daguerre +w_150,e_art:eucalyptus +w_150,e_art:fes +w_150,e_art:frost +w_150,e_art:hairspray +w_150,e_art:hokusai +w_150,e_art:incognito +w_150,e_art:linen +w_150,e_art:peacock +w_150,e_art:primavera +w_150,e_art:quartz +w_150,e_art:red_rock +w_150,e_art:refresh +w_150,e_art:sizzle +w_150,e_art:sonnet +w_150,e_art:ukulele +w_150,e_art:zorro +w_150,f_auto,q_auto,dpr_2 +w_150,h_100 +w_150,h_100,c_fill +w_150,h_100,c_fill,r_10:40:25 +w_150,h_100,c_fill,r_25 +w_150,h_100,c_fill,r_25:0 +w_150,h_100,c_fill,r_30:0:30:30 +w_150,h_100,c_scale +w_150,h_150,c_fill +w_150,h_150,c_fill,g_east +w_150,h_150,c_lfill +w_150,h_150,c_limit +w_150,h_150,c_lpad,b_green +w_150,h_150,c_pad,b_black +w_150,h_150,c_pad,b_pink +w_150,h_150,c_scale +w_150,h_150,c_thumb,g_auto +w_150,h_150,c_thumb,g_auto:0 +w_150,h_150,c_thumb,g_center +w_150,h_150,c_thumb,g_face +w_150,h_150,c_thumb,g_face/r_20/e_sepia/l_cloudinary_icon_blue,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10 +w_150,h_200,c_lfill +w_150,h_60,c_fit +w_1520,h_1440,c_crop,g_west,x_50 +w_1520,h_1440,c_crop,g_west,x_50/e_pixelate_region:15,g_ocr_text +w_1520,h_1440,c_crop,g_west,x_50/h_283 +w_20,h_20,c_mfit +w_20,h_20,c_mpad +w_20,q_auto +w_200 +w_200,a_45 +w_200,c_scale/e_outline:20:200,co_red/e_outline:15:200,co_orange/e_outline:10:200,co_yellow +w_200,dpr_2.0 +w_200,f_auto,q_auto,dpr_2 +w_200,h_150,c_crop +w_200,h_150,c_crop,g_north_west +w_200,h_200,c_crop,g_auto +w_200,h_200,c_crop,g_center +w_200,h_200,c_crop,r_max +w_200,h_200,c_fill +w_200,h_200,c_fill,g_auto +w_200,h_200,c_fill,g_center +w_200,h_200,c_fill,g_face +w_200,h_200,c_fill,g_faces +w_200,h_200,c_fill,g_faces/u_docs:iphone_template,h_300,a_90 +w_200,h_200,c_fill,r_max/a_30/e_trim +w_200,h_200,c_fill/e_style_transfer,l_sailing_angel +w_200,h_200,c_fit,a_hflip/l_cloudinary_icon_white,w_0.4,fl_relative,g_north,x_15,y_35,a_4,e_brightness:100,o_70 +w_200,h_200,c_thumb,g_face +w_200,h_200,c_thumb,g_face,r_max +w_200,h_200,c_thumb,g_face,r_max,e_sharpen +w_200,h_200,c_thumb,g_face,r_max,l_face_left/fl_layer_apply,g_north_east +w_200,h_200,c_thumb,g_face/r_20,bo_5px_solid_black/l_cloudinary_icon_white,o_50,w_0.25,fl_relative,g_north_east,y_10,x_10 +w_200,h_220,c_thumb,g_face/l_hexagon_feather_sample,fl_cutter +w_200,h_300,c_fill,g_auto +w_200,h_300,c_fill,g_center +w_200/dpr_1.0 +w_200/dpr_2.0 +w_200/dpr_3.0 +w_230,h_168,c_fit +w_25,h_150,c_fill,g_auto +w_25,h_150,c_fill_pad,g_auto,b_auto +w_250 +w_250,bo_1px_solid_gray +w_250,f_auto,q_auto,dpr_2 +w_250,fl_animated,f_auto +w_250,h_150,c_fill,r_max +w_250,h_250,c_fill +w_250,h_250,c_fill,g_east +w_250,h_250,c_fill,g_faces +w_250,h_250,c_fill,g_north +w_250,h_250,c_fill,g_south_east +w_250,h_250,c_fit +w_250,h_250,c_limit +w_250,h_250,c_lpad,b_black +w_250,h_250,c_mfit +w_250,h_250,c_mpad +w_250,h_250,c_pad,b_black +w_250,q_80 +w_250,q_auto:best +w_250,q_auto:eco +w_250,q_auto:good +w_250,q_auto:low +w_250,x_780,y_350,c_crop +w_250,x_780,y_350,c_crop/u_docs:transparent_grid,w_250,c_crop,o_50 +w_250,x_780,y_350,c_crop/w_1100 +w_250/u_docs:transparent_grid,w_1.0,h_1.0,fl_relative,c_crop,o_50 +w_250/u_docs:transparent_grid,w_250,c_crop,o_50 +w_260,h_200,c_crop,g_north +w_28,q_auto +w_28,q_auto,f_auto +w_28,q_auto,f_auto,dpr_2 +w_300 +w_300,c_fill,g_auto,ar_1:1 +w_300,c_scale,pg_2 +w_300,c_scale,pg_4,e_sepia,r_50,bo_2px_solid_rgb:999/l_aspose_cloud_logo,w_0.9,fl_relative,o_70,g_south,y_20 +w_300,e_accelerate:100 +w_300,e_distort:40:25:280:60:260:155:35:165 +w_300,e_grayscale +w_300,e_noise:50 +w_300,f_auto,q_auto,dpr_2 +w_300,f_auto,q_auto,dpr_2,bo_1px_solid_gray +w_300,h_100,c_scale +w_300,h_200,c_crop +w_300,h_200,c_fill,dpr_auto +w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill +w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0 +w_300,h_200,du_5/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply +w_300,h_200,du_5/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply/l_video:snow_deer,w_300,h_200/du_5/l_video:transition2,e_transition/fl_layer_apply/fl_layer_apply/l_video:dog,fl_splice,w_300,h_200/du_5/fl_layer_apply +w_300,h_200/w_300,h_200,l_sample,fl_splice,du_3/so_0,fl_layer_apply +w_300,h_250,e_grayscale +w_300,h_300,c_fill,b_blue,r_max +w_300,h_300,c_fill,g_face,r_max,f_auto +w_300,h_300,c_fill,r_max,e_sharpen,so_30p/l_cloudinary_icon_blue,w_0.9,fl_relative,o_40 +w_300,h_300,c_fill/l_cloudinary_icon_white,w_0.8,fl_relative,e_brightness:100,o_50 +w_300,h_300,c_pad,b_blue +w_300,h_300,c_pad,b_green +w_300,h_350,c_fill,g_north/ +w_300,h_80,c_thumb,g_adv_eyes +w_300,pg_2 +w_300,r_30 +w_300,r_max +w_300/c_fill,e_shadow,x_w_div_50,y_w_div_50 +w_300/l_text:Arial_40:Cool%25F0%259F%2598%258E +w_300/l_video:dog,w_100,g_north_east,r_max +w_300/w_200,y_30,a_9,h_150,g_north,c_fit,l_text:Times_18_bold_center:Lorem%20ipsum%20dolor%20sit%20amet%20consectetur%20adipisicing%20elit%20sed%20do%20eiusmod%20tempor%20incididunt%20ut%20labore%20et%20dolore%20magna%20aliqua.%20Ut%20enim%20ad%20minim%20veniam%20quis%20nostrud%20exercitation%20ullamco%20laboris%20nisi%20ut%20aliquip%20ex%20ea%20commodo%20consequat. +w_350 +w_350,bo_5px_solid_black/q_auto,dpr_auto +w_350,e_tint:100:red:blue:yellow +w_350,e_tint:20 +w_350,e_tint:equalize:80:red:50p:blue:60p:yellow:40p +w_350,f_auto +w_350,f_gif +w_350,h_200,x_230,y_20,c_crop +w_350/q_auto,dpr_auto +w_400 +w_400,ar_1,c_thumb,g_auto:skateboard +w_400,ar_1,g_auto,c_fill_pad +w_400,ar_1,g_auto,c_fill_pad,so_1 +w_400,c_fill,ar_4:3 +w_400,f_png +w_400,fl_keep_iptc +w_400,h_150,c_lpad,b_green +w_400,h_250,c_fill,g_south/l_nice_couple,w_1.3,h_1.3,g_faces,c_crop,fl_region_relative/e_saturation:50/e_vignette/fl_layer_apply,w_100,r_max,g_center,y_20,x_-20/l_balloon,h_55/e_hue:-20,a_5/fl_layer_apply,x_30,y_5/l_text:Cookie_40_bold:Love,e_colorize,co_rgb:f08/a_20,fl_layer_apply,x_-45,y_44/c_crop,w_300,h_250,x_30/r_60 +w_400,h_300,c_pad +w_400,h_400,c_crop,g_face,r_max/w_200 +w_400,q_auto:best,vc_vp9 +w_450,bo_5px_solid_black/q_auto,dpr_auto +w_480,so_3,eo_5,e_boomerang/e_loop +w_500 +w_500,ar_1,c_crop,g_auto:bottle +w_500,ar_1,c_crop,g_auto:bottle/h_150 +w_500,ar_1,c_crop,g_bottle +w_500,ar_1,c_crop,g_bottle/h_150 +w_500,ar_1,c_fill,g_auto:bottle +w_500,ar_1,c_fill,g_auto:bottle/h_150 +w_500,ar_1,c_fill,g_bottle +w_500,ar_1,c_fill,g_bottle/h_150 +w_500,ar_1,c_thumb,g_auto:bottle +w_500,ar_1,c_thumb,g_auto:bottle/h_150 +w_500,ar_1,c_thumb,g_bottle +w_500,ar_1,c_thumb,g_bottle/h_150 +w_500,ar_1.0,c_fill,g_auto +w_500,ar_1.0,c_fill,g_auto/h_300 +w_500,ar_1.0,c_fill,g_auto:person_avoid +w_500,ar_1.0,c_fill,g_auto:person_avoid/h_300 +w_500,bo_5px_solid_black +w_500,e_brightness:30 +w_500,e_contrast:50 +w_500,e_gamma:-20 +w_500,e_reverse +w_500,e_saturation:-50 +w_500,e_vignette:50 +w_500,f_auto +w_500,f_auto,q_auto,dpr_2/bo_1px_solid_gray +w_500,f_auto/fl_streaming_attachment:mydog +w_500,q_auto,f_auto +w_500,q_auto,f_auto,dpr_2 +w_500/e_brightness:70/l_woman,c_crop,g_face/w_150/e_saturation:50/e_shadow/fl_layer_apply +w_500/e_brightness:70/l_woman,c_crop,g_face/w_250/e_saturation:50/e_shadow,x_20,y_20,co_grey/fl_layer_apply +w_500/e_progressbar:bar:blue:6/ac_none +w_500/e_progressbar:bar:blue:6/ac_none/l_play_icon2,w_0.15 +w_500/e_progressbar:frame:FF0000:12/ac_none +w_500/e_progressbar:frame:FF0000:12/ac_none/l_play_icon2,w_0.15 +w_500/if_!cloudinary!_in_tags/l_cloudinary_icon_white,w_100,g_north_east,o_50,e_brightness:100/l_text:arial_15:By%20Cloudinary,g_north_east,y_10,x_105/if_end/du_5 +w_500/l_cloudinary_icon_blue,g_north_east,o_50,w_200,e_anti_removal:90 +w_500/l_cloudinary_icon_blue,w_150/e_blackwhite/fl_layer_apply,g_north_east +w_500/l_cloudinary_icon_blue,w_150/e_blackwhite/l_cloudinary_icon_blue,w_50/fl_layer_apply/fl_layer_apply,g_north_east +w_500/l_cloudinary_icon_white,o_50,w_100,e_brightness:100,fl_tiled +w_500/l_text:Arial_80:Flowers +w_500/l_text:Times_60:Cool%20image,g_south,y_20 +w_500/l_text:Times_90_bold:Cool%20image,g_south,y_80,co_rgb:FFFF00 +w_500/l_text:Times_90_bold:Cool%20image,g_south,y_80,co_rgb:FFFF0080 +w_500/l_text:Verdana_50_bold:Cool%0Aimage,g_west,x_10 +w_500/l_text:Verdana_75_bold_underline_letter_spacing_14:Flowers +w_500/l_text:sample_text_style:Stylish%20text,g_south +w_500/l_video:docs:bluescreen_watches,e_make_transparent:10,co_rgb:3d8d48,w_1.0,fl_relative/du_15 +w_500/l_video:docs:bluescreen_watches,e_make_transparent:20,co_rgb:0e80d8,w_0.6,fl_relative,g_north/du_15 +w_500/w_400,c_fit,l_text:Neucha_26_bold:Lorem%20ipsum%20dolor%20sit%20amet%20consectetur%20adipisicing%20elit%20sed%20do%20eiusmod%20tempor%20incididunt%20ut%20labore%20et%20dolore%20magna%20aliqua.%20Ut%20enim%20ad%20minim%20veniam%20quis%20nostrud%20exercitation%20ullamco%20laboris%20nisi%20ut%20aliquip%20ex%20ea%20commodo%20consequat. +w_550,h_300,c_fit/f_auto,q_auto,dpr_2 +w_550,h_35,c_crop,g_north_west/bo_1px_solid_gray/dpr_auto +w_600 +w_600,ar_1,c_thumb,g_auto:microwave +w_600,ar_1,c_thumb,g_auto:microwave/h_150 +w_600,ar_1,c_thumb,g_auto:refrigerator +w_600,ar_1,c_thumb,g_auto:refrigerator/h_150 +w_600,ar_1,c_thumb,g_auto:sink +w_600,ar_1,c_thumb,g_auto:sink/h_150 +w_600,f_auto,q_auto,dpr_2 +w_600/q_100 +w_600/q_auto,f_auto,dpr_2/bo_1px_solid_gray +w_600/q_auto:low +w_600/w_570,h_43,c_crop,g_north_west/bo_1px_solid_gray +w_700,dpr_2/f_auto,q_auto +w_700,f_auto,q_auto,dpr_2/bo_1px_solid_gray +w_700,h_700,c_fill +w_700,h_700,c_fill/e_style_transfer,l_sailing_angel +w_700,h_700,c_fill/e_style_transfer:60,l_lighthouse/w_250 +w_700,h_700,c_fill/e_style_transfer:preserve_color,l_lighthouse/w_250 +w_700,h_700,c_fill/w_250 +w_700,q_auto,f_auto,dpr_2 +w_700,r_max/fl_region_relative,g_adv_eyes,l_harlequinmask,w_1.7 +w_700/dpr_auto/bo_1px_solid_gray +w_750,h_750,c_fill,g_faces +w_750,h_750,c_fill,g_faces/u_docs:iphone_template,h_300,a_90 +w_80,h_120,c_fill,g_face +w_80,h_400,c_fill,g_auto +w_80,h_400,c_fill_pad,g_auto,b_auto +w_800 +w_800,r_150 +w_800/bo_1px_solid_gray +w_850,dpr_2 +w_abc +w_auto,c_scale +w_auto,dpr_auto,c_limit/g_north_east,y_5,x_5,co_white,l_text:Arial_18_bold:dpr_auto%0Aw_auto +w_auto,dpr_auto,c_scale +w_auto,f_auto,c_scale +w_auto,g_auto,c_fill +w_auto,q_auto,c_scale +x_355,y_410,w_300,h_200,c_crop +x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill +x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill/a_20/c_scale,w_0.5 +x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill/a_20/w_0.5 +x_355,y_410,w_300,h_200,c_crop/w_150,h_100,c_scale +$award_!First! +# Due to color, TODO - Add this +#$bcolor_!rgb:0000ff!/if_fc_gt_0,$bcolor_!red!/bo_5px_solid_$bcolor,c_fill,h_120,w_120 +$img_current,$height_ih/if_w_lt_800/c_scale,e_blur:800,u_$img,w_800,h_$height/e_brightness:40,fl_layer_apply/if_end +#$img_current/e_grayscale/l_$img,w_0.3,bo_10px_solid_white/fl_layer_apply,g_north_west/q_auto,f_auto,dpr_2.0,w_900 +# Due to position - TODO Add this +#$mainvideowidth_500/$overlaywidth_$mainvideowidth_div_3/w_$mainvideowidth/l_video:kitten_fighting,w_$overlaywidth,g_south_east +$newwidth_10_add_iw_mul_0.3,w_$newwidth +$newwidth_1080/w_$newwidth/$name_!Jane%20Smith!/l_text:Comic%20Sans%20MS_24:%C2%A9$(name),g_south_east,x_10,y_10 +$qualtag_!important!,$delwidth_450/t_highqual-if-tagged +$qualtag_!Pro!/if_$qualtag_in_tags,q_80/if_else,q_30/w_500 +$qualtag_!Pro!/if_$qualtag_in_tags,q_90/if_else,q_30/w_500 +$rating_!thumbs-down!/t_image_ratings +$rating_!thumbs-down!/t_image_ratings/w_200 +$rating_!thumbs-up!/t_image_ratings +$rating_!thumbs-up!/t_image_ratings/w_200 +$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer +$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20 +$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20/t_my_named_mul_trans +$small_150,$big_2_mul_$small_add_4/c_fill,w_$big,h_$small_add_20 +$small_150/c_fill,w_$big,h_$small_add_20 +$w_200,$ar_0.8/w_$w,ar_$ar,c_fill,g_face +$width_115/t_passport_photo +$width_140/t_passport_photo +$width_165/t_passport_photo +a_20 +a_90 +a_180 +a_180/w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0,du_5/fl_layer_apply +a_ignore +ac_none +af_22050 +ar_2.5,c_crop +ar_4:3,c_fill/c_scale,w_auto,dpr_auto +ar_16:9,c_fill +ar_16:9,c_fill/c_scale,w_auto/c_limit,w_1000 +ar_16:9,c_fill/c_scale,w_auto:breakpoints +ar_16:9,c_fill/c_scale,w_auto:breakpoints:json +ar_16:9,c_fill/c_scale,w_auto:breakpoints_200_1920_30_15 +b_blue,c_pad,h_400,w_660 +b_blue,o_0 +bo_1px_solid_black,a_0/f_auto,q_auto,dpr_auto +bo_1px_solid_black,a_0/f_auto,q_auto,dpr_auto,h_300 +bo_1px_solid_black,dpr_2,q_auto,f_auto,w_400 +bo_1px_solid_black,q_auto,dpr_2,f_auto +bo_1px_solid_gray +bo_1px_solid_gray,dpr_auto +bo_1px_solid_gray/dpr_auto +bo_1px_solid_gray/f_auto,dpr_auto,q_auto +bo_1px_solid_gray/f_auto,q_auto,dpr_auto +bo_1px_solid_gray/f_auto,w_650,dpr_2,q_auto +bo_1px_solid_gray/q_auto,h_450,f_auto,dpr_2 +bo_1px_solid_gray/q_auto,w_400,f_auto,dpr_2 +bo_1px_solid_gray/w_300,f_auto,q_auto,dpr_2 +bo_1px_solid_gray/w_400,f_auto,q_auto,dpr_2 +bo_1px_solid_gray/w_400,q_auto,dpr_2,f_auto +bo_1px_solid_gray/w_450,f_auto,dpr_2,q_auto +bo_1px_solid_gray/w_500,f_auto,q_auto,dpr_2 +bo_1px_solid_gray/w_550,q_auto,f_auto,dpr_2 +bo_1px_solid_gray/w_600,f_auto,q_auto,dpr_2 +bo_1px_solid_rgb:ccc,f_auto,dpr_2 +bo_2px_solid_black +bo_2px_solid_black,f_auto,q_auto +bo_2px_solid_black,so_98 +bo_2px_solid_black,so_256 +bo_5.5px_solid_rgb:aabbcc,r_max +bo_5px_solid_black,f_auto,q_auto/dpr_auto +bo_5px_solid_red +bo_5px_solid_rgb:aabbcc,r_max +br_250k +c_crop,ar_1.85356,so_813,g_south +c_crop,e_sepia,h_150,r_20,w_150 +c_crop,e_viesus_correct,g_south,r_20,w_1000/c_scale,g_north_east,l_viesus_logo,o_50,w_100,x_10,y_10/c_scale,w_600 +c_crop,g_cat:dog +c_crop,g_cat:dog/w_0.25,c_scale +c_crop,g_dog:auto:bird,w_600,h_800 +c_crop,g_dog:auto:bird,w_600,h_800/w_0.25,c_scale +c_crop,g_dog:bird,w_600,h_800 +c_crop,g_dog:bird,w_600,h_800/w_0.25,c_scale +c_crop,g_dog:cat +c_crop,g_dog:cat/w_0.25,c_scale +c_crop,g_face +c_crop,g_face,h_400,w_400 +c_crop,g_face,r_75,bo_10px_solid_grey/l_young_couple,w_150,h_150,c_thumb,r_max,g_faces,bo_3px_solid_black/fl_layer_apply,g_north_east +c_crop,g_microwave +c_crop,g_microwave/w_0.3,c_scale +c_crop,g_north,h_200,w_260 +c_crop,g_refrigerator +c_crop,g_refrigerator/w_0.3,c_scale +c_crop,g_sink +c_crop,g_sink/w_0.3,c_scale +c_crop,h_100,w_150,x_380,y_250/c_fill,h_100,w_130/a_20/c_scale,w_0.8 +c_crop,w_300,h_300/c_scale,w_150,r_max +c_fill,ar_0.7,w_200 +c_fill,ar_0.7,w_750 +c_fill,ar_4:3 +c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This is my picture,y_20/a_20 +c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:Thishttps +c_fill,e_style_transfer,h_700,l_lighthouse,w_700 +c_fill,e_style_transfer,h_700,l_lighthouse,w_700/c_scale,w_250 +c_fill,g_auto,h_250,w_250 +c_fill,g_auto,h_400,ar_0.8 +c_fill,g_auto,h_400,ar_0.8/h_300 +c_fill,g_auto,h_500,w_500 +c_fill,g_auto:classic,ar_0.7,w_200 +c_fill,g_auto:classic,ar_0.7,w_750 +c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8 +c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8/h_300 +c_fill,g_auto:subject,ar_0.7,w_200 +c_fill,g_face,h_10,w_10 +c_fill,g_north,h_200,w_150 +c_fill,g_ocr_text,h_250,w_250 +c_fill,g_ocr_text,h_500,w_500 +c_fill,h_150,q_jpegmini,w_200 +c_fill,h_150,w_100 +c_fill,h_200,w_200/e_brightness:100,h_200,u_site_bg,w_200 +c_fill,h_200,w_300,r_20 +c_fill,h_250,w_250 +c_fill,h_300,w_300 +c_fill,h_500,w_500 +c_fill,h_700,w_700/e_style_transfer:60,l_lighthouse +c_fill,h_700,w_700/e_style_transfer:preserve_color,l_lighthouse +c_fill,h_700,w_700/e_style_transfer:preserve_color:40,l_lighthouse +c_fill,h_700,w_700/e_style_transfer:preserve_color:40,l_lighthouse/w_250 +c_fill,r_50,w_400,h_400,g_north,f_auto,bo_2px_solid_rgb:999/e_shadow:20,co_rgb:ccc/a_30,co_rgb:ec9800,e_colorize,l_url2png_logo +c_fill,w_100,h_100 +c_fill,w_100_mul_2 +c_fit,h_16,w_16/e_sepia +c_fit,w_10/a_15 +c_imagga_crop +c_imagga_crop,e_saturation:50,h_300,r_20,w_450/g_south_west,l_imagga_logo,o_80,w_100,x_10,y_10 +c_imagga_crop,h_380,w_380 +c_imagga_scale,h_200,w_150 +c_imagga_scale,h_240,w_260 +c_imagga_scale,w_150,h_200 +c_lpad,w_480,h_320,vs_2,q_70,br_1400k,vc_h264:baseline:3.0 +c_lpad,w_960,h_640,vs_2,q_70,br_5m,vc_h264:main:3.1 +c_pad,du_10,h_360,q_70,w_480 +c_pad,h_300,w_400 +c_pad,h_320,w_480,b_blurred:400:15 +c_pad,h_360,w_480,q_70,du_10 +c_pad,w_200,h_200,e_saturation:50/e_shadow/bo_1px_solid_rgb:666 +c_pad,w_400 +c_scale,dl_1000,e_trim,w_700 +c_scale,e_grayscale,f_auto,q_auto,w_100 +c_scale,e_saturation:50,r_20,w_400/g_south_east,l_logo_jpegmini,o_80,w_100,x_10,y_10/q_jpegmini +c_scale,e_viesus_correct,w_400 +c_scale,e_viesus_correct,w_500 +c_scale,q_jpegmini,w_400 +c_scale,q_jpegmini:1,w_400 +c_scale,t_sample_named_transform,w_1.0/t_sample_named_transform2 +c_scale,w_0.1/e_sepia:30 +c_scale,w_400 +c_scale,w_400/c_imagga_scale,h_150,l_family_bench.png,r_max,w_150 +c_thumb,g_adv_face,h_100,w_100 +c_thumb,g_adv_face,w_100,h_100 +c_thumb,g_adv_faces,w_150,h_150 +c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_1.0 +c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_2.0 +c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_3.0 +c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,w_50,o_60/dpr_2.0 +co_rgb:009900,e_shadow:50,x_10,y_10 +cs_no_cmyk +d_public_id +dl_100 +dl_200 +dn_20 +dpr_2,f_auto,q_auto,bo_1px_solid_black +dpr_2,f_auto,q_auto,w_800 +dpr_2,f_auto,q_auto/bo_1px_solid_gray +dpr_2,q_auto,f_auto +dpr_2,q_auto,f_auto,w_500,bo_1px_solid_gray +dpr_2,q_auto,f_auto,w_600 +dpr_2,q_auto,f_auto/bo_1px_solid_gray +dpr_auto,w_600/bo_1px_solid_gray +dpr_auto/bo_1px_solid_gray +dpr_auto/bo_1px_solid_gray/h_300 +dpr_auto/h_300/bo_1px_solid_gray +du_5,w_300,h_200/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/e_accelerate:5s,a_180/fl_layer_apply/fl_layer_apply +du_30,q_70:qmax_20 +e_adv_redeye/w_300,h_80,c_thumb,g_adv_eyes +e_art:al_dente +e_art:athena +e_art:audrey +e_art:aurora +e_art:daguerre +e_art:eucalyptus +e_art:fes +e_art:frost +e_art:hairspray +e_art:hokusai +e_art:incognito +e_art:linen +e_art:peacock +e_art:primavera +e_art:quartz +e_art:red_rock +e_art:refresh +e_art:sizzle +e_art:sonnet +e_art:ukulele +e_art:zorro +e_assist_colorblind:8 +e_assist_colorblind:8/e_simulate_colorblind +e_assist_colorblind:xray +e_auto_brightness +e_auto_brightness:10 +e_auto_color +e_auto_color:10 +e_auto_contrast +e_auto_contrast:10 +e_blue +e_blue:10 +e_blur:300 +e_blur:500/l_video:dog,w_600/w_500 +e_blur_region:800,g_ocr_text +e_blur_region:800,g_ocr_text/h_300 +e_brightness_hsb +e_brightness_hsb:10 +e_cartoonify/r_max/e_outline:100,co_lightblue/b_lightblue/h_300 +e_contrast +e_contrast:50 +e_deshake:32 +e_fade:2000/e_fade:-4000 +e_fill_light +e_fill_light:10:20 +e_grayscale +e_green +e_green:10 +e_hue +e_hue:10 +e_improve +e_improve:outdoor +e_improve:outdoor:10 +e_loop:2 +e_oil_paint:70 +e_opacity_threshold +e_opacity_threshold:10 +e_ordered_dither +e_ordered_dither:3 +e_outline,co_orange +e_outline:fill,co_orange +e_outline:inner,co_orange +e_outline:inner_fill,co_orange +e_outline:outer,co_orange +e_outline:outer:20:200 +e_outline:outer:20:200/e_red:50/e_sharpen/e_improve/o_70 +e_outline:outer:20:200/l_cloudinary_icon/e_red:50/e_sharpen/e_improve/o_70 +e_pixelate_faces:9 +e_pixelate_region,w_100 +e_preview,fl_getinfo +e_preview:duration_5 +e_preview:duration_8/c_crop,w_1600,h_800,e_loop +e_preview:duration_12.0:max_seg_3:min_seg_dur_3.0 +e_recolor:0.3:0.7:0.1:0.2:0.3:0.6:0.1:0.2:0.2:0.5:0.1:0.2 +e_recolor:0.3:0.7:0.1:0.3:0.6:0.1:0.2:0.5:0.1 +e_red +e_red:10 +e_redeye +e_replace_color:maroon:80:2b38aa +e_replace_color:maroon:80:2b38aa/w_250 +e_saturation:50 +e_screen,l_cloudinary_icon +e_shadow:50,x_10,y_10 +e_sharpen +e_sharpen:10 +e_simulate_colorblind:deuteranopia +e_style_transfer,l_davinci_mona_lisa +e_tint +e_tint:20 +e_tint:50:red:blue +e_tint:100:red:blue:yellow +e_tint:equalize:80:red:50p:blue:60p:yellow:40p +e_tint:equalize:80:red:blue:yellow +e_unsharp_mask +e_unsharp_mask:10 +e_vibrance +e_vibrance:10 +e_viesus_correct +e_viesus_correct:no_redeye +e_viesus_correct:skin_saturation +e_viesus_correct:skin_saturation_20 +f_auto +f_auto,dpr_2,q_auto,h_150,bo_1px_solid_gray +f_auto,dpr_2,q_auto,h_200,bo_1px_solid_gray +f_auto,dpr_auto +f_auto,q_auto +f_auto,q_auto,dpr_2 +f_auto,q_auto,dpr_2,h_150,bo_1px_solid_gray +f_auto,q_auto,dpr_2,h_200,bo_1px_solid_gray +f_auto,q_auto,dpr_2/bo_1px_solid_gray/w_500 +f_auto,q_auto,dpr_auto,w_300 +f_jpg,u_some +f_jpg/u_some +f_mp4,w_300 +f_webm +fl_attachment:pretty_flower,f_auto +fl_awebp +fl_lossy +fl_lossy,q_50 +fl_progressive,r_10 +fl_region_relative,g_adv_eyes,l_glasses,w_1.5 +fl_region_relative,g_adv_eyes,l_glasses,w_1.7 +fl_region_relative,g_adv_faces,l_silver_face_mask,w_1.1 +fn_pre:remote:aHR0cHM6Ly9teS5wcmVwcm9jZXNzLmN1c3RvbS9mdW5jdGlvbg== +fn_remote:aHR0cHM6Ly9teS5leGFtcGxlLmN1c3RvbS9mdW5jdGlvbg== +fn_wasm:my_example.wasm +g_auto:subject,c_fill,ar_0.7,w_750 +g_face,c_crop +g_face,c_crop,z_1.3 +g_face,c_thumb,w_150,h_150 +g_face,c_thumb,w_150,h_150,z_0.7 +g_face,w_500,c_thumb,fl_getinfo +g_north,l_text:arial_60:watchme,y_20 +h_100,w_190 +h_105/e_shadow:50,x_10,y_10 +h_120 +h_150 +h_150,fl_ignore_aspect_ratio +h_200 +h_200,c_scale/e_outline:15:200,co_orange +h_200,w_200,c_pad,b_auto:border +h_200,w_200,c_pad,b_auto:border_contrast +h_200,w_200,c_pad,b_auto:predominant +h_200,w_200,c_pad,b_auto:predominant_contrast +h_200,w_500,fl_waveform +h_200,w_500,fl_waveform,co_black,b_white +h_200/u_docs:transparent_grid,w_1.0,h_1.0,fl_relative,c_crop,o_50 +h_225/q_auto,f_auto,bo_1px_solid_black +h_250 +h_250,w_150,c_fill,g_auto/f_auto/q_auto +h_250,w_400,fl_waveform,so_2,eo_4,co_blue,b_transparent +h_300 +h_300,w_300 +h_300,w_300,c_pad,b_auto:predominant +h_300,w_300,c_pad,b_auto:predominant/e_gradient_fade:symmetric_pad,x_0.5 +h_300,w_300,c_pad,b_auto:predominant_gradient:2:diagonal_desc +h_300,w_300,c_pad,b_auto:predominant_gradient:4:palette_red_green_blue_orange +h_300,w_300,c_pad,b_auto:predominant_gradient_contrast:4 +h_310 +h_320,c_scale/c_pad,h_320,w_480,b_blurred:400:15/e_volume:mute/e_accelerate:100 +h_320,w_480 +h_350/q_auto,dpr_auto +h_375/u_docs:bg_beach,g_south,w_800 +h_375/u_docs:bg_beach,g_south,w_800/h_200 +h_375/u_docs:rainbow_field,g_south,w_800 +h_375/u_docs:rainbow_field,g_south,w_800/h_200 +h_400,w_244,c_fill +h_400,w_244,c_fill,so_1 +h_400,w_244,g_auto,c_fill +h_500,w_500,c_fill +if_!sale:in_stock!_in_tags,l_sale_icon,w_180,g_south_east,x_30,y_30/w_250 +if_ar_gt_0.65_and_w_gt_1000,ar_0.65,h_1000,c_fill +if_ar_gt_1.2,c_pad,h_320,w_480,b_black/if_else,c_pad,h_320,w_480,b_blurred:400:15 +if_ar_gt_1.2,c_pad,h_320,w_480,b_green/if_else,c_pad,h_320,w_480,b_blurred:400:15 +if_ar_gt_3:4_and_w_gt_300_and_h_gt_200,c_crop,w_300,h_200 +if_ar_lt_1.0,$height_300/if_else,$height_200/h_$height +if_ctx:!productType!_eq_!shoes!,w_200,ar_1:1,c_fill,g_auto +if_ils_gt_0.5,w_120,h_150,c_pad/if_else,w_120,h_150,c_fill +if_w_gt_400,l_thumbs-up-small,w_150,g_north_east,x_10,y_10/w_400,c_limit +if_w_lt_600/l_text:Arial_20:Image shown in full scale,co_white,g_south_east/c_scale,e_blur:400,u_small_dinosaur,w_600/if_end +if_w_lt_600/l_text:Arial_20:Image%20shown%20in%20full%20scale,co_white,g_south_east/c_scale,e_blur:400,u_small_dinosaur,w_600/if_end +if_w_lte_200,c_fill,h_120,w_80/if_else,c_fill,h_90,w_100 +if_w_lte_400/c_fill,h_220,w_180/e_red/if_else/c_fill,h_190,w_300/e_oil_paint/if_end +l_call_text,fl_region_relative,w_1.1,g_ocr_text +l_call_text,fl_region_relative,w_1.1,g_ocr_text/w_120 +l_cloudinary_icon +l_cloudinary_icon,g_north_west,y_20 +l_cloudinary_icon,so_6.5,eo_10,o_50,e_brightness:100 +l_cloudinary_icon,w_0.2,fl_relative +l_cloudinary_icon,w_0.8,fl_relative +l_cloudinary_icon,w_0.9,c_scale,g_north_east,o_70,e_brightness:50 +l_cloudinary_icon,w_200,g_east,so_1,eo_11/l_text:arial_40:Sample Video,g_south,y_60,so_2 +l_cloudinary_icon,w_300,g_north_east,o_60 +l_couple/c_crop,g_faces,w_120,h_150/r_max/fl_layer_apply,g_north_east/l_cloudinary_icon,w_0.8,fl_relative,o_50,e_brightness:100/l_text:impact_40_bold:Sample image,g_south,y_20 +l_face_left/w_200,h_200,c_thumb,g_face,r_max/fl_layer_apply,g_north_east +l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9vbGRfbG9nby5wbmc= +l_golden_star,g_faces,w_1.0,fl_region_relative +l_golden_star,g_faces,w_1.1,fl_region_relative +l_golden_star,g_north_west,w_20,x_314,y_148/w_500 +l_lut:iwltbap_aspen.3dl +l_lut:iwltbap_aspen.3dl/w_200 +l_lut:iwltbap_sedona.3dl +l_lut:iwltbap_sedona.3dl/w_200 +l_subtitles:arial_20:sample_sub_en.srt +l_subtitles:arial_70:sample_sub_en.srt,co_rgb:ffff00,b_black +l_subtitles:folder-permissions-tutorial.en-us.azure.transcript +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +l_subtitles:lincoln.transcript +l_subtitles:sample_sub_en.srt +l_subtitles:times_20:folder-permissions-tutorial.en-us.azure.transcript,co_blue,g_north +l_text:AlexBrush-Regular.ttf_100:Happy New Year 2017 ,co_white,g_north_west,x_30,y_30 +l_text:arial_60:Cool Video,g_south,y_80,so_2,eo_5 +l_text:impact_150:Your Brand Name or Logo Here,e_distort:arc:-120,co_white,g_south,y_840,o_60 +l_video:dog,so_4.5,eo_8,a_90,w_200,g_east +l_video:kitten_fighting,e_fade:3000,w_100 +l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_brightness:10,r_max +l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_volume:mute/e_brightness:10,r_max +o_30 +p_home_thing_ +pg_2 +pg_2-4;6;8/w_300 +pg_embedded:3 +pg_embedded:3/w_300 +pg_embedded:name:skyline-3242040_1920.jpg +pg_name:record_cover;Shadow/w_300 +q_50 +q_60 +q_80 +q_auto +q_auto,dpr_2,f_auto +q_auto,dpr_2,f_auto,bo_1px_solid_black +q_auto,dpr_2,f_auto,bo_1px_solid_gray +q_auto,dpr_2,f_auto,h_300 +q_auto,dpr_2,h_300,f_auto,bo_1px_solid_black +q_auto,dpr_2,w_150,f_auto +q_auto,dpr_auto +q_auto,f_auto +q_auto,f_auto,bo_1px_solid_black +q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_650 +q_auto,f_auto,dpr_2 +q_auto,f_auto,dpr_2,bo_1px_solid_gray +q_auto,f_auto,dpr_2,c_crop,w_100,h_80/w_40 +q_auto,f_auto,dpr_2,w_350,r_20/e_outline:1,co_black +q_auto,f_auto,dpr_2,w_400 +q_auto,f_auto,dpr_2/bo_1px_solid_gray +q_auto,f_auto,dpr_auto +q_auto,f_auto,w_500 +q_auto,w_600,f_auto,dpr_2 +q_auto,w_800,f_auto +q_auto:best +q_auto:eco +q_auto:good +q_auto:low +q_jpegmini +r_20 +so_0,du_3 +so_1 +so_4,w_350,h_350,c_crop,r_20,e_grayscale,bo_5px_solid_black +so_5 +so_6.5,eo_10 +so_8.5 +so_10p,du_30p +so_21/bo_2px_solid_black +so_62 +so_120 +sp_hd +t_demo_combined +t_fit_100x150 +t_jpg_with_quality_30,w_100,h_50,c_fit +t_jpg_with_quality_30/t_crop_400x400/t_fit_100x150 +t_sample_named_transform +t_sample_named_transform.sample_named_transform2 +vc_auto +vc_h264:baseline:3.1 +vs_1.1s,dl_200,w_200,e_loop:2 +vs_10,dl_100,w_250,f_gif +vs_10,dl_100,w_250,f_webp,fl_awebp,fl_animated +vs_40,dl_200,h_200,e_loop +w_0.4,a_20/l_cloudinary_icon,o_50,w_60,g_south_east,y_15,x_60 +w_0.5 +w_0.25,c_scale +w_20,q_auto +w_28,q_auto +w_28,q_auto,f_auto,dpr_2 +w_80,h_120,c_fill,g_face +w_80,h_400,c_fill,g_auto +w_80,h_400,c_fill_pad,g_auto,b_auto +w_100,c_fill +w_100,h_40,c_thumb,g_adv_eyes +w_100,h_150,c_fill +w_100,h_150,c_fill,g_faces +w_100/a_90 +w_100/a_-20 +w_100/a_vflip/a_45 +w_100/dpr_1.0 +w_100/dpr_2.0 +w_100/dpr_3.0 +w_115,h_135,c_thumb,g_faces +w_120 +w_123/a_45 +w_150,c_scale +w_150,e_art:al_dente +w_150,e_art:athena +w_150,e_art:audrey +w_150,e_art:aurora +w_150,e_art:daguerre +w_150,e_art:eucalyptus +w_150,e_art:fes +w_150,e_art:frost +w_150,e_art:hairspray +w_150,e_art:hokusai +w_150,e_art:incognito +w_150,e_art:linen +w_150,e_art:peacock +w_150,e_art:primavera +w_150,e_art:quartz +w_150,e_art:red_rock +w_150,e_art:refresh +w_150,e_art:sizzle +w_150,e_art:sonnet +w_150,e_art:ukulele +w_150,e_art:zorro +w_150,h_60,c_fit +w_150,h_100 +w_150,h_100,c_fill +w_150,h_100,c_fill,r_10:40:25 +w_150,h_100,c_fill,r_25 +w_150,h_100,c_fill,r_25:0 +w_150,h_100,c_fill,r_30:0:30:30 +w_150,h_100,c_scale +w_150,h_150,c_scale +w_150,h_150,c_thumb,g_auto +w_150,h_150,c_thumb,g_auto:0 +w_150,h_150,c_thumb,g_center +w_150,h_150,c_thumb,g_face +w_150,h_150,c_thumb,g_face,r_20,e_sepia/l_cloudinary_icon,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10 +w_150,h_200,c_lfill +w_200 +w_200,a_45/d_avatar.png +w_200,c_scale/e_outline:20:200,co_red/e_outline:15:200,co_orange/e_outline:10:200,co_yellow +w_200,dpr_2.0 +w_200,f_auto,q_auto,dpr_2 +w_200,h_100 +w_200,h_150,c_crop +w_200,h_150,c_crop,g_north_west +w_200,h_200,c_crop,g_auto +w_200,h_200,c_crop,g_center +w_200,h_200,c_crop,r_max +w_200,h_200,c_fill +w_200,h_200,c_fill,g_auto +w_200,h_200,c_fill,g_center +w_200,h_200,c_fill,g_face +w_200,h_200,c_fill,g_faces +w_200,h_200,c_fill,r_max/a_30/e_trim +w_200,h_200,c_fill/e_style_transfer,l_sailing_angel +w_200,h_200,c_fit,a_hflip/l_cloudinary_icon,w_0.4,fl_relative,g_north,x_15,y_35,a_4,e_brightness:100,o_70 +w_200,h_200,c_thumb,g_face +w_200,h_200,c_thumb,g_face,r_max +w_200,h_200,c_thumb,g_face,r_max,e_sharpen +w_200,h_200,c_thumb,g_face,r_max,l_face_left/fl_layer_apply,g_north_east +w_200,h_200,c_thumb,g_face/r_20,bo_5px_solid_black/l_cloudinary_icon,o_50,w_0.25,fl_relative,g_north_east,y_10,x_10 +w_200,h_300,c_fill,g_auto +w_200,h_300,c_fill,g_center +w_200/dpr_1.0 +w_200/dpr_2.0 +w_200/dpr_3.0 +w_200/l_text:Arial_30:Cool%F0%9F%98%8E +w_230,h_168,c_fit +w_250 +w_250,bo_1px_solid_gray +w_250,fl_animated,f_auto +w_250,h_150,c_fill,r_max +w_250,h_250,c_fill +w_250,h_250,c_fill,g_east +w_250,h_250,c_fill,g_faces +w_250,h_250,c_fill,g_north +w_250,h_250,c_fill,g_south_east +w_250,h_250,c_fit +w_250,h_250,c_limit +w_250,h_250,c_lpad,b_black +w_250,h_250,c_mfit +w_250,h_250,c_mpad +w_250,h_250,c_pad,b_black +w_250,q_80 +w_250,q_auto:best +w_250,q_auto:eco +w_250,q_auto:good +w_250,q_auto:low +w_250,x_780,y_350,c_crop +w_250,x_780,y_350,c_crop/u_docs:transparent_grid,w_250,c_crop,o_50 +w_250,x_780,y_350,c_crop/w_1100 +w_250/u_docs:transparent_grid,w_1.0,h_1.0,fl_relative,c_crop,o_50 +w_250/u_docs:transparent_grid,w_250,c_crop,o_50 +w_260,h_200,c_crop,g_north +w_300 +w_300,c_fill,g_auto,ar_1:1 +w_300,c_scale,pg_2 +w_300,c_scale,pg_4,e_sepia,r_50,bo_2px_solid_rgb:999/l_aspose_cloud_logo,w_0.9,fl_relative,o_70,g_south,y_20 +w_300,e_accelerate:100 +w_300,e_distort:40:25:280:60:260:155:35:165 +w_300,e_grayscale +w_300,e_noise:50 +w_300,f_auto,q_auto,dpr_2 +w_300,fl_keep_iptc +w_300,fl_png8 +w_300,h_80,c_thumb,g_adv_eyes +w_300,h_100,c_scale +w_300,h_200,c_crop +w_300,h_200,c_fill,dpr_auto +w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill +w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0 +w_300,h_200,du_5/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply +w_300,h_200,du_5/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply/l_video:snow_deer,w_300,h_200/du_5/l_video:transition2,e_transition/fl_layer_apply/fl_layer_apply/l_video:dog,fl_splice,w_300,h_200/du_5/fl_layer_apply +w_300,h_200/w_300,h_200,l_sample,fl_splice,du_3/so_0,fl_layer_apply +w_300,h_250,e_grayscale +w_300,h_300,c_fill,b_blue,r_max +w_300,h_300,c_fill,g_face,r_max,f_auto +w_300,h_300,c_fill,r_max,e_sharpen,so_30p/l_cloudinary_icon,w_0.9,fl_relative,o_40 +w_300,h_300,c_fill/l_cloudinary_icon,w_0.8,fl_relative,e_brightness:100,o_50 +w_300,h_300,c_pad,b_blue +w_300,h_300,c_pad,b_green +w_300,h_350,c_fill,g_north +w_300,pg_2 +w_300,r_30 +w_300,r_max +w_300/c_fill,e_shadow,x_w_div_50,y_w_div_50 +w_300/l_video:dog,w_100,g_north_east,r_max +w_300/w_200,y_30,a_9,h_150,g_north,c_fit,l_text:Times_18_bold_center:Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. +w_350,bo_5px_solid_black/q_auto,dpr_auto +w_350,e_tint:20 +w_350,e_tint:100:red:blue:yellow +w_350,e_tint:equalize:80:red:50p:blue:60p:yellow:40p +w_350,f_auto +w_350,f_gif +w_350,h_200,x_230,y_20,c_crop +w_350,q_80 +w_350,q_100 +w_350,q_auto:best +w_350,q_auto:eco +w_350,q_auto:good +w_350,q_auto:low +w_350/q_auto,dpr_auto +w_400 +w_400,ar_1,c_thumb,g_auto:skateboard +w_400,c_fill,ar_4:3 +w_400,f_png +w_400,h_150,c_lpad,b_green +w_400,h_250,c_fill,g_south/l_nice_couple,w_1.3,h_1.3,g_faces,c_crop,fl_region_relative/e_saturation:50/e_vignette/fl_layer_apply,w_100,r_max,g_center,y_20,x_-20/l_balloon,h_55/e_hue:-20,a_5/fl_layer_apply,x_30,y_5/l_text:Cookie_40_bold:Love,e_colorize,co_rgb:f08/a_20,fl_layer_apply,x_-45,y_44/c_crop,w_300,h_250,x_30/r_60 +w_400,h_300,c_pad +w_400,h_400,c_crop,g_face,r_max/w_200 +w_450,bo_5px_solid_black/q_auto,dpr_auto +w_480,so_3,eo_5,e_boomerang/e_loop +w_500 +w_500,ar_1,c_crop,g_auto:bottle +w_500,ar_1,c_crop,g_auto:bottle/h_150 +w_500,ar_1,c_crop,g_bottle +w_500,ar_1,c_crop,g_bottle/h_150 +w_500,ar_1,c_fill,g_auto:bottle +w_500,ar_1,c_fill,g_auto:bottle/h_150 +w_500,ar_1,c_fill,g_bottle +w_500,ar_1,c_fill,g_bottle/h_150 +w_500,ar_1,c_thumb,g_auto:bottle +w_500,ar_1,c_thumb,g_auto:bottle/h_150 +w_500,ar_1,c_thumb,g_bottle +w_500,ar_1,c_thumb,g_bottle/h_150 +w_500,ar_1.0,c_fill,g_auto +w_500,ar_1.0,c_fill,g_auto/h_300 +w_500,ar_1.0,c_fill,g_auto:person_avoid +w_500,ar_1.0,c_fill,g_auto:person_avoid/h_300 +w_500,ar_4:3 +w_500,bo_5px_solid_black +w_500,e_brightness:30 +w_500,e_contrast:50 +w_500,e_gamma:-20 +w_500,e_reverse +w_500,e_saturation:-50 +w_500,e_vignette:50 +w_500,e_volume:50 +w_500,f_auto +w_500,f_auto,q_auto,dpr_2/bo_1px_solid_gray +w_500,q_auto,f_auto +w_500,q_auto,f_auto,dpr_2 +w_500/e_brightness:70/l_woman,c_crop,g_face/w_150/e_saturation:50/e_shadow/fl_layer_apply +w_500/if_!cloudinary!_in_tags/l_cloudinary_icon,w_100,g_north_east,o_50,e_brightness:100/l_text:arial_15:By Cloudinary,g_north_east,y_10,x_105/if_end/du_5 +w_500/l_cloudinary_icon,g_north_east,o_50,w_200,e_anti_removal:90 +w_500/l_cloudinary_icon,o_50,w_100,e_brightness:100,fl_tiled +w_500/l_cloudinary_icon,w_150/e_blackwhite/fl_layer_apply,g_north_east +w_500/l_cloudinary_icon,w_150/e_blackwhite/l_cloudinary_icon,w_50/fl_layer_apply/fl_layer_apply,g_north_east +w_500/l_my_bg +w_500/l_my_icon +w_500/l_subtitles:Arial_40:sample_sub_he.srt +w_500/l_subtitles:sample_sub_he.srt +w_500/l_text:Arial_80:Flowers +w_500/l_text:Times_60:Cool image,g_south,y_20 +w_500/l_text:Times_90_bold:Cool image,g_south,y_80,co_rgb:FFFF00 +w_500/l_text:Times_90_bold:Cool image,g_south,y_80,co_rgb:FFFF0080 +w_500/l_text:verdana_1:words +w_500/l_text:verdana_12_bold_underline_left:words +w_500/l_text:verdana_12_bold_underline_left:words,y_23 +w_500/l_text:Verdana_50_bold:Cool +w_500/l_text:Verdana_75_bold_underline_letter_spacing_14:Flowers +w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 +w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 +w_500/l_video:docs:bluescreen_watches,e_make_transparent:10,co_rgb:3d8d48,w_1.0,fl_relative/du_15 +w_500/l_video:docs:bluescreen_watches,e_make_transparent:20,co_rgb:0e80d8,w_0.6,fl_relative,g_north/du_15 +w_500/u_fetch:aW1hZ2UudXJs +w_500/u_my_bg +w_500/w_400,c_fit,l_text:Neucha_26_bold:Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod +w_550,h_35,c_crop,g_north_west/bo_1px_solid_gray/dpr_auto +w_600 +w_600,ar_1,c_thumb,g_auto:microwave +w_600,ar_1,c_thumb,g_auto:microwave/h_150 +w_600,ar_1,c_thumb,g_auto:refrigerator +w_600,ar_1,c_thumb,g_auto:refrigerator/h_150 +w_600,ar_1,c_thumb,g_auto:sink +w_600,ar_1,c_thumb,g_auto:sink/h_150 +w_600/w_570,h_43,c_crop,g_north_west/bo_1px_solid_gray +w_700,f_auto,q_auto,dpr_2/bo_1px_solid_gray +w_700,h_700,c_fill +w_700,h_700,c_fill/e_style_transfer,l_sailing_angel +w_700,h_700,c_fill/e_style_transfer:60,l_lighthouse/w_250 +w_700,h_700,c_fill/e_style_transfer:preserve_color,l_lighthouse/w_250 +w_700,h_700,c_fill/w_250 +w_700,r_max/fl_region_relative,g_adv_eyes,l_harlequinmask,w_1.7 +w_700/dpr_auto/bo_1px_solid_gray +w_750,h_750,c_fill,g_faces +w_800 +w_800/bo_1px_solid_gray +w_850,dpr_2 +w_1000,dpr_2 +w_1000,f_auto,q_auto:best +w_1520,h_1440,c_crop,g_west,x_50 +w_1520,h_1440,c_crop,g_west,x_50/e_pixelate_region:15,g_ocr_text +w_1520,h_1440,c_crop,g_west,x_50/h_283 +w_abc +w_auto +w_auto,c_scale +w_auto,dpr_auto,c_limit/g_north_east,y_5,x_5,co_white,l_text:Arial_18_bold:dpr_auto +w_auto,f_auto,c_scale +w_auto,g_auto,c_fill +w_auto,q_auto,c_scale +x_355,y_410,w_300,h_200,c_crop +x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill +x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill/a_20/w_0.5 +x_355,y_410,w_300,h_200,c_crop/w_150,h_100,c_scale +w_100,c_fill +f_jpg,u_some +f_jpg/u_some +e_pixelate_region,w_100 +c_fill,w_100_mul_2 +c_fill,w_100_mul_2 +c_fill,w_100_mul_2 +w_500/e_brightness:70/l_woman,c_crop,g_face/w_150/e_saturation:50/e_shadow/fl_layer_apply +w_500,ar_4:3 +w_500,ar_4:3 +w_500,ar_4:3 +c_fill,ar_4:3 +ar_4:3,c_fill/c_scale,w_auto,dpr_auto +ar_4:3,c_fill/c_scale,w_auto,dpr_auto +ar_4:3,c_fill/c_scale,w_auto,dpr_auto +w_500/l_my_icon +w_500/l_text:verdana_1:words +w_500/l_text:verdana_12_bold_underline_left:words +w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 +w_500/u_my_bg +w_500/u_fetch:aW1hZ2UudXJs +w_500/l_subtitles:Arial_40:sample_sub_he.srt +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +w_500/l_text:verdana_12_bold_underline_left:words +w_500/l_text:verdana_12_bold_underline_left:words,y_23 +w_500/u_fetch:aW1hZ2UudXJs +w_500/l_subtitles:Arial_40:sample_sub_he.srt +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +w_500/l_text:verdana_12_bold_underline_left:words,y_23 +w_500/u_fetch:aW1hZ2UudXJs +w_500/l_subtitles:Arial_40:sample_sub_he.srt +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 +w_500/u_fetch:aW1hZ2UudXJs +w_500/l_subtitles:Arial_40:sample_sub_he.srt +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 +w_500/u_fetch:aW1hZ2UudXJs +w_500/l_subtitles:Arial_40:sample_sub_he.srt +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +w_500/u_fetch:aW1hZ2UudXJs +w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 +w_500/l_subtitles:Arial_40:sample_sub_he.srt +if_w_lt_600/l_text:Arial_20:Image%20shown%20in%20full%20scale,co_white,g_south_east/c_scale,e_blur:400,u_small_dinosaur,w_600/if_end +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 +w_500/u_fetch:aW1hZ2UudXJs +c_fill,h_200,w_200/e_brightness:100,h_200,u_site_bg,w_200 +w_500/l_subtitles:Arial_40:sample_sub_he.srt +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 +w_500/u_fetch:aW1hZ2UudXJs +w_500/l_subtitles:Arial_40:sample_sub_he.srt +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +w_500/l_my_bg +w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 +w_500/u_fetch:aW1hZ2UudXJs +w_500/l_subtitles:Arial_40:sample_sub_he.srt +w_500/l_subtitles:sample_sub_he.srt +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +w_500/l_my_bg +w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 +w_500/u_fetch:aW1hZ2UudXJs +w_500/l_subtitles:Arial_40:sample_sub_he.srt +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +w_500/l_my_bg +w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 +w_500/u_fetch:aW1hZ2UudXJs +w_500/l_subtitles:Arial_40:sample_sub_he.srt +l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west +c_fill,g_face,h_10,w_10 +a_180 +a_ignore +e_hue +b_blue,o_0 +bo_5px_solid_rgb:aabbcc,r_max +bo_5.5px_solid_rgb:aabbcc,r_max +cs_no_cmyk +fl_progressive,r_10 +t_sample_named_transform +t_sample_named_transform.sample_named_transform2 +t_sample_named_transform +c_scale,t_sample_named_transform,w_1.0/t_sample_named_transform2 +c_scale,w_0.1/e_sepia:30 +$newwidth_1080/w_$newwidth/$name_!Jane%20Smith!/l_text:Comic%20Sans%20MS_24:%C2%A9$(name),g_south_east,x_10,y_10 +$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20 +$small_150/c_fill,w_$big,h_$small_add_20 +$small_150,$big_2_mul_$small_add_4/c_fill,w_$big,h_$small_add_20 +$small_150,$big_2_mul_$small_add_4/c_fill,w_$big,h_$small_add_20 +$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20/t_my_named_mul_trans +$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer/e_art:incognito +$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer/e_art:incognito +$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer/e_art:incognito +$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer/e_art:incognito +$w_200,$ar_0.8/w_$w,ar_$ar,c_fill,g_face +e_sepia +e_sepia:17 +e_sepia +c_crop,h_200,w_100 +c_crop,h_200 +e_sepia:17/c_crop,h_200,w_100 +c_crop,w_100,h_200,e_sepia:17 +e_redeye +e_adv_redeye +e_accelerate:6 +e_simulate_colorblind:deuteranopia +e_art:al_dente +co_rgb:ec9800,e_colorize:17 +e_make_transparent:50,co_red +e_gradient_fade:symmetric_pad:50,x_0.2 +cs_no_cmyk +cs_icc:icc_file_public_id +d_publicid +dn_150 +c_pad,b_auto:predominant +c_pad,b_auto +c_pad,b_blurred +c_pad,b_blurred:100:500 +c_pad,b_auto:predominant +c_pad,b_auto:predominant_contrast +c_pad,b_auto:predominant:palette_red_green +c_pad,b_auto:predominant_contrast:palette_red_green +c_pad,b_auto:predominant_gradient +c_pad,b_auto:predominant_gradient:2 +c_pad,b_auto:predominant_gradient:horizontal +c_pad,b_auto:predominant_gradient:2:horizontal +c_pad,b_auto:predominant_gradient_contrast +c_pad,b_auto:predominant_gradient_contrast:2 +c_pad,b_auto:predominant_gradient:palette_red_green +c_pad,b_auto:predominant_gradient_contrast:palette_red_green +c_pad,b_auto:border +c_pad,b_auto:border_contrast +c_pad,b_auto:border:palette_red_green +c_pad,b_auto:border_contrast:palette_red_green +c_pad,b_auto:border_gradient +c_pad,b_auto:border_gradient:2 +c_pad,b_auto:border_gradient:horizontal +c_pad,b_auto:border_gradient:2:horizontal +c_pad,b_auto:border_gradient_contrast +c_pad,b_auto:border_gradient_contrast:2 +c_pad,b_auto:border_gradient:palette_red_green +c_pad,b_auto:border_gradient_contrast:palette_red_green +c_crop,w_100 +c_crop,h_100 +c_crop,w_100,h_100 +c_crop,w_100,ar_2.0 +c_crop,x_1 +c_crop,x_1,y_2 +c_crop,fl_relative +c_crop,fl_region_relative +c_scale,w_100 +c_scale,h_100 +c_scale,w_100,h_100 +c_scale,w_100,ar_2.0 +c_scale,g_liquid +c_scale,fl_relative +c_scale,fl_region_relative +c_fit,w_100 +c_fit,h_100 +c_fit,w_100,h_100 +c_fit,w_100,ar_2.0 +c_fit,fl_relative +c_fit,fl_region_relative +c_limit,w_100 +c_limit,h_100 +c_limit,w_100,h_100 +c_limit,w_100,ar_2.0 +c_limit,fl_relative +c_limit,fl_region_relative +c_mfit,w_100 +c_mfit,h_100 +c_mfit,w_100,h_100 +c_mfit,w_100,ar_2.0 +c_mfit,w_100,ar_16:9 +c_mfit,w_100,fl_ignore_aspect_ratio +c_mfit,fl_relative +c_mfit,fl_region_relative +c_fill,w_100 +c_fill,h_100 +c_fill,w_100,h_100 +c_fill,w_100,ar_2.0 +c_fill,fl_relative +c_fill,fl_region_relative +c_fill,g_xy_center,x_1,y_2 +c_lfill,w_100 +c_lfill,h_100 +c_lfill,w_100,h_100 +c_lfill,w_100,ar_2.0 +c_lfill,fl_relative +c_lfill,fl_region_relative +c_lfill,g_xy_center,x_1,y_2 +c_pad,w_100 +c_pad,h_100 +c_pad,w_100,h_100 +c_pad,w_100,ar_2.0 +c_pad,x_1 +c_pad,x_1,y_2 +c_pad,fl_relative +c_pad,fl_region_relative +c_mpad,w_100 +c_mpad,h_100 +c_mpad,w_100,h_100 +c_mpad,w_100,ar_2.0 +c_mpad,x_1 +c_mpad,x_1,y_2 +c_mpad,fl_relative +c_mpad,fl_region_relative +c_lpad,w_100 +c_lpad,h_100 +c_lpad,w_100,h_100 +c_lpad,w_100,ar_2.0 +c_lpad,x_1 +c_lpad,x_1,y_2 +c_lpad,fl_relative +c_lpad,fl_region_relative +c_fill_pad,g_auto,w_100 +c_fill_pad,g_auto,h_100 +c_fill_pad,g_auto,w_100,h_100 +c_fill_pad,g_auto,w_100,ar_2.0 +c_fill_pad,g_auto,x_1 +c_fill_pad,g_auto,x_1,y_2 +c_fill_pad,g_auto,fl_relative +c_fill_pad,g_auto,fl_region_relative +c_thumb,w_100 +c_thumb,h_100 +c_thumb,w_100,h_100 +c_thumb,w_100,ar_2.0 +c_thumb,fl_relative +c_thumb,fl_region_relative +c_imagga_scale,w_100 +c_imagga_scale,h_100 +c_imagga_scale,w_100,h_100 +c_imagga_scale,w_100,ar_2.0 +c_imagga_scale,fl_relative +c_imagga_scale,fl_region_relative +c_imagga_crop,w_100 +c_imagga_crop,h_100 +c_imagga_crop,w_100,h_100 +c_imagga_crop,w_100,ar_2.0 +c_imagga_crop,fl_relative +c_imagga_crop,fl_region_relative +e_deshake +e_deshake:32 +bo_5px_solid_hotpink +bo_5.5px_solid_rgb:fff +bo_5.5px_solid_hotpink,r_max +bo_5.5px_solid_hotpink,r_100 +ac_none +af_22050 +br_100 +br_100:constant +fps_10 +fps_10- +fps_10-20 +ki_0.4 +fl_animated,f_auto +fl_animated,f_gif +f_auto,fl_animated,vs_10,dl_5 +f_webp,fl_animated,fl_awebp,vs_10 +sp_hd +sp_sd +sp_hd_lean +sp_full_hd_lean +sp_full_hd +sp_full_hd_wifi +sp_my_custom_sp +r_10 +r_10:20 +r_10:20:30 +r_10:20:30:40 +r_max +dpr_1.0 +dpr_auto +e_vectorize:detail:200 +e_vectorize:colors:17:detail:100 +e_vectorize:colors:17 +c_fill,x_100,g_xy_center,w_500 +w_iw_add_100_div_3 +f_auto,q_auto,dpr_2/bo_1px_solid_gray/w_500 +fl_lossy,q_50 +f_jpg,fl_progressive +f_png +f_mp4 +f_mp3 +f_png +f_gif,fl_lossy +f_jpg,fl_progressive +f_jpg,fl_progressive:semi +f_auto,fl_preserve_transparency +q_auto +q_auto:eco +q_auto:good +q_auto:best +q_auto:low +q_jpegmini +q_jpegmini:0 +q_jpegmini:1 +q_jpegmini:2 +q_70:qmax_20 +q_auto:low:444 +pg_embedded:3 +pg_embedded:name:skyline.jpg +pg_embedded:3;5 +pg_embedded:name:skyline.jpg;bg.jpg +pg_3 +pg_name:skyline +pg_name:lala;fofo +pg_4-7;9 +fl_clip,pg_2 +fl_clip,pg_name:path +fl_clip_evenodd,pg_2 +pg_3 +pg_4-7;9 +t_my_named_transformation +pg_3 +pg_4-7;9 +e_ordered_dither:6 +e_ordered_dither:13 +a_hflip +a_vflip +a_auto_right +a_auto_left +a_ignore +$foo_bar +$foo_1_to_f +$foo_iw_add_100_div_3 +$foo_bar_to_i +$foo_!iw! +$foo_md:!bar!_to_f +$overlaywidth_$mainvideowidth_div_3 +$bestpic_ref:!file.png! +e_blur +e_blur:5 +e_blur_faces:5 +e_blur_region:5,g_ocr_text +e_blur_region,h_100,w_100,x_50,y_120 +e_oil_paint +e_oil_paint:5 +e_blackwhite +e_blackwhite:5 +e_loop +e_loop:5 +e_pixelate +e_pixelate:17 +e_pixelate_region:2,h_100,w_200,x_1,y_3 +e_pixelate_region:5,g_ocr_text +e_pixelate_faces:5 +e_vignette +e_vignette:17 +e_fade:6 +e_fade:-6 +e_vibrance:17 +e_sharpen:17 +e_unsharp_mask:17 +e_hue:17 +e_brightness:17 +e_opacity_threshold:17 +e_contrast:17 +e_saturation:17 +e_gamma:17 +e_red:17 +e_green:17 +e_blue:17 +e_auto_brightness:17 +e_auto_color:17 +e_auto_contrast:17 +o_17 +e_replace_color:red:5:blue +e_replace_color:2F4F4F:20 +e_outline:$foo:100:5,co_red +e_outline:inner:100:5,co_rgb:ffffff +e_fill_light:17 +e_fill_light:17:-100 +e_brightness_hsb +e_viesus_correct:no_redeye:skin_saturation_5 +e_recolor:0.3:0.7:0.1:0.2:0.3:0.6:0.1:0.2:0.2:0.5:0.1:0.2 +e_improve:outdoor:50 +e_cartoonify +e_cartoonify:80 +e_cartoonify:80:bw +e_cartoonify:80:100 +c_pad,b_green +c_pad,b_rgb:fff +e_assist_colorblind +e_assist_colorblind:8 +e_assist_colorblind:xray +fl_keep_iptc +fl_animated:filename +fl_attachment:pretty_flower +fl_whatever +l_sample/fl_first_flag/fl_second_flag/fl_layer_apply +if_expression,a_20 +if_expression/a_20/if_end +if_expression/a_20/if_else/a_30/if_end +if_ar_gt_3:4_and_w_gt_300_and_h_gt_200,c_crop,w_300,h_200 +c_thumb,g_adv_eyes +c_thumb,g_center,w_300 +c_crop,g_north,w_300 +c_crop,g_north,w_300,x_100 +c_crop,g_auto +c_crop,g_auto:cat_30:dog_avoid,w_300 +c_crop,g_cat:dog:auto:microwave_30:bicycle_avoid +c_crop,g_ocr_text +c_crop,g_auto:ocr_text +c_crop,g_auto:ocr_text_avoid +c_crop,g_auto:ocr_text_30 +c_crop,w_200,h_200,g_xy_center,x_100,y_100 +w_150,h_150,c_thumb,g_auto:0 +l_sample +l_sample.jpg +l_sample/e_sepia/fl_layer_apply +l_video:sample +l_video:sample/e_sepia/fl_layer_apply +l_text:arial_15:hello +l_text:arial_15_bold:hello +g_north,l_text:arial_60:This is my picture,y_20 +l_text:parisienne_17_bold_strikethrough_justify_stroke_letter_spacing_17_antialias_subpixel:Hello +b_white,co_red,l_subtitles:arial_17:my_subs_file.srt +l_subtitles:arial_17:sample_sub_en.srt +l_subtitles:impact_15:lincoln.transcript,b_rgb:331a00 +l_subtitles:sample_sub_en.srt +b_green +b_rgb:fff +l_sample/g_face,fl_layer_apply +u_sample/g_face,fl_layer_apply +l_sample/x_10,fl_layer_apply +l_sample/fl_no_overflow,fl_layer_apply +l_sample/fl_tiled,fl_layer_apply +l_sample/e_multiply,fl_layer_apply +l_sample/e_screen,fl_layer_apply +l_sample/e_overlay,fl_layer_apply +l_sample/e_mask,fl_layer_apply +l_sample/e_anti_removal,fl_layer_apply +e_trim +e_trim:50 +e_trim:50:yellow +e_shear:23.0:50.0 +e_distort:5:34:70:10:70:75:5:55 +e_distort:arc:5 +l_sample,fl_cutter +l_sample/fl_cutter,fl_layer_apply,g_south +f_auto/dpr_auto +e_style_transfer:preserve_color:40,l_lighthouse/e_sepia/fl_layer_apply +e_preview:duration_5.0:max_seg_10:min_seg_dur_1.0 +eo_3 +so_3,eo_5 +so_3,du_5 +so_3p,du_5p +e_volume:10 +e_volume:5db +e_volume:mute +fl_splice,l_video:dog/fl_layer_apply +fl_splice,l_video:dog/fl_layer_apply,so_0 +l_video:dog/e_transition,l_video:transition1/fl_layer_apply/fl_layer_apply +fl_splice,l_sample/fl_layer_apply +du_5,l_sample/e_transition,l_video:transition1/fl_layer_apply/fl_layer_apply +l_video:dog,fl_splice,w_300,c_fill,so_0/fl_layer_apply +l_video:dog,fl_splice,so_0,du_5 +l_video:dog/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply +l_video:dog/l_video:transition1,e_transition/a_180/fl_layer_apply/fl_layer_apply +du_5,w_300,h_200/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/e_accelerate:5s,a_180/fl_layer_apply/fl_layer_apply +a_180/w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0,du_5/fl_layer_apply +l_sample,so_6.5,eo_10 + diff --git a/package.json b/package.json index 2ba6ab1d..6de10559 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,9 @@ "lunr": "^1.0.0", "moment": "^2.22.1", "sanitize-html": "^1.18.2", - "@rollup/plugin-json": "^4.1.0" + "@rollup/plugin-json": "^4.1.0", + "node-fetch": "^2.6.1", + "prettier": "^2.3.1" }, "dependencies": { "@types/lodash.clonedeep": "^4.5.6", From f2a1805fbbb1f845d0eef2326725ee6ad2a96d7f Mon Sep 17 00:00:00 2001 From: Patrick Date: Mon, 14 Jun 2021 19:43:57 +0300 Subject: [PATCH 02/18] Updated createTestFile --- devTools/sanity/createTestFile.ts | 38 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/devTools/sanity/createTestFile.ts b/devTools/sanity/createTestFile.ts index f7934176..5fb71823 100644 --- a/devTools/sanity/createTestFile.ts +++ b/devTools/sanity/createTestFile.ts @@ -6,30 +6,28 @@ const prettier = require('prettier'); function createTestFile(txs: ITxResult[]){ let file = ` - import { Dither, checkerboard2x1Dither, circles5x5Black, circles5x5White, circles6x6Black, circles6x6White, circles7x7Black, circles7x7White } from "../src/qualifiers/dither"; import { Variable, setString, setInteger, set, setAssetReference, setFloat, setFromContext, setFromMetadata } from "../src/actions/variable"; import { Rotate, byAngle, mode } from "../src/actions/rotate"; -import { GradientDirection } from "../src/qualifiers/gradientDirection"; -import { ColorSpace } from "../src/qualifiers/colorSpace"; +import { GradientDirection, diagonalAsc, diagonalDesc, horizontal, vertical } from "../src/qualifiers/gradientDirection"; +import { ColorSpace, cmyk, keepCmyk, noCmyk, srgb, tinySrgb, trueColor } from "../src/qualifiers/colorSpace"; import { Dpr, auto } from "../src/qualifiers/dpr"; -import { CustomFunction } from "../src/actions/customFunction"; -import { Extract } from "../src/actions/extract"; +import { CustomFunction, remote, wasm, } from "../src/actions/customFunction"; +import { Extract, ExtractAction, getFrame, getPage, } from "../src/actions/extract"; import { ImproveMode } from "../src/qualifiers/improveMode"; -import { Source, video, image } from "../src/qualifiers/source"; +import { Source, video, image, subtitles, fetch, text } from "../src/qualifiers/source"; import { RoundCorners, max, byRadius } from "../src/actions/roundCorners"; import { Format, auto, ai, arw, audioAac, audioAiff, audioAmr, audioFlac, audioM4a, audioMp3, audioOgg, audioOpus, audioWav, avif, bmp, cr2, djvu, eps, eps3, ept, flif, fxb, gif, glb, gltf, hdp, heic, heif, ico, indd, jp2, jpc, jpe, jpeg, jpg, jxr, pdf, png, ps, psd, spd, svg, tga, tif, tiff, usdz, video3g2, video3gp, videoAvi, videoFlv, videoM2ts, videoM3u8, videoMkv, videoMov, videoMp4, videoMpd, videoMpeg, videoMts, videoMxf, videoOgv, videoTs, videoWebm, videoWmv, wdp, webp} from "../src/qualifiers/format"; -import { Quality } from "../src/qualifiers/quality"; +import { Quality, auto, autoBest, autoEco, autoGood, autoLow, jpegmini, jpegminiBest, jpegminiHigh, jpegminiMedium } from "../src/qualifiers/quality"; import { ImageTransformation } from "../src/transformation/ImageTransformation"; import { Transcode, audioCodec, audioFrequency, bitRate, fps, fpsRange, ITranscodeAction, keyframeInterval, streamingProfile, toAnimated, videoCodec } from "../src/actions/transcode"; import { Overlay, source } from "../src/actions/overlay"; import { AutoFocus } from "../src/qualifiers/autoFocus"; -import { ArtisticFilter, alDente, athena, audrey, aurora, daguerre, eucalyptus, fes, frost, hairspray, hokusai, incognito, linen, peacock, - , primavera, quartz, redRock, refresh, sizzle, sonnet, ukulele, zorro} from "../src/qualifiers/artisticFilter"; +import { ArtisticFilter, alDente, athena, audrey, aurora, daguerre, eucalyptus, fes, frost, hairspray, hokusai, incognito, linen, peacock, primavera, quartz, redRock, refresh, sizzle, sonnet, ukulele, zorro} from "../src/qualifiers/artisticFilter"; import { Gravity, autoGravity, compass, focusOn, xyCenter } from "../src/qualifiers/gravity"; -import { AnimatedFormat } from "../src/qualifiers/animatedFormat"; +import { AnimatedFormat, webp, png, gif, auto } from "../src/qualifiers/animatedFormat"; import { Background, auto, blurred, border, borderGradient, color, predominant, predominantGradient } from "../src/qualifiers/background"; -import { ChromaSubSampling } from "../src/qualifiers/chromaSubSampling"; +import { ChromaSubSampling, chroma420, chroma444 } from "../src/qualifiers/chromaSubSampling"; import { Position } from "../src/qualifiers/position"; import { Resize, fill, thumbnail, scale, crop, fillPad, fit, imaggaCrop, imaggaScale, limitFill, limitFit, limitPad, minimumFit, minimumPad, pad} from "../src/actions/resize"; import { Color } from "../src/qualifiers/color"; @@ -41,6 +39,7 @@ import { RotationMode, verticalFlip, autoRight, + autoLeft, horizontalFlip, ignore } from "../src/qualifiers/rotationMode"; import { Region, ocr, faces, custom} from "../src/qualifiers/region"; import { GradientFade } from "../src/qualifiers/GradientFade"; @@ -48,23 +47,22 @@ import { Effect, vignette, sepia, accelerate, advancedRedEye, artisticFilter, as import { Delivery, dpr, quality, colorSpace, colorSpaceFromICC, defaultImage, density, format} from "../src/actions/delivery"; import { FocusOn, advancedEyes, advancedFace, advancedFaces, aeroplane, background, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, face, faces, horse, microwave, motorbike, FocusOnValue, ocr, person, pottedplant, refrigerator, sheep, sink, skateboard, sofa, train, tvmonitor } from "../src/qualifiers/focusOn"; import { OutlineMode } from "../src/qualifiers/outlineMode"; -import { SimulateColorBlind } from "../src/qualifiers/simulateColorBlind"; +import { SimulateColorBlind, coneMonochromacy, deuteranomaly, deuteranopia, protanopia, rodMonochromacy, tritanomaly, tritanopia } from "../src/qualifiers/simulateColorBlind"; import { StreamingProfile } from "../src/qualifiers/streamingProfile"; import { Underlay } from "../src/actions/underlay"; import { VideoEdit, trim, volume, concatenate, preview } from "../src/actions/videoEdit"; import { VideoTransformation } from "../src/transformation/VideoTransformation"; import { Border, solid } from "../src/actions/border"; -import { Flag, custom, ignoreInitialAspectRatio, attachment, animated, animatedPng, animatedWebP, anyFormat, clip, clipEvenOdd, forceIcc, forceStrip, getInfo, hlsv3, ignoreMaskChannels, immutableCache, keepAttribution, keepDar, keepIptc, layerApply, lossy, mono, noOverflow, noStream, png8, png24, png32, preserveTransparency, progressive, rasterize, regionRelative, relative, sanitize, splice, streamingAttachment, stripProfile, -, tiff8Lzw, tiled, truncateTS, waveform} from "../src/qualifiers/flag"; +import { Flag, custom, ignoreInitialAspectRatio, attachment, animated, animatedPng, animatedWebP, anyFormat, clip, clipEvenOdd, forceIcc, forceStrip, getInfo, hlsv3, ignoreMaskChannels, immutableCache, keepAttribution, keepDar, keepIptc, layerApply, lossy, mono, noOverflow, noStream, png8, png24, png32, preserveTransparency, progressive, rasterize, regionRelative, relative, sanitize, splice, streamingAttachment, stripProfile, tiff8Lzw, tiled, truncateTS, waveform} from "../src/qualifiers/flag"; import { AudioCodec, none } from "../src/qualifiers/audioCodec"; -import { PSDTools } from "../src/actions/psdTools"; -import { TextDecoration } from "../src/qualifiers/textDecoration"; +import { PSDTools, clip, getLayer, smartObject } from "../src/actions/psdTools"; +import { TextDecoration, normal, strikethrough, underline } from "../src/qualifiers/textDecoration"; import { Transformation } from "../src/transformation/Transformation"; import { AutoGravity } from "../src/qualifiers/gravity/autoGravity/AutoGravity"; import { Conditional, ConditionalAction, ifCondition } from "../src/actions/conditional"; -import { FontWeight } from "../src/qualifiers/fontWeight"; +import { FontWeight, normal, bold, light, thin } from "../src/qualifiers/fontWeight"; import { AspectRatio, ar1X1, ar3X1, ar3X2, ar4X3, ar5X4, ar16X9, ignoreInitialAspectRatio} from "../src/qualifiers/aspectRatio"; -import { Timeline } from "../src/qualifiers/timeline"; +import { Timeline, position } from "../src/qualifiers/timeline"; import { NamedTransformation, name } from "../src/actions/namedTransformation"; import { Reshape, trim, cutByImage, distort, distortArc, shear } from "../src/actions/reshape"; import { Expression, expression } from "../src/qualifiers/expression"; @@ -72,9 +70,9 @@ import { Concatenate, videoSource } from "../src/qualifiers/concatenate"; import { TextStyle } from "../src/qualifiers/textStyle"; import { Volume, byDecibels, byPercent, mute } from "../src/qualifiers/volume"; import { TextAlignment, center, end, justify, left, right, start } from "../src/qualifiers/textAlignment"; -import { Transition } from "../src/qualifiers/transition"; +import { Transition, videoSource } from "../src/qualifiers/transition"; import { VideoCodecLevel, vcl30, vcl31, vcl40, vcl41, vcl42, vcl50, vcl51, vcl52 } from "../src/qualifiers/videoCodecLevel"; -import { Progressive } from "../src/qualifiers/progressive"; +import { Progressive, progressive, none, ProgressiveQualifier, semi, steep } from "../src/qualifiers/progressive"; import { FontStyle, italic, normal } from "../src/qualifiers/fontStyle"; import { VideoCodecProfile, baseline, high, main } from "../src/qualifiers/videoCodecProfile"; import { ShakeStrength, pixels16, pixels32, pixels48, pixels64 } from "../src/qualifiers/shakeStrength"; From 222c35eac6a9437340b7761deab6ae12a9cee70b Mon Sep 17 00:00:00 2001 From: Patrick Date: Tue, 15 Jun 2021 19:14:56 +0300 Subject: [PATCH 03/18] Updated devtools --- .gitignore | 1 + devTools/sanity/createTestFile.ts | 227 ++++++++++++++++++------------ devTools/sanity/index.ts | 2 +- devTools/sanity/txList | 60 ++++---- 4 files changed, 163 insertions(+), 127 deletions(-) diff --git a/.gitignore b/.gitignore index 709e56c1..6a0c7168 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ __TESTS__/compilation.test.ts pcakage-lock.json .SIZE_TESTS __DOCS__/JSDocTemplate/examples +devTools/sanity/results.json diff --git a/devTools/sanity/createTestFile.ts b/devTools/sanity/createTestFile.ts index 5fb71823..32bca554 100644 --- a/devTools/sanity/createTestFile.ts +++ b/devTools/sanity/createTestFile.ts @@ -6,79 +6,142 @@ const prettier = require('prettier'); function createTestFile(txs: ITxResult[]){ let file = ` - import { Dither, checkerboard2x1Dither, circles5x5Black, circles5x5White, circles6x6Black, circles6x6White, circles7x7Black, circles7x7White } from "../src/qualifiers/dither"; -import { Variable, setString, setInteger, set, setAssetReference, setFloat, setFromContext, setFromMetadata } from "../src/actions/variable"; -import { Rotate, byAngle, mode } from "../src/actions/rotate"; -import { GradientDirection, diagonalAsc, diagonalDesc, horizontal, vertical } from "../src/qualifiers/gradientDirection"; -import { ColorSpace, cmyk, keepCmyk, noCmyk, srgb, tinySrgb, trueColor } from "../src/qualifiers/colorSpace"; -import { Dpr, auto } from "../src/qualifiers/dpr"; -import { CustomFunction, remote, wasm, } from "../src/actions/customFunction"; -import { Extract, ExtractAction, getFrame, getPage, } from "../src/actions/extract"; -import { ImproveMode } from "../src/qualifiers/improveMode"; -import { Source, video, image, subtitles, fetch, text } from "../src/qualifiers/source"; -import { RoundCorners, max, byRadius } from "../src/actions/roundCorners"; -import { Format, auto, ai, arw, audioAac, audioAiff, audioAmr, audioFlac, audioM4a, audioMp3, audioOgg, audioOpus, audioWav, avif, bmp, cr2, djvu, eps, eps3, ept, flif, fxb, gif, glb, gltf, hdp, heic, heif, ico, indd, jp2, jpc, jpe, jpeg, jpg, jxr, pdf, png, ps, psd, spd, svg, tga, tif, tiff, usdz, video3g2, video3gp, videoAvi, videoFlv, videoM2ts, videoM3u8, videoMkv, videoMov, videoMp4, videoMpd, videoMpeg, videoMts, videoMxf, videoOgv, videoTs, videoWebm, videoWmv, wdp, webp} from "../src/qualifiers/format"; -import { Quality, auto, autoBest, autoEco, autoGood, autoLow, jpegmini, jpegminiBest, jpegminiHigh, jpegminiMedium } from "../src/qualifiers/quality"; -import { ImageTransformation } from "../src/transformation/ImageTransformation"; -import { Transcode, audioCodec, audioFrequency, bitRate, fps, fpsRange, ITranscodeAction, keyframeInterval, streamingProfile, toAnimated, videoCodec } from "../src/actions/transcode"; -import { Overlay, source } from "../src/actions/overlay"; -import { AutoFocus } from "../src/qualifiers/autoFocus"; -import { ArtisticFilter, alDente, athena, audrey, aurora, daguerre, eucalyptus, fes, frost, hairspray, hokusai, incognito, linen, peacock, primavera, quartz, redRock, refresh, sizzle, sonnet, ukulele, zorro} from "../src/qualifiers/artisticFilter"; -import { Gravity, autoGravity, compass, focusOn, xyCenter } from "../src/qualifiers/gravity"; -import { AnimatedFormat, webp, png, gif, auto } from "../src/qualifiers/animatedFormat"; -import { Background, auto, blurred, border, borderGradient, color, predominant, predominantGradient } from "../src/qualifiers/background"; -import { ChromaSubSampling, chroma420, chroma444 } from "../src/qualifiers/chromaSubSampling"; -import { Position } from "../src/qualifiers/position"; -import { Resize, fill, thumbnail, scale, crop, fillPad, fit, imaggaCrop, imaggaScale, limitFill, limitFit, limitPad, minimumFit, minimumPad, pad} from "../src/actions/resize"; -import { Color } from "../src/qualifiers/color"; -import { BlendMode } from "../src/qualifiers/blendMode"; + // In the future, we'll support HOTER tests without name duplication issues, for now it's commented out + // It's stored here since this is built manually, and it's best to keep the work :) + +// import { Dither, checkerboard2x1Dither, circles5x5Black, circles5x5White, circles6x6Black, circles6x6White, circles7x7Black, circles7x7White, halftone4x4Angled, halftone4x4Orthogonal, halftone6x6Angled, halftone6x6Orthogonal, halftone8x8Angled, halftone8x8Orthogonal, halftone16x16Orthogonal, ordered2x2Dispersed, ordered3x3Dispersed, ordered4x4Dispersed, ordered8x8Dispersed, threshold1x1Nondither} from "../src/qualifiers/dither"; +// import { Variable, setString, setInteger, set, setAssetReference, setFloat, setFromContext, setFromMetadata } from "../src/actions/variable"; +// import { Rotate, byAngle, mode } from "../src/actions/rotate"; +// import { GradientDirection, diagonalAsc, diagonalDesc, horizontal, vertical } from "../src/qualifiers/gradientDirection"; +// import { ColorSpace, cmyk, keepCmyk, noCmyk, srgb, tinySrgb, trueColor } from "../src/qualifiers/colorSpace"; +// import { Dpr, auto } from "../src/qualifiers/dpr"; +// import { CustomFunction, remote, wasm, } from "../src/actions/customFunction"; +// import { Extract, ExtractAction, getFrame, getPage, } from "../src/actions/extract"; +// import { ImproveMode } from "../src/qualifiers/improveMode"; +// import { Source, video, image, subtitles, fetch, text } from "../src/qualifiers/source"; +// import { RoundCorners, max, byRadius } from "../src/actions/roundCorners"; +// import { Format, auto, ai, arw, audioAac, audioAiff, audioAmr, audioFlac, audioM4a, audioMp3, audioOgg, audioOpus, audioWav, avif, bmp, cr2, djvu, eps, eps3, ept, flif, fxb, gif, glb, gltf, hdp, heic, heif, ico, indd, jp2, jpc, jpe, jpeg, jpg, jxr, pdf, png, ps, psd, spd, svg, tga, tif, tiff, usdz, video3g2, video3gp, videoAvi, videoFlv, videoM2ts, videoM3u8, videoMkv, videoMov, videoMp4, videoMpd, videoMpeg, videoMts, videoMxf, videoOgv, videoTs, videoWebm, videoWmv, wdp, webp} from "../src/qualifiers/format"; +// import { Quality, auto, autoBest, autoEco, autoGood, autoLow, jpegmini, jpegminiBest, jpegminiHigh, jpegminiMedium } from "../src/qualifiers/quality"; +// import { ImageTransformation } from "../src/transformation/ImageTransformation"; +// import { Transcode, audioCodec, audioFrequency, bitRate, fps, fpsRange, ITranscodeAction, keyframeInterval, streamingProfile, toAnimated, videoCodec } from "../src/actions/transcode"; +// import { Overlay, source } from "../src/actions/overlay"; +// import { AutoFocus } from "../src/qualifiers/autoFocus"; +// import { ArtisticFilter, alDente, athena, audrey, aurora, daguerre, eucalyptus, fes, frost, hairspray, hokusai, incognito, linen, peacock, primavera, quartz, redRock, refresh, sizzle, sonnet, ukulele, zorro} from "../src/qualifiers/artisticFilter"; +// import { Gravity, autoGravity, compass, focusOn, xyCenter } from "../src/qualifiers/gravity"; +// import { AnimatedFormat, webp, png, gif, auto } from "../src/qualifiers/animatedFormat"; +// import { Background, auto, blurred, border, borderGradient, color, predominant, predominantGradient } from "../src/qualifiers/background"; +// import { ChromaSubSampling, chroma420, chroma444 } from "../src/qualifiers/chromaSubSampling"; +// import { Position } from "../src/qualifiers/position"; +// import { Resize, fill, thumbnail, scale, crop, fillPad, fit, imaggaCrop, imaggaScale, limitFill, limitFit, limitPad, minimumFit, minimumPad, pad} from "../src/actions/resize"; +// import { BlendMode, antiRemoval, mask, multiply, overlay, screen } from "../src/qualifiers/blendMode"; +// import { CloudinaryMedia } from "../src/assets/CloudinaryMedia"; +// import { Compass, center, east, north, northEast, northWest, south, southEast, southWest, west } from "../src/qualifiers/compass"; +// import { Adjust, saturation, autoBrightness, autoColor, autoContrast, blue, brightness, brightnessHSB, by3dLut, contrast, fillLight, gamma, green, hue, IAdjustAction, improve, opacity, opacityThreshold, recolor, red, replaceColor, sharpen, tint, unsharpMask, vibrance, viesusCorrect } from "../src/actions/adjust"; +// import { +// RotationMode, +// verticalFlip, +// autoRight, +// autoLeft, horizontalFlip, ignore +// } from "../src/qualifiers/rotationMode"; +// import { Region, ocr, faces, custom} from "../src/qualifiers/region"; +// import { GradientFade } from "../src/qualifiers/GradientFade"; +// import { Effect, vignette, sepia, accelerate, advancedRedEye, artisticFilter, assistColorBlind, blackwhite, blur, boomerang, cartoonify, colorize, deshake, dither, EffectActions, fadeIn, fadeOut, gradientFade, grayscale, loop, makeTransparent, negate, noise, oilPaint, outline, pixelate, redEye, removeBackground, reverse, shadow, simulateColorBlind, styleTransfer, theme, transition, vectorize} from "../src/actions/effect"; +// import { Delivery, dpr, quality, colorSpace, colorSpaceFromICC, defaultImage, density, format} from "../src/actions/delivery"; +// import { FocusOn, advancedEyes, advancedFace, advancedFaces, aeroplane, background, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, face, faces, horse, microwave, motorbike, FocusOnValue, ocr, person, pottedplant, refrigerator, sheep, sink, skateboard, sofa, train, tvmonitor } from "../src/qualifiers/focusOn"; +// import { OutlineMode, fill, inner, innerFill, outer } from "../src/qualifiers/outlineMode"; +// import { SimulateColorBlind, coneMonochromacy, deuteranomaly, deuteranopia, protanopia, rodMonochromacy, tritanomaly, tritanopia } from "../src/qualifiers/simulateColorBlind"; +// import { StreamingProfile } from "../src/qualifiers/streamingProfile"; +// import { Underlay } from "../src/actions/underlay"; +// import { VideoEdit, trim, volume, concatenate, preview } from "../src/actions/videoEdit"; +// import { VideoTransformation } from "../src/transformation/VideoTransformation"; +// import { Border, solid } from "../src/actions/border"; +// import { Flag, custom, ignoreInitialAspectRatio, attachment, animated, animatedPng, animatedWebP, anyFormat, clip, clipEvenOdd, forceIcc, forceStrip, getInfo, hlsv3, ignoreMaskChannels, immutableCache, keepAttribution, keepDar, keepIptc, layerApply, lossy, mono, noOverflow, noStream, png8, png24, png32, preserveTransparency, progressive, rasterize, regionRelative, relative, sanitize, splice, streamingAttachment, stripProfile, tiff8Lzw, tiled, truncateTS, waveform} from "../src/qualifiers/flag"; +// import { AudioCodec, none } from "../src/qualifiers/audioCodec"; +// import { PSDTools, clip, getLayer, smartObject } from "../src/actions/psdTools"; +// import { TextDecoration, normal, strikethrough, underline } from "../src/qualifiers/textDecoration"; +// import { Transformation } from "../src/transformation/Transformation"; +// import { AutoGravity } from "../src/qualifiers/gravity/autoGravity/AutoGravity"; +// import { Conditional, ConditionalAction, ifCondition } from "../src/actions/conditional"; +// import { FontWeight, normal, bold, light, thin } from "../src/qualifiers/fontWeight"; +// import { AspectRatio, ar1X1, ar3X1, ar3X2, ar4X3, ar5X4, ar16X9, ignoreInitialAspectRatio} from "../src/qualifiers/aspectRatio"; +// import { Timeline, position } from "../src/qualifiers/timeline"; +// import { NamedTransformation, name } from "../src/actions/namedTransformation"; +// import { Reshape, trim, cutByImage, distort, distortArc, shear } from "../src/actions/reshape"; +// import { Expression, expression } from "../src/qualifiers/expression"; +// import { Concatenate, videoSource } from "../src/qualifiers/concatenate"; +// import { TextStyle } from "../src/qualifiers/textStyle"; +// import { Volume, byDecibels, byPercent, mute } from "../src/qualifiers/volume"; +// import { TextAlignment, center, end, justify, left, right, start } from "../src/qualifiers/textAlignment"; +// import { Transition, videoSource } from "../src/qualifiers/transition"; +// import { VideoCodecLevel, vcl30, vcl31, vcl40, vcl41, vcl42, vcl50, vcl51, vcl52 } from "../src/qualifiers/videoCodecLevel"; +// import { Progressive, progressive, none, ProgressiveQualifier, semi, steep } from "../src/qualifiers/progressive"; +// import { FontStyle, italic, normal } from "../src/qualifiers/fontStyle"; +// import { VideoCodecProfile, baseline, high, main } from "../src/qualifiers/videoCodecProfile"; +// import { ShakeStrength, pixels16, pixels32, pixels48, pixels64 } from "../src/qualifiers/shakeStrength"; +// import { VideoCodec, auto, h264, h265, proRes, theora, vp8, vp9 } from "../src/qualifiers/videoCodec"; +// import { FontAntialias, best, fast, good, gray, none, subpixel } from "../src/qualifiers/FontAntialias"; +// const https = require("http"); +// + +// Use Full import paths for HOTER tests import { CloudinaryMedia } from "../src/assets/CloudinaryMedia"; -import { Compass, center, east, north, northEast, northWest, south, southEast, southWest, west } from "../src/qualifiers/compass"; -import { Adjust, saturation, autoBrightness, autoColor, autoContrast, blue, brightness, brightnessHSB, by3dLut, contrast, fillLight, gamma, green, hue, IAdjustAction, improve, opacity, opacityThreshold, recolor, red, replaceColor, sharpen, tint, unsharpMask, vibrance, viesusCorrect } from "../src/actions/adjust"; -import { - RotationMode, - verticalFlip, - autoRight, - autoLeft, horizontalFlip, ignore -} from "../src/qualifiers/rotationMode"; -import { Region, ocr, faces, custom} from "../src/qualifiers/region"; -import { GradientFade } from "../src/qualifiers/GradientFade"; -import { Effect, vignette, sepia, accelerate, advancedRedEye, artisticFilter, assistColorBlind, blackwhite, blur, boomerang, cartoonify, colorize, deshake, dither, EffectActions, fadeIn, fadeOut, gradientFade, grayscale, loop, makeTransparent, negate, noise, oilPaint, outline, pixelate, redEye, removeBackground, reverse, shadow, simulateColorBlind, styleTransfer, theme, transition, vectorize} from "../src/actions/effect"; -import { Delivery, dpr, quality, colorSpace, colorSpaceFromICC, defaultImage, density, format} from "../src/actions/delivery"; -import { FocusOn, advancedEyes, advancedFace, advancedFaces, aeroplane, background, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, face, faces, horse, microwave, motorbike, FocusOnValue, ocr, person, pottedplant, refrigerator, sheep, sink, skateboard, sofa, train, tvmonitor } from "../src/qualifiers/focusOn"; -import { OutlineMode } from "../src/qualifiers/outlineMode"; -import { SimulateColorBlind, coneMonochromacy, deuteranomaly, deuteranopia, protanopia, rodMonochromacy, tritanomaly, tritanopia } from "../src/qualifiers/simulateColorBlind"; -import { StreamingProfile } from "../src/qualifiers/streamingProfile"; -import { Underlay } from "../src/actions/underlay"; -import { VideoEdit, trim, volume, concatenate, preview } from "../src/actions/videoEdit"; -import { VideoTransformation } from "../src/transformation/VideoTransformation"; -import { Border, solid } from "../src/actions/border"; -import { Flag, custom, ignoreInitialAspectRatio, attachment, animated, animatedPng, animatedWebP, anyFormat, clip, clipEvenOdd, forceIcc, forceStrip, getInfo, hlsv3, ignoreMaskChannels, immutableCache, keepAttribution, keepDar, keepIptc, layerApply, lossy, mono, noOverflow, noStream, png8, png24, png32, preserveTransparency, progressive, rasterize, regionRelative, relative, sanitize, splice, streamingAttachment, stripProfile, tiff8Lzw, tiled, truncateTS, waveform} from "../src/qualifiers/flag"; -import { AudioCodec, none } from "../src/qualifiers/audioCodec"; -import { PSDTools, clip, getLayer, smartObject } from "../src/actions/psdTools"; -import { TextDecoration, normal, strikethrough, underline } from "../src/qualifiers/textDecoration"; -import { Transformation } from "../src/transformation/Transformation"; -import { AutoGravity } from "../src/qualifiers/gravity/autoGravity/AutoGravity"; -import { Conditional, ConditionalAction, ifCondition } from "../src/actions/conditional"; -import { FontWeight, normal, bold, light, thin } from "../src/qualifiers/fontWeight"; -import { AspectRatio, ar1X1, ar3X1, ar3X2, ar4X3, ar5X4, ar16X9, ignoreInitialAspectRatio} from "../src/qualifiers/aspectRatio"; -import { Timeline, position } from "../src/qualifiers/timeline"; -import { NamedTransformation, name } from "../src/actions/namedTransformation"; -import { Reshape, trim, cutByImage, distort, distortArc, shear } from "../src/actions/reshape"; -import { Expression, expression } from "../src/qualifiers/expression"; -import { Concatenate, videoSource } from "../src/qualifiers/concatenate"; -import { TextStyle } from "../src/qualifiers/textStyle"; -import { Volume, byDecibels, byPercent, mute } from "../src/qualifiers/volume"; -import { TextAlignment, center, end, justify, left, right, start } from "../src/qualifiers/textAlignment"; -import { Transition, videoSource } from "../src/qualifiers/transition"; -import { VideoCodecLevel, vcl30, vcl31, vcl40, vcl41, vcl42, vcl50, vcl51, vcl52 } from "../src/qualifiers/videoCodecLevel"; -import { Progressive, progressive, none, ProgressiveQualifier, semi, steep } from "../src/qualifiers/progressive"; -import { FontStyle, italic, normal } from "../src/qualifiers/fontStyle"; -import { VideoCodecProfile, baseline, high, main } from "../src/qualifiers/videoCodecProfile"; -import { ShakeStrength, pixels16, pixels32, pixels48, pixels64 } from "../src/qualifiers/shakeStrength"; -import { VideoCodec, auto, h264, h265, proRes, theora, vp8, vp9 } from "../src/qualifiers/videoCodec"; -import { FontAntialias, best, fast, good, gray, none, subpixel } from "../src/qualifiers/FontAntialias"; -const https = require("http"); +import { VideoEdit } from "actions/videoEdit"; +import { Border } from "actions/border"; +import { Resize } from "actions/resize"; +import { Rotate } from "actions/rotate"; +import { RotationMode } from "qualifiers/rotationMode"; +import { Transcode } from "actions/transcode"; +import { AudioCodec } from "qualifiers/audioCodec"; +import { Overlay } from "actions/overlay"; +import { Source } from "qualifiers/source"; +import { RoundCorners } from "actions/roundCorners"; +import { AspectRatio } from "qualifiers/aspectRatio"; +import { Gravity } from "qualifiers/gravity"; +import { Delivery } from "actions/delivery"; +import { Format } from "qualifiers/format"; +import { Quality } from "qualifiers/quality"; +import { Dpr } from "qualifiers/dpr"; +import { Variable } from "actions/variable"; +import { CustomFunction } from "actions/customFunction"; +import { NamedTransformation } from "actions/namedTransformation"; +import { Color } from "qualifiers/color"; +import { Concatenate } from "qualifiers/concatenate"; +import { Expression } from "qualifiers/expression"; +import { Compass } from "qualifiers/compass"; +import { FocusOn } from "qualifiers/focusOn"; +import { AutoFocus } from "qualifiers/autoFocus"; +import { VideoCodec } from "qualifiers/videoCodec"; +import { Adjust } from "actions/adjust"; +import { ImageTransformation } from "index"; +import { Effect } from "actions/effect"; +import { Conditional } from "actions/conditional"; +import { Underlay } from "actions/underlay"; +import { ColorSpace } from "qualifiers/colorSpace"; +import { OutlineMode } from "qualifiers/outlineMode"; +import { VideoCodecLevel } from "qualifiers/videoCodecLevel"; +import { VideoCodecProfile } from "qualifiers/videoCodecProfile"; +import { Position } from "qualifiers/position"; +import { TextStyle } from "qualifiers/textStyle"; +import { ArtisticFilter } from "qualifiers/artisticFilter"; +import { Reshape } from "actions/reshape"; +import { ImproveMode } from "qualifiers/improveMode"; +import { BlendMode } from "qualifiers/blendMode"; +import { SimulateColorBlind } from "qualifiers/simulateColorBlind"; +import { Background } from "qualifiers/background"; +import { Transition } from "qualifiers/transition"; +import { ShakeStrength } from "qualifiers/shakeStrength"; +import { GradientFade } from "qualifiers/GradientFade"; +import { Region } from "qualifiers/region"; +import { Extract } from "actions/extract"; +import { Progressive } from "qualifiers/progressive"; +import { Timeline } from "qualifiers/timeline"; +import { TextDecoration } from "qualifiers/textDecoration"; +import { FontWeight } from "qualifiers/fontWeight"; +import { TextAlignment } from "qualifiers/textAlignment"; +import { AnimatedFormat } from "qualifiers/animatedFormat"; +import { ChromaSubSampling } from "qualifiers/chromaSubSampling"; +import { Dither } from "qualifiers/dither"; +import { Flag } from "qualifiers/flag"; const CloudinaryImage = CloudinaryMedia; const CloudinaryVideo = CloudinaryMedia; @@ -90,29 +153,9 @@ const CloudinaryVideo = CloudinaryMedia; file += txs.map((txResult) => { let test = `it("${txResult.txString}", () => {`; test += `const parts = '${txResult.txString}'.replace(/\\//g, ',').split(',');\n\n`; - test += `const tAsset = ${txResult.parsedCode}`; - test += '\n})\n'; // Close it test - // code += "let tAsset = " + described_class.generate_code(nil, :js_2, { - // :public_id => SAMPLE_ID, - // :transformation_string => transformation_string.rstrip, - // :format_code => false - // }) - // code += "\n\n" - // - // code += "\t\t\tparts.forEach((part) => { expect(tAsset.toString()).toContain(part)});\n\n" - // - // if ENV['FETCH_IMAGES'] && ENV['FETCH_IMAGES'].length > 0 - // code += " https.get(tAsset.toURL(), (resp:any) => {\n"; - // code += " expect(resp.headers['x-cld-error']).toBeUndefined();\n"; - // code += " done();\n"; - // code += " })\n"; - // else - // code += " done();\n"; - // end - try { return prettier.format(test, {parser:'babel'}); } catch (e) { diff --git a/devTools/sanity/index.ts b/devTools/sanity/index.ts index 4f3ab031..58eed16d 100644 --- a/devTools/sanity/index.ts +++ b/devTools/sanity/index.ts @@ -41,7 +41,7 @@ transformationStrings.forEach(async (txString, i) => { console.log('Processing transformation:', i); - const URL = `${baseURL}?url=https://res.cloudinary.com/demo/image/upload/${txString}/sample`; + const URL = `${baseURL}?hideActionGroups=0&url=https://res.cloudinary.com/demo/image/upload/${txString}/sample`; const res = await nodeFetch(URL).catch((e: Error) => { console.log(e); diff --git a/devTools/sanity/txList b/devTools/sanity/txList index b58e0ca2..e2a24f89 100644 --- a/devTools/sanity/txList +++ b/devTools/sanity/txList @@ -122,7 +122,7 @@ c_crop,g_face,h_150,w_150 c_crop,g_face,h_400,w_400 c_crop,g_face,r_75,bo_10px_solid_grey/l_young_couple,w_150,h_150,c_thumb,r_max,g_faces,bo_3px_solid_black/fl_layer_apply,g_north_east # Zoom not supported with crop - Needs to be fixed by docs team -c_crop,g_face,z_1.2,h_150,w_150 +#c_crop,g_face,z_1.2,h_150,w_150 c_crop,g_microwave c_crop,g_microwave,ar_1 c_crop,g_microwave,ar_1/w_0.3,c_scale @@ -137,7 +137,7 @@ c_crop,g_sink c_crop,g_sink,ar_1 c_crop,g_sink,ar_1/w_0.3,c_scale # Zoom not supported with crop - Needs to be fixed by docs team -c_crop,g_sink,z_0.8 +#c_crop,g_sink,z_0.8 c_crop,g_sink/w_0.3,c_scale c_crop,h_100,w_150,x_380,y_250/c_fill,h_100,w_130/a_20/c_scale,w_0.8 c_crop,h_160,w_100 @@ -154,12 +154,12 @@ c_fill,g_auto,h_250,w_250 c_fill,g_auto,h_400,ar_0.8 c_fill,g_auto,h_400,ar_0.8/h_300 c_fill,g_auto,h_500,w_500 -c_fill,g_auto:classic,ar_0.7,w_200 -c_fill,g_auto:classic,ar_0.7,w_750 +#c_fill,g_auto:classic,ar_0.7,w_200 +#c_fill,g_auto:classic,ar_0.7,w_750 c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8 c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8/h_300 -c_fill,g_auto:subject,ar_0.7,w_200 -c_fill,g_auto:subject,ar_1:1 +#c_fill,g_auto:subject,ar_0.7,w_200 +#c_fill,g_auto:subject,ar_1:1 c_fill,g_north,h_200,w_150 c_fill,g_north,h_200,w_150/ c_fill,g_ocr_text,h_250,w_250 @@ -327,7 +327,6 @@ e_contrast:-70 e_cut_out,l_docs:logo:logo,g_south_west,w_200,x_20,y_20 e_deshake:32 e_displace,l_radialize,y_100 -e_distort:150:340:1500:10:1500:1550:50:1000 e_distort:arc:180 e_fade:2000 e_fade:2000/e_fade:-4000 @@ -384,7 +383,7 @@ e_progressbar:color_FF0000:width_12:type_frame e_progressbar:frame:FF0000:12 e_progressbar:frame:FF0000:6 e_progressbar:type_bar:color_blue:width_6 -e_recolor:0.3:0.7:0.1:0.3:0.6:0.1:0.2:0.5:0.1 +#e_recolor:0.3:0.7:0.1:0.3:0.6:0.1:0.2:0.5:0.1 e_red:50 e_redeye e_replace_color:2F4F4F:20 @@ -446,14 +445,14 @@ f_png f_png/a_90,ar_1,b_rgb:a17ec5,c_fill,g_auto,h_200 f_png/w_800/l_text:Unkempt_250_bold:Water,fl_cutter,e_shadow f_webm -fl_apng +#fl_apng fl_attachment fl_attachment:pretty_flower,f_auto fl_awebp fl_clip,pg_2 fl_clip,pg_name:stones fl_clip_evenodd -fl_draco +#fl_draco fl_lossy fl_lossy,q_50 fl_region_relative,g_adv_eyes,l_glasses,w_1.5 @@ -463,8 +462,8 @@ fn_pre:remote:aHR0cHM6Ly9teS5wcmVwcm9jZXNzLmN1c3RvbS9mdW5jdGlvbg== fn_remote:aHR0cHM6Ly9teS5leGFtcGxlLmN1c3RvbS9mdW5jdGlvbg== fn_wasm:my_example.wasm fps_1-5 -g_auto:subject,c_fill,ar_0.7,w_750 -g_auto:subject,c_fill,ar_0.7,w_750,fl_getinfo +#g_auto:subject,c_fill,ar_0.7,w_750 +#g_auto:subject,c_fill,ar_0.7,w_750,fl_getinfo g_face,c_crop # No zoom with crop - Docs need to fix g_face,c_crop,z_1.3 @@ -565,7 +564,7 @@ l_lut:iwltbap_aspen.3dl l_lut:iwltbap_aspen.3dl/w_200 l_lut:iwltbap_sedona.3dl l_lut:iwltbap_sedona.3dl/w_200 -l_sample,fl_replace_image,e_cartoonify +#l_sample,fl_replace_image,e_cartoonify l_subtitles:arial_20:sample_sub_en.srt l_subtitles:arial_40:sample_sub_en.srt,co_yellow,b_black l_subtitles:arial_70:sample_sub_en.srt,co_rgb:ffff00,b_black @@ -587,11 +586,9 @@ l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50 l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_volume:mute/e_brightness:10,r_max l_video:ski_jump,so_3,eo_6,c_scale,w_250,g_north_east o_30 -p_home_thing_ -p_my_sprite_ +#p_my_sprite_ pg_2 -pg_2-4;6;8 -pg_2-4;6;8/w_300 +#pg_2-4;6;8 pg_embedded:3 pg_embedded:3/w_300 pg_embedded:7 @@ -814,7 +811,7 @@ w_300,c_fill,g_auto,ar_1:1 w_300,c_scale,pg_2 w_300,c_scale,pg_4,e_sepia,r_50,bo_2px_solid_rgb:999/l_aspose_cloud_logo,w_0.9,fl_relative,o_70,g_south,y_20 w_300,e_accelerate:100 -w_300,e_distort:40:25:280:60:260:155:35:165 +#w_300,e_distort:40:25:280:60:260:155:35:165 w_300,e_grayscale w_300,e_noise:50 w_300,f_auto,q_auto,dpr_2 @@ -1065,11 +1062,11 @@ c_fill,g_auto,h_250,w_250 c_fill,g_auto,h_400,ar_0.8 c_fill,g_auto,h_400,ar_0.8/h_300 c_fill,g_auto,h_500,w_500 -c_fill,g_auto:classic,ar_0.7,w_200 -c_fill,g_auto:classic,ar_0.7,w_750 +#c_fill,g_auto:classic,ar_0.7,w_200 +#c_fill,g_auto:classic,ar_0.7,w_750 c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8 c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8/h_300 -c_fill,g_auto:subject,ar_0.7,w_200 +#c_fill,g_auto:subject,ar_0.7,w_200 c_fill,g_face,h_10,w_10 c_fill,g_north,h_200,w_150 c_fill,g_ocr_text,h_250,w_250 @@ -1215,8 +1212,7 @@ e_preview,fl_getinfo e_preview:duration_5 e_preview:duration_8/c_crop,w_1600,h_800,e_loop e_preview:duration_12.0:max_seg_3:min_seg_dur_3.0 -e_recolor:0.3:0.7:0.1:0.2:0.3:0.6:0.1:0.2:0.2:0.5:0.1:0.2 -e_recolor:0.3:0.7:0.1:0.3:0.6:0.1:0.2:0.5:0.1 +#e_recolor:0.3:0.7:0.1:0.2:0.3:0.6:0.1:0.2:0.2:0.5:0.1:0.2 e_red e_red:10 e_redeye @@ -1268,7 +1264,7 @@ fl_region_relative,g_adv_faces,l_silver_face_mask,w_1.1 fn_pre:remote:aHR0cHM6Ly9teS5wcmVwcm9jZXNzLmN1c3RvbS9mdW5jdGlvbg== fn_remote:aHR0cHM6Ly9teS5leGFtcGxlLmN1c3RvbS9mdW5jdGlvbg== fn_wasm:my_example.wasm -g_auto:subject,c_fill,ar_0.7,w_750 +#g_auto:subject,c_fill,ar_0.7,w_750 g_face,c_crop g_face,c_crop,z_1.3 g_face,c_thumb,w_150,h_150 @@ -1360,9 +1356,9 @@ l_video:kitten_fighting,e_fade:3000,w_100 l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_brightness:10,r_max l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_volume:mute/e_brightness:10,r_max o_30 -p_home_thing_ +#p_home_thing_ pg_2 -pg_2-4;6;8/w_300 +#pg_2-4;6;8/w_300 pg_embedded:3 pg_embedded:3/w_300 pg_embedded:name:skyline-3242040_1920.jpg @@ -1541,7 +1537,6 @@ w_300,c_fill,g_auto,ar_1:1 w_300,c_scale,pg_2 w_300,c_scale,pg_4,e_sepia,r_50,bo_2px_solid_rgb:999/l_aspose_cloud_logo,w_0.9,fl_relative,o_70,g_south,y_20 w_300,e_accelerate:100 -w_300,e_distort:40:25:280:60:260:155:35:165 w_300,e_grayscale w_300,e_noise:50 w_300,f_auto,q_auto,dpr_2 @@ -1994,15 +1989,13 @@ pg_embedded:name:skyline.jpg;bg.jpg pg_3 pg_name:skyline pg_name:lala;fofo -pg_4-7;9 +#pg_4-7;9 fl_clip,pg_2 fl_clip,pg_name:path fl_clip_evenodd,pg_2 pg_3 -pg_4-7;9 t_my_named_transformation pg_3 -pg_4-7;9 e_ordered_dither:6 e_ordered_dither:13 a_hflip @@ -2062,7 +2055,6 @@ e_fill_light:17 e_fill_light:17:-100 e_brightness_hsb e_viesus_correct:no_redeye:skin_saturation_5 -e_recolor:0.3:0.7:0.1:0.2:0.3:0.6:0.1:0.2:0.2:0.5:0.1:0.2 e_improve:outdoor:50 e_cartoonify e_cartoonify:80 @@ -2076,8 +2068,8 @@ e_assist_colorblind:xray fl_keep_iptc fl_animated:filename fl_attachment:pretty_flower -fl_whatever -l_sample/fl_first_flag/fl_second_flag/fl_layer_apply +#fl_whatever +#l_sample/fl_first_flag/fl_second_flag/fl_layer_apply if_expression,a_20 if_expression/a_20/if_end if_expression/a_20/if_else/a_30/if_end @@ -2124,7 +2116,7 @@ e_trim e_trim:50 e_trim:50:yellow e_shear:23.0:50.0 -e_distort:5:34:70:10:70:75:5:55 +#e_distort:5:34:70:10:70:75:5:55 e_distort:arc:5 l_sample,fl_cutter l_sample/fl_cutter,fl_layer_apply,g_south From d2457f50aed9f424ccb09fc19736a429b39bed45 Mon Sep 17 00:00:00 2001 From: maoznir Date: Thu, 17 Jun 2021 11:38:26 +0300 Subject: [PATCH 04/18] Comment out transformations that have no action spec --- devTools/sanity/txList | 56 +++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/devTools/sanity/txList b/devTools/sanity/txList index e2a24f89..0ec9459a 100644 --- a/devTools/sanity/txList +++ b/devTools/sanity/txList @@ -324,9 +324,9 @@ e_cartoonify:70:80 e_colorize:35,co_darkviolet e_colorize:80 e_contrast:-70 -e_cut_out,l_docs:logo:logo,g_south_west,w_200,x_20,y_20 +# no action spec (l_docs): e_cut_out,l_docs:logo:logo,g_south_west,w_200,x_20,y_20 e_deshake:32 -e_displace,l_radialize,y_100 +# no action spec: e_displace,l_radialize,y_100 e_distort:arc:180 e_fade:2000 e_fade:2000/e_fade:-4000 @@ -339,18 +339,18 @@ e_hue:40 e_improve:50 e_improve:indoor e_improve:outdoor -e_lightroom:saturation_-100:clarity_25:contrast_73:vignetteamount_60 -e_lightroom:saturation_-100:clarity_25:contrast_73:vignetteamount_60/w_500,q_auto,e_distort:0:0:500:100:500:232:0:332 -e_lightroom:whitebalance_auto -e_lightroom:whitebalance_shade:clarity_25 -e_lightroom:whitebalance_tungsten -e_lightroom:xmp:authenticated:my_presets:warm_shadow_auth.xmp -e_lightroom:xmp:my_presets:warm_shadow.xmp -e_lightroom:xmp:soft_mist.xmp -e_lightroom:xmp:soft_mist.xmp/r_50,f_auto,q_auto,bo_40px_solid_orange/a_5/w_400 -e_lightroom:xmp:soft_mist.xmp/w_300 -e_lightroom:xmp:warm_shadow.xmp -e_lightroom:xmp:warm_shadow.xmp/w_300 +#No action spec: e_lightroom:saturation_-100:clarity_25:contrast_73:vignetteamount_60 +#No action spec: e_lightroom:saturation_-100:clarity_25:contrast_73:vignetteamount_60/w_500,q_auto,e_distort:0:0:500:100:500:232:0:332 +#No action spec: e_lightroom:whitebalance_auto +#No action spec: e_lightroom:whitebalance_shade:clarity_25 +#No action spec: e_lightroom:whitebalance_tungsten +#No action spec: e_lightroom:xmp:authenticated:my_presets:warm_shadow_auth.xmp +#No action spec: e_lightroom:xmp:my_presets:warm_shadow.xmp +#No action spec: e_lightroom:xmp:soft_mist.xmp +#No action spec: e_lightroom:xmp:soft_mist.xmp/r_50,f_auto,q_auto,bo_40px_solid_orange/a_5/w_400 +#No action spec: e_lightroom:xmp:soft_mist.xmp/w_300 +#No action spec: e_lightroom:xmp:warm_shadow.xmp +#No action spec: e_lightroom:xmp:warm_shadow.xmp/w_300 e_loop:2 e_make_transparent:5 e_multiply,l_cloudinary_icon_blue @@ -378,11 +378,11 @@ e_preview,fl_getinfo e_preview:duration_12.0:max_seg_3:min_seg_dur_3.0 e_preview:duration_5.0 e_preview:duration_8/c_crop,w_1600,h_800,e_loop -e_progressbar:bar:blue:6 -e_progressbar:color_FF0000:width_12:type_frame -e_progressbar:frame:FF0000:12 -e_progressbar:frame:FF0000:6 -e_progressbar:type_bar:color_blue:width_6 +#No action spec: e_progressbar:bar:blue:6 +#No action spec: e_progressbar:color_FF0000:width_12:type_frame +#No action spec: e_progressbar:frame:FF0000:12 +#No action spec: e_progressbar:frame:FF0000:6 +#No action spec: e_progressbar:type_bar:color_blue:width_6 #e_recolor:0.3:0.7:0.1:0.3:0.6:0.1:0.2:0.5:0.1 e_red:50 e_redeye @@ -408,8 +408,8 @@ e_simulate_colorblind:protanopia e_style_transfer,l_davinci_mona_lisa e_style_transfer,l_lighthouse e_style_transfer:preserve_color:40,l_lighthouse -e_theme:color_black:photosensitivity_110 -e_theme:color_d3d3d3 +# no action spec: e_theme:color_black:photosensitivity_110 +# no action spec: e_theme:color_d3d3d3 e_tint:100:red:blue:yellow e_tint:20 e_tint:50:red:blue @@ -482,8 +482,8 @@ h_150,dpr_2.0 h_150,dpr_auto h_150,w_150,c_pad,b_auto:predominant h_150,w_150,c_pad,b_auto:predominant_gradient:2:diagonal_desc -h_150/e_progressbar:bar:blue:6/ac_none -h_150/e_progressbar:frame:FF0000:6/ac_none +# no action spec: h_150/e_progressbar:bar:blue:6/ac_none +# no action spec: h_150/e_progressbar:frame:FF0000:6/ac_none h_150/l_play_icon2,w_0.1 h_150/q_auto,f_auto,dpr_2/bo_1px_solid_gray h_200 @@ -731,7 +731,7 @@ w_150,h_150,c_pad,b_black w_150,h_150,c_pad,b_pink w_150,h_150,c_scale w_150,h_150,c_thumb,g_auto -w_150,h_150,c_thumb,g_auto:0 +# No action spec (g_auto:0): w_150,h_150,c_thumb,g_auto:0 w_150,h_150,c_thumb,g_center w_150,h_150,c_thumb,g_face w_150,h_150,c_thumb,g_face/r_20/e_sepia/l_cloudinary_icon_blue,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10 @@ -894,10 +894,10 @@ w_500,q_auto,f_auto w_500,q_auto,f_auto,dpr_2 w_500/e_brightness:70/l_woman,c_crop,g_face/w_150/e_saturation:50/e_shadow/fl_layer_apply w_500/e_brightness:70/l_woman,c_crop,g_face/w_250/e_saturation:50/e_shadow,x_20,y_20,co_grey/fl_layer_apply -w_500/e_progressbar:bar:blue:6/ac_none -w_500/e_progressbar:bar:blue:6/ac_none/l_play_icon2,w_0.15 -w_500/e_progressbar:frame:FF0000:12/ac_none -w_500/e_progressbar:frame:FF0000:12/ac_none/l_play_icon2,w_0.15 +# no action spec: w_500/e_progressbar:bar:blue:6/ac_none +# no action spec: w_500/e_progressbar:bar:blue:6/ac_none/l_play_icon2,w_0.15 +# no action spec: w_500/e_progressbar:frame:FF0000:12/ac_none +# no action spec: w_500/e_progressbar:frame:FF0000:12/ac_none/l_play_icon2,w_0.15 w_500/if_!cloudinary!_in_tags/l_cloudinary_icon_white,w_100,g_north_east,o_50,e_brightness:100/l_text:arial_15:By%20Cloudinary,g_north_east,y_10,x_105/if_end/du_5 w_500/l_cloudinary_icon_blue,g_north_east,o_50,w_200,e_anti_removal:90 w_500/l_cloudinary_icon_blue,w_150/e_blackwhite/fl_layer_apply,g_north_east From 8246216fac698b42eb0dcb68fec3e30985a5fe09 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 20 Jun 2021 10:43:14 +0300 Subject: [PATCH 05/18] Update txList --- devTools/sanity/createTestFile.ts | 3 +- devTools/sanity/txList | 801 ++---------------------------- 2 files changed, 43 insertions(+), 761 deletions(-) diff --git a/devTools/sanity/createTestFile.ts b/devTools/sanity/createTestFile.ts index 32bca554..1b2390ea 100644 --- a/devTools/sanity/createTestFile.ts +++ b/devTools/sanity/createTestFile.ts @@ -142,7 +142,8 @@ import { AnimatedFormat } from "qualifiers/animatedFormat"; import { ChromaSubSampling } from "qualifiers/chromaSubSampling"; import { Dither } from "qualifiers/dither"; import { Flag } from "qualifiers/flag"; - +import {GradientDirection} from "qualifiers/gradientDirection"; +import {StreamingProfile} from "qualifiers/streamingProfile"; const CloudinaryImage = CloudinaryMedia; const CloudinaryVideo = CloudinaryMedia; `; diff --git a/devTools/sanity/txList b/devTools/sanity/txList index 0ec9459a..68c61668 100644 --- a/devTools/sanity/txList +++ b/devTools/sanity/txList @@ -73,21 +73,17 @@ bo_40px_solid_brown bo_5px_solid_black,f_auto,q_auto/dpr_auto bo_5px_solid_red bo_60px_solid_rgb:00390b60 -#fn_render:w_500;h_500;du_18;vars_(tdur_1500;transition_s:hexagonalize;slides_((media_i:docs:shoppable_sunglasses;sdur_2000);(media_i:docs:shoppable_dress;sdur_4000);(media_i:docs:shoppable_bag2;sdur_3000);(media_i:docs:shoppable_bag;sdur_3000)))/f_auto,q_auto -#fn_render:w_500;h_500;du_20;vars_(sdur_3000;tdur_1500;transition_s:circlecrop;slides_((media_i:docs:shoppable_sunglasses);(media_i:docs:shoppable_dress);(media_i:docs:shoppable_bag2);(media_i:docs:shoppable_bag)))/f_auto,q_auto -#fn_render:w_640;h_480;du_20;vars_(sdur_3000;tdur_1500;transition_s:hexagonalize;slides_((media_v:hourglass_timer;type_s:video);(media_i:docs:shoppable_dress);(media_i:docs:shoppable_bag2);(media_i:docs:shoppable_bag)))/f_auto,q_auto +fn_render:w_500;h_500;du_18;vars_(tdur_1500;transition_s:hexagonalize;slides_((media_i:docs:shoppable_sunglasses;sdur_2000);(media_i:docs:shoppable_dress;sdur_4000);(media_i:docs:shoppable_bag2;sdur_3000);(media_i:docs:shoppable_bag;sdur_3000)))/f_auto,q_auto +fn_render:w_500;h_500;du_20;vars_(sdur_3000;tdur_1500;transition_s:circlecrop;slides_((media_i:docs:shoppable_sunglasses);(media_i:docs:shoppable_dress);(media_i:docs:shoppable_bag2);(media_i:docs:shoppable_bag)))/f_auto,q_auto +fn_render:w_640;h_480;du_20;vars_(sdur_3000;tdur_1500;transition_s:hexagonalize;slides_((media_v:hourglass_timer;type_s:video);(media_i:docs:shoppable_dress);(media_i:docs:shoppable_bag2);(media_i:docs:shoppable_bag)))/f_auto,q_auto $award_!First!,$color_!rgb:FFFFFF!,$style_!Arial_45!/l_text:$style:%20%20$(award -# Due to color - TODO Add this -#$bcolor_!rgb:0000ff!/if_fc_gt_0,$bcolor_!red!/bo_5px_solid_$bcolor,c_fill,h_120,w_120 +$bcolor_!rgb:0000ff!/if_fc_gt_0,$bcolor_!red!/bo_5px_solid_$bcolor,c_fill,h_120,w_120 $colors_5,fn_wasm:quantize.wasm $img_current,$height_ih/if_w_lt_800/c_scale,e_blur:800,u_$img,w_800,h_$height/e_brightness:40,fl_layer_apply/if_end -#Due to color TODO Add this -#$img_current/e_grayscale/l_$img,w_0.3,bo_10px_solid_white/fl_layer_apply,g_north_west/q_auto,f_auto,dpr_2.0,w_900 -Due to position - TODO Add this -#$mainvideowidth_500/$overlaywidth_$mainvideowidth_div_3/w_$mainvideowidth/l_video:kitten_fighting,w_$overlaywidth,g_south_east +$img_current/e_grayscale/l_$img,w_0.3,bo_10px_solid_white/fl_layer_apply,g_north_west/q_auto,f_auto,dpr_2.0,w_900 +$mainvideowidth_500/$overlaywidth_$mainvideowidth_div_3/w_$mainvideowidth/l_video:kitten_fighting,w_$overlaywidth,g_south_east $newwidth_10_add_iw_mul_0.3,w_$newwidth -# Due to color - TODO Add this -#$overlay_ref:!docs:sale!/fn_wasm:docs:pnglayer.wasm/bo_1px_solid_black +$overlay_ref:!docs:sale!/fn_wasm:docs:pnglayer.wasm/bo_1px_solid_black $qualtag_!Pro!/if_$qualtag_in_tags,q_80/if_else,q_30/w_500 $qualtag_!Pro!/if_$qualtag_in_tags,q_90/if_else,q_30/w_500 $qualtag_!important!,$delwidth_450/t_highqual-if-tagged @@ -106,8 +102,7 @@ br_500000 br_500k:constant c_crop,ar_1.85356,so_813,g_south/c_fill,w_230,h_129 c_crop,ar_1:1,w_1000,g_auto:cat -# Due to textStyle - TODO ADD THIS -#c_crop,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This +c_crop,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This c_crop,e_viesus_correct,g_south,r_20,w_1000/c_scale,g_north_east,l_viesus_logo,o_50,w_100,x_10,y_10/c_scale,w_600 c_crop,g_cat:dog c_crop,g_cat:dog/w_0.25,c_scale @@ -121,8 +116,7 @@ c_crop,g_face c_crop,g_face,h_150,w_150 c_crop,g_face,h_400,w_400 c_crop,g_face,r_75,bo_10px_solid_grey/l_young_couple,w_150,h_150,c_thumb,r_max,g_faces,bo_3px_solid_black/fl_layer_apply,g_north_east -# Zoom not supported with crop - Needs to be fixed by docs team -#c_crop,g_face,z_1.2,h_150,w_150 +# Zoom not supported with crop - c_crop,g_face,z_1.2,h_150,w_150 c_crop,g_microwave c_crop,g_microwave,ar_1 c_crop,g_microwave,ar_1/w_0.3,c_scale @@ -136,8 +130,7 @@ c_crop,g_refrigerator/w_0.3,c_scale c_crop,g_sink c_crop,g_sink,ar_1 c_crop,g_sink,ar_1/w_0.3,c_scale -# Zoom not supported with crop - Needs to be fixed by docs team -#c_crop,g_sink,z_0.8 +# Zoom not supported with crop - c_crop,g_sink,z_0.8 c_crop,g_sink/w_0.3,c_scale c_crop,h_100,w_150,x_380,y_250/c_fill,h_100,w_130/a_20/c_scale,w_0.8 c_crop,h_160,w_100 @@ -154,12 +147,13 @@ c_fill,g_auto,h_250,w_250 c_fill,g_auto,h_400,ar_0.8 c_fill,g_auto,h_400,ar_0.8/h_300 c_fill,g_auto,h_500,w_500 -#c_fill,g_auto:classic,ar_0.7,w_200 -#c_fill,g_auto:classic,ar_0.7,w_750 c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8 c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8/h_300 -#c_fill,g_auto:subject,ar_0.7,w_200 -#c_fill,g_auto:subject,ar_1:1 +# No subject/classic support - c_fill,g_auto:subject,ar_0.7,w_200 +# No subject/classic support - g_auto:subject,c_fill,ar_0.7,w_750 +# No subject/classic support - c_fill,g_auto:subject,ar_1:1 +# No subject/classic support - g_auto:subject,c_fill,ar_0.7,w_750,fl_getinfo +# No subject/classic support - c_fill,g_auto:classic,ar_0.7,w_200 c_fill,g_north,h_200,w_150 c_fill,g_north,h_200,w_150/ c_fill,g_ocr_text,h_250,w_250 @@ -383,7 +377,7 @@ e_preview:duration_8/c_crop,w_1600,h_800,e_loop #No action spec: e_progressbar:frame:FF0000:12 #No action spec: e_progressbar:frame:FF0000:6 #No action spec: e_progressbar:type_bar:color_blue:width_6 -#e_recolor:0.3:0.7:0.1:0.3:0.6:0.1:0.2:0.5:0.1 +e_recolor:0.3:0.7:0.1:0.3:0.6:0.1:0.2:0.5:0.1 e_red:50 e_redeye e_replace_color:2F4F4F:20 @@ -445,14 +439,14 @@ f_png f_png/a_90,ar_1,b_rgb:a17ec5,c_fill,g_auto,h_200 f_png/w_800/l_text:Unkempt_250_bold:Water,fl_cutter,e_shadow f_webm -#fl_apng +fl_apng fl_attachment fl_attachment:pretty_flower,f_auto fl_awebp fl_clip,pg_2 fl_clip,pg_name:stones fl_clip_evenodd -#fl_draco +fl_draco fl_lossy fl_lossy,q_50 fl_region_relative,g_adv_eyes,l_glasses,w_1.5 @@ -462,8 +456,6 @@ fn_pre:remote:aHR0cHM6Ly9teS5wcmVwcm9jZXNzLmN1c3RvbS9mdW5jdGlvbg== fn_remote:aHR0cHM6Ly9teS5leGFtcGxlLmN1c3RvbS9mdW5jdGlvbg== fn_wasm:my_example.wasm fps_1-5 -#g_auto:subject,c_fill,ar_0.7,w_750 -#g_auto:subject,c_fill,ar_0.7,w_750,fl_getinfo g_face,c_crop # No zoom with crop - Docs need to fix g_face,c_crop,z_1.3 @@ -564,7 +556,7 @@ l_lut:iwltbap_aspen.3dl l_lut:iwltbap_aspen.3dl/w_200 l_lut:iwltbap_sedona.3dl l_lut:iwltbap_sedona.3dl/w_200 -#l_sample,fl_replace_image,e_cartoonify +l_sample,fl_replace_image,e_cartoonify l_subtitles:arial_20:sample_sub_en.srt l_subtitles:arial_40:sample_sub_en.srt,co_yellow,b_black l_subtitles:arial_70:sample_sub_en.srt,co_rgb:ffff00,b_black @@ -586,9 +578,9 @@ l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50 l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_volume:mute/e_brightness:10,r_max l_video:ski_jump,so_3,eo_6,c_scale,w_250,g_north_east o_30 -#p_my_sprite_ +p_my_sprite_ pg_2 -#pg_2-4;6;8 +pg_2-4;6;8 pg_embedded:3 pg_embedded:3/w_300 pg_embedded:7 @@ -959,210 +951,37 @@ x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill/a_20/c_scale,w_0.5 x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill/a_20/w_0.5 x_355,y_410,w_300,h_200,c_crop/w_150,h_100,c_scale $award_!First! -# Due to color, TODO - Add this -#$bcolor_!rgb:0000ff!/if_fc_gt_0,$bcolor_!red!/bo_5px_solid_$bcolor,c_fill,h_120,w_120 -$img_current,$height_ih/if_w_lt_800/c_scale,e_blur:800,u_$img,w_800,h_$height/e_brightness:40,fl_layer_apply/if_end -#$img_current/e_grayscale/l_$img,w_0.3,bo_10px_solid_white/fl_layer_apply,g_north_west/q_auto,f_auto,dpr_2.0,w_900 -# Due to position - TODO Add this -#$mainvideowidth_500/$overlaywidth_$mainvideowidth_div_3/w_$mainvideowidth/l_video:kitten_fighting,w_$overlaywidth,g_south_east -$newwidth_10_add_iw_mul_0.3,w_$newwidth $newwidth_1080/w_$newwidth/$name_!Jane%20Smith!/l_text:Comic%20Sans%20MS_24:%C2%A9$(name),g_south_east,x_10,y_10 -$qualtag_!important!,$delwidth_450/t_highqual-if-tagged -$qualtag_!Pro!/if_$qualtag_in_tags,q_80/if_else,q_30/w_500 -$qualtag_!Pro!/if_$qualtag_in_tags,q_90/if_else,q_30/w_500 -$rating_!thumbs-down!/t_image_ratings -$rating_!thumbs-down!/t_image_ratings/w_200 -$rating_!thumbs-up!/t_image_ratings -$rating_!thumbs-up!/t_image_ratings/w_200 $small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer $small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20 $small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20/t_my_named_mul_trans $small_150,$big_2_mul_$small_add_4/c_fill,w_$big,h_$small_add_20 $small_150/c_fill,w_$big,h_$small_add_20 -$w_200,$ar_0.8/w_$w,ar_$ar,c_fill,g_face -$width_115/t_passport_photo -$width_140/t_passport_photo -$width_165/t_passport_photo -a_20 -a_90 a_180 -a_180/w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0,du_5/fl_layer_apply a_ignore -ac_none -af_22050 -ar_2.5,c_crop -ar_4:3,c_fill/c_scale,w_auto,dpr_auto -ar_16:9,c_fill -ar_16:9,c_fill/c_scale,w_auto/c_limit,w_1000 -ar_16:9,c_fill/c_scale,w_auto:breakpoints -ar_16:9,c_fill/c_scale,w_auto:breakpoints:json -ar_16:9,c_fill/c_scale,w_auto:breakpoints_200_1920_30_15 -b_blue,c_pad,h_400,w_660 b_blue,o_0 -bo_1px_solid_black,a_0/f_auto,q_auto,dpr_auto -bo_1px_solid_black,a_0/f_auto,q_auto,dpr_auto,h_300 -bo_1px_solid_black,dpr_2,q_auto,f_auto,w_400 -bo_1px_solid_black,q_auto,dpr_2,f_auto -bo_1px_solid_gray -bo_1px_solid_gray,dpr_auto -bo_1px_solid_gray/dpr_auto -bo_1px_solid_gray/f_auto,dpr_auto,q_auto -bo_1px_solid_gray/f_auto,q_auto,dpr_auto -bo_1px_solid_gray/f_auto,w_650,dpr_2,q_auto -bo_1px_solid_gray/q_auto,h_450,f_auto,dpr_2 -bo_1px_solid_gray/q_auto,w_400,f_auto,dpr_2 bo_1px_solid_gray/w_300,f_auto,q_auto,dpr_2 -bo_1px_solid_gray/w_400,f_auto,q_auto,dpr_2 bo_1px_solid_gray/w_400,q_auto,dpr_2,f_auto -bo_1px_solid_gray/w_450,f_auto,dpr_2,q_auto -bo_1px_solid_gray/w_500,f_auto,q_auto,dpr_2 bo_1px_solid_gray/w_550,q_auto,f_auto,dpr_2 -bo_1px_solid_gray/w_600,f_auto,q_auto,dpr_2 -bo_1px_solid_rgb:ccc,f_auto,dpr_2 -bo_2px_solid_black -bo_2px_solid_black,f_auto,q_auto -bo_2px_solid_black,so_98 -bo_2px_solid_black,so_256 bo_5.5px_solid_rgb:aabbcc,r_max -bo_5px_solid_black,f_auto,q_auto/dpr_auto -bo_5px_solid_red bo_5px_solid_rgb:aabbcc,r_max -br_250k c_crop,ar_1.85356,so_813,g_south c_crop,e_sepia,h_150,r_20,w_150 -c_crop,e_viesus_correct,g_south,r_20,w_1000/c_scale,g_north_east,l_viesus_logo,o_50,w_100,x_10,y_10/c_scale,w_600 -c_crop,g_cat:dog -c_crop,g_cat:dog/w_0.25,c_scale -c_crop,g_dog:auto:bird,w_600,h_800 -c_crop,g_dog:auto:bird,w_600,h_800/w_0.25,c_scale -c_crop,g_dog:bird,w_600,h_800 -c_crop,g_dog:bird,w_600,h_800/w_0.25,c_scale -c_crop,g_dog:cat -c_crop,g_dog:cat/w_0.25,c_scale -c_crop,g_face -c_crop,g_face,h_400,w_400 -c_crop,g_face,r_75,bo_10px_solid_grey/l_young_couple,w_150,h_150,c_thumb,r_max,g_faces,bo_3px_solid_black/fl_layer_apply,g_north_east -c_crop,g_microwave -c_crop,g_microwave/w_0.3,c_scale -c_crop,g_north,h_200,w_260 -c_crop,g_refrigerator -c_crop,g_refrigerator/w_0.3,c_scale -c_crop,g_sink -c_crop,g_sink/w_0.3,c_scale -c_crop,h_100,w_150,x_380,y_250/c_fill,h_100,w_130/a_20/c_scale,w_0.8 -c_crop,w_300,h_300/c_scale,w_150,r_max -c_fill,ar_0.7,w_200 -c_fill,ar_0.7,w_750 c_fill,ar_4:3 c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This is my picture,y_20/a_20 c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:Thishttps -c_fill,e_style_transfer,h_700,l_lighthouse,w_700 -c_fill,e_style_transfer,h_700,l_lighthouse,w_700/c_scale,w_250 -c_fill,g_auto,h_250,w_250 -c_fill,g_auto,h_400,ar_0.8 -c_fill,g_auto,h_400,ar_0.8/h_300 -c_fill,g_auto,h_500,w_500 -#c_fill,g_auto:classic,ar_0.7,w_200 -#c_fill,g_auto:classic,ar_0.7,w_750 -c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8 -c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8/h_300 -#c_fill,g_auto:subject,ar_0.7,w_200 c_fill,g_face,h_10,w_10 -c_fill,g_north,h_200,w_150 -c_fill,g_ocr_text,h_250,w_250 -c_fill,g_ocr_text,h_500,w_500 -c_fill,h_150,q_jpegmini,w_200 -c_fill,h_150,w_100 -c_fill,h_200,w_200/e_brightness:100,h_200,u_site_bg,w_200 -c_fill,h_200,w_300,r_20 -c_fill,h_250,w_250 -c_fill,h_300,w_300 -c_fill,h_500,w_500 -c_fill,h_700,w_700/e_style_transfer:60,l_lighthouse -c_fill,h_700,w_700/e_style_transfer:preserve_color,l_lighthouse -c_fill,h_700,w_700/e_style_transfer:preserve_color:40,l_lighthouse -c_fill,h_700,w_700/e_style_transfer:preserve_color:40,l_lighthouse/w_250 c_fill,r_50,w_400,h_400,g_north,f_auto,bo_2px_solid_rgb:999/e_shadow:20,co_rgb:ccc/a_30,co_rgb:ec9800,e_colorize,l_url2png_logo -c_fill,w_100,h_100 c_fill,w_100_mul_2 -c_fit,h_16,w_16/e_sepia -c_fit,w_10/a_15 -c_imagga_crop -c_imagga_crop,e_saturation:50,h_300,r_20,w_450/g_south_west,l_imagga_logo,o_80,w_100,x_10,y_10 -c_imagga_crop,h_380,w_380 -c_imagga_scale,h_200,w_150 -c_imagga_scale,h_240,w_260 -c_imagga_scale,w_150,h_200 -c_lpad,w_480,h_320,vs_2,q_70,br_1400k,vc_h264:baseline:3.0 -c_lpad,w_960,h_640,vs_2,q_70,br_5m,vc_h264:main:3.1 -c_pad,du_10,h_360,q_70,w_480 -c_pad,h_300,w_400 -c_pad,h_320,w_480,b_blurred:400:15 -c_pad,h_360,w_480,q_70,du_10 -c_pad,w_200,h_200,e_saturation:50/e_shadow/bo_1px_solid_rgb:666 -c_pad,w_400 -c_scale,dl_1000,e_trim,w_700 -c_scale,e_grayscale,f_auto,q_auto,w_100 -c_scale,e_saturation:50,r_20,w_400/g_south_east,l_logo_jpegmini,o_80,w_100,x_10,y_10/q_jpegmini -c_scale,e_viesus_correct,w_400 -c_scale,e_viesus_correct,w_500 -c_scale,q_jpegmini,w_400 -c_scale,q_jpegmini:1,w_400 c_scale,t_sample_named_transform,w_1.0/t_sample_named_transform2 c_scale,w_0.1/e_sepia:30 -c_scale,w_400 -c_scale,w_400/c_imagga_scale,h_150,l_family_bench.png,r_max,w_150 -c_thumb,g_adv_face,h_100,w_100 -c_thumb,g_adv_face,w_100,h_100 -c_thumb,g_adv_faces,w_150,h_150 c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_1.0 c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_2.0 c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_3.0 c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,w_50,o_60/dpr_2.0 -co_rgb:009900,e_shadow:50,x_10,y_10 cs_no_cmyk d_public_id -dl_100 -dl_200 -dn_20 dpr_2,f_auto,q_auto,bo_1px_solid_black -dpr_2,f_auto,q_auto,w_800 -dpr_2,f_auto,q_auto/bo_1px_solid_gray -dpr_2,q_auto,f_auto -dpr_2,q_auto,f_auto,w_500,bo_1px_solid_gray -dpr_2,q_auto,f_auto,w_600 -dpr_2,q_auto,f_auto/bo_1px_solid_gray -dpr_auto,w_600/bo_1px_solid_gray -dpr_auto/bo_1px_solid_gray -dpr_auto/bo_1px_solid_gray/h_300 -dpr_auto/h_300/bo_1px_solid_gray -du_5,w_300,h_200/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/e_accelerate:5s,a_180/fl_layer_apply/fl_layer_apply -du_30,q_70:qmax_20 -e_adv_redeye/w_300,h_80,c_thumb,g_adv_eyes -e_art:al_dente -e_art:athena -e_art:audrey -e_art:aurora -e_art:daguerre -e_art:eucalyptus -e_art:fes -e_art:frost -e_art:hairspray -e_art:hokusai -e_art:incognito -e_art:linen -e_art:peacock -e_art:primavera -e_art:quartz -e_art:red_rock -e_art:refresh -e_art:sizzle -e_art:sonnet -e_art:ukulele -e_art:zorro -e_assist_colorblind:8 -e_assist_colorblind:8/e_simulate_colorblind -e_assist_colorblind:xray e_auto_brightness e_auto_brightness:10 e_auto_color @@ -1171,161 +990,52 @@ e_auto_contrast e_auto_contrast:10 e_blue e_blue:10 -e_blur:300 -e_blur:500/l_video:dog,w_600/w_500 -e_blur_region:800,g_ocr_text -e_blur_region:800,g_ocr_text/h_300 e_brightness_hsb e_brightness_hsb:10 -e_cartoonify/r_max/e_outline:100,co_lightblue/b_lightblue/h_300 e_contrast e_contrast:50 -e_deshake:32 -e_fade:2000/e_fade:-4000 e_fill_light e_fill_light:10:20 -e_grayscale e_green e_green:10 e_hue e_hue:10 e_improve -e_improve:outdoor e_improve:outdoor:10 -e_loop:2 -e_oil_paint:70 e_opacity_threshold e_opacity_threshold:10 e_ordered_dither e_ordered_dither:3 -e_outline,co_orange -e_outline:fill,co_orange -e_outline:inner,co_orange -e_outline:inner_fill,co_orange -e_outline:outer,co_orange -e_outline:outer:20:200 -e_outline:outer:20:200/e_red:50/e_sharpen/e_improve/o_70 e_outline:outer:20:200/l_cloudinary_icon/e_red:50/e_sharpen/e_improve/o_70 -e_pixelate_faces:9 e_pixelate_region,w_100 -e_preview,fl_getinfo e_preview:duration_5 -e_preview:duration_8/c_crop,w_1600,h_800,e_loop -e_preview:duration_12.0:max_seg_3:min_seg_dur_3.0 -#e_recolor:0.3:0.7:0.1:0.2:0.3:0.6:0.1:0.2:0.2:0.5:0.1:0.2 +e_recolor:0.3:0.7:0.1:0.2:0.3:0.6:0.1:0.2:0.2:0.5:0.1:0.2 e_red e_red:10 -e_redeye -e_replace_color:maroon:80:2b38aa -e_replace_color:maroon:80:2b38aa/w_250 -e_saturation:50 e_screen,l_cloudinary_icon -e_shadow:50,x_10,y_10 -e_sharpen e_sharpen:10 -e_simulate_colorblind:deuteranopia -e_style_transfer,l_davinci_mona_lisa e_tint -e_tint:20 -e_tint:50:red:blue -e_tint:100:red:blue:yellow -e_tint:equalize:80:red:50p:blue:60p:yellow:40p -e_tint:equalize:80:red:blue:yellow e_unsharp_mask e_unsharp_mask:10 e_vibrance e_vibrance:10 -e_viesus_correct e_viesus_correct:no_redeye e_viesus_correct:skin_saturation e_viesus_correct:skin_saturation_20 -f_auto f_auto,dpr_2,q_auto,h_150,bo_1px_solid_gray f_auto,dpr_2,q_auto,h_200,bo_1px_solid_gray -f_auto,dpr_auto -f_auto,q_auto -f_auto,q_auto,dpr_2 f_auto,q_auto,dpr_2,h_150,bo_1px_solid_gray -f_auto,q_auto,dpr_2,h_200,bo_1px_solid_gray -f_auto,q_auto,dpr_2/bo_1px_solid_gray/w_500 -f_auto,q_auto,dpr_auto,w_300 f_jpg,u_some f_jpg/u_some -f_mp4,w_300 -f_webm -fl_attachment:pretty_flower,f_auto -fl_awebp -fl_lossy -fl_lossy,q_50 fl_progressive,r_10 -fl_region_relative,g_adv_eyes,l_glasses,w_1.5 -fl_region_relative,g_adv_eyes,l_glasses,w_1.7 -fl_region_relative,g_adv_faces,l_silver_face_mask,w_1.1 -fn_pre:remote:aHR0cHM6Ly9teS5wcmVwcm9jZXNzLmN1c3RvbS9mdW5jdGlvbg== -fn_remote:aHR0cHM6Ly9teS5leGFtcGxlLmN1c3RvbS9mdW5jdGlvbg== -fn_wasm:my_example.wasm -#g_auto:subject,c_fill,ar_0.7,w_750 -g_face,c_crop -g_face,c_crop,z_1.3 -g_face,c_thumb,w_150,h_150 -g_face,c_thumb,w_150,h_150,z_0.7 -g_face,w_500,c_thumb,fl_getinfo -g_north,l_text:arial_60:watchme,y_20 -h_100,w_190 -h_105/e_shadow:50,x_10,y_10 -h_120 -h_150 h_150,fl_ignore_aspect_ratio -h_200 -h_200,c_scale/e_outline:15:200,co_orange -h_200,w_200,c_pad,b_auto:border -h_200,w_200,c_pad,b_auto:border_contrast -h_200,w_200,c_pad,b_auto:predominant -h_200,w_200,c_pad,b_auto:predominant_contrast -h_200,w_500,fl_waveform -h_200,w_500,fl_waveform,co_black,b_white -h_200/u_docs:transparent_grid,w_1.0,h_1.0,fl_relative,c_crop,o_50 -h_225/q_auto,f_auto,bo_1px_solid_black -h_250 -h_250,w_150,c_fill,g_auto/f_auto/q_auto -h_250,w_400,fl_waveform,so_2,eo_4,co_blue,b_transparent -h_300 -h_300,w_300 -h_300,w_300,c_pad,b_auto:predominant -h_300,w_300,c_pad,b_auto:predominant/e_gradient_fade:symmetric_pad,x_0.5 -h_300,w_300,c_pad,b_auto:predominant_gradient:2:diagonal_desc -h_300,w_300,c_pad,b_auto:predominant_gradient:4:palette_red_green_blue_orange -h_300,w_300,c_pad,b_auto:predominant_gradient_contrast:4 -h_310 -h_320,c_scale/c_pad,h_320,w_480,b_blurred:400:15/e_volume:mute/e_accelerate:100 h_320,w_480 -h_350/q_auto,dpr_auto -h_375/u_docs:bg_beach,g_south,w_800 -h_375/u_docs:bg_beach,g_south,w_800/h_200 -h_375/u_docs:rainbow_field,g_south,w_800 -h_375/u_docs:rainbow_field,g_south,w_800/h_200 -h_400,w_244,c_fill -h_400,w_244,c_fill,so_1 -h_400,w_244,g_auto,c_fill h_500,w_500,c_fill -if_!sale:in_stock!_in_tags,l_sale_icon,w_180,g_south_east,x_30,y_30/w_250 -if_ar_gt_0.65_and_w_gt_1000,ar_0.65,h_1000,c_fill -if_ar_gt_1.2,c_pad,h_320,w_480,b_black/if_else,c_pad,h_320,w_480,b_blurred:400:15 if_ar_gt_1.2,c_pad,h_320,w_480,b_green/if_else,c_pad,h_320,w_480,b_blurred:400:15 -if_ar_gt_3:4_and_w_gt_300_and_h_gt_200,c_crop,w_300,h_200 -if_ar_lt_1.0,$height_300/if_else,$height_200/h_$height -if_ctx:!productType!_eq_!shoes!,w_200,ar_1:1,c_fill,g_auto -if_ils_gt_0.5,w_120,h_150,c_pad/if_else,w_120,h_150,c_fill -if_w_gt_400,l_thumbs-up-small,w_150,g_north_east,x_10,y_10/w_400,c_limit if_w_lt_600/l_text:Arial_20:Image shown in full scale,co_white,g_south_east/c_scale,e_blur:400,u_small_dinosaur,w_600/if_end -if_w_lt_600/l_text:Arial_20:Image%20shown%20in%20full%20scale,co_white,g_south_east/c_scale,e_blur:400,u_small_dinosaur,w_600/if_end if_w_lte_200,c_fill,h_120,w_80/if_else,c_fill,h_90,w_100 -if_w_lte_400/c_fill,h_220,w_180/e_red/if_else/c_fill,h_190,w_300/e_oil_paint/if_end -l_call_text,fl_region_relative,w_1.1,g_ocr_text -l_call_text,fl_region_relative,w_1.1,g_ocr_text/w_120 l_cloudinary_icon l_cloudinary_icon,g_north_west,y_20 -l_cloudinary_icon,so_6.5,eo_10,o_50,e_brightness:100 l_cloudinary_icon,w_0.2,fl_relative l_cloudinary_icon,w_0.8,fl_relative l_cloudinary_icon,w_0.9,c_scale,g_north_east,o_70,e_brightness:50 @@ -1334,292 +1044,41 @@ l_cloudinary_icon,w_300,g_north_east,o_60 l_couple/c_crop,g_faces,w_120,h_150/r_max/fl_layer_apply,g_north_east/l_cloudinary_icon,w_0.8,fl_relative,o_50,e_brightness:100/l_text:impact_40_bold:Sample image,g_south,y_20 l_face_left/w_200,h_200,c_thumb,g_face,r_max/fl_layer_apply,g_north_east l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9vbGRfbG9nby5wbmc= -l_golden_star,g_faces,w_1.0,fl_region_relative -l_golden_star,g_faces,w_1.1,fl_region_relative -l_golden_star,g_north_west,w_20,x_314,y_148/w_500 -l_lut:iwltbap_aspen.3dl -l_lut:iwltbap_aspen.3dl/w_200 -l_lut:iwltbap_sedona.3dl -l_lut:iwltbap_sedona.3dl/w_200 -l_subtitles:arial_20:sample_sub_en.srt -l_subtitles:arial_70:sample_sub_en.srt,co_rgb:ffff00,b_black -l_subtitles:folder-permissions-tutorial.en-us.azure.transcript -l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west -l_subtitles:lincoln.transcript -l_subtitles:sample_sub_en.srt -l_subtitles:times_20:folder-permissions-tutorial.en-us.azure.transcript,co_blue,g_north l_text:AlexBrush-Regular.ttf_100:Happy New Year 2017 ,co_white,g_north_west,x_30,y_30 l_text:arial_60:Cool Video,g_south,y_80,so_2,eo_5 l_text:impact_150:Your Brand Name or Logo Here,e_distort:arc:-120,co_white,g_south,y_840,o_60 -l_video:dog,so_4.5,eo_8,a_90,w_200,g_east -l_video:kitten_fighting,e_fade:3000,w_100 -l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_brightness:10,r_max -l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_volume:mute/e_brightness:10,r_max -o_30 -#p_home_thing_ -pg_2 -#pg_2-4;6;8/w_300 -pg_embedded:3 -pg_embedded:3/w_300 -pg_embedded:name:skyline-3242040_1920.jpg -pg_name:record_cover;Shadow/w_300 -q_50 -q_60 -q_80 -q_auto -q_auto,dpr_2,f_auto -q_auto,dpr_2,f_auto,bo_1px_solid_black -q_auto,dpr_2,f_auto,bo_1px_solid_gray +p_home_thing_ +pg_2-4;6;8/w_300 q_auto,dpr_2,f_auto,h_300 -q_auto,dpr_2,h_300,f_auto,bo_1px_solid_black -q_auto,dpr_2,w_150,f_auto -q_auto,dpr_auto -q_auto,f_auto -q_auto,f_auto,bo_1px_solid_black q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_650 -q_auto,f_auto,dpr_2 -q_auto,f_auto,dpr_2,bo_1px_solid_gray -q_auto,f_auto,dpr_2,c_crop,w_100,h_80/w_40 -q_auto,f_auto,dpr_2,w_350,r_20/e_outline:1,co_black -q_auto,f_auto,dpr_2,w_400 -q_auto,f_auto,dpr_2/bo_1px_solid_gray -q_auto,f_auto,dpr_auto -q_auto,f_auto,w_500 -q_auto,w_600,f_auto,dpr_2 -q_auto,w_800,f_auto -q_auto:best -q_auto:eco -q_auto:good -q_auto:low -q_jpegmini r_20 -so_0,du_3 -so_1 -so_4,w_350,h_350,c_crop,r_20,e_grayscale,bo_5px_solid_black -so_5 -so_6.5,eo_10 -so_8.5 -so_10p,du_30p -so_21/bo_2px_solid_black -so_62 -so_120 -sp_hd -t_demo_combined -t_fit_100x150 -t_jpg_with_quality_30,w_100,h_50,c_fit -t_jpg_with_quality_30/t_crop_400x400/t_fit_100x150 -t_sample_named_transform -t_sample_named_transform.sample_named_transform2 -vc_auto -vc_h264:baseline:3.1 -vs_1.1s,dl_200,w_200,e_loop:2 -vs_10,dl_100,w_250,f_gif -vs_10,dl_100,w_250,f_webp,fl_awebp,fl_animated -vs_40,dl_200,h_200,e_loop -w_0.4,a_20/l_cloudinary_icon,o_50,w_60,g_south_east,y_15,x_60 -w_0.5 -w_0.25,c_scale -w_20,q_auto -w_28,q_auto -w_28,q_auto,f_auto,dpr_2 -w_80,h_120,c_fill,g_face -w_80,h_400,c_fill,g_auto -w_80,h_400,c_fill_pad,g_auto,b_auto -w_100,c_fill -w_100,h_40,c_thumb,g_adv_eyes -w_100,h_150,c_fill -w_100,h_150,c_fill,g_faces -w_100/a_90 -w_100/a_-20 -w_100/a_vflip/a_45 -w_100/dpr_1.0 -w_100/dpr_2.0 -w_100/dpr_3.0 -w_115,h_135,c_thumb,g_faces -w_120 -w_123/a_45 -w_150,c_scale -w_150,e_art:al_dente -w_150,e_art:athena -w_150,e_art:audrey -w_150,e_art:aurora -w_150,e_art:daguerre -w_150,e_art:eucalyptus -w_150,e_art:fes -w_150,e_art:frost -w_150,e_art:hairspray -w_150,e_art:hokusai -w_150,e_art:incognito -w_150,e_art:linen -w_150,e_art:peacock -w_150,e_art:primavera -w_150,e_art:quartz -w_150,e_art:red_rock -w_150,e_art:refresh -w_150,e_art:sizzle -w_150,e_art:sonnet -w_150,e_art:ukulele -w_150,e_art:zorro -w_150,h_60,c_fit -w_150,h_100 -w_150,h_100,c_fill -w_150,h_100,c_fill,r_10:40:25 -w_150,h_100,c_fill,r_25 -w_150,h_100,c_fill,r_25:0 -w_150,h_100,c_fill,r_30:0:30:30 -w_150,h_100,c_scale -w_150,h_150,c_scale -w_150,h_150,c_thumb,g_auto -w_150,h_150,c_thumb,g_auto:0 -w_150,h_150,c_thumb,g_center -w_150,h_150,c_thumb,g_face -w_150,h_150,c_thumb,g_face,r_20,e_sepia/l_cloudinary_icon,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10 -w_150,h_200,c_lfill -w_200 -w_200,a_45/d_avatar.png -w_200,c_scale/e_outline:20:200,co_red/e_outline:15:200,co_orange/e_outline:10:200,co_yellow -w_200,dpr_2.0 -w_200,f_auto,q_auto,dpr_2 -w_200,h_100 -w_200,h_150,c_crop -w_200,h_150,c_crop,g_north_west -w_200,h_200,c_crop,g_auto -w_200,h_200,c_crop,g_center -w_200,h_200,c_crop,r_max -w_200,h_200,c_fill -w_200,h_200,c_fill,g_auto -w_200,h_200,c_fill,g_center -w_200,h_200,c_fill,g_face -w_200,h_200,c_fill,g_faces -w_200,h_200,c_fill,r_max/a_30/e_trim -w_200,h_200,c_fill/e_style_transfer,l_sailing_angel -w_200,h_200,c_fit,a_hflip/l_cloudinary_icon,w_0.4,fl_relative,g_north,x_15,y_35,a_4,e_brightness:100,o_70 -w_200,h_200,c_thumb,g_face -w_200,h_200,c_thumb,g_face,r_max -w_200,h_200,c_thumb,g_face,r_max,e_sharpen -w_200,h_200,c_thumb,g_face,r_max,l_face_left/fl_layer_apply,g_north_east -w_200,h_200,c_thumb,g_face/r_20,bo_5px_solid_black/l_cloudinary_icon,o_50,w_0.25,fl_relative,g_north_east,y_10,x_10 -w_200,h_300,c_fill,g_auto -w_200,h_300,c_fill,g_center -w_200/dpr_1.0 -w_200/dpr_2.0 -w_200/dpr_3.0 -w_200/l_text:Arial_30:Cool%F0%9F%98%8E -w_230,h_168,c_fit -w_250 -w_250,bo_1px_solid_gray -w_250,fl_animated,f_auto -w_250,h_150,c_fill,r_max -w_250,h_250,c_fill -w_250,h_250,c_fill,g_east -w_250,h_250,c_fill,g_faces -w_250,h_250,c_fill,g_north -w_250,h_250,c_fill,g_south_east -w_250,h_250,c_fit -w_250,h_250,c_limit -w_250,h_250,c_lpad,b_black -w_250,h_250,c_mfit -w_250,h_250,c_mpad -w_250,h_250,c_pad,b_black -w_250,q_80 -w_250,q_auto:best -w_250,q_auto:eco -w_250,q_auto:good -w_250,q_auto:low -w_250,x_780,y_350,c_crop -w_250,x_780,y_350,c_crop/u_docs:transparent_grid,w_250,c_crop,o_50 -w_250,x_780,y_350,c_crop/w_1100 -w_250/u_docs:transparent_grid,w_1.0,h_1.0,fl_relative,c_crop,o_50 -w_250/u_docs:transparent_grid,w_250,c_crop,o_50 -w_260,h_200,c_crop,g_north -w_300 -w_300,c_fill,g_auto,ar_1:1 -w_300,c_scale,pg_2 -w_300,c_scale,pg_4,e_sepia,r_50,bo_2px_solid_rgb:999/l_aspose_cloud_logo,w_0.9,fl_relative,o_70,g_south,y_20 -w_300,e_accelerate:100 -w_300,e_grayscale -w_300,e_noise:50 -w_300,f_auto,q_auto,dpr_2 +t_sample_named_transform +t_sample_named_transform.sample_named_transform2 +vs_10,dl_100,w_250,f_gif +vs_10,dl_100,w_250,f_webp,fl_awebp,fl_animated +w_0.4,a_20/l_cloudinary_icon,o_50,w_60,g_south_east,y_15,x_60 +w_100,c_fill +w_150,h_150,c_thumb,g_auto:0 +w_150,h_150,c_thumb,g_face,r_20,e_sepia/l_cloudinary_icon,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10 +w_200,a_45/d_avatar.png +w_200,h_100 +w_200,h_200,c_fit,a_hflip/l_cloudinary_icon,w_0.4,fl_relative,g_north,x_15,y_35,a_4,e_brightness:100,o_70 +w_200,h_200,c_thumb,g_face/r_20,bo_5px_solid_black/l_cloudinary_icon,o_50,w_0.25,fl_relative,g_north_east,y_10,x_10 +w_200/l_text:Arial_30:Cool%F0%9F%98%8E w_300,fl_keep_iptc w_300,fl_png8 -w_300,h_80,c_thumb,g_adv_eyes -w_300,h_100,c_scale -w_300,h_200,c_crop -w_300,h_200,c_fill,dpr_auto -w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill -w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0 -w_300,h_200,du_5/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply -w_300,h_200,du_5/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply/l_video:snow_deer,w_300,h_200/du_5/l_video:transition2,e_transition/fl_layer_apply/fl_layer_apply/l_video:dog,fl_splice,w_300,h_200/du_5/fl_layer_apply -w_300,h_200/w_300,h_200,l_sample,fl_splice,du_3/so_0,fl_layer_apply -w_300,h_250,e_grayscale -w_300,h_300,c_fill,b_blue,r_max -w_300,h_300,c_fill,g_face,r_max,f_auto w_300,h_300,c_fill,r_max,e_sharpen,so_30p/l_cloudinary_icon,w_0.9,fl_relative,o_40 w_300,h_300,c_fill/l_cloudinary_icon,w_0.8,fl_relative,e_brightness:100,o_50 -w_300,h_300,c_pad,b_blue -w_300,h_300,c_pad,b_green w_300,h_350,c_fill,g_north -w_300,pg_2 -w_300,r_30 -w_300,r_max -w_300/c_fill,e_shadow,x_w_div_50,y_w_div_50 -w_300/l_video:dog,w_100,g_north_east,r_max w_300/w_200,y_30,a_9,h_150,g_north,c_fit,l_text:Times_18_bold_center:Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -w_350,bo_5px_solid_black/q_auto,dpr_auto -w_350,e_tint:20 -w_350,e_tint:100:red:blue:yellow -w_350,e_tint:equalize:80:red:50p:blue:60p:yellow:40p -w_350,f_auto -w_350,f_gif -w_350,h_200,x_230,y_20,c_crop w_350,q_80 w_350,q_100 w_350,q_auto:best w_350,q_auto:eco w_350,q_auto:good w_350,q_auto:low -w_350/q_auto,dpr_auto -w_400 -w_400,ar_1,c_thumb,g_auto:skateboard -w_400,c_fill,ar_4:3 -w_400,f_png -w_400,h_150,c_lpad,b_green -w_400,h_250,c_fill,g_south/l_nice_couple,w_1.3,h_1.3,g_faces,c_crop,fl_region_relative/e_saturation:50/e_vignette/fl_layer_apply,w_100,r_max,g_center,y_20,x_-20/l_balloon,h_55/e_hue:-20,a_5/fl_layer_apply,x_30,y_5/l_text:Cookie_40_bold:Love,e_colorize,co_rgb:f08/a_20,fl_layer_apply,x_-45,y_44/c_crop,w_300,h_250,x_30/r_60 -w_400,h_300,c_pad -w_400,h_400,c_crop,g_face,r_max/w_200 -w_450,bo_5px_solid_black/q_auto,dpr_auto -w_480,so_3,eo_5,e_boomerang/e_loop -w_500 -w_500,ar_1,c_crop,g_auto:bottle -w_500,ar_1,c_crop,g_auto:bottle/h_150 -w_500,ar_1,c_crop,g_bottle -w_500,ar_1,c_crop,g_bottle/h_150 -w_500,ar_1,c_fill,g_auto:bottle -w_500,ar_1,c_fill,g_auto:bottle/h_150 -w_500,ar_1,c_fill,g_bottle -w_500,ar_1,c_fill,g_bottle/h_150 -w_500,ar_1,c_thumb,g_auto:bottle -w_500,ar_1,c_thumb,g_auto:bottle/h_150 -w_500,ar_1,c_thumb,g_bottle -w_500,ar_1,c_thumb,g_bottle/h_150 -w_500,ar_1.0,c_fill,g_auto -w_500,ar_1.0,c_fill,g_auto/h_300 -w_500,ar_1.0,c_fill,g_auto:person_avoid -w_500,ar_1.0,c_fill,g_auto:person_avoid/h_300 w_500,ar_4:3 -w_500,bo_5px_solid_black -w_500,e_brightness:30 -w_500,e_contrast:50 -w_500,e_gamma:-20 -w_500,e_reverse -w_500,e_saturation:-50 -w_500,e_vignette:50 w_500,e_volume:50 -w_500,f_auto -w_500,f_auto,q_auto,dpr_2/bo_1px_solid_gray -w_500,q_auto,f_auto -w_500,q_auto,f_auto,dpr_2 -w_500/e_brightness:70/l_woman,c_crop,g_face/w_150/e_saturation:50/e_shadow/fl_layer_apply w_500/if_!cloudinary!_in_tags/l_cloudinary_icon,w_100,g_north_east,o_50,e_brightness:100/l_text:arial_15:By Cloudinary,g_north_east,y_10,x_105/if_end/du_5 w_500/l_cloudinary_icon,g_north_east,o_50,w_200,e_anti_removal:90 w_500/l_cloudinary_icon,o_50,w_100,e_brightness:100,fl_tiled @@ -1629,7 +1088,6 @@ w_500/l_my_bg w_500/l_my_icon w_500/l_subtitles:Arial_40:sample_sub_he.srt w_500/l_subtitles:sample_sub_he.srt -w_500/l_text:Arial_80:Flowers w_500/l_text:Times_60:Cool image,g_south,y_20 w_500/l_text:Times_90_bold:Cool image,g_south,y_80,co_rgb:FFFF00 w_500/l_text:Times_90_bold:Cool image,g_south,y_80,co_rgb:FFFF0080 @@ -1637,162 +1095,24 @@ w_500/l_text:verdana_1:words w_500/l_text:verdana_12_bold_underline_left:words w_500/l_text:verdana_12_bold_underline_left:words,y_23 w_500/l_text:Verdana_50_bold:Cool -w_500/l_text:Verdana_75_bold_underline_letter_spacing_14:Flowers -w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 -w_500/l_video:docs:bluescreen_watches,e_make_transparent:10,co_rgb:3d8d48,w_1.0,fl_relative/du_15 -w_500/l_video:docs:bluescreen_watches,e_make_transparent:20,co_rgb:0e80d8,w_0.6,fl_relative,g_north/du_15 w_500/u_fetch:aW1hZ2UudXJs w_500/u_my_bg w_500/w_400,c_fit,l_text:Neucha_26_bold:Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod -w_550,h_35,c_crop,g_north_west/bo_1px_solid_gray/dpr_auto -w_600 -w_600,ar_1,c_thumb,g_auto:microwave -w_600,ar_1,c_thumb,g_auto:microwave/h_150 -w_600,ar_1,c_thumb,g_auto:refrigerator -w_600,ar_1,c_thumb,g_auto:refrigerator/h_150 -w_600,ar_1,c_thumb,g_auto:sink -w_600,ar_1,c_thumb,g_auto:sink/h_150 -w_600/w_570,h_43,c_crop,g_north_west/bo_1px_solid_gray -w_700,f_auto,q_auto,dpr_2/bo_1px_solid_gray -w_700,h_700,c_fill -w_700,h_700,c_fill/e_style_transfer,l_sailing_angel -w_700,h_700,c_fill/e_style_transfer:60,l_lighthouse/w_250 -w_700,h_700,c_fill/e_style_transfer:preserve_color,l_lighthouse/w_250 -w_700,h_700,c_fill/w_250 -w_700,r_max/fl_region_relative,g_adv_eyes,l_harlequinmask,w_1.7 -w_700/dpr_auto/bo_1px_solid_gray -w_750,h_750,c_fill,g_faces -w_800 -w_800/bo_1px_solid_gray -w_850,dpr_2 w_1000,dpr_2 -w_1000,f_auto,q_auto:best -w_1520,h_1440,c_crop,g_west,x_50 -w_1520,h_1440,c_crop,g_west,x_50/e_pixelate_region:15,g_ocr_text -w_1520,h_1440,c_crop,g_west,x_50/h_283 -w_abc w_auto -w_auto,c_scale w_auto,dpr_auto,c_limit/g_north_east,y_5,x_5,co_white,l_text:Arial_18_bold:dpr_auto -w_auto,f_auto,c_scale -w_auto,g_auto,c_fill -w_auto,q_auto,c_scale -x_355,y_410,w_300,h_200,c_crop -x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill -x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill/a_20/w_0.5 -x_355,y_410,w_300,h_200,c_crop/w_150,h_100,c_scale -w_100,c_fill -f_jpg,u_some -f_jpg/u_some -e_pixelate_region,w_100 -c_fill,w_100_mul_2 -c_fill,w_100_mul_2 -c_fill,w_100_mul_2 -w_500/e_brightness:70/l_woman,c_crop,g_face/w_150/e_saturation:50/e_shadow/fl_layer_apply -w_500,ar_4:3 -w_500,ar_4:3 -w_500,ar_4:3 -c_fill,ar_4:3 -ar_4:3,c_fill/c_scale,w_auto,dpr_auto -ar_4:3,c_fill/c_scale,w_auto,dpr_auto -ar_4:3,c_fill/c_scale,w_auto,dpr_auto -w_500/l_my_icon -w_500/l_text:verdana_1:words -w_500/l_text:verdana_12_bold_underline_left:words -w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 -w_500/u_my_bg -w_500/u_fetch:aW1hZ2UudXJs -w_500/l_subtitles:Arial_40:sample_sub_he.srt -l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west -w_500/l_text:verdana_12_bold_underline_left:words -w_500/l_text:verdana_12_bold_underline_left:words,y_23 -w_500/u_fetch:aW1hZ2UudXJs -w_500/l_subtitles:Arial_40:sample_sub_he.srt -l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west -w_500/l_text:verdana_12_bold_underline_left:words,y_23 -w_500/u_fetch:aW1hZ2UudXJs -w_500/l_subtitles:Arial_40:sample_sub_he.srt -l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west -w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 -w_500/u_fetch:aW1hZ2UudXJs -w_500/l_subtitles:Arial_40:sample_sub_he.srt -l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west -w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 -w_500/u_fetch:aW1hZ2UudXJs -w_500/l_subtitles:Arial_40:sample_sub_he.srt -l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west -w_500/u_fetch:aW1hZ2UudXJs -w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 -w_500/l_subtitles:Arial_40:sample_sub_he.srt -if_w_lt_600/l_text:Arial_20:Image%20shown%20in%20full%20scale,co_white,g_south_east/c_scale,e_blur:400,u_small_dinosaur,w_600/if_end -l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west -w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 -w_500/u_fetch:aW1hZ2UudXJs -c_fill,h_200,w_200/e_brightness:100,h_200,u_site_bg,w_200 -w_500/l_subtitles:Arial_40:sample_sub_he.srt -l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west -w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 -w_500/u_fetch:aW1hZ2UudXJs -w_500/l_subtitles:Arial_40:sample_sub_he.srt -l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west -w_500/l_my_bg -w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 -w_500/u_fetch:aW1hZ2UudXJs -w_500/l_subtitles:Arial_40:sample_sub_he.srt -w_500/l_subtitles:sample_sub_he.srt -l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west -w_500/l_my_bg -w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 -w_500/u_fetch:aW1hZ2UudXJs -w_500/l_subtitles:Arial_40:sample_sub_he.srt -l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west -w_500/l_my_bg -w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 -w_500/u_fetch:aW1hZ2UudXJs -w_500/l_subtitles:Arial_40:sample_sub_he.srt -l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west -c_fill,g_face,h_10,w_10 -a_180 -a_ignore -e_hue -b_blue,o_0 -bo_5px_solid_rgb:aabbcc,r_max -bo_5.5px_solid_rgb:aabbcc,r_max -cs_no_cmyk -fl_progressive,r_10 -t_sample_named_transform -t_sample_named_transform.sample_named_transform2 -t_sample_named_transform -c_scale,t_sample_named_transform,w_1.0/t_sample_named_transform2 -c_scale,w_0.1/e_sepia:30 -$newwidth_1080/w_$newwidth/$name_!Jane%20Smith!/l_text:Comic%20Sans%20MS_24:%C2%A9$(name),g_south_east,x_10,y_10 -$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20 -$small_150/c_fill,w_$big,h_$small_add_20 -$small_150,$big_2_mul_$small_add_4/c_fill,w_$big,h_$small_add_20 -$small_150,$big_2_mul_$small_add_4/c_fill,w_$big,h_$small_add_20 -$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20/t_my_named_mul_trans $small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer/e_art:incognito -$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer/e_art:incognito -$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer/e_art:incognito -$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer/e_art:incognito -$w_200,$ar_0.8/w_$w,ar_$ar,c_fill,g_face e_sepia e_sepia:17 -e_sepia c_crop,h_200,w_100 c_crop,h_200 e_sepia:17/c_crop,h_200,w_100 c_crop,w_100,h_200,e_sepia:17 -e_redeye -e_adv_redeye e_accelerate:6 -e_simulate_colorblind:deuteranopia -e_art:al_dente co_rgb:ec9800,e_colorize:17 e_make_transparent:50,co_red e_gradient_fade:symmetric_pad:50,x_0.2 -cs_no_cmyk cs_icc:icc_file_public_id d_publicid dn_150 @@ -1800,7 +1120,6 @@ c_pad,b_auto:predominant c_pad,b_auto c_pad,b_blurred c_pad,b_blurred:100:500 -c_pad,b_auto:predominant c_pad,b_auto:predominant_contrast c_pad,b_auto:predominant:palette_red_green c_pad,b_auto:predominant_contrast:palette_red_green @@ -1832,7 +1151,6 @@ c_crop,x_1 c_crop,x_1,y_2 c_crop,fl_relative c_crop,fl_region_relative -c_scale,w_100 c_scale,h_100 c_scale,w_100,h_100 c_scale,w_100,ar_2.0 @@ -1861,7 +1179,6 @@ c_mfit,fl_relative c_mfit,fl_region_relative c_fill,w_100 c_fill,h_100 -c_fill,w_100,h_100 c_fill,w_100,ar_2.0 c_fill,fl_relative c_fill,fl_region_relative @@ -1924,13 +1241,10 @@ c_imagga_crop,w_100,ar_2.0 c_imagga_crop,fl_relative c_imagga_crop,fl_region_relative e_deshake -e_deshake:32 bo_5px_solid_hotpink bo_5.5px_solid_rgb:fff bo_5.5px_solid_hotpink,r_max bo_5.5px_solid_hotpink,r_100 -ac_none -af_22050 br_100 br_100:constant fps_10 @@ -1941,68 +1255,47 @@ fl_animated,f_auto fl_animated,f_gif f_auto,fl_animated,vs_10,dl_5 f_webp,fl_animated,fl_awebp,vs_10 -sp_hd sp_sd sp_hd_lean sp_full_hd_lean -sp_full_hd sp_full_hd_wifi sp_my_custom_sp r_10 r_10:20 r_10:20:30 r_10:20:30:40 -r_max dpr_1.0 dpr_auto -e_vectorize:detail:200 e_vectorize:colors:17:detail:100 e_vectorize:colors:17 c_fill,x_100,g_xy_center,w_500 w_iw_add_100_div_3 -f_auto,q_auto,dpr_2/bo_1px_solid_gray/w_500 -fl_lossy,q_50 f_jpg,fl_progressive -f_png f_mp4 f_mp3 -f_png f_gif,fl_lossy -f_jpg,fl_progressive f_jpg,fl_progressive:semi f_auto,fl_preserve_transparency -q_auto -q_auto:eco -q_auto:good -q_auto:best -q_auto:low -q_jpegmini q_jpegmini:0 q_jpegmini:1 q_jpegmini:2 q_70:qmax_20 q_auto:low:444 -pg_embedded:3 pg_embedded:name:skyline.jpg pg_embedded:3;5 pg_embedded:name:skyline.jpg;bg.jpg pg_3 pg_name:skyline pg_name:lala;fofo -#pg_4-7;9 -fl_clip,pg_2 +pg_4-7;9 fl_clip,pg_name:path fl_clip_evenodd,pg_2 -pg_3 t_my_named_transformation -pg_3 e_ordered_dither:6 e_ordered_dither:13 a_hflip a_vflip -a_auto_right a_auto_left -a_ignore $foo_bar $foo_1_to_f $foo_iw_add_100_div_3 @@ -2018,7 +1311,6 @@ e_blur_region:5,g_ocr_text e_blur_region,h_100,w_100,x_50,y_120 e_oil_paint e_oil_paint:5 -e_blackwhite e_blackwhite:5 e_loop e_loop:5 @@ -2048,12 +1340,10 @@ e_auto_color:17 e_auto_contrast:17 o_17 e_replace_color:red:5:blue -e_replace_color:2F4F4F:20 e_outline:$foo:100:5,co_red e_outline:inner:100:5,co_rgb:ffffff e_fill_light:17 e_fill_light:17:-100 -e_brightness_hsb e_viesus_correct:no_redeye:skin_saturation_5 e_improve:outdoor:50 e_cartoonify @@ -2063,17 +1353,14 @@ e_cartoonify:80:100 c_pad,b_green c_pad,b_rgb:fff e_assist_colorblind -e_assist_colorblind:8 -e_assist_colorblind:xray fl_keep_iptc fl_animated:filename fl_attachment:pretty_flower -#fl_whatever -#l_sample/fl_first_flag/fl_second_flag/fl_layer_apply +fl_whatever +l_sample/fl_first_flag/fl_second_flag/fl_layer_apply if_expression,a_20 if_expression/a_20/if_end if_expression/a_20/if_else/a_30/if_end -if_ar_gt_3:4_and_w_gt_300_and_h_gt_200,c_crop,w_300,h_200 c_thumb,g_adv_eyes c_thumb,g_center,w_300 c_crop,g_north,w_300 @@ -2086,7 +1373,6 @@ c_crop,g_auto:ocr_text c_crop,g_auto:ocr_text_avoid c_crop,g_auto:ocr_text_30 c_crop,w_200,h_200,g_xy_center,x_100,y_100 -w_150,h_150,c_thumb,g_auto:0 l_sample l_sample.jpg l_sample/e_sepia/fl_layer_apply @@ -2099,7 +1385,6 @@ l_text:parisienne_17_bold_strikethrough_justify_stroke_letter_spacing_17_antiali b_white,co_red,l_subtitles:arial_17:my_subs_file.srt l_subtitles:arial_17:sample_sub_en.srt l_subtitles:impact_15:lincoln.transcript,b_rgb:331a00 -l_subtitles:sample_sub_en.srt b_green b_rgb:fff l_sample/g_face,fl_layer_apply @@ -2114,9 +1399,8 @@ l_sample/e_mask,fl_layer_apply l_sample/e_anti_removal,fl_layer_apply e_trim e_trim:50 -e_trim:50:yellow e_shear:23.0:50.0 -#e_distort:5:34:70:10:70:75:5:55 +e_distort:5:34:70:10:70:75:5:55 e_distort:arc:5 l_sample,fl_cutter l_sample/fl_cutter,fl_layer_apply,g_south @@ -2139,7 +1423,4 @@ l_video:dog,fl_splice,w_300,c_fill,so_0/fl_layer_apply l_video:dog,fl_splice,so_0,du_5 l_video:dog/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply l_video:dog/l_video:transition1,e_transition/a_180/fl_layer_apply/fl_layer_apply -du_5,w_300,h_200/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/e_accelerate:5s,a_180/fl_layer_apply/fl_layer_apply -a_180/w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0,du_5/fl_layer_apply l_sample,so_6.5,eo_10 - From 0a39cb66ae8716bcac6adbcb3d55eb852818e0f6 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 20 Jun 2021 15:19:21 +0300 Subject: [PATCH 06/18] Add more import statements --- devTools/sanity/createTestFile.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devTools/sanity/createTestFile.ts b/devTools/sanity/createTestFile.ts index 1b2390ea..30f712a5 100644 --- a/devTools/sanity/createTestFile.ts +++ b/devTools/sanity/createTestFile.ts @@ -144,6 +144,8 @@ import { Dither } from "qualifiers/dither"; import { Flag } from "qualifiers/flag"; import {GradientDirection} from "qualifiers/gradientDirection"; import {StreamingProfile} from "qualifiers/streamingProfile"; +import { PSDTools } from "actions/psdTools"; +import { FontStyle } from "qualifiers/fontStyle"; const CloudinaryImage = CloudinaryMedia; const CloudinaryVideo = CloudinaryMedia; `; From c230d22a02dcb90290f57cb54f023a8beb4f81ba Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 20 Jun 2021 16:48:03 +0300 Subject: [PATCH 07/18] Add business logic tests to the HOTER --- devTools/sanity/createTestFile.ts | 3 ++ devTools/sanity/index.ts | 10 +++- devTools/sanity/package-lock.json | 79 +++++++++++++++++++++++++++++++ devTools/sanity/package.json | 14 ++++++ devTools/sanity/tsconfig.json | 16 +++++++ 5 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 devTools/sanity/package-lock.json create mode 100644 devTools/sanity/package.json create mode 100644 devTools/sanity/tsconfig.json diff --git a/devTools/sanity/createTestFile.ts b/devTools/sanity/createTestFile.ts index 30f712a5..14c10aac 100644 --- a/devTools/sanity/createTestFile.ts +++ b/devTools/sanity/createTestFile.ts @@ -157,6 +157,9 @@ const CloudinaryVideo = CloudinaryMedia; let test = `it("${txResult.txString}", () => {`; test += `const parts = '${txResult.txString}'.replace(/\\//g, ',').split(',');\n\n`; test += `const tAsset = ${txResult.parsedCode}`; + test += `parts.forEach((part) => { expect(tAsset.toString()).toContain(part)})`; + + test += '\n})\n'; // Close it test try { diff --git a/devTools/sanity/index.ts b/devTools/sanity/index.ts index 58eed16d..4373a932 100644 --- a/devTools/sanity/index.ts +++ b/devTools/sanity/index.ts @@ -15,7 +15,7 @@ export interface ITXResults { fail: ITxResult[] } -/** +/* * Remove duplicates and clean lines starting with # * @type {string[]} */ @@ -23,6 +23,9 @@ const transformationStrings = ([...new Set(file.split('\n'))] as string[]) .filter((a) => a[0] !== '#').filter((a) => a); +/* + * Set the SDK Code Snippets Service URL (Change domain/port only + */ const baseURL = `http://localhost:3000/dev/sdk-code-gen`; const results:ITXResults = { @@ -41,7 +44,7 @@ transformationStrings.forEach(async (txString, i) => { console.log('Processing transformation:', i); - const URL = `${baseURL}?hideActionGroups=0&url=https://res.cloudinary.com/demo/image/upload/${txString}/sample`; + const URL = `${baseURL}?language=javascript&hideActionGroups=0&url=https://res.cloudinary.com/demo/image/upload/${txString}/sample`; const res = await nodeFetch(URL).catch((e: Error) => { console.log(e); @@ -66,6 +69,9 @@ transformationStrings.forEach(async (txString, i) => { }); } + /* + * Store the result in a file o fyour choosing + */ if (i === transformationStrings.length - 1) { fs.writeFileSync(`${__dirname}/results.json`, JSON.stringify(results)); fs.writeFileSync(`${__dirname}/../../__TESTS__/compilation.test.ts`, createTestFile(results.success)); diff --git a/devTools/sanity/package-lock.json b/devTools/sanity/package-lock.json new file mode 100644 index 00000000..d33c29dd --- /dev/null +++ b/devTools/sanity/package-lock.json @@ -0,0 +1,79 @@ +{ + "name": "sanity-test-creator", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/node": { + "version": "15.12.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz", + "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==" + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "prettier": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", + "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "ts-node": { + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", + "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "typescript": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", + "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + } + } +} diff --git a/devTools/sanity/package.json b/devTools/sanity/package.json new file mode 100644 index 00000000..360850ee --- /dev/null +++ b/devTools/sanity/package.json @@ -0,0 +1,14 @@ +{ + "name": "sanity-test-creator", + "version": "1.0.0", + "scripts": { + "test": "ts-node ./index.ts" + }, + "dependencies": { + "@types/node": "^15.12.4", + "node-fetch": "^2.6.1", + "prettier": "^2.3.1", + "ts-node": "^8.10.2", + "typescript": "^3.9.3" + } +} diff --git a/devTools/sanity/tsconfig.json b/devTools/sanity/tsconfig.json new file mode 100644 index 00000000..adc792a2 --- /dev/null +++ b/devTools/sanity/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "noImplicitAny": true, + "outDir": "./dist", + "target": "ES2015", + "declaration": true, + "module": "ES2015", + "moduleResolution": "node", + "baseUrl": ".", + "esModuleInterop": true, + "resolveJsonModule": true + }, + "include": [ + "." + ] +} From 66d31084a17d1527934d707d5e44e5aca15a46d8 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 24 Jun 2021 16:42:07 +0300 Subject: [PATCH 08/18] Update txList --- devTools/sanity/txList | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/devTools/sanity/txList b/devTools/sanity/txList index 68c61668..18e821e6 100644 --- a/devTools/sanity/txList +++ b/devTools/sanity/txList @@ -200,7 +200,7 @@ c_pad,h_360,w_480/du_10/q_70/vc_h265 c_pad,h_360,w_480/du_10/q_70/vc_vp9 c_pad,w_200,h_200,e_saturation:50/e_shadow/bo_1px_solid_rgb:666 c_pad,w_400 -c_scale,dl_1000,e_trim,w_700 +# Animated not implemented yet c_scale,dl_1000,e_trim,w_700 c_scale,e_grayscale,f_auto,q_auto,w_100 c_scale,e_saturation:50,r_20,w_400/g_south_east,l_logo_jpegmini,o_80,w_100,x_10,y_10/q_jpegmini c_scale,e_viesus_correct,w_400 @@ -239,8 +239,8 @@ co_rgb:20a020,e_colorize:50 cs_keep_cmyk cs_srgb d_avatar.png -dl_100 -dl_200 +#Animated not implemented yet dl_100 +#Animated not implemented yet dl_200 dn_20 dpr_2 dpr_2,f_auto,q_auto,w_800 @@ -345,7 +345,7 @@ e_improve:outdoor #No action spec: e_lightroom:xmp:soft_mist.xmp/w_300 #No action spec: e_lightroom:xmp:warm_shadow.xmp #No action spec: e_lightroom:xmp:warm_shadow.xmp/w_300 -e_loop:2 +#e_loop:2 e_make_transparent:5 e_multiply,l_cloudinary_icon_blue e_negate @@ -371,7 +371,7 @@ e_pixelate_region:35,h_425,w_550,x_600,y_400 e_preview,fl_getinfo e_preview:duration_12.0:max_seg_3:min_seg_dur_3.0 e_preview:duration_5.0 -e_preview:duration_8/c_crop,w_1600,h_800,e_loop +#Animated not implemented yet e_preview:duration_8/c_crop,w_1600,h_800,e_loop #No action spec: e_progressbar:bar:blue:6 #No action spec: e_progressbar:color_FF0000:width_12:type_frame #No action spec: e_progressbar:frame:FF0000:12 @@ -457,8 +457,7 @@ fn_remote:aHR0cHM6Ly9teS5leGFtcGxlLmN1c3RvbS9mdW5jdGlvbg== fn_wasm:my_example.wasm fps_1-5 g_face,c_crop -# No zoom with crop - Docs need to fix -g_face,c_crop,z_1.3 +# Zoom with crop not implemented yet g_face,c_crop,z_1.3 g_face,c_thumb,w_150,h_150 g_face,c_thumb,w_150,h_150,z_0.7 g_face,w_500,c_thumb,fl_getinfo @@ -484,15 +483,15 @@ h_200,w_200,c_pad,b_auto:border h_200,w_200,c_pad,b_auto:border_contrast h_200,w_200,c_pad,b_auto:predominant h_200,w_200,c_pad,b_auto:predominant_contrast -h_200,w_500,fl_waveform -h_200,w_500,fl_waveform,co_black,b_white -h_200,w_500,fl_waveform,co_darkblue,b_grey +#Waveform not implemented yet h_200,w_500,fl_waveform +#Waveform not implemented yet h_200,w_500,fl_waveform,co_black,b_white +#Waveform not implemented yet h_200,w_500,fl_waveform,co_darkblue,b_grey h_200/u_docs:iphone_template,h_300,a_90 h_200/u_docs:transparent_grid,w_1.0,h_1.0,fl_relative,c_crop,o_50 h_225/q_auto,f_auto,bo_1px_solid_black h_250 h_250,w_150,c_fill,g_auto/f_auto/q_auto -h_250,w_400,fl_waveform,so_2,eo_4,co_blue,b_transparent +#Waveform not implemented yet h_250,w_400,fl_waveform,so_2,eo_4,co_blue,b_transparent h_300 h_300,ar_3:4,c_fill,g_auto:face h_300,ar_3:4,c_fill,g_auto:faces @@ -634,7 +633,7 @@ so_10p,du_30p so_120 so_21/bo_2px_solid_black so_3 -so_3,eo_5,e_boomerang/e_loop +#Animated not implemented yet so_3,eo_5,e_boomerang/e_loop so_30/bo_2px_solid_black so_4,w_350,h_350,c_crop,r_20,e_grayscale,bo_5px_solid_black so_43,du_10/fl_mono @@ -657,10 +656,10 @@ u_docs:iphone_template,h_300,a_90 u_site_bg,w_1.0,h_1.0,fl_relative vc_auto vc_h264:baseline:3.1 -vs_1.1s,dl_200,w_200,e_loop:2 -vs_10,dl_100,w_250,fl_awebp,fl_animated +#Animated not implemented yet vs_1.1s,dl_200,w_200,e_loop:2 +#Animated not implemented yet vs_10,dl_100,w_250,fl_awebp,fl_animated vs_40 -vs_40,dl_200,h_200,e_loop +#Animated not implemented yet vs_40,dl_200,h_200,e_loop w_0.25,c_scale w_0.4,a_20/l_cloudinary_icon_white,w_60,o_50,g_south_east,y_15,x_60 w_0.5 @@ -1054,8 +1053,8 @@ q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_650 r_20 t_sample_named_transform t_sample_named_transform.sample_named_transform2 -vs_10,dl_100,w_250,f_gif -vs_10,dl_100,w_250,f_webp,fl_awebp,fl_animated +#Animated not implemented yet vs_10,dl_100,w_250,f_gif +#Animated not implemented yet vs_10,dl_100,w_250,f_webp,fl_awebp,fl_animated w_0.4,a_20/l_cloudinary_icon,o_50,w_60,g_south_east,y_15,x_60 w_100,c_fill w_150,h_150,c_thumb,g_auto:0 @@ -1253,7 +1252,7 @@ fps_10-20 ki_0.4 fl_animated,f_auto fl_animated,f_gif -f_auto,fl_animated,vs_10,dl_5 +# Animated not yet supported f_auto,fl_animated,vs_10,dl_5 f_webp,fl_animated,fl_awebp,vs_10 sp_sd sp_hd_lean @@ -1312,8 +1311,7 @@ e_blur_region,h_100,w_100,x_50,y_120 e_oil_paint e_oil_paint:5 e_blackwhite:5 -e_loop -e_loop:5 +#Animated not implemented yet e_loop e_pixelate e_pixelate:17 e_pixelate_region:2,h_100,w_200,x_1,y_3 @@ -1424,3 +1422,4 @@ l_video:dog,fl_splice,so_0,du_5 l_video:dog/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply l_video:dog/l_video:transition1,e_transition/a_180/fl_layer_apply/fl_layer_apply l_sample,so_6.5,eo_10 +$width_iw_mul_3/w_$width From afc342d56b9fcccfc12d84d60371a67a8a76ed83 Mon Sep 17 00:00:00 2001 From: Patrick Date: Thu, 24 Jun 2021 16:42:33 +0300 Subject: [PATCH 09/18] Update imports --- devTools/sanity/createTestFile.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devTools/sanity/createTestFile.ts b/devTools/sanity/createTestFile.ts index 14c10aac..330b9832 100644 --- a/devTools/sanity/createTestFile.ts +++ b/devTools/sanity/createTestFile.ts @@ -146,6 +146,8 @@ import {GradientDirection} from "qualifiers/gradientDirection"; import {StreamingProfile} from "qualifiers/streamingProfile"; import { PSDTools } from "actions/psdTools"; import { FontStyle } from "qualifiers/fontStyle"; +import {Volume} from "../src/qualifiers/volume"; +import {FontAntialias} from "../src/qualifiers/FontAntialias"; const CloudinaryImage = CloudinaryMedia; const CloudinaryVideo = CloudinaryMedia; `; From 9d3cf9ae38af7fe42440f46de40e313f77851ecd Mon Sep 17 00:00:00 2001 From: Patrick Date: Tue, 6 Jul 2021 18:59:38 +0300 Subject: [PATCH 10/18] Add language configuration for SDK Code generation --- .code-generation/config.js | 77 ++++++++++++++++++++++++++++++++++++++ devTools/sanity/index.ts | 15 ++++++-- devTools/sanity/txList | 9 ++--- package.json | 1 + 4 files changed, 94 insertions(+), 8 deletions(-) create mode 100644 .code-generation/config.js diff --git a/.code-generation/config.js b/.code-generation/config.js new file mode 100644 index 00000000..476e1d5f --- /dev/null +++ b/.code-generation/config.js @@ -0,0 +1,77 @@ +module.exports = { + "specVersion": "master", + "langConfig": { + newInstanceSyntax: 'new #name(#req)#optional', + lang: 'Javascript', + methodDelimiter: '.', + groupDelimiter: '.', + openQualifiersChar: '', + closeQualifiersChar: '', + closeTransformationChar: '', + hideActionGroups: true, + openSyntaxString: "new CloudinaryImage('sample')", + openActionChar: '(', + closeActionChar: ')', + overwritePreset: 'javascript', + closeSyntaxString: ';', + arraySeparator: ', ', + arrayOpen: '[', + arrayClose: ']', + prettier: { + parser: 'babel' + }, + formats: { + formatClassOrEnum: 'PascalCase', + formatMethod: 'camelCase', + formatFloat: (f) => { + if (!f.toString().includes('.')) { + return `'${f}.0'` // In JS world, 1.0 is 1, so we make sure 1.0 stays 1.0 + } else { + return f; + } + } + }, + childTransformations: { + image: { + open: "new ImageTransformation()", + close: '', + }, + video: { + open: "new VideoTransformation()", + close: '', + }, + media: { + open: "new MediaTransformation()", + close: '', + } + } + }, + "overwrites": { + qualifiers: { + color_override: (payload) => { + const {qualifierDTO} = payload; + const colorName = qualifierDTO.qualifiers[0].name; + + // TODO this should be streamlined with how we deal with color. + return `.colorOverride("${colorName}")` + }, + color: (payload) => { + const {qualifierDTO} = payload; + // This case supports three types of qualifiers + // TODO this DTO structure needs to be aligned + // {name:color, is_required:true qualifiers: [{group:'color', name: 'red', is_required:true}]} + // {group:'color', name: 'red', is_required:true} + // {group:'color', name: 'rgb', qualifiers: [{ "name": "color", "value": "#d5d2ca", "is_required": true, "value_type": "string" }]} + + let colorName; + if (qualifierDTO.qualifiers && qualifierDTO.name === 'rgb') { + colorName = qualifierDTO.qualifiers[0].value; + } else { + colorName = qualifierDTO.qualifiers ? qualifierDTO.qualifiers[0].name : qualifierDTO.name; + } + + return `'${colorName}'`; + } + } + } +} diff --git a/devTools/sanity/index.ts b/devTools/sanity/index.ts index 4373a932..83416a9a 100644 --- a/devTools/sanity/index.ts +++ b/devTools/sanity/index.ts @@ -26,7 +26,7 @@ const transformationStrings = ([...new Set(file.split('\n'))] as string[]) /* * Set the SDK Code Snippets Service URL (Change domain/port only */ -const baseURL = `http://localhost:3000/dev/sdk-code-gen`; +const baseURL = `http://localhost:8000/dev/sdk-code-gen`; const results:ITXResults = { success:[], @@ -34,14 +34,20 @@ const results:ITXResults = { }; console.log(`Attempting to generate code for ${transformationStrings.length} transformations\n`); + +let counter = 0; transformationStrings.forEach(async (txString, i) => { // Space requests apart + + await new Promise((res) => { setTimeout(() => { - res(5 * i + 1); + res(); }, 5 * i + 1); }); + const foo :number = null; + console.log('Processing transformation:', i); const URL = `${baseURL}?language=javascript&hideActionGroups=0&url=https://res.cloudinary.com/demo/image/upload/${txString}/sample`; @@ -72,10 +78,13 @@ transformationStrings.forEach(async (txString, i) => { /* * Store the result in a file o fyour choosing */ - if (i === transformationStrings.length - 1) { + if (counter === transformationStrings.length - 1) { + console.log (`Successful transformations: ${results.success.length}`); + console.log (`Failed transformations: ${results.fail.length}`); fs.writeFileSync(`${__dirname}/results.json`, JSON.stringify(results)); fs.writeFileSync(`${__dirname}/../../__TESTS__/compilation.test.ts`, createTestFile(results.success)); } + counter++; }); diff --git a/devTools/sanity/txList b/devTools/sanity/txList index 18e821e6..ff6e55bf 100644 --- a/devTools/sanity/txList +++ b/devTools/sanity/txList @@ -463,7 +463,7 @@ g_face,c_thumb,w_150,h_150,z_0.7 g_face,w_500,c_thumb,fl_getinfo g_north,l_text:arial_60:watchme,y_20 g_south,l_text:Arial_200:Flower -g_south,l_text:Arial_200_bold_italic_stroke_letter_spacing_50:Smile!,co_yellow,bo_10px_solid_blue +# Stroke not yet implemented g_south,l_text:Arial_200_bold_italic_stroke_letter_spacing_50:Smile!,co_yellow,bo_10px_solid_blue h_100,w_190 h_105/e_shadow:50,x_10,y_10 h_120 @@ -577,7 +577,7 @@ l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50 l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_volume:mute/e_brightness:10,r_max l_video:ski_jump,so_3,eo_6,c_scale,w_250,g_north_east o_30 -p_my_sprite_ +#Prefix not yet implemented p_my_sprite_ pg_2 pg_2-4;6;8 pg_embedded:3 @@ -853,7 +853,7 @@ w_400,h_300,c_pad w_400,h_400,c_crop,g_face,r_max/w_200 w_400,q_auto:best,vc_vp9 w_450,bo_5px_solid_black/q_auto,dpr_auto -w_480,so_3,eo_5,e_boomerang/e_loop +# Animated not currently supported w_480,so_3,eo_5,e_boomerang/e_loop w_500 w_500,ar_1,c_crop,g_auto:bottle w_500,ar_1,c_crop,g_auto:bottle/h_150 @@ -1046,7 +1046,7 @@ l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9vbGRfbG9nby5wbmc= l_text:AlexBrush-Regular.ttf_100:Happy New Year 2017 ,co_white,g_north_west,x_30,y_30 l_text:arial_60:Cool Video,g_south,y_80,so_2,eo_5 l_text:impact_150:Your Brand Name or Logo Here,e_distort:arc:-120,co_white,g_south,y_840,o_60 -p_home_thing_ +#Prefix not yet implemented p_home_thing_ pg_2-4;6;8/w_300 q_auto,dpr_2,f_auto,h_300 q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_650 @@ -1352,7 +1352,6 @@ c_pad,b_green c_pad,b_rgb:fff e_assist_colorblind fl_keep_iptc -fl_animated:filename fl_attachment:pretty_flower fl_whatever l_sample/fl_first_flag/fl_second_flag/fl_layer_apply diff --git a/package.json b/package.json index d0d78125..faf10854 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "test": "npm run test:types && npm run build && jest --coverage --reporters default && npm run test:size", "test:size": "ts-node -O '{\"module\":\"CommonJS\"}' __TESTS_BUNDLE_SIZE__/bin/bin.ts", "test:comp": "node ./scripts/updateCompliationTests.js && jest __TESTS__/compilation.test.ts --coverage", + "test:comp:service": "ts-node ./devTools/sanity/index.ts && jest __TESTS__/compilation.test.ts --coverage", "test:unit": "jest __TESTS__/unit --reporters default", "test:unit:watch": "jest __TESTS__/unit --watch --reporters default", "test:integration": "jest __TESTS__/integration", From f96e3f0155621224af3e5487cdb18ef0d9fbc91f Mon Sep 17 00:00:00 2001 From: Patrick Date: Tue, 6 Jul 2021 20:53:12 +0300 Subject: [PATCH 11/18] Update config.js for code generation --- .code-generation/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.code-generation/config.js b/.code-generation/config.js index 476e1d5f..10f77022 100644 --- a/.code-generation/config.js +++ b/.code-generation/config.js @@ -1,5 +1,5 @@ module.exports = { - "specVersion": "master", + "SDKSpecVersion": "master", "langConfig": { newInstanceSyntax: 'new #name(#req)#optional', lang: 'Javascript', From 0997eae4b59060e6a45919745025eb0e7536ec1b Mon Sep 17 00:00:00 2001 From: Patrick Date: Wed, 7 Jul 2021 17:45:01 +0300 Subject: [PATCH 12/18] Update the configuration for openSyntaxString --- .code-generation/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.code-generation/config.js b/.code-generation/config.js index 10f77022..98251dc0 100644 --- a/.code-generation/config.js +++ b/.code-generation/config.js @@ -9,7 +9,7 @@ module.exports = { closeQualifiersChar: '', closeTransformationChar: '', hideActionGroups: true, - openSyntaxString: "new CloudinaryImage('sample')", + openSyntaxString: "new CloudinaryImage('#publicID')", openActionChar: '(', closeActionChar: ')', overwritePreset: 'javascript', From 02e2eb67ee95afcc29bf3a0c65831ec18e5406b0 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 18 Jul 2021 15:59:19 +0300 Subject: [PATCH 13/18] Stabalize tests against snippets service --- devTools/sanity/createTestFile.ts | 4 +++ devTools/sanity/index.ts | 29 ++++++++++++++----- .../gravity/compassGravity/CompassGravity.ts | 1 + 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/devTools/sanity/createTestFile.ts b/devTools/sanity/createTestFile.ts index 330b9832..4d3fa39b 100644 --- a/devTools/sanity/createTestFile.ts +++ b/devTools/sanity/createTestFile.ts @@ -1,3 +1,7 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +/* eslint-disable require-jsdoc */ + + import {ITxResult} from "./index"; const fs = require('fs'); diff --git a/devTools/sanity/index.ts b/devTools/sanity/index.ts index 83416a9a..43a4d1ee 100644 --- a/devTools/sanity/index.ts +++ b/devTools/sanity/index.ts @@ -1,3 +1,7 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +/* eslint-disable require-jsdoc */ + +const querystring = require('querystring'); const fs = require('fs'); const nodeFetch = require('node-fetch'); const file = fs.readFileSync(`${__dirname}/txList`, 'utf-8'); @@ -22,10 +26,10 @@ export interface ITXResults { const transformationStrings = ([...new Set(file.split('\n'))] as string[]) .filter((a) => a[0] !== '#').filter((a) => a); - /* * Set the SDK Code Snippets Service URL (Change domain/port only */ +// const baseURL = `https://staging-code-snippets.cloudinary.com/dev/sdk-code-gen`; const baseURL = `http://localhost:8000/dev/sdk-code-gen`; const results:ITXResults = { @@ -38,19 +42,28 @@ console.log(`Attempting to generate code for ${transformationStrings.length} tra let counter = 0; transformationStrings.forEach(async (txString, i) => { // Space requests apart - - await new Promise((res) => { setTimeout(() => { res(); - }, 5 * i + 1); + }, 30 * i + 1); }); - const foo :number = null; - console.log('Processing transformation:', i); - const URL = `${baseURL}?language=javascript&hideActionGroups=0&url=https://res.cloudinary.com/demo/image/upload/${txString}/sample`; + const queryArgs = { + framework: 'js_2', + url: `https://res.cloudinary.com/demo/image/upload/${txString}/sample`, + sdkVersion: 'feature/code-generation', // Which SDK version to use, that contains the version for SDK-Code-Gen + hideActionGroups:0 // true, hide... + }; + + const queryString = querystring.stringify(queryArgs, '&', '=', { + encodeURIComponent(a: string) { + return a; + } + }); + + const URL = `${baseURL}?${queryString}`; const res = await nodeFetch(URL).catch((e: Error) => { console.log(e); @@ -76,7 +89,7 @@ transformationStrings.forEach(async (txString, i) => { } /* - * Store the result in a file o fyour choosing + * Store the result in a file of your choosing */ if (counter === transformationStrings.length - 1) { console.log (`Successful transformations: ${results.success.length}`); diff --git a/src/qualifiers/gravity/compassGravity/CompassGravity.ts b/src/qualifiers/gravity/compassGravity/CompassGravity.ts index eafd4070..be7c7d39 100644 --- a/src/qualifiers/gravity/compassGravity/CompassGravity.ts +++ b/src/qualifiers/gravity/compassGravity/CompassGravity.ts @@ -7,6 +7,7 @@ import {CompassQualifier} from "../qualifiers/compass/CompassQualifier"; * @extends {Qualifiers.Gravity.GravityQualifier} */ class CompassGravity extends GravityQualifier { + private type:'gravity'; constructor(dir: CompassQualifier) { // Required due to https://github.com/microsoft/TypeScript/issues/13029 /* istanbul ignore next */ From 948ed7a9282631a4b78ad3ca832c0e19c26b57d7 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 18 Jul 2021 20:16:04 +0300 Subject: [PATCH 14/18] Update code generation process --- devTools/sanity/createTestFile.ts | 1 + devTools/sanity/index.ts | 18 +- devTools/sanity/txList | 1228 ++++++++++++++--------------- 3 files changed, 616 insertions(+), 631 deletions(-) diff --git a/devTools/sanity/createTestFile.ts b/devTools/sanity/createTestFile.ts index 4d3fa39b..46767ed2 100644 --- a/devTools/sanity/createTestFile.ts +++ b/devTools/sanity/createTestFile.ts @@ -152,6 +152,7 @@ import { PSDTools } from "actions/psdTools"; import { FontStyle } from "qualifiers/fontStyle"; import {Volume} from "../src/qualifiers/volume"; import {FontAntialias} from "../src/qualifiers/FontAntialias"; +import {Animated} from "../src/actions/animated"; const CloudinaryImage = CloudinaryMedia; const CloudinaryVideo = CloudinaryMedia; `; diff --git a/devTools/sanity/index.ts b/devTools/sanity/index.ts index 43a4d1ee..ff5a9620 100644 --- a/devTools/sanity/index.ts +++ b/devTools/sanity/index.ts @@ -1,6 +1,5 @@ /* eslint-disable @typescript-eslint/no-var-requires */ /* eslint-disable require-jsdoc */ - const querystring = require('querystring'); const fs = require('fs'); const nodeFetch = require('node-fetch'); @@ -11,7 +10,6 @@ export interface ITxResult { error: string; txString: string; parsedCode: string; - actionsDTO:any; } export interface ITXResults { @@ -29,8 +27,8 @@ const transformationStrings = ([...new Set(file.split('\n'))] as string[]) /* * Set the SDK Code Snippets Service URL (Change domain/port only */ -// const baseURL = `https://staging-code-snippets.cloudinary.com/dev/sdk-code-gen`; -const baseURL = `http://localhost:8000/dev/sdk-code-gen`; +const baseURL = `https://staging-code-snippets.cloudinary.com/dev/sdk-code-gen`; +// const baseURL = `http://localhost:8000/dev/sdk-code-gen`; const results:ITXResults = { success:[], @@ -39,6 +37,7 @@ const results:ITXResults = { console.log(`Attempting to generate code for ${transformationStrings.length} transformations\n`); + let counter = 0; transformationStrings.forEach(async (txString, i) => { // Space requests apart @@ -53,8 +52,7 @@ transformationStrings.forEach(async (txString, i) => { const queryArgs = { framework: 'js_2', url: `https://res.cloudinary.com/demo/image/upload/${txString}/sample`, - sdkVersion: 'feature/code-generation', // Which SDK version to use, that contains the version for SDK-Code-Gen - hideActionGroups:0 // true, hide... + hideActionGroups:0 }; const queryString = querystring.stringify(queryArgs, '&', '=', { @@ -72,19 +70,17 @@ transformationStrings.forEach(async (txString, i) => { const obj = await res.json(); // Fail - if (obj.parsedCode.indexOf('Cannot parse') >= 0) { + if (obj.parsedCode.includes('Unable to parse') || obj.parsedCode.includes('not currently available')) { results.fail.push({ txString, error: obj.parsedCode, - parsedCode: null, - actionsDTO: obj.actionsDTO + parsedCode: null }); } else { // Success results.success.push({ txString, parsedCode: obj.parsedCode, - error: null, - actionsDTO: obj.actionsDTO + error: null }); } diff --git a/devTools/sanity/txList b/devTools/sanity/txList index ff6e55bf..54f26f7f 100644 --- a/devTools/sanity/txList +++ b/devTools/sanity/txList @@ -1,21 +1,131 @@ -bo_5px_solid_black -bo_2px_solid_black,so_100 -bo_2px_solid_black,so_101 -bo_2px_solid_black,so_133 -bo_2px_solid_black,so_14 -bo_2px_solid_black,so_256 -bo_2px_solid_black,so_36 -bo_2px_solid_black,so_371 -bo_2px_solid_black,so_386,c_fill,w_230,h_129 -bo_2px_solid_black,so_48.5 -bo_2px_solid_black,so_63,c_fill,w_230,h_129 -bo_2px_solid_black,so_68 -bo_2px_solid_black,so_98 +# Invalid String - Text should be "double encoded" - $award_!First!,$color_!rgb:FFFFFF!,$style_!Arial_45!/l_text:$style:%20%20$(award +# Invalid String - Text should be "double encoded" - $newwidth_1080/w_$newwidth/$name_!Jane%20Smith!/l_text:Comic%20Sans%20MS_24:%C2%A9$(name),g_south_east,x_10,y_10 +# Invalid String - Text should be "double encoded" - c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This%20is%20my%20picture,y_20/a_20 +# Invalid String - Text should be "double encoded" - c_limit,w_300/if_iw_gt_300,co_white,g_south_east,l_text:Arial_15_bold:Image%20scaled%20down%20to%20300px +# Invalid String - Text should be "double encoded" - c_scale,w_400/l_text:Arial_100:Big%20Flowers,co_yellow,fl_text_disallow_overflow +# Invalid String - Text should be "double encoded" - if_w_lt_600/l_text:Arial_20:Image%20shown%20in%20full%20scale,co_white,g_south_east/c_scale,e_blur:400,u_small_dinosaur,w_600/if_end +# Invalid String - Text should be "double encoded" - l_cloudinary_icon_blue,w_200,g_east,so_1,eo_11/l_text:arial_40:Sample%20Video,g_south,y_60,so_2 +# Invalid String - Text should be "double encoded" - l_couple/c_crop,g_faces,w_120,h_150/r_max/fl_layer_apply,g_north_east/l_cloudinary_icon,w_0.8,fl_relative,o_50,e_brightness:100/l_text:impact_40_bold:Sample image,g_south,y_20 +# Invalid String - Text should be "double encoded" - l_couple/c_crop,g_faces,w_120,h_150/r_max/fl_layer_apply,g_north_east/l_cloudinary_icon_white,w_0.8,fl_relative,o_50,e_brightness:100/l_text:impact_40_bold:Sample%20image,g_south,y_20 +# Invalid String - Text should be "double encoded" - l_text:AlexBrush-Regular.ttf_100:Happy%20New%20Year%20%202017%20,co_white,g_north_west,x_30,y_30 +# Invalid String - Text should be "double encoded" - l_text:arial_60:Cool%20Video,g_south,y_80,so_2,eo_5 +# Invalid String - Text should be "double encoded" - l_text:impact_150:Your%20Brand%20Name%20or%20Logo%20Here,e_distort:arc:-120,co_white,g_south,y_840,o_60 +# Invalid String - Text should be "double encoded" - w_200/l_text:Arial_30:Cool%F0%9F%98%8E +# Invalid String - Text should be "double encoded" - w_300/w_200,y_30,a_9,h_150,g_north,c_fit,l_text:Times_18_bold_center:Lorem%20ipsum%20dolor%20sit%20amet%20consectetur%20adipisicing%20elit%20sed%20do%20eiusmod%20tempor%20incididunt%20ut%20labore%20et%20dolore%20magna%20aliqua.%20Ut%20enim%20ad%20minim%20veniam%20quis%20nostrud%20exercitation%20ullamco%20laboris%20nisi%20ut%20aliquip%20ex%20ea%20commodo%20consequat. +# Invalid String - Text should be "double encoded" - w_500/if_!cloudinary!_in_tags/l_cloudinary_icon,w_100,g_north_east,o_50,e_brightness:100/l_text:arial_15:By Cloudinary,g_north_east,y_10,x_105/if_end/du_5 +# Invalid String - Text should be "double encoded" - w_500/l_text:Times_60:Cool%20image,g_south,y_20 +# Invalid String - Text should be "double encoded" - w_500/l_text:Times_90_bold:Cool%20image,g_south,y_80,co_rgb:FFFF00 +# Invalid String - Text should be "double encoded" - w_500/l_text:Times_90_bold:Cool%20image,g_south,y_80,co_rgb:FFFF0080 +# Invalid String - Text should be "double encoded" - w_500/l_text:Verdana_50_bold:Cool%20image,g_west,x_10 +# Invalid String - Text should be "double encoded" - w_500/if_!cloudinary!_in_tags/l_cloudinary_icon_white,w_100,g_north_east,o_50,e_brightness:100/l_text:arial_15:By%20Cloudinary,g_north_east,y_10,x_105/if_end/du_5 +# Invalid String - Text should be "double encoded" - w_500/l_text:sample_text_style:Stylish%20text,g_south +# Invalid String - Text should be "double encoded" - w_500/w_400,c_fit,l_text:Neucha_26_bold:Lorem%20ipsum%20dolor%20sit%20amet%20consectetur%20adipisicing%20elit%20sed%20do%20eiusmod%20tempor%20incididunt%20ut%20labore%20et%20dolore%20magna%20aliqua.%20Ut%20enim%20ad%20minim%20veniam%20quis%20nostrud%20exercitation%20ullamco%20laboris%20nisi%20ut%20aliquip%20ex%20ea%20commodo%20consequat. +# Invalid String for tests - Emoji returned - w_300/l_text:Arial_40:Cool%25F0%259F%2598%258E +# No action spec (g_auto:0) - w_150,h_150,c_thumb,g_auto:0 +# No action spec (g_auto:0) - w_150,h_150,c_thumb,g_auto:0 +# No subject/classic support - c_fill,g_auto:classic,ar_0.7,w_200 +# No subject/classic support - c_fill,g_auto:subject,ar_0.7,w_200 +# No subject/classic support - c_fill,g_auto:subject,ar_1:1 +# No subject/classic support - g_auto:subject,c_fill,ar_0.7,w_750 +# No subject/classic support - g_auto:subject,c_fill,ar_0.7,w_750,fl_getinfo +# no action spec (e_cut_out): e_cut_out,l_docs:logo:logo,g_south_west,w_200,x_20,y_20 +# no action spec: e_displace,l_radialize,y_100 +# no action spec: e_theme:color_black:photosensitivity_110 +# no action spec: e_theme:color_d3d3d3 +# no action spec: h_150/e_progressbar:bar:blue:6/ac_none +# no action spec: h_150/e_progressbar:frame:FF0000:6/ac_none +# no action spec: w_500/e_progressbar:bar:blue:6/ac_none +# no action spec: w_500/e_progressbar:bar:blue:6/ac_none/l_play_icon2,w_0.15 +# no action spec: w_500/e_progressbar:frame:FF0000:12/ac_none +# no action spec: w_500/e_progressbar:frame:FF0000:12/ac_none/l_play_icon2,w_0.15 +# Stroke not implemented in action generator yet - g_south,l_text:Arial_200_bold_italic_stroke_letter_spacing_50:Smile!,co_yellow,bo_10px_solid_blue +so_3,eo_5,e_boomerang/e_loop +vs_10,dl_100,w_250,f_gif +vs_10,dl_100,w_250,f_webp,fl_awebp,fl_animated +dl_100 +dl_200 +e_loop +e_preview:duration_8/c_crop,w_1600,h_800,e_loop +vs_1.1s,dl_200,w_200,e_loop:2 +# Needs spec: missing fl_awebp in result syntax - vs_10,dl_100,w_250,fl_awebp,fl_animated +vs_40,dl_200,h_200,e_loop +#No action spec: e_lightroom:saturation_-100:clarity_25:contrast_73:vignetteamount_60 +#No action spec: e_lightroom:saturation_-100:clarity_25:contrast_73:vignetteamount_60/w_500,q_auto,e_distort:0:0:500:100:500:232:0:332 +#No action spec: e_lightroom:whitebalance_auto +#No action spec: e_lightroom:whitebalance_shade:clarity_25 +#No action spec: e_lightroom:whitebalance_tungsten +#No action spec: e_lightroom:xmp:authenticated:my_presets:warm_shadow_auth.xmp +#No action spec: e_lightroom:xmp:my_presets:warm_shadow.xmp +#No action spec: e_lightroom:xmp:soft_mist.xmp +#No action spec: e_lightroom:xmp:soft_mist.xmp/r_50,f_auto,q_auto,bo_40px_solid_orange/a_5/w_400 +#No action spec: e_lightroom:xmp:soft_mist.xmp/w_300 +#No action spec: e_lightroom:xmp:warm_shadow.xmp +#No action spec: e_lightroom:xmp:warm_shadow.xmp/w_300 +#No action spec: e_progressbar:bar:blue:6 +#No action spec: e_progressbar:color_FF0000:width_12:type_frame +#No action spec: e_progressbar:frame:FF0000:12 +#No action spec: e_progressbar:frame:FF0000:6 +#No action spec: e_progressbar:type_bar:color_blue:width_6 +#Prefix not yet implemented - p_home_thing_ +#Prefix not yet implemented p_my_sprite_ +#Waveform not implemented yet h_200,w_500,fl_waveform +#Waveform not implemented yet h_200,w_500,fl_waveform,co_black,b_white +#Waveform not implemented yet h_200,w_500,fl_waveform,co_darkblue,b_grey +#Waveform not implemented yet h_250,w_400,fl_waveform,so_2,eo_4,co_blue,b_transparent +#e_loop:2 +#w_300,e_distort:40:25:280:60:260:155:35:165 +w_480,so_3,eo_5,e_boomerang/e_loop +c_scale,dl_1000,e_trim,w_700 +f_auto,fl_animated,vs_10,dl_5 +c_crop,g_face,z_1.2,h_150,w_150 +c_crop,g_sink,z_0.8 +g_face,c_crop,z_1.3 +$award_!First! +$bcolor_!rgb:0000ff!/if_fc_gt_0,$bcolor_!red!/bo_5px_solid_$bcolor,c_fill,h_120,w_120 +$bestpic_ref:!file.png! +$colors_5,fn_wasm:quantize.wasm +$foo_!iw! +$foo_1_to_f +$foo_bar +$foo_bar_to_i +$foo_iw_add_100_div_3 +$foo_md:!bar!_to_f +$img_current,$height_ih/if_w_lt_800/c_scale,e_blur:800,u_$img,w_800,h_$height/e_brightness:40,fl_layer_apply/if_end +$img_current/e_grayscale/l_$img,w_0.3,bo_10px_solid_white/fl_layer_apply,g_north_west/q_auto,f_auto,dpr_2.0,w_900 +$mainvideowidth_500/$overlaywidth_$mainvideowidth_div_3/w_$mainvideowidth/l_video:kitten_fighting,w_$overlaywidth,g_south_east +$newwidth_10_add_iw_mul_0.3,w_$newwidth +$overlay_ref:!docs:sale!/fn_wasm:docs:pnglayer.wasm/bo_1px_solid_black +$overlaywidth_$mainvideowidth_div_3 +$qualtag_!Pro!/if_$qualtag_in_tags,q_80/if_else,q_30/w_500 +$qualtag_!Pro!/if_$qualtag_in_tags,q_90/if_else,q_30/w_500 +$qualtag_!important!,$delwidth_450/t_highqual-if-tagged +$rating_!thumbs-down!/t_image_ratings +$rating_!thumbs-down!/t_image_ratings/w_200 +$rating_!thumbs-up!/t_image_ratings +$rating_!thumbs-up!/t_image_ratings/w_200 +$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer +$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer/e_art:incognito +$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20 +$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20/t_my_named_mul_trans +$small_150,$big_2_mul_$small_add_4/c_fill,w_$big,h_$small_add_20 +$small_150/c_fill,w_$big,h_$small_add_20 +$w_200,$ar_0.8/w_$w,ar_$ar,c_fill,g_face +$width_115/t_passport_photo +$width_140/t_passport_photo +$width_165/t_passport_photo +$width_60/t_passport_photo +$width_iw_mul_3/w_$width +$widthval_200,$arval_0.8/w_$widthval,ar_$arval,c_fill,g_face a_-20 +a_180 a_180/w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0,du_5/fl_layer_apply a_20 a_90 +a_auto_left a_auto_right +a_hflip +a_ignore +a_vflip a_vflip/a_20 ac_none ac_none/l_video:electronic,e_volume:-50 @@ -34,8 +144,12 @@ ar_1:1,c_fill,g_auto,w_400 ar_2.5,c_crop ar_4:3,c_fill/c_scale,w_auto,dpr_auto b_blue,c_pad,h_400,w_660 +b_blue,o_0 +b_green b_lightblue b_rgb:d5d2ca,h_300 +b_rgb:fff +b_white,co_red,l_subtitles:arial_17:my_subs_file.srt bo_1px_solid_black,a_0/f_auto,q_auto,dpr_auto bo_1px_solid_black,a_0/f_auto,q_auto,dpr_auto,h_300 bo_1px_solid_black,dpr_2,q_auto,f_auto,w_400 @@ -59,53 +173,63 @@ bo_1px_solid_gray/f_auto,w_700,dpr_2,q_auto bo_1px_solid_gray/f_auto/q_auto bo_1px_solid_gray/q_auto,h_450,f_auto,dpr_2 bo_1px_solid_gray/q_auto,w_400,f_auto,dpr_2 +bo_1px_solid_gray/w_300,f_auto,q_auto,dpr_2 bo_1px_solid_gray/w_400,dpr_2,q_auto,f_auto bo_1px_solid_gray/w_400,f_auto,q_auto,dpr_2 +bo_1px_solid_gray/w_400,q_auto,dpr_2,f_auto bo_1px_solid_gray/w_450,f_auto,dpr_2,q_auto bo_1px_solid_gray/w_500,f_auto,q_auto,dpr_2 bo_1px_solid_gray/w_550,q_auto,dpr_2,f_auto +bo_1px_solid_gray/w_550,q_auto,f_auto,dpr_2 bo_1px_solid_gray/w_600,f_auto,q_auto,dpr_2 bo_1px_solid_rgb:ccc,f_auto,dpr_2 bo_2px_solid_black bo_2px_solid_black,f_auto,q_auto +bo_2px_solid_black,so_100 +bo_2px_solid_black,so_101 +bo_2px_solid_black,so_133 +bo_2px_solid_black,so_14 +bo_2px_solid_black,so_256 +bo_2px_solid_black,so_36 +bo_2px_solid_black,so_371 +bo_2px_solid_black,so_386,c_fill,w_230,h_129 +bo_2px_solid_black,so_48.5 +bo_2px_solid_black,so_63,c_fill,w_230,h_129 +bo_2px_solid_black,so_68 +bo_2px_solid_black,so_98 bo_2px_solid_black/c_fill,w_230,h_129 bo_40px_solid_brown +bo_5.5px_solid_hotpink,r_100 +bo_5.5px_solid_hotpink,r_max +bo_5.5px_solid_rgb:aabbcc,r_max +bo_5.5px_solid_rgb:fff +bo_5px_solid_black bo_5px_solid_black,f_auto,q_auto/dpr_auto +bo_5px_solid_hotpink bo_5px_solid_red +bo_5px_solid_rgb:aabbcc,r_max bo_60px_solid_rgb:00390b60 -fn_render:w_500;h_500;du_18;vars_(tdur_1500;transition_s:hexagonalize;slides_((media_i:docs:shoppable_sunglasses;sdur_2000);(media_i:docs:shoppable_dress;sdur_4000);(media_i:docs:shoppable_bag2;sdur_3000);(media_i:docs:shoppable_bag;sdur_3000)))/f_auto,q_auto -fn_render:w_500;h_500;du_20;vars_(sdur_3000;tdur_1500;transition_s:circlecrop;slides_((media_i:docs:shoppable_sunglasses);(media_i:docs:shoppable_dress);(media_i:docs:shoppable_bag2);(media_i:docs:shoppable_bag)))/f_auto,q_auto -fn_render:w_640;h_480;du_20;vars_(sdur_3000;tdur_1500;transition_s:hexagonalize;slides_((media_v:hourglass_timer;type_s:video);(media_i:docs:shoppable_dress);(media_i:docs:shoppable_bag2);(media_i:docs:shoppable_bag)))/f_auto,q_auto -$award_!First!,$color_!rgb:FFFFFF!,$style_!Arial_45!/l_text:$style:%20%20$(award -$bcolor_!rgb:0000ff!/if_fc_gt_0,$bcolor_!red!/bo_5px_solid_$bcolor,c_fill,h_120,w_120 -$colors_5,fn_wasm:quantize.wasm -$img_current,$height_ih/if_w_lt_800/c_scale,e_blur:800,u_$img,w_800,h_$height/e_brightness:40,fl_layer_apply/if_end -$img_current/e_grayscale/l_$img,w_0.3,bo_10px_solid_white/fl_layer_apply,g_north_west/q_auto,f_auto,dpr_2.0,w_900 -$mainvideowidth_500/$overlaywidth_$mainvideowidth_div_3/w_$mainvideowidth/l_video:kitten_fighting,w_$overlaywidth,g_south_east -$newwidth_10_add_iw_mul_0.3,w_$newwidth -$overlay_ref:!docs:sale!/fn_wasm:docs:pnglayer.wasm/bo_1px_solid_black -$qualtag_!Pro!/if_$qualtag_in_tags,q_80/if_else,q_30/w_500 -$qualtag_!Pro!/if_$qualtag_in_tags,q_90/if_else,q_30/w_500 -$qualtag_!important!,$delwidth_450/t_highqual-if-tagged -$rating_!thumbs-down!/t_image_ratings -$rating_!thumbs-down!/t_image_ratings/w_200 -$rating_!thumbs-up!/t_image_ratings -$rating_!thumbs-up!/t_image_ratings/w_200 -$w_200,$ar_0.8/w_$w,ar_$ar,c_fill,g_face -$width_115/t_passport_photo -$width_140/t_passport_photo -$width_165/t_passport_photo -$width_60/t_passport_photo -$widthval_200,$arval_0.8/w_$widthval,ar_$arval,c_fill,g_face +br_100 +br_100:constant br_250k br_500000 br_500k:constant +c_crop,ar_1.85356,so_813,g_south c_crop,ar_1.85356,so_813,g_south/c_fill,w_230,h_129 c_crop,ar_1:1,w_1000,g_auto:cat +c_crop,e_sepia,h_150,r_20,w_150 c_crop,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This c_crop,e_viesus_correct,g_south,r_20,w_1000/c_scale,g_north_east,l_viesus_logo,o_50,w_100,x_10,y_10/c_scale,w_600 +c_crop,fl_region_relative +c_crop,fl_relative +c_crop,g_auto +c_crop,g_auto:cat_30:dog_avoid,w_300 +c_crop,g_auto:ocr_text +c_crop,g_auto:ocr_text_30 +c_crop,g_auto:ocr_text_avoid c_crop,g_cat:dog c_crop,g_cat:dog/w_0.25,c_scale +c_crop,g_cat:dog:auto:microwave_30:bicycle_avoid c_crop,g_dog:auto:bird,w_600,h_800 c_crop,g_dog:auto:bird,w_600,h_800/w_0.25,c_scale c_crop,g_dog:bird,w_600,h_800 @@ -116,13 +240,15 @@ c_crop,g_face c_crop,g_face,h_150,w_150 c_crop,g_face,h_400,w_400 c_crop,g_face,r_75,bo_10px_solid_grey/l_young_couple,w_150,h_150,c_thumb,r_max,g_faces,bo_3px_solid_black/fl_layer_apply,g_north_east -# Zoom not supported with crop - c_crop,g_face,z_1.2,h_150,w_150 c_crop,g_microwave c_crop,g_microwave,ar_1 c_crop,g_microwave,ar_1/w_0.3,c_scale c_crop,g_microwave/w_0.3,c_scale c_crop,g_north,h_200,w_260 +c_crop,g_north,w_300 +c_crop,g_north,w_300,x_100 c_crop,g_north_west,h_150,w_150 +c_crop,g_ocr_text c_crop,g_refrigerator c_crop,g_refrigerator,ar_1 c_crop,g_refrigerator,ar_1/w_0.3,c_scale @@ -130,35 +256,45 @@ c_crop,g_refrigerator/w_0.3,c_scale c_crop,g_sink c_crop,g_sink,ar_1 c_crop,g_sink,ar_1/w_0.3,c_scale -# Zoom not supported with crop - c_crop,g_sink,z_0.8 c_crop,g_sink/w_0.3,c_scale +c_crop,h_100 c_crop,h_100,w_150,x_380,y_250/c_fill,h_100,w_130/a_20/c_scale,w_0.8 c_crop,h_160,w_100 +c_crop,h_200 +c_crop,h_200,w_100 c_crop,h_200,w_200 +c_crop,w_100 +c_crop,w_100,ar_2.0 +c_crop,w_100,h_100 +c_crop,w_100,h_200,e_sepia:17 +c_crop,w_200,h_200,g_xy_center,x_100,y_100 c_crop,w_300,h_300/c_scale,w_150,r_max +c_crop,x_1 +c_crop,x_1,y_2 c_crop,x_80,y_30,h_150,w_150 c_fill,ar_0.7,w_200 c_fill,ar_0.7,w_750 +c_fill,ar_4:3 c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This -c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This%20is%20my%20picture,y_20/a_20 +c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:Thishttps c_fill,e_style_transfer,h_700,l_lighthouse,w_700 c_fill,e_style_transfer,h_700,l_lighthouse,w_700/c_scale,w_250 +c_fill,fl_region_relative +c_fill,fl_relative c_fill,g_auto,h_250,w_250 c_fill,g_auto,h_400,ar_0.8 c_fill,g_auto,h_400,ar_0.8/h_300 c_fill,g_auto,h_500,w_500 c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8 c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8/h_300 -# No subject/classic support - c_fill,g_auto:subject,ar_0.7,w_200 -# No subject/classic support - g_auto:subject,c_fill,ar_0.7,w_750 -# No subject/classic support - c_fill,g_auto:subject,ar_1:1 -# No subject/classic support - g_auto:subject,c_fill,ar_0.7,w_750,fl_getinfo -# No subject/classic support - c_fill,g_auto:classic,ar_0.7,w_200 +c_fill,g_face,h_10,w_10 c_fill,g_north,h_200,w_150 c_fill,g_north,h_200,w_150/ c_fill,g_ocr_text,h_250,w_250 c_fill,g_ocr_text,h_500,w_500 c_fill,g_south,h_250,w_400/l_nice_couple/c_crop,fl_region_relative,g_faces,h_1.3,w_1.3/e_saturation:50/e_vignette/c_scale,w_100/r_max/fl_layer_apply,g_center,x_-20,y_20/l_balloon/c_scale,h_55/e_hue:-20/a_5/fl_layer_apply,x_30,y_5/l_text:Cookie_40_bold:Love/co_rgb:F08,e_colorize/a_20/fl_layer_apply,x_-45,y_44/c_crop,h_250,w_300,x_30/r_60 +c_fill,g_xy_center,x_1,y_2 +c_fill,h_100 c_fill,h_100,w_150 c_fill,h_150,q_jpegmini,w_200 c_fill,h_150,w_100 @@ -174,59 +310,181 @@ c_fill,h_700,w_700/e_style_transfer:60,l_lighthouse c_fill,h_700,w_700/e_style_transfer:preserve_color,l_lighthouse c_fill,h_700,w_700/e_style_transfer:preserve_color:40,l_lighthouse c_fill,h_700,w_700/e_style_transfer:preserve_color:40,l_lighthouse/w_250 +c_fill,r_50,w_400,h_400,g_north,f_auto,bo_2px_solid_rgb:999/e_shadow:20,co_rgb:ccc/a_30,co_rgb:ec9800,e_colorize,l_url2png_logo c_fill,r_50,w_400,h_400,g_north,f_auto,bo_2px_solid_rgb:999/e_shadow:20,co_rgb:ccc/a_30,co_rgb:ec9800,e_colorize,l_url2png_logo/ +c_fill,w_100 +c_fill,w_100,ar_2.0 c_fill,w_100,h_100 +c_fill,w_100_mul_2 +c_fill,x_100,g_xy_center,w_500 +c_fill_pad,g_auto,fl_region_relative +c_fill_pad,g_auto,fl_relative +c_fill_pad,g_auto,h_100 +c_fill_pad,g_auto,w_100 +c_fill_pad,g_auto,w_100,ar_2.0 +c_fill_pad,g_auto,w_100,h_100 +c_fill_pad,g_auto,x_1 +c_fill_pad,g_auto,x_1,y_2 +c_fit,fl_region_relative +c_fit,fl_relative +c_fit,h_100 c_fit,h_150,w_150 c_fit,h_16,w_16/e_sepia c_fit,w_10/a_15 +c_fit,w_100 +c_fit,w_100,ar_2.0 +c_fit,w_100,h_100 c_imagga_crop c_imagga_crop,e_saturation:50,h_300,r_20,w_450/g_south_west,l_imagga_logo,o_80,w_100,x_10,y_10 +c_imagga_crop,fl_region_relative +c_imagga_crop,fl_relative +c_imagga_crop,h_100 c_imagga_crop,h_380,w_380 +c_imagga_crop,w_100 +c_imagga_crop,w_100,ar_2.0 +c_imagga_crop,w_100,h_100 +c_imagga_scale,fl_region_relative +c_imagga_scale,fl_relative +c_imagga_scale,h_100 c_imagga_scale,h_150,w_150 c_imagga_scale,h_200,w_150 c_imagga_scale,h_240,w_260 +c_imagga_scale,w_100 +c_imagga_scale,w_100,ar_2.0 +c_imagga_scale,w_100,h_100 c_imagga_scale,w_150,h_200 -c_limit,w_300/if_iw_gt_300,co_white,g_south_east,l_text:Arial_15_bold:Image%20scaled%20down%20to%20300px +c_lfill,fl_region_relative +c_lfill,fl_relative +c_lfill,g_xy_center,x_1,y_2 +c_lfill,h_100 +c_lfill,w_100 +c_lfill,w_100,ar_2.0 +c_lfill,w_100,h_100 +c_limit,fl_region_relative +c_limit,fl_relative +c_limit,h_100 +c_limit,w_100 +c_limit,w_100,ar_2.0 +c_limit,w_100,h_100 +c_lpad,fl_region_relative +c_lpad,fl_relative +c_lpad,h_100 +c_lpad,w_100 +c_lpad,w_100,ar_2.0 +c_lpad,w_100,h_100 c_lpad,w_480,h_320,vs_2,q_70,br_1400k,vc_h264:baseline:3.0 c_lpad,w_960,h_640,vs_2,q_70,br_5m,vc_h264:main:3.1 -c_pad,du_10,h_360,q_70,w_480 -c_pad,h_200,w_200,b_black -c_pad,h_300,w_400 -c_pad,h_320,w_480,b_blurred:400:15 -c_pad,h_360,w_480,q_70,du_10 -c_pad,h_360,w_480/du_10/q_70 -c_pad,h_360,w_480/du_10/q_70/vc_auto -c_pad,h_360,w_480/du_10/q_70/vc_h265 -c_pad,h_360,w_480/du_10/q_70/vc_vp9 -c_pad,w_200,h_200,e_saturation:50/e_shadow/bo_1px_solid_rgb:666 -c_pad,w_400 -# Animated not implemented yet c_scale,dl_1000,e_trim,w_700 -c_scale,e_grayscale,f_auto,q_auto,w_100 -c_scale,e_saturation:50,r_20,w_400/g_south_east,l_logo_jpegmini,o_80,w_100,x_10,y_10/q_jpegmini -c_scale,e_viesus_correct,w_400 -c_scale,e_viesus_correct,w_500 -c_scale,h_0.3 -c_scale,h_150 -c_scale,h_200,w_200 -c_scale,h_200,w_200/e_sepia -c_scale,q_jpegmini,w_400 -c_scale,q_jpegmini:1,w_400 -c_scale,w_0.5 -c_scale,w_100 -c_scale,w_200/r_max -c_scale,w_400 -c_scale,w_400/c_imagga_scale,h_150,l_family_bench.png,r_max,w_150 -c_scale,w_400/l_cloudinary_icon_blue,fl_no_overflow -c_scale,w_400/l_text:Arial_100:Big%20Flowers,co_yellow,fl_text_disallow_overflow -c_scale,w_400/l_text:Arial_100:Flowers,co_yellow,b_rgb:FEB61FC2 -c_thumb,g_adv_face,h_100,w_100 -c_thumb,g_adv_face,w_100,h_100 -c_thumb,g_adv_faces,w_150,h_150 +c_lpad,x_1 +c_lpad,x_1,y_2 +c_mfit,fl_region_relative +c_mfit,fl_relative +c_mfit,h_100 +c_mfit,w_100 +c_mfit,w_100,ar_16:9 +c_mfit,w_100,ar_2.0 +c_mfit,w_100,fl_ignore_aspect_ratio +c_mfit,w_100,h_100 +c_mpad,fl_region_relative +c_mpad,fl_relative +c_mpad,h_100 +c_mpad,w_100 +c_mpad,w_100,ar_2.0 +c_mpad,w_100,h_100 +c_mpad,x_1 +c_mpad,x_1,y_2 +c_pad,b_auto +c_pad,b_auto:border +c_pad,b_auto:border:palette_red_green +c_pad,b_auto:border_contrast +c_pad,b_auto:border_contrast:palette_red_green +c_pad,b_auto:border_gradient +c_pad,b_auto:border_gradient:2 +c_pad,b_auto:border_gradient:2:horizontal +c_pad,b_auto:border_gradient:horizontal +c_pad,b_auto:border_gradient:palette_red_green +c_pad,b_auto:border_gradient_contrast +c_pad,b_auto:border_gradient_contrast:2 +c_pad,b_auto:border_gradient_contrast:palette_red_green +c_pad,b_auto:predominant +c_pad,b_auto:predominant:palette_red_green +c_pad,b_auto:predominant_contrast +c_pad,b_auto:predominant_contrast:palette_red_green +c_pad,b_auto:predominant_gradient +c_pad,b_auto:predominant_gradient:2 +c_pad,b_auto:predominant_gradient:2:horizontal +c_pad,b_auto:predominant_gradient:horizontal +c_pad,b_auto:predominant_gradient:palette_red_green +c_pad,b_auto:predominant_gradient_contrast +c_pad,b_auto:predominant_gradient_contrast:2 +c_pad,b_auto:predominant_gradient_contrast:palette_red_green +c_pad,b_blurred +c_pad,b_blurred:100:500 +c_pad,b_green +c_pad,b_rgb:fff +c_pad,du_10,h_360,q_70,w_480 +c_pad,fl_region_relative +c_pad,fl_relative +c_pad,h_100 +c_pad,h_200,w_200,b_black +c_pad,h_300,w_400 +c_pad,h_320,w_480,b_blurred:400:15 +c_pad,h_360,w_480,q_70,du_10 +c_pad,h_360,w_480/du_10/q_70 +c_pad,h_360,w_480/du_10/q_70/vc_auto +c_pad,h_360,w_480/du_10/q_70/vc_h265 +c_pad,h_360,w_480/du_10/q_70/vc_vp9 +c_pad,w_100 +c_pad,w_100,ar_2.0 +c_pad,w_100,h_100 +c_pad,w_200,h_200,e_saturation:50/e_shadow/bo_1px_solid_rgb:666 +c_pad,w_400 +c_pad,x_1 +c_pad,x_1,y_2 +c_scale,e_grayscale,f_auto,q_auto,w_100 +c_scale,e_saturation:50,r_20,w_400/g_south_east,l_logo_jpegmini,o_80,w_100,x_10,y_10/q_jpegmini +c_scale,e_viesus_correct,w_400 +c_scale,e_viesus_correct,w_500 +c_scale,fl_region_relative +c_scale,fl_relative +c_scale,g_liquid +c_scale,h_0.3 +c_scale,h_100 +c_scale,h_150 +c_scale,h_200,w_200 +c_scale,h_200,w_200/e_sepia +c_scale,q_jpegmini,w_400 +c_scale,q_jpegmini:1,w_400 +c_scale,t_sample_named_transform,w_1.0/t_sample_named_transform2 +c_scale,w_0.1/e_sepia:30 +c_scale,w_0.5 +c_scale,w_100 +c_scale,w_100,ar_2.0 +c_scale,w_100,h_100 +c_scale,w_200/r_max +c_scale,w_400 +c_scale,w_400/c_imagga_scale,h_150,l_family_bench.png,r_max,w_150 +c_scale,w_400/l_cloudinary_icon_blue,fl_no_overflow +c_scale,w_400/l_text:Arial_100:Flowers,co_yellow,b_rgb:FEB61FC2 +c_thumb,fl_region_relative +c_thumb,fl_relative +c_thumb,g_adv_eyes +c_thumb,g_adv_face,h_100,w_100 +c_thumb,g_adv_face,w_100,h_100 +c_thumb,g_adv_faces,w_150,h_150 +c_thumb,g_center,w_300 c_thumb,g_face,h_130,w_130/g_south_east,l_badge,w_40,x_20,y_-40 c_thumb,g_face,h_150,w_150/g_north_east,l_badge,w_0.08,x_0.15,y_0.15 c_thumb,g_face,h_150,w_150/r_20/e_sepia/l_cloudinary_icon_blue,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10 c_thumb,g_face,h_150,w_150/r_20/e_sepia/l_cloudinary_icon_blue/e_brightness:100/o_60/c_scale,w_50/fl_layer_apply,g_south_east,x_5,y_5/a_10 c_thumb,g_face,z_0.75,h_150,w_150 +c_thumb,h_100 +c_thumb,w_100 +c_thumb,w_100,ar_2.0 +c_thumb,w_100,h_100 +c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_1.0 +c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_2.0 +c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_3.0 +c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,w_50,o_60/dpr_2.0 c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,fl_relative,w_0.5,o_60/dpr_1.0 c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,fl_relative,w_0.5,o_60/dpr_2.0 c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,fl_relative,w_0.5,o_60/dpr_3.0 @@ -236,13 +494,19 @@ co_orange,e_outline:outer:15:200 co_rgb:009900,e_shadow:50,x_10,y_10 co_rgb:1a8502,e_shadow:50,x_-15,y_15 co_rgb:20a020,e_colorize:50 +co_rgb:ec9800,e_colorize:17 +cs_icc:icc_file_public_id cs_keep_cmyk +cs_no_cmyk cs_srgb d_avatar.png -#Animated not implemented yet dl_100 -#Animated not implemented yet dl_200 +d_public_id +d_publicid +dn_150 dn_20 +dpr_1.0 dpr_2 +dpr_2,f_auto,q_auto,bo_1px_solid_black dpr_2,f_auto,q_auto,w_800 dpr_2,f_auto,q_auto/bo_1px_solid_gray dpr_2,q_auto,f_auto @@ -251,6 +515,7 @@ dpr_2,q_auto,f_auto,w_500,bo_1px_solid_gray dpr_2,q_auto,f_auto,w_600 dpr_2,q_auto,f_auto,w_600,bo_1px_solid_gray dpr_2,q_auto,f_auto/bo_1px_solid_gray +dpr_auto dpr_auto,w_400/bo_1px_solid_gray dpr_auto,w_600/bo_1px_solid_gray dpr_auto/bo_1px_solid_gray @@ -260,9 +525,11 @@ du_2/e_volume:30 du_2/e_volume:45 du_3 du_30,q_70:qmax_20 +du_5,l_sample/e_transition,l_video:transition1/fl_layer_apply/fl_layer_apply du_5,w_300,h_200/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/e_accelerate:5s,a_180/fl_layer_apply/fl_layer_apply du_50p,so_2 e_accelerate:100 +e_accelerate:6 e_adv_redeye e_adv_redeye/w_300,h_80,c_thumb,g_adv_eyes e_anti_removal:95,l_cloudinary_icon,g_north_west @@ -287,114 +554,176 @@ e_art:sizzle e_art:sonnet e_art:ukulele e_art:zorro +e_assist_colorblind e_assist_colorblind:20 e_assist_colorblind:8 e_assist_colorblind:8/e_simulate_colorblind e_assist_colorblind:xray +e_auto_brightness +e_auto_brightness:10 +e_auto_brightness:17 e_auto_brightness:80 +e_auto_color +e_auto_color:10 +e_auto_color:17 e_auto_color:80 +e_auto_contrast +e_auto_contrast:10 +e_auto_contrast:17 e_auto_contrast:80 e_bgremoval e_bgremoval:ffff00 e_bgremoval:screen e_blackwhite e_blackwhite:40 +e_blackwhite:5 +e_blue +e_blue:10 +e_blue:17 e_blue:90 +e_blur e_blur:100 e_blur:300 +e_blur:5 e_blur:500/l_video:dog,w_600/w_500 e_blur:800 +e_blur_faces:5 e_blur_faces:800 +e_blur_region,h_100,w_100,x_50,y_120 e_blur_region:1000,h_425,w_550,x_600,y_400 e_blur_region:1500,y_0.75 +e_blur_region:5,g_ocr_text e_blur_region:800,g_ocr_text e_blur_region:800,g_ocr_text/h_300 +e_brightness:17 e_brightness:60 +e_brightness_hsb e_brightness_hsb:-50 +e_brightness_hsb:10 +e_cartoonify e_cartoonify/r_max/e_outline:100,co_lightblue/b_lightblue,h_300,c_pad e_cartoonify/r_max/e_outline:100,co_lightblue/b_lightblue/h_300 e_cartoonify:20:bw e_cartoonify:70:80 +e_cartoonify:80 +e_cartoonify:80:100 +e_cartoonify:80:bw e_colorize:35,co_darkviolet e_colorize:80 +e_contrast e_contrast:-70 -# no action spec (l_docs): e_cut_out,l_docs:logo:logo,g_south_west,w_200,x_20,y_20 +e_contrast:17 +e_contrast:50 +e_deshake e_deshake:32 -# no action spec: e_displace,l_radialize,y_100 +e_distort:5:34:70:10:70:75:5:55 e_distort:arc:180 +e_distort:arc:5 +e_fade:-6 e_fade:2000 e_fade:2000/e_fade:-4000 +e_fade:6 +e_fill_light +e_fill_light:10:20 +e_fill_light:17 +e_fill_light:17:-100 e_fill_light:70:20 +e_gamma:17 e_gamma:50 e_gradient_fade:symmetric:10,x_0.2,y_0.4 +e_gradient_fade:symmetric_pad:50,x_0.2 e_grayscale +e_green e_green:-30 +e_green:10 +e_green:17 +e_hue +e_hue:10 +e_hue:17 e_hue:40 +e_improve e_improve:50 e_improve:indoor e_improve:outdoor -#No action spec: e_lightroom:saturation_-100:clarity_25:contrast_73:vignetteamount_60 -#No action spec: e_lightroom:saturation_-100:clarity_25:contrast_73:vignetteamount_60/w_500,q_auto,e_distort:0:0:500:100:500:232:0:332 -#No action spec: e_lightroom:whitebalance_auto -#No action spec: e_lightroom:whitebalance_shade:clarity_25 -#No action spec: e_lightroom:whitebalance_tungsten -#No action spec: e_lightroom:xmp:authenticated:my_presets:warm_shadow_auth.xmp -#No action spec: e_lightroom:xmp:my_presets:warm_shadow.xmp -#No action spec: e_lightroom:xmp:soft_mist.xmp -#No action spec: e_lightroom:xmp:soft_mist.xmp/r_50,f_auto,q_auto,bo_40px_solid_orange/a_5/w_400 -#No action spec: e_lightroom:xmp:soft_mist.xmp/w_300 -#No action spec: e_lightroom:xmp:warm_shadow.xmp -#No action spec: e_lightroom:xmp:warm_shadow.xmp/w_300 -#e_loop:2 +e_improve:outdoor:10 +e_improve:outdoor:50 e_make_transparent:5 +e_make_transparent:50,co_red e_multiply,l_cloudinary_icon_blue e_negate e_noise:100 +e_oil_paint e_oil_paint:40 +e_oil_paint:5 e_oil_paint:70 +e_opacity_threshold e_opacity_threshold:1/b_blue +e_opacity_threshold:10 +e_opacity_threshold:17 +e_ordered_dither e_ordered_dither:12 +e_ordered_dither:13 +e_ordered_dither:3 +e_ordered_dither:6 e_outline,co_orange +e_outline:$foo:100:5,co_red e_outline:fill,co_orange e_outline:inner,co_orange +e_outline:inner:100:5,co_rgb:ffffff e_outline:inner_fill,co_orange e_outline:outer,co_orange e_outline:outer:20:200 e_outline:outer:20:200/e_red:50/e_sharpen/e_improve/o_70 +e_outline:outer:20:200/l_cloudinary_icon/e_red:50/e_sharpen/e_improve/o_70 e_outline:outer:20:200/l_cloudinary_icon_white/e_red:50/e_sharpen/e_improve/o_70 e_overlay,l_cloudinary_icon_blue +e_pixelate +e_pixelate:17 e_pixelate:20 e_pixelate_faces:15 +e_pixelate_faces:5 e_pixelate_faces:9 +e_pixelate_region,w_100 +e_pixelate_region:2,h_100,w_200,x_1,y_3 e_pixelate_region:25,y_0.75 e_pixelate_region:35,h_425,w_550,x_600,y_400 +e_pixelate_region:5,g_ocr_text e_preview,fl_getinfo e_preview:duration_12.0:max_seg_3:min_seg_dur_3.0 +e_preview:duration_5 e_preview:duration_5.0 -#Animated not implemented yet e_preview:duration_8/c_crop,w_1600,h_800,e_loop -#No action spec: e_progressbar:bar:blue:6 -#No action spec: e_progressbar:color_FF0000:width_12:type_frame -#No action spec: e_progressbar:frame:FF0000:12 -#No action spec: e_progressbar:frame:FF0000:6 -#No action spec: e_progressbar:type_bar:color_blue:width_6 +e_preview:duration_5.0:max_seg_10:min_seg_dur_1.0 +e_recolor:0.3:0.7:0.1:0.2:0.3:0.6:0.1:0.2:0.2:0.5:0.1:0.2 e_recolor:0.3:0.7:0.1:0.3:0.6:0.1:0.2:0.5:0.1 +e_red +e_red:10 +e_red:17 e_red:50 e_redeye e_replace_color:2F4F4F:20 e_replace_color:maroon:80:2b38aa e_replace_color:maroon:80:2b38aa/w_250 +e_replace_color:red:5:blue e_replace_color:saddlebrown e_replace_color:silver:55:89b8ed e_reverse e_reverse,fl_splice,l_video:ski_jump/l_video:ski_jump,fl_splice,e_accelerate:-50/e_brightness:10,r_max +e_saturation:17 e_saturation:50 e_saturation:70 +e_screen,l_cloudinary_icon e_screen,l_cloudinary_icon_blue +e_sepia +e_sepia:17 +e_sepia:17/c_crop,h_200,w_100 e_sepia:50 e_shadow:50,x_10,y_10 e_sharpen +e_sharpen:10 +e_sharpen:17 e_sharpen:400 e_shear:20.0:0.0 +e_shear:23.0:50.0 e_simulate_colorblind e_simulate_colorblind/h_200 e_simulate_colorblind:deuteranopia @@ -402,27 +731,51 @@ e_simulate_colorblind:protanopia e_style_transfer,l_davinci_mona_lisa e_style_transfer,l_lighthouse e_style_transfer:preserve_color:40,l_lighthouse -# no action spec: e_theme:color_black:photosensitivity_110 -# no action spec: e_theme:color_d3d3d3 +e_style_transfer:preserve_color:40,l_lighthouse/e_sepia/fl_layer_apply +e_tint e_tint:100:red:blue:yellow e_tint:20 e_tint:50:red:blue e_tint:equalize:80:red:50p:blue:60p:yellow:40p e_tint:equalize:80:red:blue:yellow +e_trim +e_trim:50 e_trim:50:yellow +e_unsharp_mask +e_unsharp_mask:10 +e_unsharp_mask:17 e_unsharp_mask:500 +e_vectorize:colors:15:detail:200:despeckle:0.2:paths:90:corners:100 +e_vectorize:colors:17 +e_vectorize:colors:17:detail:100 e_vectorize:colors:3:detail:0.5 e_vectorize:detail:200 -e_vectorize:colors:15:detail:200:despeckle:0.2:paths:90:corners:100 +e_vibrance +e_vibrance:10 +e_vibrance:17 e_vibrance:70 e_viesus_correct +e_viesus_correct:no_redeye +e_viesus_correct:no_redeye:skin_saturation_5 +e_viesus_correct:skin_saturation +e_viesus_correct:skin_saturation_20 +e_vignette +e_vignette:17 e_vignette:30 +e_volume:10 e_volume:50 +e_volume:5db +e_volume:mute eo_10 +eo_3 f_auto +f_auto,dpr_2,q_auto,h_150,bo_1px_solid_gray +f_auto,dpr_2,q_auto,h_200,bo_1px_solid_gray f_auto,dpr_auto +f_auto,fl_preserve_transparency f_auto,q_auto f_auto,q_auto,dpr_2 +f_auto,q_auto,dpr_2,h_150,bo_1px_solid_gray f_auto,q_auto,dpr_2,h_200,bo_1px_solid_gray f_auto,q_auto,dpr_2/bo_1px_solid_gray/w_500 f_auto,q_auto,dpr_auto,w_300 @@ -430,40 +783,64 @@ f_auto,q_auto,h_150,dpr_2,bo_1px_solid_gray f_auto,q_auto,w_500,dpr_2,bo_1px_solid_gray f_auto,q_auto/ f_auto,w_150,dpr_2,q_auto +f_auto/dpr_auto +f_gif,fl_lossy f_gif/ar_1,b_rgb:a17ec5,c_fill,fl_animated,h_200 f_glb f_jpg -f_mp4,w_300 -f_mp4/b_rgb:d5d2ca,h_300,fl_animated -f_png -f_png/a_90,ar_1,b_rgb:a17ec5,c_fill,g_auto,h_200 -f_png/w_800/l_text:Unkempt_250_bold:Water,fl_cutter,e_shadow +f_jpg,fl_progressive +f_jpg,fl_progressive:semi +f_jpg,u_some +f_jpg/u_some +f_mp3 +f_mp4 +f_mp4,w_300 +f_mp4/b_rgb:d5d2ca,h_300,fl_animated +f_png +f_png/a_90,ar_1,b_rgb:a17ec5,c_fill,g_auto,h_200 +f_png/w_800/l_text:Unkempt_250_bold:Water,fl_cutter,e_shadow f_webm +f_webp,fl_animated,fl_awebp,vs_10 +fl_animated,f_auto +fl_animated,f_gif fl_apng fl_attachment +fl_attachment:pretty_flower fl_attachment:pretty_flower,f_auto -fl_awebp +# Needs spec: missing fl_awebp in result syntax - fl_awebp fl_clip,pg_2 +fl_clip,pg_name:path fl_clip,pg_name:stones fl_clip_evenodd +fl_clip_evenodd,pg_2 fl_draco +fl_keep_iptc fl_lossy fl_lossy,q_50 +fl_progressive,r_10 fl_region_relative,g_adv_eyes,l_glasses,w_1.5 fl_region_relative,g_adv_eyes,l_glasses,w_1.7 fl_region_relative,g_adv_faces,l_silver_face_mask,w_1.1 +fl_splice,l_sample/fl_layer_apply +fl_splice,l_video:dog/fl_layer_apply +fl_splice,l_video:dog/fl_layer_apply,so_0 +fl_whatever fn_pre:remote:aHR0cHM6Ly9teS5wcmVwcm9jZXNzLmN1c3RvbS9mdW5jdGlvbg== fn_remote:aHR0cHM6Ly9teS5leGFtcGxlLmN1c3RvbS9mdW5jdGlvbg== +# Not currently supported - Slides - fn_render:w_500;h_500;du_18;vars_(tdur_1500;transition_s:hexagonalize;slides_((media_i:docs:shoppable_sunglasses;sdur_2000);(media_i:docs:shoppable_dress;sdur_4000);(media_i:docs:shoppable_bag2;sdur_3000);(media_i:docs:shoppable_bag;sdur_3000)))/f_auto,q_auto +# Not currently supported - Slides - fn_render:w_500;h_500;du_20;vars_(sdur_3000;tdur_1500;transition_s:circlecrop;slides_((media_i:docs:shoppable_sunglasses);(media_i:docs:shoppable_dress);(media_i:docs:shoppable_bag2);(media_i:docs:shoppable_bag)))/f_auto,q_auto +# Not currently supported - Slides - fn_render:w_640;h_480;du_20;vars_(sdur_3000;tdur_1500;transition_s:hexagonalize;slides_((media_v:hourglass_timer;type_s:video);(media_i:docs:shoppable_dress);(media_i:docs:shoppable_bag2);(media_i:docs:shoppable_bag)))/f_auto,q_auto fn_wasm:my_example.wasm fps_1-5 +fps_10 +fps_10- +fps_10-20 g_face,c_crop -# Zoom with crop not implemented yet g_face,c_crop,z_1.3 g_face,c_thumb,w_150,h_150 g_face,c_thumb,w_150,h_150,z_0.7 g_face,w_500,c_thumb,fl_getinfo g_north,l_text:arial_60:watchme,y_20 g_south,l_text:Arial_200:Flower -# Stroke not yet implemented g_south,l_text:Arial_200_bold_italic_stroke_letter_spacing_50:Smile!,co_yellow,bo_10px_solid_blue h_100,w_190 h_105/e_shadow:50,x_10,y_10 h_120 @@ -471,10 +848,9 @@ h_150 h_150,c_scale,fl_ignore_aspect_ratio h_150,dpr_2.0 h_150,dpr_auto +h_150,fl_ignore_aspect_ratio h_150,w_150,c_pad,b_auto:predominant h_150,w_150,c_pad,b_auto:predominant_gradient:2:diagonal_desc -# no action spec: h_150/e_progressbar:bar:blue:6/ac_none -# no action spec: h_150/e_progressbar:frame:FF0000:6/ac_none h_150/l_play_icon2,w_0.1 h_150/q_auto,f_auto,dpr_2/bo_1px_solid_gray h_200 @@ -483,15 +859,11 @@ h_200,w_200,c_pad,b_auto:border h_200,w_200,c_pad,b_auto:border_contrast h_200,w_200,c_pad,b_auto:predominant h_200,w_200,c_pad,b_auto:predominant_contrast -#Waveform not implemented yet h_200,w_500,fl_waveform -#Waveform not implemented yet h_200,w_500,fl_waveform,co_black,b_white -#Waveform not implemented yet h_200,w_500,fl_waveform,co_darkblue,b_grey h_200/u_docs:iphone_template,h_300,a_90 h_200/u_docs:transparent_grid,w_1.0,h_1.0,fl_relative,c_crop,o_50 h_225/q_auto,f_auto,bo_1px_solid_black h_250 h_250,w_150,c_fill,g_auto/f_auto/q_auto -#Waveform not implemented yet h_250,w_400,fl_waveform,so_2,eo_4,co_blue,b_transparent h_300 h_300,ar_3:4,c_fill,g_auto:face h_300,ar_3:4,c_fill,g_auto:faces @@ -505,6 +877,7 @@ h_300,w_300,c_pad,b_auto:predominant_gradient:4:palette_red_green_blue_orange h_300,w_300,c_pad,b_auto:predominant_gradient_contrast:4 h_310 h_320,c_scale/c_pad,h_320,w_480,b_blurred:400:15/e_volume:mute/e_accelerate:100 +h_320,w_480 h_320,w_480/h_150 h_350/q_auto,dpr_auto h_375/u_docs:bg_beach,g_south,w_800 @@ -516,36 +889,48 @@ h_400,ar_9:16,c_fill_pad,g_auto/so_8 h_400,w_244,c_fill h_400,w_244,c_fill,so_1 h_400,w_244,g_auto,c_fill +h_500,w_500,c_fill if_!sale:in_stock!_in_tags,l_sale_icon,w_180,g_south_east,x_30,y_30 if_!sale:in_stock!_in_tags,l_sale_icon,w_180,g_south_east,x_30,y_30/w_250 if_ar_gt_0.65_and_w_gt_1000,ar_0.65,h_1000,c_fill if_ar_gt_1.2,c_pad,h_320,w_480,b_black/if_else,c_pad,h_320,w_480,b_blurred:400:15 +if_ar_gt_1.2,c_pad,h_320,w_480,b_green/if_else,c_pad,h_320,w_480,b_blurred:400:15 if_ar_gt_3:4_and_w_gt_300_and_h_gt_200,c_crop,w_300,h_200 if_ar_lt_1.0,$height_300/if_else,$height_200/h_$height if_ctx:!productType!_eq_!shoes!,w_200,ar_1:1,c_fill,g_auto +if_expression,a_20 +if_expression/a_20/if_else/a_30/if_end +if_expression/a_20/if_end if_ils_gt_0.5,w_120,h_150,c_pad/if_else,w_120,h_150,c_fill if_iw_lte_200,c_fill,h_120,w_80/if_else,c_fill,h_90,w_100 if_w_gt_300,e_oil_paint if_w_gt_400,l_thumbs-up-small,w_150,g_north_east,x_10,y_10/w_400,c_limit -if_w_lt_600/l_text:Arial_20:Image%20shown%20in%20full%20scale,co_white,g_south_east/c_scale,e_blur:400,u_small_dinosaur,w_600/if_end +if_w_lte_200,c_fill,h_120,w_80/if_else,c_fill,h_90,w_100 if_w_lte_400/c_fill,h_220,w_180/e_red/if_else/c_fill,h_190,w_300/e_oil_paint/if_end ki_0.15 +ki_0.4 l_badge,o_60,w_500 l_call_text,fl_region_relative,w_1.1,g_ocr_text l_call_text,fl_region_relative,w_1.1,g_ocr_text/w_120 +l_cloudinary_icon +l_cloudinary_icon,g_north_west,y_20 l_cloudinary_icon,so_6.5,eo_10,o_50,e_brightness:100 +l_cloudinary_icon,w_0.2,fl_relative +l_cloudinary_icon,w_0.8,fl_relative +l_cloudinary_icon,w_0.9,c_scale,g_north_east,o_70,e_brightness:50 +l_cloudinary_icon,w_300,g_north_east,o_60 l_cloudinary_icon_blue l_cloudinary_icon_blue,g_north_west,x_20,y_20 l_cloudinary_icon_blue,w_0.3,fl_relative,g_north_east l_cloudinary_icon_blue,w_0.5,c_scale,g_north_east,o_70,e_brightness:50 l_cloudinary_icon_blue,w_0.8,fl_relative -l_cloudinary_icon_blue,w_200,g_east,so_1,eo_11/l_text:arial_40:Sample%20Video,g_south,y_60,so_2 l_cloudinary_icon_white,so_6.5,eo_10,o_50,e_brightness:100 l_cloudinary_icon_white,w_200,o_30,fl_tiled l_cloudinary_icon_white,w_300,g_north_east,o_60 -l_couple/c_crop,g_faces,w_120,h_150/r_max/fl_layer_apply,g_north_east/l_cloudinary_icon_white,w_0.8,fl_relative,o_50,e_brightness:100/l_text:impact_40_bold:Sample%20image,g_south,y_20 +l_face_left/w_200,h_200,c_thumb,g_face,r_max/fl_layer_apply,g_north_east l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9sb2dvLnBuZw==,g_north_west,x_5,y_5 l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9sb2dvLnBuZw==,g_north_west,x_5,y_5,eo_5 +l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9vbGRfbG9nby5wbmc= l_fetch:aHR0cHM6Ly9yZXMuY2xvdWRpbmFyeS5jb20vZGVtby9pbWFnZS91cGxvYWQvbG9nb3MvY2xvdWRpbmFyeV9mdWxsX2xvZ29fd2hpdGVfc21hbGwucG5n l_golden_star,g_faces,w_1.0,fl_region_relative l_golden_star,g_faces,w_1.1,fl_region_relative @@ -555,49 +940,84 @@ l_lut:iwltbap_aspen.3dl l_lut:iwltbap_aspen.3dl/w_200 l_lut:iwltbap_sedona.3dl l_lut:iwltbap_sedona.3dl/w_200 +l_sample +l_sample,fl_cutter l_sample,fl_replace_image,e_cartoonify +l_sample,so_6.5,eo_10 +l_sample.jpg +l_sample/e_anti_removal,fl_layer_apply +l_sample/e_mask,fl_layer_apply +l_sample/e_multiply,fl_layer_apply +l_sample/e_overlay,fl_layer_apply +l_sample/e_screen,fl_layer_apply +l_sample/e_sepia/fl_layer_apply +l_sample/fl_cutter,fl_layer_apply,g_south +l_sample/fl_first_flag/fl_second_flag/fl_layer_apply +l_sample/fl_no_overflow,fl_layer_apply +l_sample/fl_tiled,fl_layer_apply +l_sample/g_face,fl_layer_apply +l_sample/x_10,fl_layer_apply +l_subtitles:arial_17:sample_sub_en.srt l_subtitles:arial_20:sample_sub_en.srt l_subtitles:arial_40:sample_sub_en.srt,co_yellow,b_black l_subtitles:arial_70:sample_sub_en.srt,co_rgb:ffff00,b_black l_subtitles:folder-permissions-tutorial.en-us.azure.transcript +l_subtitles:impact_15:lincoln.transcript,b_rgb:331a00 l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west l_subtitles:lincoln.transcript l_subtitles:sample_sub_en.srt l_subtitles:times_20:folder-permissions-tutorial.en-us.azure.transcript,co_blue,g_north -l_text:AlexBrush-Regular.ttf_100:Happy%20New%20Year%20%202017%20,co_white,g_north_west,x_30,y_30 l_text:Arial_45_bold:John -l_text:arial_60:Cool%20Video,g_south,y_80,so_2,eo_5 -l_text:impact_150:Your%20Brand%20Name%20or%20Logo%20Here,e_distort:arc:-120,co_white,g_south,y_840,o_60 +l_text:arial_15:hello +l_text:arial_15_bold:hello +l_text:parisienne_17_bold_strikethrough_justify_stroke_letter_spacing_17_antialias_subpixel:Hello +l_video:dog,fl_splice,so_0,du_5 +l_video:dog,fl_splice,w_300,c_fill,so_0/fl_layer_apply l_video:dog,so_4.5,eo_8,a_90,w_200,g_east l_video:dog,w_0.5 +l_video:dog/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply +l_video:dog/e_transition,l_video:transition1/fl_layer_apply/fl_layer_apply +l_video:dog/l_video:transition1,e_transition/a_180/fl_layer_apply/fl_layer_apply l_video:electronic l_video:kitten_fighting,e_fade:3000,w_100 +l_video:sample +l_video:sample/e_sepia/fl_layer_apply l_video:ski_jump,eo_6,c_scale,w_250,g_north_east l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_brightness:10,r_max l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_volume:mute/e_brightness:10,r_max l_video:ski_jump,so_3,eo_6,c_scale,w_250,g_north_east +o_17 o_30 -#Prefix not yet implemented p_my_sprite_ pg_2 pg_2-4;6;8 +pg_2-4;6;8/w_300 +pg_3 +pg_4-7;9 pg_embedded:3 pg_embedded:3/w_300 +pg_embedded:3;5 pg_embedded:7 pg_embedded:name:skyline-3242040_1920 pg_embedded:name:skyline-3242040_1920.jpg +pg_embedded:name:skyline.jpg +pg_embedded:name:skyline.jpg;bg.jpg +pg_name:lala;fofo pg_name:record_cover;Shadow pg_name:record_cover;Shadow/w_300 +pg_name:skyline q_100 q_20 q_50 q_60 q_60:420 +q_70:qmax_20 q_80 q_auto q_auto,dpr_2,bo_1px_solid_black,f_auto q_auto,dpr_2,f_auto q_auto,dpr_2,f_auto,bo_1px_solid_black q_auto,dpr_2,f_auto,bo_1px_solid_gray +q_auto,dpr_2,f_auto,h_300 q_auto,dpr_2,h_300,f_auto,bo_1px_solid_black q_auto,dpr_2,w_150,f_auto q_auto,dpr_auto @@ -605,6 +1025,7 @@ q_auto,f_auto q_auto,f_auto,bo_1px_solid_black q_auto,f_auto,bo_1px_solid_gray,dpr_2,h_450 q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_250 +q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_650 q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_660 q_auto,f_auto,dpr_2 q_auto,f_auto,dpr_2,bo_1px_solid_gray @@ -622,7 +1043,16 @@ q_auto:best q_auto:eco q_auto:good q_auto:low +q_auto:low:444 q_jpegmini +q_jpegmini:0 +q_jpegmini:1 +q_jpegmini:2 +r_10 +r_10:20 +r_10:20:30 +r_10:20:30:40 +r_20 r_20:0:40:60 r_20:80 r_max @@ -633,8 +1063,10 @@ so_10p,du_30p so_120 so_21/bo_2px_solid_black so_3 -#Animated not implemented yet so_3,eo_5,e_boomerang/e_loop +so_3,du_5 +so_3,eo_5 so_30/bo_2px_solid_black +so_3p,du_5p so_4,w_350,h_350,c_crop,r_20,e_grayscale,bo_5px_solid_black so_43,du_10/fl_mono so_5 @@ -646,25 +1078,33 @@ so_8 so_8.5 sp_custom_square sp_full_hd +sp_full_hd_lean +sp_full_hd_wifi sp_hd +sp_hd_lean +sp_my_custom_sp +sp_sd t_demo_combined t_fit_100x150 t_jpg_with_quality_30,w_100,h_50,c_fit t_jpg_with_quality_30/t_crop_400x400/t_fit_100x150 +t_my_named_transformation +t_sample_named_transform +t_sample_named_transform.sample_named_transform2 t_vignette_angle u_docs:iphone_template,h_300,a_90 +u_sample/g_face,fl_layer_apply u_site_bg,w_1.0,h_1.0,fl_relative vc_auto vc_h264:baseline:3.1 -#Animated not implemented yet vs_1.1s,dl_200,w_200,e_loop:2 -#Animated not implemented yet vs_10,dl_100,w_250,fl_awebp,fl_animated vs_40 -#Animated not implemented yet vs_40,dl_200,h_200,e_loop w_0.25,c_scale +w_0.4,a_20/l_cloudinary_icon,o_50,w_60,g_south_east,y_15,x_60 w_0.4,a_20/l_cloudinary_icon_white,w_60,o_50,g_south_east,y_15,x_60 w_0.5 w_10/a_10 w_100 +w_100,c_fill w_100,h_100,c_fill w_100,h_100,c_fill,dpr_2.0 w_100,h_100,c_fill,dpr_2.0,g_face @@ -679,6 +1119,7 @@ w_100/dpr_1.0 w_100/dpr_2.0 w_100/dpr_3.0 w_1000 +w_1000,dpr_2 w_1000,f_auto,q_auto:best w_115,h_135,c_thumb,g_faces w_120 @@ -722,9 +1163,9 @@ w_150,h_150,c_pad,b_black w_150,h_150,c_pad,b_pink w_150,h_150,c_scale w_150,h_150,c_thumb,g_auto -# No action spec (g_auto:0): w_150,h_150,c_thumb,g_auto:0 w_150,h_150,c_thumb,g_center w_150,h_150,c_thumb,g_face +w_150,h_150,c_thumb,g_face,r_20,e_sepia/l_cloudinary_icon,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10 w_150,h_150,c_thumb,g_face/r_20/e_sepia/l_cloudinary_icon_blue,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10 w_150,h_200,c_lfill w_150,h_60,c_fit @@ -736,9 +1177,11 @@ w_20,h_20,c_mpad w_20,q_auto w_200 w_200,a_45 +w_200,a_45/d_avatar.png w_200,c_scale/e_outline:20:200,co_red/e_outline:15:200,co_orange/e_outline:10:200,co_yellow w_200,dpr_2.0 w_200,f_auto,q_auto,dpr_2 +w_200,h_100 w_200,h_150,c_crop w_200,h_150,c_crop,g_north_west w_200,h_200,c_crop,g_auto @@ -752,11 +1195,13 @@ w_200,h_200,c_fill,g_faces w_200,h_200,c_fill,g_faces/u_docs:iphone_template,h_300,a_90 w_200,h_200,c_fill,r_max/a_30/e_trim w_200,h_200,c_fill/e_style_transfer,l_sailing_angel +w_200,h_200,c_fit,a_hflip/l_cloudinary_icon,w_0.4,fl_relative,g_north,x_15,y_35,a_4,e_brightness:100,o_70 w_200,h_200,c_fit,a_hflip/l_cloudinary_icon_white,w_0.4,fl_relative,g_north,x_15,y_35,a_4,e_brightness:100,o_70 w_200,h_200,c_thumb,g_face w_200,h_200,c_thumb,g_face,r_max w_200,h_200,c_thumb,g_face,r_max,e_sharpen w_200,h_200,c_thumb,g_face,r_max,l_face_left/fl_layer_apply,g_north_east +w_200,h_200,c_thumb,g_face/r_20,bo_5px_solid_black/l_cloudinary_icon,o_50,w_0.25,fl_relative,g_north_east,y_10,x_10 w_200,h_200,c_thumb,g_face/r_20,bo_5px_solid_black/l_cloudinary_icon_white,o_50,w_0.25,fl_relative,g_north_east,y_10,x_10 w_200,h_220,c_thumb,g_face/l_hexagon_feather_sample,fl_cutter w_200,h_300,c_fill,g_auto @@ -802,11 +1247,12 @@ w_300,c_fill,g_auto,ar_1:1 w_300,c_scale,pg_2 w_300,c_scale,pg_4,e_sepia,r_50,bo_2px_solid_rgb:999/l_aspose_cloud_logo,w_0.9,fl_relative,o_70,g_south,y_20 w_300,e_accelerate:100 -#w_300,e_distort:40:25:280:60:260:155:35:165 w_300,e_grayscale w_300,e_noise:50 w_300,f_auto,q_auto,dpr_2 w_300,f_auto,q_auto,dpr_2,bo_1px_solid_gray +w_300,fl_keep_iptc +w_300,fl_png8 w_300,h_100,c_scale w_300,h_200,c_crop w_300,h_200,c_fill,dpr_auto @@ -818,19 +1264,20 @@ w_300,h_200/w_300,h_200,l_sample,fl_splice,du_3/so_0,fl_layer_apply w_300,h_250,e_grayscale w_300,h_300,c_fill,b_blue,r_max w_300,h_300,c_fill,g_face,r_max,f_auto +w_300,h_300,c_fill,r_max,e_sharpen,so_30p/l_cloudinary_icon,w_0.9,fl_relative,o_40 w_300,h_300,c_fill,r_max,e_sharpen,so_30p/l_cloudinary_icon_blue,w_0.9,fl_relative,o_40 +w_300,h_300,c_fill/l_cloudinary_icon,w_0.8,fl_relative,e_brightness:100,o_50 w_300,h_300,c_fill/l_cloudinary_icon_white,w_0.8,fl_relative,e_brightness:100,o_50 w_300,h_300,c_pad,b_blue w_300,h_300,c_pad,b_green +w_300,h_350,c_fill,g_north w_300,h_350,c_fill,g_north/ w_300,h_80,c_thumb,g_adv_eyes w_300,pg_2 w_300,r_30 w_300,r_max w_300/c_fill,e_shadow,x_w_div_50,y_w_div_50 -w_300/l_text:Arial_40:Cool%25F0%259F%2598%258E w_300/l_video:dog,w_100,g_north_east,r_max -w_300/w_200,y_30,a_9,h_150,g_north,c_fit,l_text:Times_18_bold_center:Lorem%20ipsum%20dolor%20sit%20amet%20consectetur%20adipisicing%20elit%20sed%20do%20eiusmod%20tempor%20incididunt%20ut%20labore%20et%20dolore%20magna%20aliqua.%20Ut%20enim%20ad%20minim%20veniam%20quis%20nostrud%20exercitation%20ullamco%20laboris%20nisi%20ut%20aliquip%20ex%20ea%20commodo%20consequat. w_350 w_350,bo_5px_solid_black/q_auto,dpr_auto w_350,e_tint:100:red:blue:yellow @@ -839,6 +1286,12 @@ w_350,e_tint:equalize:80:red:50p:blue:60p:yellow:40p w_350,f_auto w_350,f_gif w_350,h_200,x_230,y_20,c_crop +w_350,q_100 +w_350,q_80 +w_350,q_auto:best +w_350,q_auto:eco +w_350,q_auto:good +w_350,q_auto:low w_350/q_auto,dpr_auto w_400 w_400,ar_1,c_thumb,g_auto:skateboard @@ -853,7 +1306,6 @@ w_400,h_300,c_pad w_400,h_400,c_crop,g_face,r_max/w_200 w_400,q_auto:best,vc_vp9 w_450,bo_5px_solid_black/q_auto,dpr_auto -# Animated not currently supported w_480,so_3,eo_5,e_boomerang/e_loop w_500 w_500,ar_1,c_crop,g_auto:bottle w_500,ar_1,c_crop,g_auto:bottle/h_150 @@ -871,6 +1323,7 @@ w_500,ar_1.0,c_fill,g_auto w_500,ar_1.0,c_fill,g_auto/h_300 w_500,ar_1.0,c_fill,g_auto:person_avoid w_500,ar_1.0,c_fill,g_auto:person_avoid/h_300 +w_500,ar_4:3 w_500,bo_5px_solid_black w_500,e_brightness:30 w_500,e_contrast:50 @@ -878,6 +1331,7 @@ w_500,e_gamma:-20 w_500,e_reverse w_500,e_saturation:-50 w_500,e_vignette:50 +w_500,e_volume:50 w_500,f_auto w_500,f_auto,q_auto,dpr_2/bo_1px_solid_gray w_500,f_auto/fl_streaming_attachment:mydog @@ -885,25 +1339,29 @@ w_500,q_auto,f_auto w_500,q_auto,f_auto,dpr_2 w_500/e_brightness:70/l_woman,c_crop,g_face/w_150/e_saturation:50/e_shadow/fl_layer_apply w_500/e_brightness:70/l_woman,c_crop,g_face/w_250/e_saturation:50/e_shadow,x_20,y_20,co_grey/fl_layer_apply -# no action spec: w_500/e_progressbar:bar:blue:6/ac_none -# no action spec: w_500/e_progressbar:bar:blue:6/ac_none/l_play_icon2,w_0.15 -# no action spec: w_500/e_progressbar:frame:FF0000:12/ac_none -# no action spec: w_500/e_progressbar:frame:FF0000:12/ac_none/l_play_icon2,w_0.15 -w_500/if_!cloudinary!_in_tags/l_cloudinary_icon_white,w_100,g_north_east,o_50,e_brightness:100/l_text:arial_15:By%20Cloudinary,g_north_east,y_10,x_105/if_end/du_5 +w_500/l_cloudinary_icon,g_north_east,o_50,w_200,e_anti_removal:90 +w_500/l_cloudinary_icon,o_50,w_100,e_brightness:100,fl_tiled +w_500/l_cloudinary_icon,w_150/e_blackwhite/fl_layer_apply,g_north_east +w_500/l_cloudinary_icon,w_150/e_blackwhite/l_cloudinary_icon,w_50/fl_layer_apply/fl_layer_apply,g_north_east w_500/l_cloudinary_icon_blue,g_north_east,o_50,w_200,e_anti_removal:90 w_500/l_cloudinary_icon_blue,w_150/e_blackwhite/fl_layer_apply,g_north_east w_500/l_cloudinary_icon_blue,w_150/e_blackwhite/l_cloudinary_icon_blue,w_50/fl_layer_apply/fl_layer_apply,g_north_east w_500/l_cloudinary_icon_white,o_50,w_100,e_brightness:100,fl_tiled +w_500/l_my_bg +w_500/l_my_icon +w_500/l_subtitles:Arial_40:sample_sub_he.srt +w_500/l_subtitles:sample_sub_he.srt w_500/l_text:Arial_80:Flowers -w_500/l_text:Times_60:Cool%20image,g_south,y_20 -w_500/l_text:Times_90_bold:Cool%20image,g_south,y_80,co_rgb:FFFF00 -w_500/l_text:Times_90_bold:Cool%20image,g_south,y_80,co_rgb:FFFF0080 -w_500/l_text:Verdana_50_bold:Cool%0Aimage,g_west,x_10 +w_500/l_text:Verdana_50_bold:Cool w_500/l_text:Verdana_75_bold_underline_letter_spacing_14:Flowers -w_500/l_text:sample_text_style:Stylish%20text,g_south +w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 +w_500/l_text:verdana_12_bold_underline_left:words +w_500/l_text:verdana_12_bold_underline_left:words,y_23 +w_500/l_text:verdana_1:words w_500/l_video:docs:bluescreen_watches,e_make_transparent:10,co_rgb:3d8d48,w_1.0,fl_relative/du_15 w_500/l_video:docs:bluescreen_watches,e_make_transparent:20,co_rgb:0e80d8,w_0.6,fl_relative,g_north/du_15 -w_500/w_400,c_fit,l_text:Neucha_26_bold:Lorem%20ipsum%20dolor%20sit%20amet%20consectetur%20adipisicing%20elit%20sed%20do%20eiusmod%20tempor%20incididunt%20ut%20labore%20et%20dolore%20magna%20aliqua.%20Ut%20enim%20ad%20minim%20veniam%20quis%20nostrud%20exercitation%20ullamco%20laboris%20nisi%20ut%20aliquip%20ex%20ea%20commodo%20consequat. +w_500/u_fetch:aW1hZ2UudXJs +w_500/u_my_bg w_550,h_300,c_fit/f_auto,q_auto,dpr_2 w_550,h_35,c_crop,g_north_west/bo_1px_solid_gray/dpr_auto w_600 @@ -938,487 +1396,17 @@ w_800,r_150 w_800/bo_1px_solid_gray w_850,dpr_2 w_abc +w_auto w_auto,c_scale -w_auto,dpr_auto,c_limit/g_north_east,y_5,x_5,co_white,l_text:Arial_18_bold:dpr_auto%0Aw_auto +w_auto,dpr_auto,c_limit/g_north_east,y_5,x_5,co_white,l_text:Arial_18_bold:dpr_auto +w_auto,dpr_auto,c_limit/g_north_east,y_5,x_5,co_white,l_text:Arial_18_bold:dpr_auto,w_auto w_auto,dpr_auto,c_scale w_auto,f_auto,c_scale w_auto,g_auto,c_fill w_auto,q_auto,c_scale +w_iw_add_100_div_3 x_355,y_410,w_300,h_200,c_crop x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill/a_20/c_scale,w_0.5 x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill/a_20/w_0.5 x_355,y_410,w_300,h_200,c_crop/w_150,h_100,c_scale -$award_!First! -$newwidth_1080/w_$newwidth/$name_!Jane%20Smith!/l_text:Comic%20Sans%20MS_24:%C2%A9$(name),g_south_east,x_10,y_10 -$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer -$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20 -$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20/t_my_named_mul_trans -$small_150,$big_2_mul_$small_add_4/c_fill,w_$big,h_$small_add_20 -$small_150/c_fill,w_$big,h_$small_add_20 -a_180 -a_ignore -b_blue,o_0 -bo_1px_solid_gray/w_300,f_auto,q_auto,dpr_2 -bo_1px_solid_gray/w_400,q_auto,dpr_2,f_auto -bo_1px_solid_gray/w_550,q_auto,f_auto,dpr_2 -bo_5.5px_solid_rgb:aabbcc,r_max -bo_5px_solid_rgb:aabbcc,r_max -c_crop,ar_1.85356,so_813,g_south -c_crop,e_sepia,h_150,r_20,w_150 -c_fill,ar_4:3 -c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This is my picture,y_20/a_20 -c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:Thishttps -c_fill,g_face,h_10,w_10 -c_fill,r_50,w_400,h_400,g_north,f_auto,bo_2px_solid_rgb:999/e_shadow:20,co_rgb:ccc/a_30,co_rgb:ec9800,e_colorize,l_url2png_logo -c_fill,w_100_mul_2 -c_scale,t_sample_named_transform,w_1.0/t_sample_named_transform2 -c_scale,w_0.1/e_sepia:30 -c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_1.0 -c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_2.0 -c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_3.0 -c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,w_50,o_60/dpr_2.0 -cs_no_cmyk -d_public_id -dpr_2,f_auto,q_auto,bo_1px_solid_black -e_auto_brightness -e_auto_brightness:10 -e_auto_color -e_auto_color:10 -e_auto_contrast -e_auto_contrast:10 -e_blue -e_blue:10 -e_brightness_hsb -e_brightness_hsb:10 -e_contrast -e_contrast:50 -e_fill_light -e_fill_light:10:20 -e_green -e_green:10 -e_hue -e_hue:10 -e_improve -e_improve:outdoor:10 -e_opacity_threshold -e_opacity_threshold:10 -e_ordered_dither -e_ordered_dither:3 -e_outline:outer:20:200/l_cloudinary_icon/e_red:50/e_sharpen/e_improve/o_70 -e_pixelate_region,w_100 -e_preview:duration_5 -e_recolor:0.3:0.7:0.1:0.2:0.3:0.6:0.1:0.2:0.2:0.5:0.1:0.2 -e_red -e_red:10 -e_screen,l_cloudinary_icon -e_sharpen:10 -e_tint -e_unsharp_mask -e_unsharp_mask:10 -e_vibrance -e_vibrance:10 -e_viesus_correct:no_redeye -e_viesus_correct:skin_saturation -e_viesus_correct:skin_saturation_20 -f_auto,dpr_2,q_auto,h_150,bo_1px_solid_gray -f_auto,dpr_2,q_auto,h_200,bo_1px_solid_gray -f_auto,q_auto,dpr_2,h_150,bo_1px_solid_gray -f_jpg,u_some -f_jpg/u_some -fl_progressive,r_10 -h_150,fl_ignore_aspect_ratio -h_320,w_480 -h_500,w_500,c_fill -if_ar_gt_1.2,c_pad,h_320,w_480,b_green/if_else,c_pad,h_320,w_480,b_blurred:400:15 -if_w_lt_600/l_text:Arial_20:Image shown in full scale,co_white,g_south_east/c_scale,e_blur:400,u_small_dinosaur,w_600/if_end -if_w_lte_200,c_fill,h_120,w_80/if_else,c_fill,h_90,w_100 -l_cloudinary_icon -l_cloudinary_icon,g_north_west,y_20 -l_cloudinary_icon,w_0.2,fl_relative -l_cloudinary_icon,w_0.8,fl_relative -l_cloudinary_icon,w_0.9,c_scale,g_north_east,o_70,e_brightness:50 -l_cloudinary_icon,w_200,g_east,so_1,eo_11/l_text:arial_40:Sample Video,g_south,y_60,so_2 -l_cloudinary_icon,w_300,g_north_east,o_60 -l_couple/c_crop,g_faces,w_120,h_150/r_max/fl_layer_apply,g_north_east/l_cloudinary_icon,w_0.8,fl_relative,o_50,e_brightness:100/l_text:impact_40_bold:Sample image,g_south,y_20 -l_face_left/w_200,h_200,c_thumb,g_face,r_max/fl_layer_apply,g_north_east -l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9vbGRfbG9nby5wbmc= -l_text:AlexBrush-Regular.ttf_100:Happy New Year 2017 ,co_white,g_north_west,x_30,y_30 -l_text:arial_60:Cool Video,g_south,y_80,so_2,eo_5 -l_text:impact_150:Your Brand Name or Logo Here,e_distort:arc:-120,co_white,g_south,y_840,o_60 -#Prefix not yet implemented p_home_thing_ -pg_2-4;6;8/w_300 -q_auto,dpr_2,f_auto,h_300 -q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_650 -r_20 -t_sample_named_transform -t_sample_named_transform.sample_named_transform2 -#Animated not implemented yet vs_10,dl_100,w_250,f_gif -#Animated not implemented yet vs_10,dl_100,w_250,f_webp,fl_awebp,fl_animated -w_0.4,a_20/l_cloudinary_icon,o_50,w_60,g_south_east,y_15,x_60 -w_100,c_fill -w_150,h_150,c_thumb,g_auto:0 -w_150,h_150,c_thumb,g_face,r_20,e_sepia/l_cloudinary_icon,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10 -w_200,a_45/d_avatar.png -w_200,h_100 -w_200,h_200,c_fit,a_hflip/l_cloudinary_icon,w_0.4,fl_relative,g_north,x_15,y_35,a_4,e_brightness:100,o_70 -w_200,h_200,c_thumb,g_face/r_20,bo_5px_solid_black/l_cloudinary_icon,o_50,w_0.25,fl_relative,g_north_east,y_10,x_10 -w_200/l_text:Arial_30:Cool%F0%9F%98%8E -w_300,fl_keep_iptc -w_300,fl_png8 -w_300,h_300,c_fill,r_max,e_sharpen,so_30p/l_cloudinary_icon,w_0.9,fl_relative,o_40 -w_300,h_300,c_fill/l_cloudinary_icon,w_0.8,fl_relative,e_brightness:100,o_50 -w_300,h_350,c_fill,g_north -w_300/w_200,y_30,a_9,h_150,g_north,c_fit,l_text:Times_18_bold_center:Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -w_350,q_80 -w_350,q_100 -w_350,q_auto:best -w_350,q_auto:eco -w_350,q_auto:good -w_350,q_auto:low -w_500,ar_4:3 -w_500,e_volume:50 -w_500/if_!cloudinary!_in_tags/l_cloudinary_icon,w_100,g_north_east,o_50,e_brightness:100/l_text:arial_15:By Cloudinary,g_north_east,y_10,x_105/if_end/du_5 -w_500/l_cloudinary_icon,g_north_east,o_50,w_200,e_anti_removal:90 -w_500/l_cloudinary_icon,o_50,w_100,e_brightness:100,fl_tiled -w_500/l_cloudinary_icon,w_150/e_blackwhite/fl_layer_apply,g_north_east -w_500/l_cloudinary_icon,w_150/e_blackwhite/l_cloudinary_icon,w_50/fl_layer_apply/fl_layer_apply,g_north_east -w_500/l_my_bg -w_500/l_my_icon -w_500/l_subtitles:Arial_40:sample_sub_he.srt -w_500/l_subtitles:sample_sub_he.srt -w_500/l_text:Times_60:Cool image,g_south,y_20 -w_500/l_text:Times_90_bold:Cool image,g_south,y_80,co_rgb:FFFF00 -w_500/l_text:Times_90_bold:Cool image,g_south,y_80,co_rgb:FFFF0080 -w_500/l_text:verdana_1:words -w_500/l_text:verdana_12_bold_underline_left:words -w_500/l_text:verdana_12_bold_underline_left:words,y_23 -w_500/l_text:Verdana_50_bold:Cool -w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24 -w_500/u_fetch:aW1hZ2UudXJs -w_500/u_my_bg -w_500/w_400,c_fit,l_text:Neucha_26_bold:Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod -w_1000,dpr_2 -w_auto -w_auto,dpr_auto,c_limit/g_north_east,y_5,x_5,co_white,l_text:Arial_18_bold:dpr_auto -$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer/e_art:incognito -e_sepia -e_sepia:17 -c_crop,h_200,w_100 -c_crop,h_200 -e_sepia:17/c_crop,h_200,w_100 -c_crop,w_100,h_200,e_sepia:17 -e_accelerate:6 -co_rgb:ec9800,e_colorize:17 -e_make_transparent:50,co_red -e_gradient_fade:symmetric_pad:50,x_0.2 -cs_icc:icc_file_public_id -d_publicid -dn_150 -c_pad,b_auto:predominant -c_pad,b_auto -c_pad,b_blurred -c_pad,b_blurred:100:500 -c_pad,b_auto:predominant_contrast -c_pad,b_auto:predominant:palette_red_green -c_pad,b_auto:predominant_contrast:palette_red_green -c_pad,b_auto:predominant_gradient -c_pad,b_auto:predominant_gradient:2 -c_pad,b_auto:predominant_gradient:horizontal -c_pad,b_auto:predominant_gradient:2:horizontal -c_pad,b_auto:predominant_gradient_contrast -c_pad,b_auto:predominant_gradient_contrast:2 -c_pad,b_auto:predominant_gradient:palette_red_green -c_pad,b_auto:predominant_gradient_contrast:palette_red_green -c_pad,b_auto:border -c_pad,b_auto:border_contrast -c_pad,b_auto:border:palette_red_green -c_pad,b_auto:border_contrast:palette_red_green -c_pad,b_auto:border_gradient -c_pad,b_auto:border_gradient:2 -c_pad,b_auto:border_gradient:horizontal -c_pad,b_auto:border_gradient:2:horizontal -c_pad,b_auto:border_gradient_contrast -c_pad,b_auto:border_gradient_contrast:2 -c_pad,b_auto:border_gradient:palette_red_green -c_pad,b_auto:border_gradient_contrast:palette_red_green -c_crop,w_100 -c_crop,h_100 -c_crop,w_100,h_100 -c_crop,w_100,ar_2.0 -c_crop,x_1 -c_crop,x_1,y_2 -c_crop,fl_relative -c_crop,fl_region_relative -c_scale,h_100 -c_scale,w_100,h_100 -c_scale,w_100,ar_2.0 -c_scale,g_liquid -c_scale,fl_relative -c_scale,fl_region_relative -c_fit,w_100 -c_fit,h_100 -c_fit,w_100,h_100 -c_fit,w_100,ar_2.0 -c_fit,fl_relative -c_fit,fl_region_relative -c_limit,w_100 -c_limit,h_100 -c_limit,w_100,h_100 -c_limit,w_100,ar_2.0 -c_limit,fl_relative -c_limit,fl_region_relative -c_mfit,w_100 -c_mfit,h_100 -c_mfit,w_100,h_100 -c_mfit,w_100,ar_2.0 -c_mfit,w_100,ar_16:9 -c_mfit,w_100,fl_ignore_aspect_ratio -c_mfit,fl_relative -c_mfit,fl_region_relative -c_fill,w_100 -c_fill,h_100 -c_fill,w_100,ar_2.0 -c_fill,fl_relative -c_fill,fl_region_relative -c_fill,g_xy_center,x_1,y_2 -c_lfill,w_100 -c_lfill,h_100 -c_lfill,w_100,h_100 -c_lfill,w_100,ar_2.0 -c_lfill,fl_relative -c_lfill,fl_region_relative -c_lfill,g_xy_center,x_1,y_2 -c_pad,w_100 -c_pad,h_100 -c_pad,w_100,h_100 -c_pad,w_100,ar_2.0 -c_pad,x_1 -c_pad,x_1,y_2 -c_pad,fl_relative -c_pad,fl_region_relative -c_mpad,w_100 -c_mpad,h_100 -c_mpad,w_100,h_100 -c_mpad,w_100,ar_2.0 -c_mpad,x_1 -c_mpad,x_1,y_2 -c_mpad,fl_relative -c_mpad,fl_region_relative -c_lpad,w_100 -c_lpad,h_100 -c_lpad,w_100,h_100 -c_lpad,w_100,ar_2.0 -c_lpad,x_1 -c_lpad,x_1,y_2 -c_lpad,fl_relative -c_lpad,fl_region_relative -c_fill_pad,g_auto,w_100 -c_fill_pad,g_auto,h_100 -c_fill_pad,g_auto,w_100,h_100 -c_fill_pad,g_auto,w_100,ar_2.0 -c_fill_pad,g_auto,x_1 -c_fill_pad,g_auto,x_1,y_2 -c_fill_pad,g_auto,fl_relative -c_fill_pad,g_auto,fl_region_relative -c_thumb,w_100 -c_thumb,h_100 -c_thumb,w_100,h_100 -c_thumb,w_100,ar_2.0 -c_thumb,fl_relative -c_thumb,fl_region_relative -c_imagga_scale,w_100 -c_imagga_scale,h_100 -c_imagga_scale,w_100,h_100 -c_imagga_scale,w_100,ar_2.0 -c_imagga_scale,fl_relative -c_imagga_scale,fl_region_relative -c_imagga_crop,w_100 -c_imagga_crop,h_100 -c_imagga_crop,w_100,h_100 -c_imagga_crop,w_100,ar_2.0 -c_imagga_crop,fl_relative -c_imagga_crop,fl_region_relative -e_deshake -bo_5px_solid_hotpink -bo_5.5px_solid_rgb:fff -bo_5.5px_solid_hotpink,r_max -bo_5.5px_solid_hotpink,r_100 -br_100 -br_100:constant -fps_10 -fps_10- -fps_10-20 -ki_0.4 -fl_animated,f_auto -fl_animated,f_gif -# Animated not yet supported f_auto,fl_animated,vs_10,dl_5 -f_webp,fl_animated,fl_awebp,vs_10 -sp_sd -sp_hd_lean -sp_full_hd_lean -sp_full_hd_wifi -sp_my_custom_sp -r_10 -r_10:20 -r_10:20:30 -r_10:20:30:40 -dpr_1.0 -dpr_auto -e_vectorize:colors:17:detail:100 -e_vectorize:colors:17 -c_fill,x_100,g_xy_center,w_500 -w_iw_add_100_div_3 -f_jpg,fl_progressive -f_mp4 -f_mp3 -f_gif,fl_lossy -f_jpg,fl_progressive:semi -f_auto,fl_preserve_transparency -q_jpegmini:0 -q_jpegmini:1 -q_jpegmini:2 -q_70:qmax_20 -q_auto:low:444 -pg_embedded:name:skyline.jpg -pg_embedded:3;5 -pg_embedded:name:skyline.jpg;bg.jpg -pg_3 -pg_name:skyline -pg_name:lala;fofo -pg_4-7;9 -fl_clip,pg_name:path -fl_clip_evenodd,pg_2 -t_my_named_transformation -e_ordered_dither:6 -e_ordered_dither:13 -a_hflip -a_vflip -a_auto_left -$foo_bar -$foo_1_to_f -$foo_iw_add_100_div_3 -$foo_bar_to_i -$foo_!iw! -$foo_md:!bar!_to_f -$overlaywidth_$mainvideowidth_div_3 -$bestpic_ref:!file.png! -e_blur -e_blur:5 -e_blur_faces:5 -e_blur_region:5,g_ocr_text -e_blur_region,h_100,w_100,x_50,y_120 -e_oil_paint -e_oil_paint:5 -e_blackwhite:5 -#Animated not implemented yet e_loop -e_pixelate -e_pixelate:17 -e_pixelate_region:2,h_100,w_200,x_1,y_3 -e_pixelate_region:5,g_ocr_text -e_pixelate_faces:5 -e_vignette -e_vignette:17 -e_fade:6 -e_fade:-6 -e_vibrance:17 -e_sharpen:17 -e_unsharp_mask:17 -e_hue:17 -e_brightness:17 -e_opacity_threshold:17 -e_contrast:17 -e_saturation:17 -e_gamma:17 -e_red:17 -e_green:17 -e_blue:17 -e_auto_brightness:17 -e_auto_color:17 -e_auto_contrast:17 -o_17 -e_replace_color:red:5:blue -e_outline:$foo:100:5,co_red -e_outline:inner:100:5,co_rgb:ffffff -e_fill_light:17 -e_fill_light:17:-100 -e_viesus_correct:no_redeye:skin_saturation_5 -e_improve:outdoor:50 -e_cartoonify -e_cartoonify:80 -e_cartoonify:80:bw -e_cartoonify:80:100 -c_pad,b_green -c_pad,b_rgb:fff -e_assist_colorblind -fl_keep_iptc -fl_attachment:pretty_flower -fl_whatever -l_sample/fl_first_flag/fl_second_flag/fl_layer_apply -if_expression,a_20 -if_expression/a_20/if_end -if_expression/a_20/if_else/a_30/if_end -c_thumb,g_adv_eyes -c_thumb,g_center,w_300 -c_crop,g_north,w_300 -c_crop,g_north,w_300,x_100 -c_crop,g_auto -c_crop,g_auto:cat_30:dog_avoid,w_300 -c_crop,g_cat:dog:auto:microwave_30:bicycle_avoid -c_crop,g_ocr_text -c_crop,g_auto:ocr_text -c_crop,g_auto:ocr_text_avoid -c_crop,g_auto:ocr_text_30 -c_crop,w_200,h_200,g_xy_center,x_100,y_100 -l_sample -l_sample.jpg -l_sample/e_sepia/fl_layer_apply -l_video:sample -l_video:sample/e_sepia/fl_layer_apply -l_text:arial_15:hello -l_text:arial_15_bold:hello -g_north,l_text:arial_60:This is my picture,y_20 -l_text:parisienne_17_bold_strikethrough_justify_stroke_letter_spacing_17_antialias_subpixel:Hello -b_white,co_red,l_subtitles:arial_17:my_subs_file.srt -l_subtitles:arial_17:sample_sub_en.srt -l_subtitles:impact_15:lincoln.transcript,b_rgb:331a00 -b_green -b_rgb:fff -l_sample/g_face,fl_layer_apply -u_sample/g_face,fl_layer_apply -l_sample/x_10,fl_layer_apply -l_sample/fl_no_overflow,fl_layer_apply -l_sample/fl_tiled,fl_layer_apply -l_sample/e_multiply,fl_layer_apply -l_sample/e_screen,fl_layer_apply -l_sample/e_overlay,fl_layer_apply -l_sample/e_mask,fl_layer_apply -l_sample/e_anti_removal,fl_layer_apply -e_trim -e_trim:50 -e_shear:23.0:50.0 -e_distort:5:34:70:10:70:75:5:55 -e_distort:arc:5 -l_sample,fl_cutter -l_sample/fl_cutter,fl_layer_apply,g_south -f_auto/dpr_auto -e_style_transfer:preserve_color:40,l_lighthouse/e_sepia/fl_layer_apply -e_preview:duration_5.0:max_seg_10:min_seg_dur_1.0 -eo_3 -so_3,eo_5 -so_3,du_5 -so_3p,du_5p -e_volume:10 -e_volume:5db -e_volume:mute -fl_splice,l_video:dog/fl_layer_apply -fl_splice,l_video:dog/fl_layer_apply,so_0 -l_video:dog/e_transition,l_video:transition1/fl_layer_apply/fl_layer_apply -fl_splice,l_sample/fl_layer_apply -du_5,l_sample/e_transition,l_video:transition1/fl_layer_apply/fl_layer_apply -l_video:dog,fl_splice,w_300,c_fill,so_0/fl_layer_apply -l_video:dog,fl_splice,so_0,du_5 -l_video:dog/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply -l_video:dog/l_video:transition1,e_transition/a_180/fl_layer_apply/fl_layer_apply -l_sample,so_6.5,eo_10 -$width_iw_mul_3/w_$width From a6147a9165d1653bd2927561dc3a3a577b5ba47f Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 18 Jul 2021 20:16:40 +0300 Subject: [PATCH 15/18] Remove comment --- devTools/sanity/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/devTools/sanity/index.ts b/devTools/sanity/index.ts index ff5a9620..1258b3eb 100644 --- a/devTools/sanity/index.ts +++ b/devTools/sanity/index.ts @@ -28,7 +28,6 @@ const transformationStrings = ([...new Set(file.split('\n'))] as string[]) * Set the SDK Code Snippets Service URL (Change domain/port only */ const baseURL = `https://staging-code-snippets.cloudinary.com/dev/sdk-code-gen`; -// const baseURL = `http://localhost:8000/dev/sdk-code-gen`; const results:ITXResults = { success:[], From 5072d4a47e4ffb0b38f9e243232fc8d226f6d74c Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 18 Jul 2021 20:18:26 +0300 Subject: [PATCH 16/18] Remove typo --- __TESTS__/unit/index.test.ts | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/__TESTS__/unit/index.test.ts b/__TESTS__/unit/index.test.ts index c0ed95a8..5095a91d 100644 --- a/__TESTS__/unit/index.test.ts +++ b/__TESTS__/unit/index.test.ts @@ -4,12 +4,8 @@ import { Transformation, Cloudinary, Qualifiers, - Actions, - ImageTransformation + Actions } from '../../src/index'; -import {image} from "../../src/qualifiers/source"; -import {sepia} from "../../src/actions/effect"; -import {source} from "../../src/actions/overlay"; describe('Ensures index exports correctly', () => { it('Exports correctly', () => { @@ -22,18 +18,3 @@ describe('Ensures index exports correctly', () => { }); }); - -/** - * @param urlToParse - the url to parse - */ -const foo = async (urlToParse: string) => {}; - -/** - * - */ -async function bar() { - -} - - - From f0806ea53b815ea04385b06d907d3c9402381874 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 18 Jul 2021 20:29:07 +0300 Subject: [PATCH 17/18] Fix tests, and turn some versions to static --- __TESTS__/compilationsOutput.test.ts | 18580 ++++++++++++++++ .../actions/Resize/LimitPadAction.test.ts | 5 +- .../actions/Resize/MinimumPadAction.test.ts | 5 +- .../unit/actions/Resize/PadAction.test.ts | 5 +- package.json | 8 +- 5 files changed, 18593 insertions(+), 10 deletions(-) create mode 100644 __TESTS__/compilationsOutput.test.ts diff --git a/__TESTS__/compilationsOutput.test.ts b/__TESTS__/compilationsOutput.test.ts new file mode 100644 index 00000000..96c96baa --- /dev/null +++ b/__TESTS__/compilationsOutput.test.ts @@ -0,0 +1,18580 @@ +/** + * This file was generated automatically + * It tests a wide variety of URLs and ensures the URL generated by the SDK is compatible + */ + +import { CloudinaryMedia } from "../src/assets/CloudinaryMedia"; +import { VideoEdit } from "actions/videoEdit"; +import { Border } from "actions/border"; +import { Resize } from "actions/resize"; +import { Rotate } from "actions/rotate"; +import { RotationMode } from "qualifiers/rotationMode"; +import { Transcode } from "actions/transcode"; +import { AudioCodec } from "qualifiers/audioCodec"; +import { Overlay } from "actions/overlay"; +import { Source } from "qualifiers/source"; +import { RoundCorners } from "actions/roundCorners"; +import { AspectRatio } from "qualifiers/aspectRatio"; +import { Gravity } from "qualifiers/gravity"; +import { Delivery } from "actions/delivery"; +import { Format } from "qualifiers/format"; +import { Quality } from "qualifiers/quality"; +import { Dpr } from "qualifiers/dpr"; +import { Variable } from "actions/variable"; +import { CustomFunction } from "actions/customFunction"; +import { NamedTransformation } from "actions/namedTransformation"; +import { Color } from "qualifiers/color"; +import { Concatenate } from "qualifiers/concatenate"; +import { Expression } from "qualifiers/expression"; +import { Compass } from "qualifiers/compass"; +import { FocusOn } from "qualifiers/focusOn"; +import { AutoFocus } from "qualifiers/autoFocus"; +import { VideoCodec } from "qualifiers/videoCodec"; +import { Adjust } from "actions/adjust"; +import { ImageTransformation } from "index"; +import { Effect } from "actions/effect"; +import { Conditional } from "actions/conditional"; +import { Underlay } from "actions/underlay"; +import { ColorSpace } from "qualifiers/colorSpace"; +import { OutlineMode } from "qualifiers/outlineMode"; +import { VideoCodecLevel } from "qualifiers/videoCodecLevel"; +import { VideoCodecProfile } from "qualifiers/videoCodecProfile"; +import { Position } from "qualifiers/position"; +import { TextStyle } from "qualifiers/textStyle"; +import { ArtisticFilter } from "qualifiers/artisticFilter"; +import { Reshape } from "actions/reshape"; +import { ImproveMode } from "qualifiers/improveMode"; +import { BlendMode } from "qualifiers/blendMode"; +import { SimulateColorBlind } from "qualifiers/simulateColorBlind"; +import { Background } from "qualifiers/background"; +import { Transition } from "qualifiers/transition"; +import { ShakeStrength } from "qualifiers/shakeStrength"; +import { GradientFade } from "qualifiers/GradientFade"; +import { Region } from "qualifiers/region"; +import { Extract } from "actions/extract"; +import { Progressive } from "qualifiers/progressive"; +import { Timeline } from "qualifiers/timeline"; +import { TextDecoration } from "qualifiers/textDecoration"; +import { FontWeight } from "qualifiers/fontWeight"; +import { TextAlignment } from "qualifiers/textAlignment"; +import { AnimatedFormat } from "qualifiers/animatedFormat"; +import { ChromaSubSampling } from "qualifiers/chromaSubSampling"; +import { Dither } from "qualifiers/dither"; +import { Flag } from "qualifiers/flag"; +import { GradientDirection } from "qualifiers/gradientDirection"; +import { StreamingProfile } from "qualifiers/streamingProfile"; +import { PSDTools } from "actions/psdTools"; +import { FontStyle } from "qualifiers/fontStyle"; +import { Volume } from "../src/qualifiers/volume"; +import { FontAntialias } from "../src/qualifiers/FontAntialias"; +import { Animated } from "../src/actions/animated"; +const CloudinaryImage = CloudinaryMedia; +const CloudinaryVideo = CloudinaryMedia; +describe("Testing", () => { + it("so_3,eo_5,e_boomerang/e_loop", () => { + const parts = "so_3,eo_5,e_boomerang/e_loop".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("3.0").endOffset("5.0")) + .effect(Effect.boomerang()) + .animated(Animated.edit().loop()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("vs_10,dl_100,w_250,f_gif", () => { + const parts = "vs_10,dl_100,w_250,f_gif".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(250)) + .transcode(Transcode.toAnimated(AnimatedFormat.gif()).sampling(10)) + .animated(Animated.edit().delay(100)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("vs_10,dl_100,w_250,f_webp,fl_awebp,fl_animated", () => { + const parts = "vs_10,dl_100,w_250,f_webp,fl_awebp,fl_animated" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(250)) + .transcode(Transcode.toAnimated(AnimatedFormat.webp()).sampling(10)) + .animated(Animated.edit().delay(100)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dl_100", () => { + const parts = "dl_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").animated( + Animated.edit().delay(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dl_200", () => { + const parts = "dl_200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").animated( + Animated.edit().delay(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_loop", () => { + const parts = "e_loop".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").animated( + Animated.edit().loop() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_preview:duration_8/c_crop,w_1600,h_800,e_loop", () => { + const parts = "e_preview:duration_8/c_crop,w_1600,h_800,e_loop" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.preview().duration("8.0")) + .resize(Resize.crop().width(1600).height(800)) + .animated(Animated.edit().loop()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("vs_1.1s,dl_200,w_200,e_loop:2", () => { + const parts = "vs_1.1s,dl_200,w_200,e_loop:2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(200)) + .transcode(Transcode.toAnimated().sampling("1.1s")) + .animated(Animated.edit().delay(200).loop(2)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("vs_40,dl_200,h_200,e_loop", () => { + const parts = "vs_40,dl_200,h_200,e_loop".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(200)) + .transcode(Transcode.toAnimated().sampling(40)) + .animated(Animated.edit().delay(200).loop()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_480,so_3,eo_5,e_boomerang/e_loop", () => { + const parts = "w_480,so_3,eo_5,e_boomerang/e_loop" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("3.0").endOffset("5.0")) + .resize(Resize.scale().width(480)) + .effect(Effect.boomerang()) + .animated(Animated.edit().loop()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,dl_1000,e_trim,w_700", () => { + const parts = "c_scale,dl_1000,e_trim,w_700".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .reshape(Reshape.trim()) + .resize(Resize.scale().width(700)) + .animated(Animated.edit().delay(1000)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,fl_animated,vs_10,dl_5", () => { + const parts = "f_auto,fl_animated,vs_10,dl_5" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .transcode(Transcode.toAnimated(AnimatedFormat.auto()).sampling(10)) + .animated(Animated.edit().delay(5)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_face,z_1.2,h_150,w_150", () => { + const parts = "c_crop,g_face,z_1.2,h_150,w_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(150) + .height(150) + .zoom(1.2) + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_sink,z_0.8", () => { + const parts = "c_crop,g_sink,z_0.8".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().zoom(0.8).gravity(Gravity.focusOn(FocusOn.sink())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("g_face,c_crop,z_1.3", () => { + const parts = "g_face,c_crop,z_1.3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().zoom(1.3).gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$award_!First!", () => { + const parts = "$award_!First!".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addVariable( + Variable.set("award", "First") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$bcolor_!rgb:0000ff!/if_fc_gt_0,$bcolor_!red!/bo_5px_solid_$bcolor,c_fill,h_120,w_120", () => { + const parts = + "$bcolor_!rgb:0000ff!/if_fc_gt_0,$bcolor_!red!/bo_5px_solid_$bcolor,c_fill,h_120,w_120" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("bcolor", "rgb:0000ff")) + .conditional( + Conditional.ifCondition( + "face_count > 0", + new ImageTransformation().addVariable(Variable.set("bcolor", "red")) + ) + ) + .border(Border.solid(5, "$bcolor")) + .resize(Resize.fill().width(120).height(120)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$bestpic_ref:!file.png!", () => { + const parts = "$bestpic_ref:!file.png!".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addVariable( + Variable.setAssetReference("bestpic", "file.png") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$colors_5,fn_wasm:quantize.wasm", () => { + const parts = "$colors_5,fn_wasm:quantize.wasm" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("colors", 5)) + .customFunction(CustomFunction.wasm("quantize.wasm")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$foo_!iw!", () => { + const parts = "$foo_!iw!".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addVariable( + Variable.set("foo", "iw") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$foo_1_to_f", () => { + const parts = "$foo_1_to_f".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addVariable( + Variable.set("foo", 1).asFloat() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$foo_bar", () => { + const parts = "$foo_bar".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addVariable( + Variable.set("foo", Expression.expression("bar")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$foo_bar_to_i", () => { + const parts = "$foo_bar_to_i".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addVariable( + Variable.set("foo", Expression.expression("bar")).asInteger() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$foo_iw_add_100_div_3", () => { + const parts = "$foo_iw_add_100_div_3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addVariable( + Variable.set("foo", Expression.expression("initial_width + 100 / 3")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$foo_md:!bar!_to_f", () => { + const parts = "$foo_md:!bar!_to_f".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addVariable( + Variable.setFromMetadata("foo", "bar").asFloat() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$img_current,$height_ih/if_w_lt_800/c_scale,e_blur:800,u_$img,w_800,h_$height/e_brightness:40,fl_layer_apply/if_end", () => { + const parts = + "$img_current,$height_ih/if_w_lt_800/c_scale,e_blur:800,u_$img,w_800,h_$height/e_brightness:40,fl_layer_apply/if_end" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("img", Expression.expression("current"))) + .addVariable( + Variable.set("height", Expression.expression("initial_height")) + ) + .conditional( + Conditional.ifCondition( + "width < 800", + new ImageTransformation().underlay( + Underlay.source( + Source.image("$img").transformation( + new ImageTransformation() + .resize(Resize.scale().width(800).height("$height")) + .effect(Effect.blur().strength(800)) + .adjust(Adjust.brightness().level(40)) + ) + ) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$img_current/e_grayscale/l_$img,w_0.3,bo_10px_solid_white/fl_layer_apply,g_north_west/q_auto,f_auto,dpr_2.0,w_900", () => { + const parts = + "$img_current/e_grayscale/l_$img,w_0.3,bo_10px_solid_white/fl_layer_apply,g_north_west/q_auto,f_auto,dpr_2.0,w_900" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("img", Expression.expression("current"))) + .effect(Effect.grayscale()) + .overlay( + Overlay.source( + Source.image("$img").transformation( + new ImageTransformation() + .border(Border.solid(10, "white")) + .resize(Resize.scale().width(0.3)) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northWest()))) + ) + .resize(Resize.scale().width(900)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$mainvideowidth_500/$overlaywidth_$mainvideowidth_div_3/w_$mainvideowidth/l_video:kitten_fighting,w_$overlaywidth,g_south_east", () => { + const parts = + "$mainvideowidth_500/$overlaywidth_$mainvideowidth_div_3/w_$mainvideowidth/l_video:kitten_fighting,w_$overlaywidth,g_south_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("mainvideowidth", 500)) + .addVariable( + Variable.set( + "overlaywidth", + Expression.expression("$mainvideowidth / 3") + ) + ) + .resize(Resize.scale().width("$mainvideowidth")) + .overlay( + Overlay.source( + Source.video("kitten_fighting").transformation( + new ImageTransformation().resize( + Resize.scale().width("$overlaywidth") + ) + ) + ).position(new Position().gravity(Gravity.compass(Compass.southEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$newwidth_10_add_iw_mul_0.3,w_$newwidth", () => { + const parts = "$newwidth_10_add_iw_mul_0.3,w_$newwidth" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable( + Variable.set( + "newwidth", + Expression.expression("10 + initial_width * 0.3") + ) + ) + .resize(Resize.scale().width("$newwidth")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$overlay_ref:!docs:sale!/fn_wasm:docs:pnglayer.wasm/bo_1px_solid_black", () => { + const parts = + "$overlay_ref:!docs:sale!/fn_wasm:docs:pnglayer.wasm/bo_1px_solid_black" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.setAssetReference("overlay", "docs:sale")) + .customFunction(CustomFunction.wasm("docs:pnglayer.wasm")) + .border(Border.solid(1, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$overlaywidth_$mainvideowidth_div_3", () => { + const parts = "$overlaywidth_$mainvideowidth_div_3" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").addVariable( + Variable.set("overlaywidth", Expression.expression("$mainvideowidth / 3")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$qualtag_!Pro!/if_$qualtag_in_tags,q_80/if_else,q_30/w_500", () => { + const parts = "$qualtag_!Pro!/if_$qualtag_in_tags,q_80/if_else,q_30/w_500" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("qualtag", "Pro")) + .conditional( + Conditional.ifCondition( + "$qualtag in tags", + new ImageTransformation().delivery(Delivery.quality(80)) + ).otherwise(new ImageTransformation().delivery(Delivery.quality(30))) + ) + .resize(Resize.scale().width(500)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$qualtag_!Pro!/if_$qualtag_in_tags,q_90/if_else,q_30/w_500", () => { + const parts = "$qualtag_!Pro!/if_$qualtag_in_tags,q_90/if_else,q_30/w_500" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("qualtag", "Pro")) + .conditional( + Conditional.ifCondition( + "$qualtag in tags", + new ImageTransformation().delivery(Delivery.quality(90)) + ).otherwise(new ImageTransformation().delivery(Delivery.quality(30))) + ) + .resize(Resize.scale().width(500)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$qualtag_!important!,$delwidth_450/t_highqual-if-tagged", () => { + const parts = "$qualtag_!important!,$delwidth_450/t_highqual-if-tagged" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("qualtag", "important")) + .addVariable(Variable.set("delwidth", 450)) + .namedTransformation(NamedTransformation.name("highqual-if-tagged")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$rating_!thumbs-down!/t_image_ratings", () => { + const parts = "$rating_!thumbs-down!/t_image_ratings" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("rating", "thumbs-down")) + .namedTransformation(NamedTransformation.name("image_ratings")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$rating_!thumbs-down!/t_image_ratings/w_200", () => { + const parts = "$rating_!thumbs-down!/t_image_ratings/w_200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("rating", "thumbs-down")) + .namedTransformation(NamedTransformation.name("image_ratings")) + .resize(Resize.scale().width(200)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$rating_!thumbs-up!/t_image_ratings", () => { + const parts = "$rating_!thumbs-up!/t_image_ratings" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("rating", "thumbs-up")) + .namedTransformation(NamedTransformation.name("image_ratings")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$rating_!thumbs-up!/t_image_ratings/w_200", () => { + const parts = "$rating_!thumbs-up!/t_image_ratings/w_200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("rating", "thumbs-up")) + .namedTransformation(NamedTransformation.name("image_ratings")) + .resize(Resize.scale().width(200)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer", () => { + const parts = + "$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("small", 150)) + .addVariable(Variable.set("big", Expression.expression("2 / $small"))) + .resize( + Resize.fill().width("$big").height(Expression.expression("$small + 20")) + ) + .overlay(Overlay.source(Source.image("my_named_div_layer"))); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer/e_art:incognito", () => { + const parts = + "$small_150,$big_2_div_$small/c_fill,w_$big,h_$small_add_20/l_my_named_div_layer/e_art:incognito" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("small", 150)) + .addVariable(Variable.set("big", Expression.expression("2 / $small"))) + .resize( + Resize.fill().width("$big").height(Expression.expression("$small + 20")) + ) + .overlay(Overlay.source(Source.image("my_named_div_layer"))) + .effect(Effect.artisticFilter(ArtisticFilter.incognito())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20", () => { + const parts = "$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("small", 150)) + .addVariable(Variable.set("big", Expression.expression("2 * $small"))) + .resize( + Resize.fill().width("$big").height(Expression.expression("$small + 20")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20/t_my_named_mul_trans", () => { + const parts = + "$small_150,$big_2_mul_$small/c_fill,w_$big,h_$small_add_20/t_my_named_mul_trans" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("small", 150)) + .addVariable(Variable.set("big", Expression.expression("2 * $small"))) + .resize( + Resize.fill().width("$big").height(Expression.expression("$small + 20")) + ) + .namedTransformation(NamedTransformation.name("my_named_mul_trans")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$small_150,$big_2_mul_$small_add_4/c_fill,w_$big,h_$small_add_20", () => { + const parts = + "$small_150,$big_2_mul_$small_add_4/c_fill,w_$big,h_$small_add_20" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("small", 150)) + .addVariable(Variable.set("big", Expression.expression("2 * $small + 4"))) + .resize( + Resize.fill().width("$big").height(Expression.expression("$small + 20")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$small_150/c_fill,w_$big,h_$small_add_20", () => { + const parts = "$small_150/c_fill,w_$big,h_$small_add_20" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("small", 150)) + .resize( + Resize.fill().width("$big").height(Expression.expression("$small + 20")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$w_200,$ar_0.8/w_$w,ar_$ar,c_fill,g_face", () => { + const parts = "$w_200,$ar_0.8/w_$w,ar_$ar,c_fill,g_face" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("w", 200)) + .addVariable(Variable.set("ar", 0.8)) + .resize( + Resize.fill() + .width("$w") + .aspectRatio("$ar") + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$width_115/t_passport_photo", () => { + const parts = "$width_115/t_passport_photo".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("width", 115)) + .namedTransformation(NamedTransformation.name("passport_photo")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$width_140/t_passport_photo", () => { + const parts = "$width_140/t_passport_photo".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("width", 140)) + .namedTransformation(NamedTransformation.name("passport_photo")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$width_165/t_passport_photo", () => { + const parts = "$width_165/t_passport_photo".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("width", 165)) + .namedTransformation(NamedTransformation.name("passport_photo")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$width_60/t_passport_photo", () => { + const parts = "$width_60/t_passport_photo".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("width", 60)) + .namedTransformation(NamedTransformation.name("passport_photo")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$width_iw_mul_3/w_$width", () => { + const parts = "$width_iw_mul_3/w_$width".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable( + Variable.set("width", Expression.expression("initial_width * 3")) + ) + .resize(Resize.scale().width("$width")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("$widthval_200,$arval_0.8/w_$widthval,ar_$arval,c_fill,g_face", () => { + const parts = "$widthval_200,$arval_0.8/w_$widthval,ar_$arval,c_fill,g_face" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .addVariable(Variable.set("widthval", 200)) + .addVariable(Variable.set("arval", 0.8)) + .resize( + Resize.fill() + .width("$widthval") + .aspectRatio("$arval") + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("a_-20", () => { + const parts = "a_-20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").rotate(Rotate.byAngle(-20)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("a_180", () => { + const parts = "a_180".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").rotate(Rotate.byAngle(180)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("a_180/w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0,du_5/fl_layer_apply", () => { + const parts = + "a_180/w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0,du_5/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .rotate(Rotate.byAngle(180)) + .resize(Resize.fill().width(300).height(200)) + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("dog").transformation( + new ImageTransformation().resize( + Resize.fill().width(300).height(200) + ) + ) + ) + .prepend() + .duration(5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("a_20", () => { + const parts = "a_20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").rotate(Rotate.byAngle(20)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("a_90", () => { + const parts = "a_90".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").rotate(Rotate.byAngle(90)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("a_auto_left", () => { + const parts = "a_auto_left".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").rotate( + Rotate.mode(RotationMode.autoLeft()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("a_auto_right", () => { + const parts = "a_auto_right".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").rotate( + Rotate.mode(RotationMode.autoRight()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("a_hflip", () => { + const parts = "a_hflip".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").rotate( + Rotate.mode(RotationMode.horizontalFlip()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("a_ignore", () => { + const parts = "a_ignore".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").rotate( + Rotate.mode(RotationMode.ignore()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("a_vflip", () => { + const parts = "a_vflip".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").rotate( + Rotate.mode(RotationMode.verticalFlip()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("a_vflip/a_20", () => { + const parts = "a_vflip/a_20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .rotate(Rotate.mode(RotationMode.verticalFlip())) + .rotate(Rotate.byAngle(20)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ac_none", () => { + const parts = "ac_none".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.audioCodec(AudioCodec.none()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ac_none/l_video:electronic,e_volume:-50", () => { + const parts = "ac_none/l_video:electronic,e_volume:-50" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .transcode(Transcode.audioCodec(AudioCodec.none())) + .overlay( + Overlay.source( + Source.video("electronic").transformation( + new ImageTransformation().videoEdit(VideoEdit.volume(-50)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("af_22050", () => { + const parts = "af_22050".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.audioFrequency(22050) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("af_96000", () => { + const parts = "af_96000".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.audioFrequency(96000) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ar_1,c_fill,r_max", () => { + const parts = "ar_1,c_fill,r_max".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().aspectRatio("1.0")) + .roundCorners(RoundCorners.max()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ar_1.0,c_scale,g_liquid,w_1.0/w_500,h_500", () => { + const parts = "ar_1.0,c_scale,g_liquid,w_1.0/w_500,h_500" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width("1.0").aspectRatio("1.0").liquidRescaling()) + .resize(Resize.scale().width(500).height(500)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ar_1.5,c_crop", () => { + const parts = "ar_1.5,c_crop".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().aspectRatio(1.5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ar_16:9,c_fill", () => { + const parts = "ar_16:9,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().aspectRatio(AspectRatio.ar16X9()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ar_16:9,c_fill/c_scale,w_auto/c_limit,w_1000", () => { + const parts = "ar_16:9,c_fill/c_scale,w_auto/c_limit,w_1000" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().aspectRatio(AspectRatio.ar16X9())) + .resize(Resize.scale().width("auto")) + .resize(Resize.limitFit().width(1000)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ar_16:9,c_fill/c_scale,w_auto:breakpoints", () => { + const parts = "ar_16:9,c_fill/c_scale,w_auto:breakpoints" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().aspectRatio(AspectRatio.ar16X9())) + .resize(Resize.scale().width("auto:breakpoints")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ar_16:9,c_fill/c_scale,w_auto:breakpoints:json", () => { + const parts = "ar_16:9,c_fill/c_scale,w_auto:breakpoints:json" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().aspectRatio(AspectRatio.ar16X9())) + .resize(Resize.scale().width("auto:breakpoints:json")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ar_16:9,c_fill/c_scale,w_auto:breakpoints_200_1920_30_15", () => { + const parts = "ar_16:9,c_fill/c_scale,w_auto:breakpoints_200_1920_30_15" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().aspectRatio(AspectRatio.ar16X9())) + .resize(Resize.scale().width("auto:breakpoints_200_1920_30_15")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ar_1:1,c_fill", () => { + const parts = "ar_1:1,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().aspectRatio(AspectRatio.ar1X1()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ar_1:1,c_fill,g_auto,w_400", () => { + const parts = "ar_1:1,c_fill,g_auto,w_400".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(400) + .aspectRatio(AspectRatio.ar1X1()) + .gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ar_2.5,c_crop", () => { + const parts = "ar_2.5,c_crop".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().aspectRatio(2.5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ar_4:3,c_fill/c_scale,w_auto,dpr_auto", () => { + const parts = "ar_4:3,c_fill/c_scale,w_auto,dpr_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().aspectRatio(AspectRatio.ar4X3())) + .resize(Resize.scale().width("auto")) + .delivery(Delivery.dpr(Dpr.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("b_blue,c_pad,h_400,w_660", () => { + const parts = "b_blue,c_pad,h_400,w_660".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(660).height(400).background(Background.color("blue")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("b_blue,o_0", () => { + const parts = "b_blue,o_0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .adjust(Adjust.opacity(0)) + .backgroundColor("blue"); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("b_green", () => { + const parts = "b_green".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").backgroundColor("green"); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("b_lightblue", () => { + const parts = "b_lightblue".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").backgroundColor("lightblue"); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("b_rgb:d5d2ca,h_300", () => { + const parts = "b_rgb:d5d2ca,h_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(300)) + .backgroundColor("#d5d2ca"); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("b_rgb:fff", () => { + const parts = "b_rgb:fff".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").backgroundColor("#fff"); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("b_white,co_red,l_subtitles:arial_17:my_subs_file.srt", () => { + const parts = "b_white,co_red,l_subtitles:arial_17:my_subs_file.srt" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.subtitles("my_subs_file.srt") + .textStyle(new TextStyle("arial", 17)) + .textColor("red") + .backgroundColor("white") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_black,a_0/f_auto,q_auto,dpr_auto", () => { + const parts = "bo_1px_solid_black,a_0/f_auto,q_auto,dpr_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "black")) + .rotate(Rotate.byAngle(0)) + .delivery(Delivery.dpr(Dpr.auto())) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_black,a_0/f_auto,q_auto,dpr_auto,h_300", () => { + const parts = "bo_1px_solid_black,a_0/f_auto,q_auto,dpr_auto,h_300" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "black")) + .rotate(Rotate.byAngle(0)) + .resize(Resize.scale().height(300)) + .delivery(Delivery.dpr(Dpr.auto())) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_black,dpr_2,q_auto,f_auto,w_400", () => { + const parts = "bo_1px_solid_black,dpr_2,q_auto,f_auto,w_400" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "black")) + .resize(Resize.scale().width(400)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_black,q_auto,dpr_2,f_auto", () => { + const parts = "bo_1px_solid_black,q_auto,dpr_2,f_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "black")) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray", () => { + const parts = "bo_1px_solid_gray".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").border( + Border.solid(1, "gray") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray,dpr_auto", () => { + const parts = "bo_1px_solid_gray,dpr_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .delivery(Delivery.dpr(Dpr.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/dpr_auto", () => { + const parts = "bo_1px_solid_gray/dpr_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .delivery(Delivery.dpr(Dpr.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,dpr_2,q_auto/h_250", () => { + const parts = "bo_1px_solid_gray/f_auto,dpr_2,q_auto/h_250" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .resize(Resize.scale().height(250)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,dpr_auto,q_auto", () => { + const parts = "bo_1px_solid_gray/f_auto,dpr_auto,q_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .delivery(Delivery.dpr(Dpr.auto())) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,q_auto,dpr_auto", () => { + const parts = "bo_1px_solid_gray/f_auto,q_auto,dpr_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .delivery(Delivery.dpr(Dpr.auto())) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,q_auto,w_350,dpr_2", () => { + const parts = "bo_1px_solid_gray/f_auto,q_auto,w_350,dpr_2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(350)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,q_auto,w_600,dpr_2", () => { + const parts = "bo_1px_solid_gray/f_auto,q_auto,w_600,dpr_2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(600)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,q_auto,w_700,dpr_2", () => { + const parts = "bo_1px_solid_gray/f_auto,q_auto,w_700,dpr_2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(700)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,w_250,dpr_2,q_auto", () => { + const parts = "bo_1px_solid_gray/f_auto,w_250,dpr_2,q_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(250)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,w_300,dpr_2,q_auto", () => { + const parts = "bo_1px_solid_gray/f_auto,w_300,dpr_2,q_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(300)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,w_350,dpr_2,q_auto", () => { + const parts = "bo_1px_solid_gray/f_auto,w_350,dpr_2,q_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(350)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,w_500,dpr_2,q_auto", () => { + const parts = "bo_1px_solid_gray/f_auto,w_500,dpr_2,q_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(500)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,w_600,dpr_2,q_auto", () => { + const parts = "bo_1px_solid_gray/f_auto,w_600,dpr_2,q_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(600)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,w_650,dpr_2,q_auto", () => { + const parts = "bo_1px_solid_gray/f_auto,w_650,dpr_2,q_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(650)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto,w_700,dpr_2,q_auto", () => { + const parts = "bo_1px_solid_gray/f_auto,w_700,dpr_2,q_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(700)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/f_auto/q_auto", () => { + const parts = "bo_1px_solid_gray/f_auto/q_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/q_auto,h_450,f_auto,dpr_2", () => { + const parts = "bo_1px_solid_gray/q_auto,h_450,f_auto,dpr_2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().height(450)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/q_auto,w_400,f_auto,dpr_2", () => { + const parts = "bo_1px_solid_gray/q_auto,w_400,f_auto,dpr_2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(400)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/w_300,f_auto,q_auto,dpr_2", () => { + const parts = "bo_1px_solid_gray/w_300,f_auto,q_auto,dpr_2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(300)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/w_400,dpr_2,q_auto,f_auto", () => { + const parts = "bo_1px_solid_gray/w_400,dpr_2,q_auto,f_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(400)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/w_400,f_auto,q_auto,dpr_2", () => { + const parts = "bo_1px_solid_gray/w_400,f_auto,q_auto,dpr_2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(400)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/w_400,q_auto,dpr_2,f_auto", () => { + const parts = "bo_1px_solid_gray/w_400,q_auto,dpr_2,f_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(400)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/w_450,f_auto,dpr_2,q_auto", () => { + const parts = "bo_1px_solid_gray/w_450,f_auto,dpr_2,q_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(450)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/w_500,f_auto,q_auto,dpr_2", () => { + const parts = "bo_1px_solid_gray/w_500,f_auto,q_auto,dpr_2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(500)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/w_550,q_auto,dpr_2,f_auto", () => { + const parts = "bo_1px_solid_gray/w_550,q_auto,dpr_2,f_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(550)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/w_550,q_auto,f_auto,dpr_2", () => { + const parts = "bo_1px_solid_gray/w_550,q_auto,f_auto,dpr_2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(550)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_gray/w_600,f_auto,q_auto,dpr_2", () => { + const parts = "bo_1px_solid_gray/w_600,f_auto,q_auto,dpr_2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(600)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_1px_solid_rgb:ccc,f_auto,dpr_2", () => { + const parts = "bo_1px_solid_rgb:ccc,f_auto,dpr_2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "#ccc")) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black", () => { + const parts = "bo_2px_solid_black".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").border( + Border.solid(2, "black") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,f_auto,q_auto", () => { + const parts = "bo_2px_solid_black,f_auto,q_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(2, "black")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,so_100", () => { + const parts = "bo_2px_solid_black,so_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("100.0")) + .border(Border.solid(2, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,so_101", () => { + const parts = "bo_2px_solid_black,so_101".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("101.0")) + .border(Border.solid(2, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,so_133", () => { + const parts = "bo_2px_solid_black,so_133".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("133.0")) + .border(Border.solid(2, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,so_14", () => { + const parts = "bo_2px_solid_black,so_14".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("14.0")) + .border(Border.solid(2, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,so_256", () => { + const parts = "bo_2px_solid_black,so_256".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("256.0")) + .border(Border.solid(2, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,so_36", () => { + const parts = "bo_2px_solid_black,so_36".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("36.0")) + .border(Border.solid(2, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,so_371", () => { + const parts = "bo_2px_solid_black,so_371".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("371.0")) + .border(Border.solid(2, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,so_386,c_fill,w_230,h_129", () => { + const parts = "bo_2px_solid_black,so_386,c_fill,w_230,h_129" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("386.0")) + .border(Border.solid(2, "black")) + .resize(Resize.fill().width(230).height(129)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,so_48.5", () => { + const parts = "bo_2px_solid_black,so_48.5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset(48.5)) + .border(Border.solid(2, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,so_63,c_fill,w_230,h_129", () => { + const parts = "bo_2px_solid_black,so_63,c_fill,w_230,h_129" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("63.0")) + .border(Border.solid(2, "black")) + .resize(Resize.fill().width(230).height(129)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,so_68", () => { + const parts = "bo_2px_solid_black,so_68".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("68.0")) + .border(Border.solid(2, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black,so_98", () => { + const parts = "bo_2px_solid_black,so_98".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("98.0")) + .border(Border.solid(2, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_2px_solid_black/c_fill,w_230,h_129", () => { + const parts = "bo_2px_solid_black/c_fill,w_230,h_129" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(2, "black")) + .resize(Resize.fill().width(230).height(129)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_40px_solid_brown", () => { + const parts = "bo_40px_solid_brown".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").border( + Border.solid(40, "brown") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_5.5px_solid_hotpink,r_100", () => { + const parts = "bo_5.5px_solid_hotpink,r_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").border( + Border.solid(5.5, "hotpink").roundCorners(RoundCorners.byRadius(100)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_5.5px_solid_hotpink,r_max", () => { + const parts = "bo_5.5px_solid_hotpink,r_max".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").border( + Border.solid(5.5, "hotpink").roundCorners(RoundCorners.max()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_5.5px_solid_rgb:aabbcc,r_max", () => { + const parts = "bo_5.5px_solid_rgb:aabbcc,r_max" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").border( + Border.solid(5.5, "#aabbcc").roundCorners(RoundCorners.max()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_5.5px_solid_rgb:fff", () => { + const parts = "bo_5.5px_solid_rgb:fff".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").border( + Border.solid(5.5, "#fff") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_5px_solid_black", () => { + const parts = "bo_5px_solid_black".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").border( + Border.solid(5, "black") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_5px_solid_black,f_auto,q_auto/dpr_auto", () => { + const parts = "bo_5px_solid_black,f_auto,q_auto/dpr_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(5, "black")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .delivery(Delivery.dpr(Dpr.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_5px_solid_hotpink", () => { + const parts = "bo_5px_solid_hotpink".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").border( + Border.solid(5, "hotpink") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_5px_solid_red", () => { + const parts = "bo_5px_solid_red".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").border(Border.solid(5, "red")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_5px_solid_rgb:aabbcc,r_max", () => { + const parts = "bo_5px_solid_rgb:aabbcc,r_max" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").border( + Border.solid(5, "#aabbcc").roundCorners(RoundCorners.max()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("bo_60px_solid_rgb:00390b60", () => { + const parts = "bo_60px_solid_rgb:00390b60".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").border( + Border.solid(60, "#00390b60") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("br_100", () => { + const parts = "br_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.bitRate(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("br_100:constant", () => { + const parts = "br_100:constant".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.bitRate(100).constant() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("br_250k", () => { + const parts = "br_250k".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.bitRate("250k") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("br_500000", () => { + const parts = "br_500000".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.bitRate(500000) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("br_500k:constant", () => { + const parts = "br_500k:constant".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.bitRate("500k").constant() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,ar_1.85356,so_813,g_south", () => { + const parts = "c_crop,ar_1.85356,so_813,g_south" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("813.0")) + .resize( + Resize.crop() + .aspectRatio(1.85356) + .gravity(Gravity.compass(Compass.south())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,ar_1.85356,so_813,g_south/c_fill,w_230,h_129", () => { + const parts = "c_crop,ar_1.85356,so_813,g_south/c_fill,w_230,h_129" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("813.0")) + .resize( + Resize.crop() + .aspectRatio(1.85356) + .gravity(Gravity.compass(Compass.south())) + ) + .resize(Resize.fill().width(230).height(129)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,ar_1:1,w_1000,g_auto:cat", () => { + const parts = "c_crop,ar_1:1,w_1000,g_auto:cat" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(1000) + .aspectRatio(AspectRatio.ar1X1()) + .gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.cat())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,e_sepia,h_150,r_20,w_150", () => { + const parts = "c_crop,e_sepia,h_150,r_20,w_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(150).height(150)) + .roundCorners(RoundCorners.byRadius(20)) + .effect(Effect.sepia()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This", () => { + const parts = "c_crop,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(150).height(150)) + .roundCorners(RoundCorners.byRadius(20)) + .effect(Effect.sepia()) + .overlay( + Overlay.source( + Source.text("This", new TextStyle("arial", 60)) + ).position(new Position().gravity(Gravity.compass(Compass.north()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,e_viesus_correct,g_south,r_20,w_1000/c_scale,g_north_east,l_viesus_logo,o_50,w_100,x_10,y_10/c_scale,w_600", () => { + const parts = + "c_crop,e_viesus_correct,g_south,r_20,w_1000/c_scale,g_north_east,l_viesus_logo,o_50,w_100,x_10,y_10/c_scale,w_600" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop().width(1000).gravity(Gravity.compass(Compass.south())) + ) + .roundCorners(RoundCorners.byRadius(20)) + .adjust(Adjust.viesusCorrect()) + .overlay( + Overlay.source( + Source.image("viesus_logo").transformation( + new ImageTransformation() + .resize(Resize.scale().width(100)) + .adjust(Adjust.opacity(50)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.northEast())) + .offsetX(10) + .offsetY(10) + ) + ) + .resize(Resize.scale().width(600)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,fl_region_relative", () => { + const parts = "c_crop,fl_region_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,fl_relative", () => { + const parts = "c_crop,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_auto", () => { + const parts = "c_crop,g_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_auto:cat_30:dog_avoid,w_300", () => { + const parts = "c_crop,g_auto:cat_30:dog_avoid,w_300" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(300) + .gravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.cat()).weight(30), + AutoFocus.focusOn(FocusOn.dog()).avoid() + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_auto:ocr_text", () => { + const parts = "c_crop,g_auto:ocr_text".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.ocr())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_auto:ocr_text_30", () => { + const parts = "c_crop,g_auto:ocr_text_30".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.ocr()).weight(30) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_auto:ocr_text_avoid", () => { + const parts = "c_crop,g_auto:ocr_text_avoid".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.ocr()).avoid() + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_cat:dog", () => { + const parts = "c_crop,g_cat:dog".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity(Gravity.focusOn(FocusOn.cat(), FocusOn.dog())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_cat:dog/w_0.25,c_scale", () => { + const parts = "c_crop,g_cat:dog/w_0.25,c_scale" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop().gravity(Gravity.focusOn(FocusOn.cat(), FocusOn.dog())) + ) + .resize(Resize.scale().width(0.25)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_cat:dog:auto:microwave_30:bicycle_avoid", () => { + const parts = "c_crop,g_cat:dog:auto:microwave_30:bicycle_avoid" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity( + Gravity.focusOn(FocusOn.cat(), FocusOn.dog()).fallbackGravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.microwave()).weight(30), + AutoFocus.focusOn(FocusOn.bicycle()).avoid() + ) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_dog:auto:bird,w_600,h_800", () => { + const parts = "c_crop,g_dog:auto:bird,w_600,h_800" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(600) + .height(800) + .gravity( + Gravity.focusOn(FocusOn.dog()).fallbackGravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.bird())) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_dog:auto:bird,w_600,h_800/w_0.25,c_scale", () => { + const parts = "c_crop,g_dog:auto:bird,w_600,h_800/w_0.25,c_scale" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop() + .width(600) + .height(800) + .gravity( + Gravity.focusOn(FocusOn.dog()).fallbackGravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.bird())) + ) + ) + ) + .resize(Resize.scale().width(0.25)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_dog:bird,w_600,h_800", () => { + const parts = "c_crop,g_dog:bird,w_600,h_800" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(600) + .height(800) + .gravity(Gravity.focusOn(FocusOn.dog(), FocusOn.bird())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_dog:bird,w_600,h_800/w_0.25,c_scale", () => { + const parts = "c_crop,g_dog:bird,w_600,h_800/w_0.25,c_scale" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop() + .width(600) + .height(800) + .gravity(Gravity.focusOn(FocusOn.dog(), FocusOn.bird())) + ) + .resize(Resize.scale().width(0.25)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_dog:cat", () => { + const parts = "c_crop,g_dog:cat".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity(Gravity.focusOn(FocusOn.dog(), FocusOn.cat())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_dog:cat/w_0.25,c_scale", () => { + const parts = "c_crop,g_dog:cat/w_0.25,c_scale" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop().gravity(Gravity.focusOn(FocusOn.dog(), FocusOn.cat())) + ) + .resize(Resize.scale().width(0.25)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_face", () => { + const parts = "c_crop,g_face".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_face,h_150,w_150", () => { + const parts = "c_crop,g_face,h_150,w_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(150) + .height(150) + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_face,h_400,w_400", () => { + const parts = "c_crop,g_face,h_400,w_400".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(400) + .height(400) + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_face,r_75,bo_10px_solid_grey/l_young_couple,w_150,h_150,c_thumb,r_max,g_faces,bo_3px_solid_black/fl_layer_apply,g_north_east", () => { + const parts = + "c_crop,g_face,r_75,bo_10px_solid_grey/l_young_couple,w_150,h_150,c_thumb,r_max,g_faces,bo_3px_solid_black/fl_layer_apply,g_north_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(10, "grey").roundCorners(RoundCorners.byRadius(75))) + .resize(Resize.crop().gravity(Gravity.focusOn(FocusOn.face()))) + .overlay( + Overlay.source( + Source.image("young_couple").transformation( + new ImageTransformation() + .border(Border.solid(3, "black").roundCorners(RoundCorners.max())) + .resize( + Resize.thumbnail() + .width(150) + .height(150) + .gravity(Gravity.focusOn(FocusOn.faces())) + ) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_microwave", () => { + const parts = "c_crop,g_microwave".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity(Gravity.focusOn(FocusOn.microwave())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_microwave,ar_1", () => { + const parts = "c_crop,g_microwave,ar_1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .aspectRatio("1.0") + .gravity(Gravity.focusOn(FocusOn.microwave())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_microwave,ar_1/w_0.3,c_scale", () => { + const parts = "c_crop,g_microwave,ar_1/w_0.3,c_scale" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop() + .aspectRatio("1.0") + .gravity(Gravity.focusOn(FocusOn.microwave())) + ) + .resize(Resize.scale().width(0.3)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_microwave/w_0.3,c_scale", () => { + const parts = "c_crop,g_microwave/w_0.3,c_scale" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().gravity(Gravity.focusOn(FocusOn.microwave()))) + .resize(Resize.scale().width(0.3)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_north,h_200,w_260", () => { + const parts = "c_crop,g_north,h_200,w_260".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(260) + .height(200) + .gravity(Gravity.compass(Compass.north())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_north,w_300", () => { + const parts = "c_crop,g_north,w_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(300).gravity(Gravity.compass(Compass.north())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_north,w_300,x_100", () => { + const parts = "c_crop,g_north,w_300,x_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(300).gravity(Gravity.compass(Compass.north())).x(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_north_west,h_150,w_150", () => { + const parts = "c_crop,g_north_west,h_150,w_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(150) + .height(150) + .gravity(Gravity.compass(Compass.northWest())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_ocr_text", () => { + const parts = "c_crop,g_ocr_text".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity(Gravity.focusOn(FocusOn.ocr())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_refrigerator", () => { + const parts = "c_crop,g_refrigerator".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity(Gravity.focusOn(FocusOn.refrigerator())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_refrigerator,ar_1", () => { + const parts = "c_crop,g_refrigerator,ar_1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .aspectRatio("1.0") + .gravity(Gravity.focusOn(FocusOn.refrigerator())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_refrigerator,ar_1/w_0.3,c_scale", () => { + const parts = "c_crop,g_refrigerator,ar_1/w_0.3,c_scale" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop() + .aspectRatio("1.0") + .gravity(Gravity.focusOn(FocusOn.refrigerator())) + ) + .resize(Resize.scale().width(0.3)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_refrigerator/w_0.3,c_scale", () => { + const parts = "c_crop,g_refrigerator/w_0.3,c_scale" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().gravity(Gravity.focusOn(FocusOn.refrigerator()))) + .resize(Resize.scale().width(0.3)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_sink", () => { + const parts = "c_crop,g_sink".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity(Gravity.focusOn(FocusOn.sink())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_sink,ar_1", () => { + const parts = "c_crop,g_sink,ar_1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().aspectRatio("1.0").gravity(Gravity.focusOn(FocusOn.sink())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_sink,ar_1/w_0.3,c_scale", () => { + const parts = "c_crop,g_sink,ar_1/w_0.3,c_scale" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop() + .aspectRatio("1.0") + .gravity(Gravity.focusOn(FocusOn.sink())) + ) + .resize(Resize.scale().width(0.3)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,g_sink/w_0.3,c_scale", () => { + const parts = "c_crop,g_sink/w_0.3,c_scale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().gravity(Gravity.focusOn(FocusOn.sink()))) + .resize(Resize.scale().width(0.3)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,h_100", () => { + const parts = "c_crop,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,h_100,w_150,x_380,y_250/c_fill,h_100,w_130/a_20/c_scale,w_0.8", () => { + const parts = + "c_crop,h_100,w_150,x_380,y_250/c_fill,h_100,w_130/a_20/c_scale,w_0.8" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(150).height(100).x(380).y(250)) + .resize(Resize.fill().width(130).height(100)) + .rotate(Rotate.byAngle(20)) + .resize(Resize.scale().width(0.8)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,h_160,w_100", () => { + const parts = "c_crop,h_160,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(100).height(160) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,h_200", () => { + const parts = "c_crop,h_200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().height(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,h_200,w_100", () => { + const parts = "c_crop,h_200,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(100).height(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,h_200,w_200", () => { + const parts = "c_crop,h_200,w_200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(200).height(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,w_100", () => { + const parts = "c_crop,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,w_100,ar_2.0", () => { + const parts = "c_crop,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,w_100,h_100", () => { + const parts = "c_crop,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,w_100,h_200,e_sepia:17", () => { + const parts = "c_crop,w_100,h_200,e_sepia:17" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(100).height(200)) + .effect(Effect.sepia().level(17)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,w_200,h_200,g_xy_center,x_100,y_100", () => { + const parts = "c_crop,w_200,h_200,g_xy_center,x_100,y_100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(200) + .height(200) + .gravity(Gravity.xyCenter()) + .x(100) + .y(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,w_300,h_300/c_scale,w_150,r_max", () => { + const parts = "c_crop,w_300,h_300/c_scale,w_150,r_max" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(300).height(300)) + .resize(Resize.scale().width(150)) + .roundCorners(RoundCorners.max()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,x_1", () => { + const parts = "c_crop,x_1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize(Resize.crop().x(1)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,x_1,y_2", () => { + const parts = "c_crop,x_1,y_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().x(1).y(2) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_crop,x_80,y_30,h_150,w_150", () => { + const parts = "c_crop,x_80,y_30,h_150,w_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(150).height(150).x(80).y(30) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,ar_0.7,w_200", () => { + const parts = "c_fill,ar_0.7,w_200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(200).aspectRatio(0.7) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,ar_0.7,w_750", () => { + const parts = "c_fill,ar_0.7,w_750".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(750).aspectRatio(0.7) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,ar_4:3", () => { + const parts = "c_fill,ar_4:3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().aspectRatio(AspectRatio.ar4X3()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This", () => { + const parts = "c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:This" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(150).height(150)) + .roundCorners(RoundCorners.byRadius(20)) + .effect(Effect.sepia()) + .overlay( + Overlay.source( + Source.text("This", new TextStyle("arial", 60)) + ).position(new Position().gravity(Gravity.compass(Compass.north()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:Thishttps", () => { + const parts = + "c_fill,e_sepia,h_150,r_20,w_150/g_north,l_text:arial_60:Thishttps" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(150).height(150)) + .roundCorners(RoundCorners.byRadius(20)) + .effect(Effect.sepia()) + .overlay( + Overlay.source( + Source.text("Thishttps", new TextStyle("arial", 60)) + ).position(new Position().gravity(Gravity.compass(Compass.north()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,e_style_transfer,h_700,l_lighthouse,w_700", () => { + const parts = "c_fill,e_style_transfer,h_700,l_lighthouse,w_700" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.styleTransfer( + Source.image("lighthouse").transformation( + new ImageTransformation().resize(Resize.fill().width(700).height(700)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,e_style_transfer,h_700,l_lighthouse,w_700/c_scale,w_250", () => { + const parts = + "c_fill,e_style_transfer,h_700,l_lighthouse,w_700/c_scale,w_250" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .effect( + Effect.styleTransfer( + Source.image("lighthouse").transformation( + new ImageTransformation().resize( + Resize.fill().width(700).height(700) + ) + ) + ) + ) + .resize(Resize.scale().width(250)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,fl_region_relative", () => { + const parts = "c_fill,fl_region_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,fl_relative", () => { + const parts = "c_fill,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_auto,h_250,w_250", () => { + const parts = "c_fill,g_auto,h_250,w_250".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(250).height(250).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_auto,h_400,ar_0.8", () => { + const parts = "c_fill,g_auto,h_400,ar_0.8".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().height(400).aspectRatio(0.8).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_auto,h_400,ar_0.8/h_300", () => { + const parts = "c_fill,g_auto,h_400,ar_0.8/h_300" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill() + .height(400) + .aspectRatio(0.8) + .gravity(Gravity.autoGravity()) + ) + .resize(Resize.scale().height(300)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_auto,h_500,w_500", () => { + const parts = "c_fill,g_auto,h_500,w_500".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(500).height(500).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8", () => { + const parts = "c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .height(400) + .aspectRatio(0.8) + .gravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.ocr()).avoid() + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8/h_300", () => { + const parts = "c_fill,g_auto:ocr_text_avoid,h_400,ar_0.8/h_300" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill() + .height(400) + .aspectRatio(0.8) + .gravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.ocr()).avoid() + ) + ) + ) + .resize(Resize.scale().height(300)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_face,h_10,w_10", () => { + const parts = "c_fill,g_face,h_10,w_10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(10) + .height(10) + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_north,h_200,w_150", () => { + const parts = "c_fill,g_north,h_200,w_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(150) + .height(200) + .gravity(Gravity.compass(Compass.north())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_north,h_200,w_150/", () => { + const parts = "c_fill,g_north,h_200,w_150/".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("/sample").resize( + Resize.fill() + .width(150) + .height(200) + .gravity(Gravity.compass(Compass.north())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_ocr_text,h_250,w_250", () => { + const parts = "c_fill,g_ocr_text,h_250,w_250" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(250) + .height(250) + .gravity(Gravity.focusOn(FocusOn.ocr())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_ocr_text,h_500,w_500", () => { + const parts = "c_fill,g_ocr_text,h_500,w_500" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(500) + .height(500) + .gravity(Gravity.focusOn(FocusOn.ocr())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_south,h_250,w_400/l_nice_couple/c_crop,fl_region_relative,g_faces,h_1.3,w_1.3/e_saturation:50/e_vignette/c_scale,w_100/r_max/fl_layer_apply,g_center,x_-20,y_20/l_balloon/c_scale,h_55/e_hue:-20/a_5/fl_layer_apply,x_30,y_5/l_text:Cookie_40_bold:Love/co_rgb:F08,e_colorize/a_20/fl_layer_apply,x_-45,y_44/c_crop,h_250,w_300,x_30/r_60", () => { + const parts = + "c_fill,g_south,h_250,w_400/l_nice_couple/c_crop,fl_region_relative,g_faces,h_1.3,w_1.3/e_saturation:50/e_vignette/c_scale,w_100/r_max/fl_layer_apply,g_center,x_-20,y_20/l_balloon/c_scale,h_55/e_hue:-20/a_5/fl_layer_apply,x_30,y_5/l_text:Cookie_40_bold:Love/co_rgb:F08,e_colorize/a_20/fl_layer_apply,x_-45,y_44/c_crop,h_250,w_300,x_30/r_60" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill() + .width(400) + .height(250) + .gravity(Gravity.compass(Compass.south())) + ) + .overlay( + Overlay.source( + Source.image("nice_couple").transformation( + new ImageTransformation() + .resize( + Resize.crop() + .width(1.3) + .height(1.3) + .gravity(Gravity.focusOn(FocusOn.faces())) + .regionRelative() + ) + .adjust(Adjust.saturation().level(50)) + .effect(Effect.vignette()) + .resize(Resize.scale().width(100)) + .roundCorners(RoundCorners.max()) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.center())) + .offsetX(-20) + .offsetY(20) + ) + ) + .overlay( + Overlay.source( + Source.image("balloon").transformation( + new ImageTransformation() + .resize(Resize.scale().height(55)) + .adjust(Adjust.hue().level(-20)) + .rotate(Rotate.byAngle(5)) + ) + ).position(new Position().offsetX(30).offsetY(5)) + ) + .overlay( + Overlay.source( + Source.text( + "Love", + new TextStyle("Cookie", 40).fontWeight(FontWeight.bold()) + ).transformation( + new ImageTransformation() + .effect(Effect.colorize().color("#F08")) + .rotate(Rotate.byAngle(20)) + ) + ).position(new Position().offsetX(-45).offsetY(44)) + ) + .resize(Resize.crop().width(300).height(250).x(30)) + .roundCorners(RoundCorners.byRadius(60)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,g_xy_center,x_1,y_2", () => { + const parts = "c_fill,g_xy_center,x_1,y_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().gravity(Gravity.xyCenter()).x(1).y(2) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_100", () => { + const parts = "c_fill,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_100,w_150", () => { + const parts = "c_fill,h_100,w_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(150).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_150,q_jpegmini,w_200", () => { + const parts = "c_fill,h_150,q_jpegmini,w_200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(200).height(150)) + .delivery(Delivery.quality(Quality.jpegmini())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_150,w_100", () => { + const parts = "c_fill,h_150,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(100).height(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_150/l_video:dog,c_fill,h_150/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply", () => { + const parts = + "c_fill,h_150/l_video:dog,c_fill,h_150/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().height(150)) + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("dog").transformation( + new ImageTransformation().resize(Resize.fill().height(150)) + ) + ).transition(Transition.videoSource("transition1")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_200,w_200", () => { + const parts = "c_fill,h_200,w_200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(200).height(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_200,w_200/e_brightness:100,h_200,u_site_bg,w_200", () => { + const parts = "c_fill,h_200,w_200/e_brightness:100,h_200,u_site_bg,w_200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(200).height(200)) + .underlay( + Underlay.source( + Source.image("site_bg").transformation( + new ImageTransformation() + .resize(Resize.scale().width(200).height(200)) + .adjust(Adjust.brightness().level(100)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_200,w_300,r_20", () => { + const parts = "c_fill,h_200,w_300,r_20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(300).height(200)) + .roundCorners(RoundCorners.byRadius(20)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_250,w_250", () => { + const parts = "c_fill,h_250,w_250".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(250).height(250) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_300,w_200", () => { + const parts = "c_fill,h_300,w_200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(200).height(300) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_300,w_300", () => { + const parts = "c_fill,h_300,w_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(300).height(300) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_500,w_500", () => { + const parts = "c_fill,h_500,w_500".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(500).height(500) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_700,w_700/e_style_transfer:60,l_lighthouse", () => { + const parts = "c_fill,h_700,w_700/e_style_transfer:60,l_lighthouse" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(700).height(700)) + .effect(Effect.styleTransfer(Source.image("lighthouse")).strength(60)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_700,w_700/e_style_transfer:preserve_color,l_lighthouse", () => { + const parts = + "c_fill,h_700,w_700/e_style_transfer:preserve_color,l_lighthouse" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(700).height(700)) + .effect(Effect.styleTransfer(Source.image("lighthouse")).preserveColor()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_700,w_700/e_style_transfer:preserve_color:40,l_lighthouse", () => { + const parts = + "c_fill,h_700,w_700/e_style_transfer:preserve_color:40,l_lighthouse" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(700).height(700)) + .effect( + Effect.styleTransfer(Source.image("lighthouse")) + .preserveColor() + .strength(40) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,h_700,w_700/e_style_transfer:preserve_color:40,l_lighthouse/w_250", () => { + const parts = + "c_fill,h_700,w_700/e_style_transfer:preserve_color:40,l_lighthouse/w_250" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(700).height(700)) + .effect( + Effect.styleTransfer(Source.image("lighthouse")) + .preserveColor() + .strength(40) + ) + .resize(Resize.scale().width(250)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,r_50,w_400,h_400,g_north,f_auto,bo_2px_solid_rgb:999/e_shadow:20,co_rgb:ccc/a_30,co_rgb:ec9800,e_colorize,l_url2png_logo", () => { + const parts = + "c_fill,r_50,w_400,h_400,g_north,f_auto,bo_2px_solid_rgb:999/e_shadow:20,co_rgb:ccc/a_30,co_rgb:ec9800,e_colorize,l_url2png_logo" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(2, "#999").roundCorners(RoundCorners.byRadius(50))) + .resize( + Resize.fill() + .width(400) + .height(400) + .gravity(Gravity.compass(Compass.north())) + ) + .delivery(Delivery.format(Format.auto())) + .effect(Effect.shadow().strength(20).color("#ccc")) + .overlay( + Overlay.source( + Source.image("url2png_logo").transformation( + new ImageTransformation() + .rotate(Rotate.byAngle(30)) + .effect(Effect.colorize().color("#ec9800")) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,r_50,w_400,h_400,g_north,f_auto,bo_2px_solid_rgb:999/e_shadow:20,co_rgb:ccc/a_30,co_rgb:ec9800,e_colorize,l_url2png_logo/", () => { + const parts = + "c_fill,r_50,w_400,h_400,g_north,f_auto,bo_2px_solid_rgb:999/e_shadow:20,co_rgb:ccc/a_30,co_rgb:ec9800,e_colorize,l_url2png_logo/" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("/sample") + .border(Border.solid(2, "#999").roundCorners(RoundCorners.byRadius(50))) + .resize( + Resize.fill() + .width(400) + .height(400) + .gravity(Gravity.compass(Compass.north())) + ) + .delivery(Delivery.format(Format.auto())) + .effect(Effect.shadow().strength(20).color("#ccc")) + .overlay( + Overlay.source( + Source.image("url2png_logo").transformation( + new ImageTransformation() + .rotate(Rotate.byAngle(30)) + .effect(Effect.colorize().color("#ec9800")) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,w_100", () => { + const parts = "c_fill,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,w_100,ar_2.0", () => { + const parts = "c_fill,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,w_100,h_100", () => { + const parts = "c_fill,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,w_100_mul_2", () => { + const parts = "c_fill,w_100_mul_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(Expression.expression("100 * 2")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill,x_100,g_xy_center,w_500", () => { + const parts = "c_fill,x_100,g_xy_center,w_500" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(500).gravity(Gravity.xyCenter()).x(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill_pad,g_auto,fl_region_relative", () => { + const parts = "c_fill_pad,g_auto,fl_region_relative" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fillPad().gravity(Gravity.autoGravity()).regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill_pad,g_auto,fl_relative", () => { + const parts = "c_fill_pad,g_auto,fl_relative" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fillPad().gravity(Gravity.autoGravity()).relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill_pad,g_auto,h_100", () => { + const parts = "c_fill_pad,g_auto,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fillPad().height(100).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill_pad,g_auto,w_100", () => { + const parts = "c_fill_pad,g_auto,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fillPad().width(100).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill_pad,g_auto,w_100,ar_2.0", () => { + const parts = "c_fill_pad,g_auto,w_100,ar_2.0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fillPad() + .width(100) + .aspectRatio("2.0") + .gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill_pad,g_auto,w_100,h_100", () => { + const parts = "c_fill_pad,g_auto,w_100,h_100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fillPad().width(100).height(100).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill_pad,g_auto,x_1", () => { + const parts = "c_fill_pad,g_auto,x_1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fillPad().gravity(Gravity.autoGravity()).offsetX(1) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fill_pad,g_auto,x_1,y_2", () => { + const parts = "c_fill_pad,g_auto,x_1,y_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fillPad().gravity(Gravity.autoGravity()).offsetX(1).offsetY(2) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fit,fl_region_relative", () => { + const parts = "c_fit,fl_region_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fit().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fit,fl_relative", () => { + const parts = "c_fit,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fit().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fit,h_100", () => { + const parts = "c_fit,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fit().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fit,h_150,w_150", () => { + const parts = "c_fit,h_150,w_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fit().width(150).height(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fit,h_16,w_16/e_sepia", () => { + const parts = "c_fit,h_16,w_16/e_sepia".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fit().width(16).height(16)) + .effect(Effect.sepia()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fit,w_10/a_15", () => { + const parts = "c_fit,w_10/a_15".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fit().width(10)) + .rotate(Rotate.byAngle(15)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fit,w_100", () => { + const parts = "c_fit,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fit().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fit,w_100,ar_2.0", () => { + const parts = "c_fit,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fit().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_fit,w_100,h_100", () => { + const parts = "c_fit,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fit().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_crop", () => { + const parts = "c_imagga_crop".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize(Resize.imaggaCrop()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_crop,e_saturation:50,h_300,r_20,w_450/g_south_west,l_imagga_logo,o_80,w_100,x_10,y_10", () => { + const parts = + "c_imagga_crop,e_saturation:50,h_300,r_20,w_450/g_south_west,l_imagga_logo,o_80,w_100,x_10,y_10" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.imaggaCrop().width(450).height(300)) + .roundCorners(RoundCorners.byRadius(20)) + .adjust(Adjust.saturation().level(50)) + .overlay( + Overlay.source( + Source.image("imagga_logo").transformation( + new ImageTransformation() + .resize(Resize.scale().width(100)) + .adjust(Adjust.opacity(80)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.southWest())) + .offsetX(10) + .offsetY(10) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_crop,fl_region_relative", () => { + const parts = "c_imagga_crop,fl_region_relative" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaCrop().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_crop,fl_relative", () => { + const parts = "c_imagga_crop,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaCrop().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_crop,h_100", () => { + const parts = "c_imagga_crop,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaCrop().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_crop,h_380,w_380", () => { + const parts = "c_imagga_crop,h_380,w_380".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaCrop().width(380).height(380) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_crop,w_100", () => { + const parts = "c_imagga_crop,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaCrop().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_crop,w_100,ar_2.0", () => { + const parts = "c_imagga_crop,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaCrop().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_crop,w_100,h_100", () => { + const parts = "c_imagga_crop,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaCrop().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_scale,fl_region_relative", () => { + const parts = "c_imagga_scale,fl_region_relative" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaScale().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_scale,fl_relative", () => { + const parts = "c_imagga_scale,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaScale().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_scale,h_100", () => { + const parts = "c_imagga_scale,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaScale().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_scale,h_150,w_150", () => { + const parts = "c_imagga_scale,h_150,w_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaScale().width(150).height(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_scale,h_200,w_150", () => { + const parts = "c_imagga_scale,h_200,w_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaScale().width(150).height(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_scale,h_240,w_260", () => { + const parts = "c_imagga_scale,h_240,w_260".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaScale().width(260).height(240) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_scale,w_100", () => { + const parts = "c_imagga_scale,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaScale().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_scale,w_100,ar_2.0", () => { + const parts = "c_imagga_scale,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaScale().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_scale,w_100,h_100", () => { + const parts = "c_imagga_scale,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaScale().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_imagga_scale,w_150,h_200", () => { + const parts = "c_imagga_scale,w_150,h_200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.imaggaScale().width(150).height(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lfill,fl_region_relative", () => { + const parts = "c_lfill,fl_region_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFill().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lfill,fl_relative", () => { + const parts = "c_lfill,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFill().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lfill,g_xy_center,x_1,y_2", () => { + const parts = "c_lfill,g_xy_center,x_1,y_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFill().gravity(Gravity.xyCenter()).x(1).y(2) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lfill,h_100", () => { + const parts = "c_lfill,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFill().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lfill,w_100", () => { + const parts = "c_lfill,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFill().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lfill,w_100,ar_2.0", () => { + const parts = "c_lfill,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFill().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lfill,w_100,h_100", () => { + const parts = "c_lfill,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFill().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_limit,fl_region_relative", () => { + const parts = "c_limit,fl_region_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFit().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_limit,fl_relative", () => { + const parts = "c_limit,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFit().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_limit,h_100", () => { + const parts = "c_limit,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFit().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_limit,w_100", () => { + const parts = "c_limit,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFit().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_limit,w_100,ar_2.0", () => { + const parts = "c_limit,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFit().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_limit,w_100,h_100", () => { + const parts = "c_limit,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFit().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lpad,fl_region_relative", () => { + const parts = "c_lpad,fl_region_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitPad().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lpad,fl_relative", () => { + const parts = "c_lpad,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitPad().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lpad,h_100", () => { + const parts = "c_lpad,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitPad().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lpad,w_100", () => { + const parts = "c_lpad,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitPad().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lpad,w_100,ar_2.0", () => { + const parts = "c_lpad,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitPad().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lpad,w_100,h_100", () => { + const parts = "c_lpad,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitPad().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lpad,w_480,h_320,vs_2,q_70,br_1400k,vc_h264:baseline:3.0", () => { + const parts = "c_lpad,w_480,h_320,vs_2,q_70,br_1400k,vc_h264:baseline:3.0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .transcode( + Transcode.videoCodec( + VideoCodec.h264() + .profile(VideoCodecProfile.baseline()) + .level(VideoCodecLevel.vcl30()) + ) + ) + .resize(Resize.limitPad().width(480).height(320)) + .transcode(Transcode.bitRate("1400k")) + .transcode(Transcode.toAnimated().sampling(2)) + .delivery(Delivery.quality(70)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lpad,w_960,h_640,vs_2,q_70,br_5m,vc_h264:main:3.1", () => { + const parts = "c_lpad,w_960,h_640,vs_2,q_70,br_5m,vc_h264:main:3.1" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .transcode( + Transcode.videoCodec( + VideoCodec.h264() + .profile(VideoCodecProfile.main()) + .level(VideoCodecLevel.vcl31()) + ) + ) + .resize(Resize.limitPad().width(960).height(640)) + .transcode(Transcode.bitRate("5m")) + .transcode(Transcode.toAnimated().sampling(2)) + .delivery(Delivery.quality(70)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lpad,x_1", () => { + const parts = "c_lpad,x_1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitPad().offsetX(1) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_lpad,x_1,y_2", () => { + const parts = "c_lpad,x_1,y_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitPad().offsetX(1).offsetY(2) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mfit,fl_region_relative", () => { + const parts = "c_mfit,fl_region_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumFit().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mfit,fl_relative", () => { + const parts = "c_mfit,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumFit().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mfit,h_100", () => { + const parts = "c_mfit,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumFit().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mfit,w_100", () => { + const parts = "c_mfit,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumFit().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mfit,w_100,ar_16:9", () => { + const parts = "c_mfit,w_100,ar_16:9".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumFit().width(100).aspectRatio(AspectRatio.ar16X9()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mfit,w_100,ar_2.0", () => { + const parts = "c_mfit,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumFit().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mfit,w_100,fl_ignore_aspect_ratio", () => { + const parts = "c_mfit,w_100,fl_ignore_aspect_ratio" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumFit() + .width(100) + .aspectRatio(AspectRatio.ignoreInitialAspectRatio()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mfit,w_100,h_100", () => { + const parts = "c_mfit,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumFit().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mpad,fl_region_relative", () => { + const parts = "c_mpad,fl_region_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumPad().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mpad,fl_relative", () => { + const parts = "c_mpad,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumPad().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mpad,h_100", () => { + const parts = "c_mpad,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumPad().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mpad,w_100", () => { + const parts = "c_mpad,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumPad().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mpad,w_100,ar_2.0", () => { + const parts = "c_mpad,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumPad().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mpad,w_100,h_100", () => { + const parts = "c_mpad,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumPad().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mpad,x_1", () => { + const parts = "c_mpad,x_1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumPad().offsetX(1) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_mpad,x_1,y_2", () => { + const parts = "c_mpad,x_1,y_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumPad().offsetX(1).offsetY(2) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto", () => { + const parts = "c_pad,b_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.auto()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:border", () => { + const parts = "c_pad,b_auto:border".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.border()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:border:palette_red_green", () => { + const parts = "c_pad,b_auto:border:palette_red_green" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.border().palette("red", "green")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:border_contrast", () => { + const parts = "c_pad,b_auto:border_contrast".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.border().contrast()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:border_contrast:palette_red_green", () => { + const parts = "c_pad,b_auto:border_contrast:palette_red_green" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.border().contrast().palette("red", "green") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:border_gradient", () => { + const parts = "c_pad,b_auto:border_gradient".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.borderGradient()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:border_gradient:2", () => { + const parts = "c_pad,b_auto:border_gradient:2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.borderGradient().gradientColors(2)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:border_gradient:2:horizontal", () => { + const parts = "c_pad,b_auto:border_gradient:2:horizontal" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.borderGradient() + .gradientDirection(GradientDirection.horizontal()) + .gradientColors(2) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:border_gradient:horizontal", () => { + const parts = "c_pad,b_auto:border_gradient:horizontal" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.borderGradient().gradientDirection( + GradientDirection.horizontal() + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:border_gradient:palette_red_green", () => { + const parts = "c_pad,b_auto:border_gradient:palette_red_green" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.borderGradient().palette("red", "green") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:border_gradient_contrast", () => { + const parts = "c_pad,b_auto:border_gradient_contrast" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.borderGradient().contrast()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:border_gradient_contrast:2", () => { + const parts = "c_pad,b_auto:border_gradient_contrast:2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.borderGradient().contrast().gradientColors(2) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:border_gradient_contrast:palette_red_green", () => { + const parts = "c_pad,b_auto:border_gradient_contrast:palette_red_green" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.borderGradient().contrast().palette("red", "green") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:predominant", () => { + const parts = "c_pad,b_auto:predominant".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.predominant()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:predominant:palette_red_green", () => { + const parts = "c_pad,b_auto:predominant:palette_red_green" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.predominant().palette("red", "green")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:predominant_contrast", () => { + const parts = "c_pad,b_auto:predominant_contrast" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.predominant().contrast()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:predominant_contrast:palette_red_green", () => { + const parts = "c_pad,b_auto:predominant_contrast:palette_red_green" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.predominant().contrast().palette("red", "green") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:predominant_gradient", () => { + const parts = "c_pad,b_auto:predominant_gradient" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.predominantGradient()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:predominant_gradient:2", () => { + const parts = "c_pad,b_auto:predominant_gradient:2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.predominantGradient().gradientColors(2) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:predominant_gradient:2:horizontal", () => { + const parts = "c_pad,b_auto:predominant_gradient:2:horizontal" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.predominantGradient() + .gradientDirection(GradientDirection.horizontal()) + .gradientColors(2) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:predominant_gradient:horizontal", () => { + const parts = "c_pad,b_auto:predominant_gradient:horizontal" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.predominantGradient().gradientDirection( + GradientDirection.horizontal() + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:predominant_gradient:palette_red_green", () => { + const parts = "c_pad,b_auto:predominant_gradient:palette_red_green" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.predominantGradient().palette("red", "green") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:predominant_gradient_contrast", () => { + const parts = "c_pad,b_auto:predominant_gradient_contrast" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.predominantGradient().contrast()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:predominant_gradient_contrast:2", () => { + const parts = "c_pad,b_auto:predominant_gradient_contrast:2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.predominantGradient().contrast().gradientColors(2) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_auto:predominant_gradient_contrast:palette_red_green", () => { + const parts = "c_pad,b_auto:predominant_gradient_contrast:palette_red_green" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.predominantGradient().contrast().palette("red", "green") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_blurred", () => { + const parts = "c_pad,b_blurred".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.blurred()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_blurred:100:500", () => { + const parts = "c_pad,b_blurred:100:500".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background( + Background.blurred().intensity(100).brightness(500) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_green", () => { + const parts = "c_pad,b_green".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.color("green")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,b_rgb:fff", () => { + const parts = "c_pad,b_rgb:fff".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().background(Background.color("#fff")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,du_10,h_360,q_70,w_480", () => { + const parts = "c_pad,du_10,h_360,q_70,w_480".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().duration("10.0")) + .resize(Resize.pad().width(480).height(360)) + .delivery(Delivery.quality(70)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,fl_region_relative", () => { + const parts = "c_pad,fl_region_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,fl_relative", () => { + const parts = "c_pad,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,h_100", () => { + const parts = "c_pad,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,h_200,w_200,b_black", () => { + const parts = "c_pad,h_200,w_200,b_black".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(200).height(200).background(Background.color("black")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,h_300,w_400", () => { + const parts = "c_pad,h_300,w_400".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(400).height(300) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,h_320,w_480,b_blurred:400:15", () => { + const parts = "c_pad,h_320,w_480,b_blurred:400:15" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad() + .width(480) + .height(320) + .background(Background.blurred().intensity(400).brightness(15)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,h_360,w_480,q_70,du_10", () => { + const parts = "c_pad,h_360,w_480,q_70,du_10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().duration("10.0")) + .resize(Resize.pad().width(480).height(360)) + .delivery(Delivery.quality(70)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,h_360,w_480/du_10/q_70", () => { + const parts = "c_pad,h_360,w_480/du_10/q_70".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.pad().width(480).height(360)) + .videoEdit(VideoEdit.trim().duration("10.0")) + .delivery(Delivery.quality(70)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,h_360,w_480/du_10/q_70/vc_auto", () => { + const parts = "c_pad,h_360,w_480/du_10/q_70/vc_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.pad().width(480).height(360)) + .videoEdit(VideoEdit.trim().duration("10.0")) + .delivery(Delivery.quality(70)) + .transcode(Transcode.videoCodec(VideoCodec.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,h_360,w_480/du_10/q_70/vc_h265", () => { + const parts = "c_pad,h_360,w_480/du_10/q_70/vc_h265" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.pad().width(480).height(360)) + .videoEdit(VideoEdit.trim().duration("10.0")) + .delivery(Delivery.quality(70)) + .transcode(Transcode.videoCodec(VideoCodec.h265())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,h_360,w_480/du_10/q_70/vc_vp9", () => { + const parts = "c_pad,h_360,w_480/du_10/q_70/vc_vp9" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.pad().width(480).height(360)) + .videoEdit(VideoEdit.trim().duration("10.0")) + .delivery(Delivery.quality(70)) + .transcode(Transcode.videoCodec(VideoCodec.vp9())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,w_100", () => { + const parts = "c_pad,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,w_100,ar_2.0", () => { + const parts = "c_pad,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,w_100,h_100", () => { + const parts = "c_pad,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,w_200,h_200,e_saturation:50/e_shadow/bo_1px_solid_rgb:666", () => { + const parts = + "c_pad,w_200,h_200,e_saturation:50/e_shadow/bo_1px_solid_rgb:666" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.pad().width(200).height(200)) + .adjust(Adjust.saturation().level(50)) + .effect(Effect.shadow()) + .border(Border.solid(1, "#666")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,w_400", () => { + const parts = "c_pad,w_400".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(400) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,x_1", () => { + const parts = "c_pad,x_1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().offsetX(1) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_pad,x_1,y_2", () => { + const parts = "c_pad,x_1,y_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().offsetX(1).offsetY(2) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,e_grayscale,f_auto,q_auto,w_100", () => { + const parts = "c_scale,e_grayscale,f_auto,q_auto,w_100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(100)) + .effect(Effect.grayscale()) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,e_saturation:50,r_20,w_400/g_south_east,l_logo_jpegmini,o_80,w_100,x_10,y_10/q_jpegmini", () => { + const parts = + "c_scale,e_saturation:50,r_20,w_400/g_south_east,l_logo_jpegmini,o_80,w_100,x_10,y_10/q_jpegmini" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(400)) + .roundCorners(RoundCorners.byRadius(20)) + .adjust(Adjust.saturation().level(50)) + .overlay( + Overlay.source( + Source.image("logo_jpegmini").transformation( + new ImageTransformation() + .resize(Resize.scale().width(100)) + .adjust(Adjust.opacity(80)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.southEast())) + .offsetX(10) + .offsetY(10) + ) + ) + .delivery(Delivery.quality(Quality.jpegmini())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,e_viesus_correct,w_400", () => { + const parts = "c_scale,e_viesus_correct,w_400" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(400)) + .adjust(Adjust.viesusCorrect()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,e_viesus_correct,w_500", () => { + const parts = "c_scale,e_viesus_correct,w_500" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .adjust(Adjust.viesusCorrect()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,fl_region_relative", () => { + const parts = "c_scale,fl_region_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,fl_relative", () => { + const parts = "c_scale,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,g_liquid", () => { + const parts = "c_scale,g_liquid".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().liquidRescaling() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,h_0.3", () => { + const parts = "c_scale,h_0.3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().height(0.3) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,h_100", () => { + const parts = "c_scale,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,h_150", () => { + const parts = "c_scale,h_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().height(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,h_200,w_200", () => { + const parts = "c_scale,h_200,w_200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(200).height(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,h_200,w_200/e_sepia", () => { + const parts = "c_scale,h_200,w_200/e_sepia".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(200).height(200)) + .effect(Effect.sepia()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,q_jpegmini,w_400", () => { + const parts = "c_scale,q_jpegmini,w_400".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(400)) + .delivery(Delivery.quality(Quality.jpegmini())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,q_jpegmini:1,w_400", () => { + const parts = "c_scale,q_jpegmini:1,w_400".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(400)) + .delivery(Delivery.quality(Quality.jpegminiHigh())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,t_sample_named_transform,w_1.0/t_sample_named_transform2", () => { + const parts = + "c_scale,t_sample_named_transform,w_1.0/t_sample_named_transform2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width("1.0")) + .namedTransformation(NamedTransformation.name("sample_named_transform")) + .namedTransformation(NamedTransformation.name("sample_named_transform2")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,w_0.1/e_sepia:30", () => { + const parts = "c_scale,w_0.1/e_sepia:30".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(0.1)) + .effect(Effect.sepia().level(30)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,w_0.5", () => { + const parts = "c_scale,w_0.5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(0.5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,w_100", () => { + const parts = "c_scale,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,w_100,ar_2.0", () => { + const parts = "c_scale,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,w_100,h_100", () => { + const parts = "c_scale,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,w_200/r_max", () => { + const parts = "c_scale,w_200/r_max".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(200)) + .roundCorners(RoundCorners.max()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,w_400", () => { + const parts = "c_scale,w_400".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(400) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,w_400/c_imagga_scale,h_150,l_family_bench.png,r_max,w_150", () => { + const parts = + "c_scale,w_400/c_imagga_scale,h_150,l_family_bench.png,r_max,w_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(400)) + .overlay( + Overlay.source( + Source.image("family_bench") + .format(Format.png()) + .transformation( + new ImageTransformation() + .resize(Resize.imaggaScale().width(150).height(150)) + .roundCorners(RoundCorners.max()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,w_400/l_cloudinary_icon_blue,fl_no_overflow", () => { + const parts = "c_scale,w_400/l_cloudinary_icon_blue,fl_no_overflow" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(400)) + .overlay( + Overlay.source(Source.image("cloudinary_icon_blue")).position( + new Position().allowOverflow(false) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_scale,w_400/l_text:Arial_100:Flowers,co_yellow,b_rgb:FEB61FC2", () => { + const parts = + "c_scale,w_400/l_text:Arial_100:Flowers,co_yellow,b_rgb:FEB61FC2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(400)) + .overlay( + Overlay.source( + Source.text("Flowers", new TextStyle("Arial", 100)) + .textColor("yellow") + .backgroundColor("#FEB61FC2") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,fl_region_relative", () => { + const parts = "c_thumb,fl_region_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail().regionRelative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,fl_relative", () => { + const parts = "c_thumb,fl_relative".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail().relative() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,g_adv_eyes", () => { + const parts = "c_thumb,g_adv_eyes".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail().gravity(Gravity.focusOn(FocusOn.advancedEyes())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,g_adv_face,h_100,w_100", () => { + const parts = "c_thumb,g_adv_face,h_100,w_100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(100) + .height(100) + .gravity(Gravity.focusOn(FocusOn.advancedFace())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,g_adv_face,w_100,h_100", () => { + const parts = "c_thumb,g_adv_face,w_100,h_100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(100) + .height(100) + .gravity(Gravity.focusOn(FocusOn.advancedFace())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,g_adv_faces,w_150,h_150", () => { + const parts = "c_thumb,g_adv_faces,w_150,h_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(150) + .height(150) + .gravity(Gravity.focusOn(FocusOn.advancedFaces())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,g_center,w_300", () => { + const parts = "c_thumb,g_center,w_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail().width(300).gravity(Gravity.compass(Compass.center())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,g_face,h_130,w_130/g_south_east,l_badge,w_40,x_20,y_-40", () => { + const parts = + "c_thumb,g_face,h_130,w_130/g_south_east,l_badge,w_40,x_20,y_-40" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(130) + .height(130) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .overlay( + Overlay.source( + Source.image("badge").transformation( + new ImageTransformation().resize(Resize.scale().width(40)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.southEast())) + .offsetX(20) + .offsetY(-40) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,g_face,h_150,w_150/g_north_east,l_badge,w_0.08,x_0.15,y_0.15", () => { + const parts = + "c_thumb,g_face,h_150,w_150/g_north_east,l_badge,w_0.08,x_0.15,y_0.15" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(150) + .height(150) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .overlay( + Overlay.source( + Source.image("badge").transformation( + new ImageTransformation().resize(Resize.scale().width(0.08)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.northEast())) + .offsetX(0.15) + .offsetY(0.15) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,g_face,h_150,w_150/r_20/e_sepia/l_cloudinary_icon_blue,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10", () => { + const parts = + "c_thumb,g_face,h_150,w_150/r_20/e_sepia/l_cloudinary_icon_blue,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(150) + .height(150) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.byRadius(20)) + .effect(Effect.sepia()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_blue").transformation( + new ImageTransformation() + .resize(Resize.scale().width(50)) + .adjust(Adjust.opacity(60)) + .adjust(Adjust.brightness().level(100)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.southEast())) + .offsetX(5) + .offsetY(5) + ) + ) + .rotate(Rotate.byAngle(10)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,g_face,h_150,w_150/r_20/e_sepia/l_cloudinary_icon_blue/e_brightness:100/o_60/c_scale,w_50/fl_layer_apply,g_south_east,x_5,y_5/a_10", () => { + const parts = + "c_thumb,g_face,h_150,w_150/r_20/e_sepia/l_cloudinary_icon_blue/e_brightness:100/o_60/c_scale,w_50/fl_layer_apply,g_south_east,x_5,y_5/a_10" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(150) + .height(150) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.byRadius(20)) + .effect(Effect.sepia()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_blue").transformation( + new ImageTransformation() + .adjust(Adjust.brightness().level(100)) + .adjust(Adjust.opacity(60)) + .resize(Resize.scale().width(50)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.southEast())) + .offsetX(5) + .offsetY(5) + ) + ) + .rotate(Rotate.byAngle(10)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,g_face,z_0.75,h_150,w_150", () => { + const parts = "c_thumb,g_face,z_0.75,h_150,w_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(150) + .height(150) + .zoom(0.75) + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,h_100", () => { + const parts = "c_thumb,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail().height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,w_100", () => { + const parts = "c_thumb,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,w_100,ar_2.0", () => { + const parts = "c_thumb,w_100,ar_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail().width(100).aspectRatio("2.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,w_100,h_100", () => { + const parts = "c_thumb,w_100,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_1.0", () => { + const parts = + "c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_1.0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(100) + .height(100) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.5).relative()) + .adjust(Adjust.opacity(60)) + .adjust(Adjust.brightness().level(100)) + ) + ) + ) + .delivery(Delivery.dpr("1.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_2.0", () => { + const parts = + "c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_2.0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(100) + .height(100) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.5).relative()) + .adjust(Adjust.opacity(60)) + .adjust(Adjust.brightness().level(100)) + ) + ) + ) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_3.0", () => { + const parts = + "c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,fl_relative,w_0.5,o_60/dpr_3.0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(100) + .height(100) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.5).relative()) + .adjust(Adjust.opacity(60)) + .adjust(Adjust.brightness().level(100)) + ) + ) + ) + .delivery(Delivery.dpr("3.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,w_50,o_60/dpr_2.0", () => { + const parts = + "c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon,e_brightness:100,w_50,o_60/dpr_2.0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(100) + .height(100) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(50)) + .adjust(Adjust.opacity(60)) + .adjust(Adjust.brightness().level(100)) + ) + ) + ) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,fl_relative,w_0.5,o_60/dpr_1.0", () => { + const parts = + "c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,fl_relative,w_0.5,o_60/dpr_1.0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(100) + .height(100) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_white").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.5).relative()) + .adjust(Adjust.opacity(60)) + .adjust(Adjust.brightness().level(100)) + ) + ) + ) + .delivery(Delivery.dpr("1.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,fl_relative,w_0.5,o_60/dpr_2.0", () => { + const parts = + "c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,fl_relative,w_0.5,o_60/dpr_2.0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(100) + .height(100) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_white").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.5).relative()) + .adjust(Adjust.opacity(60)) + .adjust(Adjust.brightness().level(100)) + ) + ) + ) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,fl_relative,w_0.5,o_60/dpr_3.0", () => { + const parts = + "c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,fl_relative,w_0.5,o_60/dpr_3.0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(100) + .height(100) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_white").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.5).relative()) + .adjust(Adjust.opacity(60)) + .adjust(Adjust.brightness().level(100)) + ) + ) + ) + .delivery(Delivery.dpr("3.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,w_50,o_60/dpr_2.0", () => { + const parts = + "c_thumb,w_100,h_100,g_face,r_max/l_cloudinary_icon_white,e_brightness:100,w_50,o_60/dpr_2.0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(100) + .height(100) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_white").transformation( + new ImageTransformation() + .resize(Resize.scale().width(50)) + .adjust(Adjust.opacity(60)) + .adjust(Adjust.brightness().level(100)) + ) + ) + ) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("co_lightblue,e_outline:outer:100", () => { + const parts = "co_lightblue,e_outline:outer:100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.outline().mode(OutlineMode.outer()).width(100).color("lightblue") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("co_orange,e_outline:outer:15:200", () => { + const parts = "co_orange,e_outline:outer:15:200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.outline() + .mode(OutlineMode.outer()) + .width(15) + .blurLevel(200) + .color("orange") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("co_rgb:009900,e_shadow:50,x_10,y_10", () => { + const parts = "co_rgb:009900,e_shadow:50,x_10,y_10" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.shadow().strength(50).color("#009900").offsetX(10).offsetY(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("co_rgb:1a8502,e_shadow:50,x_-15,y_15", () => { + const parts = "co_rgb:1a8502,e_shadow:50,x_-15,y_15" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.shadow().strength(50).color("#1a8502").offsetX(-15).offsetY(15) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("co_rgb:20a020,e_colorize:50", () => { + const parts = "co_rgb:20a020,e_colorize:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.colorize().level(50).color("#20a020") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("co_rgb:ec9800,e_colorize:17", () => { + const parts = "co_rgb:ec9800,e_colorize:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.colorize().level(17).color("#ec9800") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("cs_icc:icc_file_public_id", () => { + const parts = "cs_icc:icc_file_public_id".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.colorSpaceFromICC("icc_file_public_id") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("cs_keep_cmyk", () => { + const parts = "cs_keep_cmyk".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.colorSpace(ColorSpace.keepCmyk()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("cs_no_cmyk", () => { + const parts = "cs_no_cmyk".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.colorSpace(ColorSpace.noCmyk()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("cs_srgb", () => { + const parts = "cs_srgb".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.colorSpace(ColorSpace.srgb()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("d_avatar.png", () => { + const parts = "d_avatar.png".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.defaultImage("avatar.png") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("d_public_id", () => { + const parts = "d_public_id".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.defaultImage("public_id") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("d_publicid", () => { + const parts = "d_publicid".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.defaultImage("publicid") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dn_150", () => { + const parts = "dn_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.density(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dn_20", () => { + const parts = "dn_20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery(Delivery.density(20)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_1.0", () => { + const parts = "dpr_1.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery(Delivery.dpr("1.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_2", () => { + const parts = "dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_2,f_auto,q_auto,bo_1px_solid_black", () => { + const parts = "dpr_2,f_auto,q_auto,bo_1px_solid_black" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "black")) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_2,f_auto,q_auto,w_800", () => { + const parts = "dpr_2,f_auto,q_auto,w_800".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(800)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_2,f_auto,q_auto/bo_1px_solid_gray", () => { + const parts = "dpr_2,f_auto,q_auto/bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_2,q_auto,f_auto", () => { + const parts = "dpr_2,q_auto,f_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_2,q_auto,f_auto,bo_1px_solid_black", () => { + const parts = "dpr_2,q_auto,f_auto,bo_1px_solid_black" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "black")) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_2,q_auto,f_auto,w_500,bo_1px_solid_gray", () => { + const parts = "dpr_2,q_auto,f_auto,w_500,bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(500)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_2,q_auto,f_auto,w_600", () => { + const parts = "dpr_2,q_auto,f_auto,w_600".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(600)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_2,q_auto,f_auto,w_600,bo_1px_solid_gray", () => { + const parts = "dpr_2,q_auto,f_auto,w_600,bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(600)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_2,q_auto,f_auto/bo_1px_solid_gray", () => { + const parts = "dpr_2,q_auto,f_auto/bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_auto", () => { + const parts = "dpr_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.dpr(Dpr.auto()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_auto,w_400/bo_1px_solid_gray", () => { + const parts = "dpr_auto,w_400/bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(400)) + .delivery(Delivery.dpr(Dpr.auto())) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_auto,w_600/bo_1px_solid_gray", () => { + const parts = "dpr_auto,w_600/bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(600)) + .delivery(Delivery.dpr(Dpr.auto())) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_auto/bo_1px_solid_gray", () => { + const parts = "dpr_auto/bo_1px_solid_gray".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr(Dpr.auto())) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_auto/bo_1px_solid_gray/h_300", () => { + const parts = "dpr_auto/bo_1px_solid_gray/h_300" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr(Dpr.auto())) + .border(Border.solid(1, "gray")) + .resize(Resize.scale().height(300)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("dpr_auto/h_300/bo_1px_solid_gray", () => { + const parts = "dpr_auto/h_300/bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr(Dpr.auto())) + .resize(Resize.scale().height(300)) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("du_2/e_volume:30", () => { + const parts = "du_2/e_volume:30".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().duration("2.0")) + .videoEdit(VideoEdit.volume(30)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("du_2/e_volume:45", () => { + const parts = "du_2/e_volume:45".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().duration("2.0")) + .videoEdit(VideoEdit.volume(45)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("du_3", () => { + const parts = "du_3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().duration("3.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("du_30,q_70:qmax_20", () => { + const parts = "du_30,q_70:qmax_20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().duration("30.0")) + .delivery(Delivery.quality(70).quantization(20)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("du_5,l_sample/e_transition,l_video:transition1/fl_layer_apply/fl_layer_apply", () => { + const parts = + "du_5,l_sample/e_transition,l_video:transition1/fl_layer_apply/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.concatenate(Concatenate.imageSource("sample")) + .transition(Transition.videoSource("transition1")) + .duration(5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("du_5,w_300,h_200/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/e_accelerate:5s,a_180/fl_layer_apply/fl_layer_apply", () => { + const parts = + "du_5,w_300,h_200/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/e_accelerate:5s,a_180/fl_layer_apply/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().duration("5.0")) + .resize(Resize.scale().width(300).height(200)) + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("dog").transformation( + new ImageTransformation() + .resize(Resize.scale().width(300).height(200)) + .videoEdit(VideoEdit.trim().duration("5.0")) + ) + ).transition( + Transition.videoSource("transition1").transformation( + new ImageTransformation() + .rotate(Rotate.byAngle(180)) + .effect(Effect.accelerate().rate("5s")) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("du_50p,so_2", () => { + const parts = "du_50p,so_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("2.0").duration("50%") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_accelerate:100", () => { + const parts = "e_accelerate:100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.accelerate().rate(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_accelerate:6", () => { + const parts = "e_accelerate:6".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.accelerate().rate(6) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_adv_redeye", () => { + const parts = "e_adv_redeye".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.advancedRedEye() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_adv_redeye/w_300,h_80,c_thumb,g_adv_eyes", () => { + const parts = "e_adv_redeye/w_300,h_80,c_thumb,g_adv_eyes" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .effect(Effect.advancedRedEye()) + .resize( + Resize.thumbnail() + .width(300) + .height(80) + .gravity(Gravity.focusOn(FocusOn.advancedEyes())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_anti_removal:95,l_cloudinary_icon,g_north_west", () => { + const parts = "e_anti_removal:95,l_cloudinary_icon,g_north_west" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("cloudinary_icon")) + .position(new Position().gravity(Gravity.compass(Compass.northWest()))) + .blendMode(BlendMode.antiRemoval(95)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:al_dente", () => { + const parts = "e_art:al_dente".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.alDente()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:athena", () => { + const parts = "e_art:athena".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.athena()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:audrey", () => { + const parts = "e_art:audrey".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.audrey()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:aurora", () => { + const parts = "e_art:aurora".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.aurora()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:daguerre", () => { + const parts = "e_art:daguerre".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.daguerre()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:eucalyptus", () => { + const parts = "e_art:eucalyptus".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.eucalyptus()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:fes", () => { + const parts = "e_art:fes".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.fes()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:frost", () => { + const parts = "e_art:frost".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.frost()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:hairspray", () => { + const parts = "e_art:hairspray".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.hairspray()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:hokusai", () => { + const parts = "e_art:hokusai".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.hokusai()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:incognito", () => { + const parts = "e_art:incognito".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.incognito()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:linen", () => { + const parts = "e_art:linen".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.linen()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:peacock", () => { + const parts = "e_art:peacock".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.peacock()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:primavera", () => { + const parts = "e_art:primavera".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.primavera()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:quartz", () => { + const parts = "e_art:quartz".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.quartz()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:red_rock", () => { + const parts = "e_art:red_rock".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.redRock()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:refresh", () => { + const parts = "e_art:refresh".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.refresh()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:sizzle", () => { + const parts = "e_art:sizzle".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.sizzle()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:sonnet", () => { + const parts = "e_art:sonnet".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.sonnet()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:ukulele", () => { + const parts = "e_art:ukulele".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.ukulele()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_art:zorro", () => { + const parts = "e_art:zorro".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.artisticFilter(ArtisticFilter.zorro()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_assist_colorblind", () => { + const parts = "e_assist_colorblind".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.assistColorBlind() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_assist_colorblind:20", () => { + const parts = "e_assist_colorblind:20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.assistColorBlind().stripesStrength(20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_assist_colorblind:8", () => { + const parts = "e_assist_colorblind:8".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.assistColorBlind().stripesStrength(8) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_assist_colorblind:8/e_simulate_colorblind", () => { + const parts = "e_assist_colorblind:8/e_simulate_colorblind" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .effect(Effect.assistColorBlind().stripesStrength(8)) + .effect(Effect.simulateColorBlind()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_assist_colorblind:xray", () => { + const parts = "e_assist_colorblind:xray".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.assistColorBlind().xray() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_auto_brightness", () => { + const parts = "e_auto_brightness".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.autoBrightness() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_auto_brightness:10", () => { + const parts = "e_auto_brightness:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.autoBrightness().blend(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_auto_brightness:17", () => { + const parts = "e_auto_brightness:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.autoBrightness().blend(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_auto_brightness:80", () => { + const parts = "e_auto_brightness:80".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.autoBrightness().blend(80) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_auto_color", () => { + const parts = "e_auto_color".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.autoColor()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_auto_color:10", () => { + const parts = "e_auto_color:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.autoColor().blend(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_auto_color:17", () => { + const parts = "e_auto_color:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.autoColor().blend(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_auto_color:80", () => { + const parts = "e_auto_color:80".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.autoColor().blend(80) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_auto_contrast", () => { + const parts = "e_auto_contrast".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.autoContrast()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_auto_contrast:10", () => { + const parts = "e_auto_contrast:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.autoContrast().blend(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_auto_contrast:17", () => { + const parts = "e_auto_contrast:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.autoContrast().blend(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_auto_contrast:80", () => { + const parts = "e_auto_contrast:80".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.autoContrast().blend(80) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_bgremoval", () => { + const parts = "e_bgremoval".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.removeBackground() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_bgremoval:ffff00", () => { + const parts = "e_bgremoval:ffff00".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.removeBackground().colorToRemove("#ffff00") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_bgremoval:screen", () => { + const parts = "e_bgremoval:screen".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.removeBackground().screen() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blackwhite", () => { + const parts = "e_blackwhite".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.blackwhite()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blackwhite:40", () => { + const parts = "e_blackwhite:40".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blackwhite().threshold(40) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blackwhite:5", () => { + const parts = "e_blackwhite:5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blackwhite().threshold(5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blue", () => { + const parts = "e_blue".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.blue()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blue:10", () => { + const parts = "e_blue:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.blue().level(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blue:17", () => { + const parts = "e_blue:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.blue().level(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blue:90", () => { + const parts = "e_blue:90".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.blue().level(90) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur", () => { + const parts = "e_blur".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.blur()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur:100", () => { + const parts = "e_blur:100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blur().strength(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur:300", () => { + const parts = "e_blur:300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blur().strength(300) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur:5", () => { + const parts = "e_blur:5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blur().strength(5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur:500/l_video:dog,w_600/w_500", () => { + const parts = "e_blur:500/l_video:dog,w_600/w_500" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .effect(Effect.blur().strength(500)) + .overlay( + Overlay.source( + Source.video("dog").transformation( + new ImageTransformation().resize(Resize.scale().width(600)) + ) + ) + ) + .resize(Resize.scale().width(500)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur:800", () => { + const parts = "e_blur:800".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blur().strength(800) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur_faces:5", () => { + const parts = "e_blur_faces:5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blur().strength(5).region(Region.faces()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur_faces:800", () => { + const parts = "e_blur_faces:800".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blur().strength(800).region(Region.faces()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur_region,h_100,w_100,x_50,y_120", () => { + const parts = "e_blur_region,h_100,w_100,x_50,y_120" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blur().region(Region.custom().width(100).height(100).x(50).y(120)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur_region:1000,h_425,w_550,x_600,y_400", () => { + const parts = "e_blur_region:1000,h_425,w_550,x_600,y_400" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blur() + .strength(1000) + .region(Region.custom().width(550).height(425).x(600).y(400)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur_region:1500,y_0.75", () => { + const parts = "e_blur_region:1500,y_0.75".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blur().strength(1500).region(Region.custom().y(0.75)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur_region:5,g_ocr_text", () => { + const parts = "e_blur_region:5,g_ocr_text".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blur().strength(5).region(Region.ocr()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur_region:800,g_ocr_text", () => { + const parts = "e_blur_region:800,g_ocr_text".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.blur().strength(800).region(Region.ocr()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_blur_region:800,g_ocr_text/h_300", () => { + const parts = "e_blur_region:800,g_ocr_text/h_300" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .effect(Effect.blur().strength(800).region(Region.ocr())) + .resize(Resize.scale().height(300)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_brightness:17", () => { + const parts = "e_brightness:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.brightness().level(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_brightness:60", () => { + const parts = "e_brightness:60".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.brightness().level(60) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_brightness_hsb", () => { + const parts = "e_brightness_hsb".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.brightnessHSB()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_brightness_hsb:-50", () => { + const parts = "e_brightness_hsb:-50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.brightnessHSB().level(-50) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_brightness_hsb:10", () => { + const parts = "e_brightness_hsb:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.brightnessHSB().level(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_cartoonify", () => { + const parts = "e_cartoonify".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.cartoonify()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_cartoonify/r_max/e_outline:100,co_lightblue/b_lightblue,h_300,c_pad", () => { + const parts = + "e_cartoonify/r_max/e_outline:100,co_lightblue/b_lightblue,h_300,c_pad" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .effect(Effect.cartoonify()) + .roundCorners(RoundCorners.max()) + .effect(Effect.outline().width(100).color("lightblue")) + .resize( + Resize.pad().height(300).background(Background.color("lightblue")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_cartoonify/r_max/e_outline:100,co_lightblue/b_lightblue/h_300", () => { + const parts = + "e_cartoonify/r_max/e_outline:100,co_lightblue/b_lightblue/h_300" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .effect(Effect.cartoonify()) + .roundCorners(RoundCorners.max()) + .effect(Effect.outline().width(100).color("lightblue")) + .backgroundColor("lightblue") + .resize(Resize.scale().height(300)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_cartoonify:20:bw", () => { + const parts = "e_cartoonify:20:bw".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.cartoonify().lineStrength(20).blackwhite() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_cartoonify:70:80", () => { + const parts = "e_cartoonify:70:80".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.cartoonify().lineStrength(70).colorReductionLevel(80) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_cartoonify:80", () => { + const parts = "e_cartoonify:80".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.cartoonify().lineStrength(80) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_cartoonify:80:100", () => { + const parts = "e_cartoonify:80:100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.cartoonify().lineStrength(80).colorReductionLevel(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_cartoonify:80:bw", () => { + const parts = "e_cartoonify:80:bw".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.cartoonify().lineStrength(80).blackwhite() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_colorize:35,co_darkviolet", () => { + const parts = "e_colorize:35,co_darkviolet".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.colorize().level(35).color("darkviolet") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_colorize:80", () => { + const parts = "e_colorize:80".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.colorize().level(80) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_contrast", () => { + const parts = "e_contrast".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.contrast()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_contrast:-70", () => { + const parts = "e_contrast:-70".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.contrast().level(-70) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_contrast:17", () => { + const parts = "e_contrast:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.contrast().level(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_contrast:50", () => { + const parts = "e_contrast:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.contrast().level(50) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_deshake", () => { + const parts = "e_deshake".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.deshake()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_deshake:32", () => { + const parts = "e_deshake:32".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.deshake().shakeStrength(ShakeStrength.pixels32()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_distort:5:34:70:10:70:75:5:55", () => { + const parts = "e_distort:5:34:70:10:70:75:5:55" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").reshape( + Reshape.distort([5, 34, 70, 10, 70, 75, 5, 55]) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_distort:arc:180", () => { + const parts = "e_distort:arc:180".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").reshape( + Reshape.distortArc("180.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_distort:arc:5", () => { + const parts = "e_distort:arc:5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").reshape( + Reshape.distortArc("5.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_fade:-6", () => { + const parts = "e_fade:-6".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.fadeOut().duration(6) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_fade:2000", () => { + const parts = "e_fade:2000".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.fadeIn().duration(2000) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_fade:2000/e_fade:-4000", () => { + const parts = "e_fade:2000/e_fade:-4000".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .effect(Effect.fadeIn().duration(2000)) + .effect(Effect.fadeOut().duration(4000)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_fade:6", () => { + const parts = "e_fade:6".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.fadeIn().duration(6) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_fill_light", () => { + const parts = "e_fill_light".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.fillLight()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_fill_light:10:20", () => { + const parts = "e_fill_light:10:20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.fillLight().blend(10).bias(20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_fill_light:17", () => { + const parts = "e_fill_light:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.fillLight().blend(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_fill_light:17:-100", () => { + const parts = "e_fill_light:17:-100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.fillLight().blend(17).bias(-100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_fill_light:70:20", () => { + const parts = "e_fill_light:70:20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.fillLight().blend(70).bias(20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_gamma:17", () => { + const parts = "e_gamma:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.gamma().level(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_gamma:50", () => { + const parts = "e_gamma:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.gamma().level(50) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_gradient_fade:symmetric:10,x_0.2,y_0.4", () => { + const parts = "e_gradient_fade:symmetric:10,x_0.2,y_0.4" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.gradientFade() + .strength(10) + .type(GradientFade.symmetric()) + .horizontalStartPoint(0.2) + .verticalStartPoint(0.4) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_gradient_fade:symmetric_pad:50,x_0.2", () => { + const parts = "e_gradient_fade:symmetric_pad:50,x_0.2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.gradientFade() + .strength(50) + .type(GradientFade.symmetricPad()) + .horizontalStartPoint(0.2) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_grayscale", () => { + const parts = "e_grayscale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.grayscale()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_green", () => { + const parts = "e_green".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.green()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_green:-30", () => { + const parts = "e_green:-30".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.green().level(-30) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_green:10", () => { + const parts = "e_green:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.green().level(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_green:17", () => { + const parts = "e_green:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.green().level(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_hue", () => { + const parts = "e_hue".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.hue()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_hue:10", () => { + const parts = "e_hue:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.hue().level(10)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_hue:17", () => { + const parts = "e_hue:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.hue().level(17)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_hue:40", () => { + const parts = "e_hue:40".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.hue().level(40)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_improve", () => { + const parts = "e_improve".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.improve()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_improve:50", () => { + const parts = "e_improve:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.improve().mode(50) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_improve:indoor", () => { + const parts = "e_improve:indoor".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.improve().mode(ImproveMode.indoor()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_improve:outdoor", () => { + const parts = "e_improve:outdoor".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.improve().mode(ImproveMode.outdoor()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_improve:outdoor:10", () => { + const parts = "e_improve:outdoor:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.improve().mode(ImproveMode.outdoor()).blend(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_improve:outdoor:50", () => { + const parts = "e_improve:outdoor:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.improve().mode(ImproveMode.outdoor()).blend(50) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_make_transparent:5", () => { + const parts = "e_make_transparent:5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.makeTransparent().tolerance("5.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_make_transparent:50,co_red", () => { + const parts = "e_make_transparent:50,co_red".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.makeTransparent().tolerance("50.0").colorToReplace("red") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_multiply,l_cloudinary_icon_blue", () => { + const parts = "e_multiply,l_cloudinary_icon_blue" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("cloudinary_icon_blue")).blendMode( + BlendMode.multiply() + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_negate", () => { + const parts = "e_negate".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.negate()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_noise:100", () => { + const parts = "e_noise:100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.noise().level(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_oil_paint", () => { + const parts = "e_oil_paint".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.oilPaint()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_oil_paint:40", () => { + const parts = "e_oil_paint:40".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.oilPaint().strength(40) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_oil_paint:5", () => { + const parts = "e_oil_paint:5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.oilPaint().strength(5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_oil_paint:70", () => { + const parts = "e_oil_paint:70".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.oilPaint().strength(70) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_opacity_threshold", () => { + const parts = "e_opacity_threshold".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.opacityThreshold() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_opacity_threshold:1/b_blue", () => { + const parts = "e_opacity_threshold:1/b_blue".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .adjust(Adjust.opacityThreshold().level(1)) + .backgroundColor("blue"); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_opacity_threshold:10", () => { + const parts = "e_opacity_threshold:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.opacityThreshold().level(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_opacity_threshold:17", () => { + const parts = "e_opacity_threshold:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.opacityThreshold().level(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_ordered_dither", () => { + const parts = "e_ordered_dither".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.dither()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_ordered_dither:12", () => { + const parts = "e_ordered_dither:12".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.dither().type(Dither.halftone16x16Orthogonal()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_ordered_dither:13", () => { + const parts = "e_ordered_dither:13".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.dither().type(Dither.circles5x5Black()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_ordered_dither:3", () => { + const parts = "e_ordered_dither:3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.dither().type(Dither.ordered3x3Dispersed()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_ordered_dither:6", () => { + const parts = "e_ordered_dither:6".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.dither().type(Dither.halftone4x4Angled()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_outline,co_orange", () => { + const parts = "e_outline,co_orange".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.outline().color("orange") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_outline:$foo:100:5,co_red", () => { + const parts = "e_outline:$foo:100:5,co_red".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.outline().mode("$foo").width(100).blurLevel(5).color("red") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_outline:fill,co_orange", () => { + const parts = "e_outline:fill,co_orange".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.outline().mode(OutlineMode.fill()).color("orange") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_outline:inner,co_orange", () => { + const parts = "e_outline:inner,co_orange".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.outline().mode(OutlineMode.inner()).color("orange") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_outline:inner:100:5,co_rgb:ffffff", () => { + const parts = "e_outline:inner:100:5,co_rgb:ffffff" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.outline() + .mode(OutlineMode.inner()) + .width(100) + .blurLevel(5) + .color("#ffffff") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_outline:inner_fill,co_orange", () => { + const parts = "e_outline:inner_fill,co_orange" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.outline().mode(OutlineMode.innerFill()).color("orange") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_outline:outer,co_orange", () => { + const parts = "e_outline:outer,co_orange".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.outline().mode(OutlineMode.outer()).color("orange") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_outline:outer:20:200", () => { + const parts = "e_outline:outer:20:200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.outline().mode(OutlineMode.outer()).width(20).blurLevel(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_outline:outer:20:200/e_red:50/e_sharpen/e_improve/o_70", () => { + const parts = "e_outline:outer:20:200/e_red:50/e_sharpen/e_improve/o_70" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .effect( + Effect.outline().mode(OutlineMode.outer()).width(20).blurLevel(200) + ) + .adjust(Adjust.red().level(50)) + .adjust(Adjust.sharpen()) + .adjust(Adjust.improve()) + .adjust(Adjust.opacity(70)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_outline:outer:20:200/l_cloudinary_icon/e_red:50/e_sharpen/e_improve/o_70", () => { + const parts = + "e_outline:outer:20:200/l_cloudinary_icon/e_red:50/e_sharpen/e_improve/o_70" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .effect( + Effect.outline().mode(OutlineMode.outer()).width(20).blurLevel(200) + ) + .overlay(Overlay.source(Source.image("cloudinary_icon"))) + .adjust(Adjust.red().level(50)) + .adjust(Adjust.sharpen()) + .adjust(Adjust.improve()) + .adjust(Adjust.opacity(70)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_outline:outer:20:200/l_cloudinary_icon_white/e_red:50/e_sharpen/e_improve/o_70", () => { + const parts = + "e_outline:outer:20:200/l_cloudinary_icon_white/e_red:50/e_sharpen/e_improve/o_70" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .effect( + Effect.outline().mode(OutlineMode.outer()).width(20).blurLevel(200) + ) + .overlay(Overlay.source(Source.image("cloudinary_icon_white"))) + .adjust(Adjust.red().level(50)) + .adjust(Adjust.sharpen()) + .adjust(Adjust.improve()) + .adjust(Adjust.opacity(70)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_overlay,l_cloudinary_icon_blue", () => { + const parts = "e_overlay,l_cloudinary_icon_blue" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("cloudinary_icon_blue")).blendMode( + BlendMode.overlay() + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_pixelate", () => { + const parts = "e_pixelate".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.pixelate()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_pixelate:17", () => { + const parts = "e_pixelate:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.pixelate().squareSize(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_pixelate:20", () => { + const parts = "e_pixelate:20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.pixelate().squareSize(20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_pixelate_faces:15", () => { + const parts = "e_pixelate_faces:15".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.pixelate().squareSize(15).region(Region.faces()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_pixelate_faces:5", () => { + const parts = "e_pixelate_faces:5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.pixelate().squareSize(5).region(Region.faces()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_pixelate_faces:9", () => { + const parts = "e_pixelate_faces:9".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.pixelate().squareSize(9).region(Region.faces()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_pixelate_region,w_100", () => { + const parts = "e_pixelate_region,w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.pixelate().region(Region.custom().width(100)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_pixelate_region:2,h_100,w_200,x_1,y_3", () => { + const parts = "e_pixelate_region:2,h_100,w_200,x_1,y_3" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.pixelate() + .squareSize(2) + .region(Region.custom().width(200).height(100).x(1).y(3)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_pixelate_region:25,y_0.75", () => { + const parts = "e_pixelate_region:25,y_0.75".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.pixelate().squareSize(25).region(Region.custom().y(0.75)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_pixelate_region:35,h_425,w_550,x_600,y_400", () => { + const parts = "e_pixelate_region:35,h_425,w_550,x_600,y_400" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.pixelate() + .squareSize(35) + .region(Region.custom().width(550).height(425).x(600).y(400)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_pixelate_region:5,g_ocr_text", () => { + const parts = "e_pixelate_region:5,g_ocr_text" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.pixelate().squareSize(5).region(Region.ocr()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_preview,fl_getinfo", () => { + const parts = "e_preview,fl_getinfo".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.preview()) + .addFlag(Flag.getInfo()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_preview:duration_12.0:max_seg_3:min_seg_dur_3.0", () => { + const parts = "e_preview:duration_12.0:max_seg_3:min_seg_dur_3.0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.preview() + .duration("12.0") + .maximumSegments(3) + .minimumSegmentDuration("3.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_preview:duration_5", () => { + const parts = "e_preview:duration_5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.preview().duration("5.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_preview:duration_5.0", () => { + const parts = "e_preview:duration_5.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.preview().duration("5.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_preview:duration_5.0:max_seg_10:min_seg_dur_1.0", () => { + const parts = "e_preview:duration_5.0:max_seg_10:min_seg_dur_1.0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.preview() + .duration("5.0") + .maximumSegments(10) + .minimumSegmentDuration("1.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_recolor:0.3:0.7:0.1:0.2:0.3:0.6:0.1:0.2:0.2:0.5:0.1:0.2", () => { + const parts = "e_recolor:0.3:0.7:0.1:0.2:0.3:0.6:0.1:0.2:0.2:0.5:0.1:0.2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.recolor([ + [0.3, 0.7, 0.1, 0.2], + [0.3, 0.6, 0.1, 0.2], + [0.2, 0.5, 0.1, 0.2], + ]) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_recolor:0.3:0.7:0.1:0.3:0.6:0.1:0.2:0.5:0.1", () => { + const parts = "e_recolor:0.3:0.7:0.1:0.3:0.6:0.1:0.2:0.5:0.1" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.recolor([ + [0.3, 0.7, 0.1], + [0.3, 0.6, 0.1], + [0.2, 0.5, 0.1], + ]) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_red", () => { + const parts = "e_red".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.red()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_red:10", () => { + const parts = "e_red:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.red().level(10)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_red:17", () => { + const parts = "e_red:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.red().level(17)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_red:50", () => { + const parts = "e_red:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.red().level(50)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_redeye", () => { + const parts = "e_redeye".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.redEye()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_replace_color:2F4F4F:20", () => { + const parts = "e_replace_color:2F4F4F:20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.replaceColor("#2F4F4F").tolerance(20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_replace_color:maroon:80:2b38aa", () => { + const parts = "e_replace_color:maroon:80:2b38aa" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.replaceColor("maroon").fromColor("#2b38aa").tolerance(80) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_replace_color:maroon:80:2b38aa/w_250", () => { + const parts = "e_replace_color:maroon:80:2b38aa/w_250" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .adjust(Adjust.replaceColor("maroon").fromColor("#2b38aa").tolerance(80)) + .resize(Resize.scale().width(250)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_replace_color:red:5:blue", () => { + const parts = "e_replace_color:red:5:blue".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.replaceColor("red").fromColor("blue").tolerance(5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_replace_color:saddlebrown", () => { + const parts = "e_replace_color:saddlebrown".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.replaceColor("saddlebrown") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_replace_color:silver:55:89b8ed", () => { + const parts = "e_replace_color:silver:55:89b8ed" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.replaceColor("silver").fromColor("#89b8ed").tolerance(55) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_reverse", () => { + const parts = "e_reverse".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.reverse()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_reverse,fl_splice,l_video:ski_jump/l_video:ski_jump,fl_splice,e_accelerate:-50/e_brightness:10,r_max", () => { + const parts = + "e_reverse,fl_splice,l_video:ski_jump/l_video:ski_jump,fl_splice,e_accelerate:-50/e_brightness:10,r_max" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("ski_jump").transformation( + new ImageTransformation().effect(Effect.reverse()) + ) + ) + ) + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("ski_jump").transformation( + new ImageTransformation().effect(Effect.accelerate().rate(-50)) + ) + ) + ) + .roundCorners(RoundCorners.max()) + .adjust(Adjust.brightness().level(10)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_saturation:17", () => { + const parts = "e_saturation:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.saturation().level(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_saturation:50", () => { + const parts = "e_saturation:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.saturation().level(50) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_saturation:70", () => { + const parts = "e_saturation:70".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.saturation().level(70) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_screen,l_cloudinary_icon", () => { + const parts = "e_screen,l_cloudinary_icon".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("cloudinary_icon")).blendMode( + BlendMode.screen() + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_screen,l_cloudinary_icon_blue", () => { + const parts = "e_screen,l_cloudinary_icon_blue" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("cloudinary_icon_blue")).blendMode( + BlendMode.screen() + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_sepia", () => { + const parts = "e_sepia".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.sepia()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_sepia:17", () => { + const parts = "e_sepia:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.sepia().level(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_sepia:17/c_crop,h_200,w_100", () => { + const parts = "e_sepia:17/c_crop,h_200,w_100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .effect(Effect.sepia().level(17)) + .resize(Resize.crop().width(100).height(200)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_sepia:50", () => { + const parts = "e_sepia:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.sepia().level(50) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_shadow:50,x_10,y_10", () => { + const parts = "e_shadow:50,x_10,y_10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.shadow().strength(50).offsetX(10).offsetY(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_sharpen", () => { + const parts = "e_sharpen".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.sharpen()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_sharpen:10", () => { + const parts = "e_sharpen:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.sharpen().strength(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_sharpen:17", () => { + const parts = "e_sharpen:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.sharpen().strength(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_sharpen:400", () => { + const parts = "e_sharpen:400".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.sharpen().strength(400) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_shear:20.0:0.0", () => { + const parts = "e_shear:20.0:0.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").reshape( + Reshape.shear("20.0", "0.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_shear:23.0:50.0", () => { + const parts = "e_shear:23.0:50.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").reshape( + Reshape.shear("23.0", "50.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_simulate_colorblind", () => { + const parts = "e_simulate_colorblind".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.simulateColorBlind() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_simulate_colorblind/h_200", () => { + const parts = "e_simulate_colorblind/h_200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .effect(Effect.simulateColorBlind()) + .resize(Resize.scale().height(200)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_simulate_colorblind:deuteranopia", () => { + const parts = "e_simulate_colorblind:deuteranopia" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.simulateColorBlind().condition(SimulateColorBlind.deuteranopia()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_simulate_colorblind:protanopia", () => { + const parts = "e_simulate_colorblind:protanopia" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.simulateColorBlind().condition(SimulateColorBlind.protanopia()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_style_transfer,l_davinci_mona_lisa", () => { + const parts = "e_style_transfer,l_davinci_mona_lisa" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.styleTransfer(Source.image("davinci_mona_lisa")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_style_transfer,l_lighthouse", () => { + const parts = "e_style_transfer,l_lighthouse" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.styleTransfer(Source.image("lighthouse")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_style_transfer:preserve_color:40,l_lighthouse", () => { + const parts = "e_style_transfer:preserve_color:40,l_lighthouse" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.styleTransfer(Source.image("lighthouse")) + .preserveColor() + .strength(40) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_style_transfer:preserve_color:40,l_lighthouse/e_sepia/fl_layer_apply", () => { + const parts = + "e_style_transfer:preserve_color:40,l_lighthouse/e_sepia/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.styleTransfer( + Source.image("lighthouse").transformation( + new ImageTransformation().effect(Effect.sepia()) + ) + ) + .preserveColor() + .strength(40) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_tint", () => { + const parts = "e_tint".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.tint()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_tint:100:red:blue:yellow", () => { + const parts = "e_tint:100:red:blue:yellow".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.tint("100:red:blue:yellow") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_tint:20", () => { + const parts = "e_tint:20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.tint(20)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_tint:50:red:blue", () => { + const parts = "e_tint:50:red:blue".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.tint("50:red:blue") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_tint:equalize:80:red:50p:blue:60p:yellow:40p", () => { + const parts = "e_tint:equalize:80:red:50p:blue:60p:yellow:40p" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.tint("equalize:80:red:50p:blue:60p:yellow:40p") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_tint:equalize:80:red:blue:yellow", () => { + const parts = "e_tint:equalize:80:red:blue:yellow" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.tint("equalize:80:red:blue:yellow") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_trim", () => { + const parts = "e_trim".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").reshape(Reshape.trim()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_trim:50", () => { + const parts = "e_trim:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").reshape( + Reshape.trim().colorSimilarity(50) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_trim:50:yellow", () => { + const parts = "e_trim:50:yellow".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").reshape( + Reshape.trim().colorSimilarity(50).colorOverride("yellow") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_unsharp_mask", () => { + const parts = "e_unsharp_mask".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.unsharpMask()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_unsharp_mask:10", () => { + const parts = "e_unsharp_mask:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.unsharpMask().strength(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_unsharp_mask:17", () => { + const parts = "e_unsharp_mask:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.unsharpMask().strength(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_unsharp_mask:500", () => { + const parts = "e_unsharp_mask:500".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.unsharpMask().strength(500) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_vectorize:colors:15:detail:200:despeckle:0.2:paths:90:corners:100", () => { + const parts = + "e_vectorize:colors:15:detail:200:despeckle:0.2:paths:90:corners:100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.vectorize() + .numOfColors(15) + .detailsLevel(200) + .despeckleLevel(0.2) + .paths(90) + .cornersLevel(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_vectorize:colors:17", () => { + const parts = "e_vectorize:colors:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.vectorize().numOfColors(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_vectorize:colors:17:detail:100", () => { + const parts = "e_vectorize:colors:17:detail:100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.vectorize().numOfColors(17).detailsLevel(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_vectorize:colors:3:detail:0.5", () => { + const parts = "e_vectorize:colors:3:detail:0.5" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.vectorize().numOfColors(3).detailsLevel(0.5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_vectorize:detail:200", () => { + const parts = "e_vectorize:detail:200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.vectorize().detailsLevel(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_vibrance", () => { + const parts = "e_vibrance".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.vibrance()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_vibrance:10", () => { + const parts = "e_vibrance:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.vibrance().strength(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_vibrance:17", () => { + const parts = "e_vibrance:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.vibrance().strength(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_vibrance:70", () => { + const parts = "e_vibrance:70".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.vibrance().strength(70) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_viesus_correct", () => { + const parts = "e_viesus_correct".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.viesusCorrect()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_viesus_correct:no_redeye", () => { + const parts = "e_viesus_correct:no_redeye".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.viesusCorrect().noRedEye() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_viesus_correct:no_redeye:skin_saturation_5", () => { + const parts = "e_viesus_correct:no_redeye:skin_saturation_5" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.viesusCorrect().noRedEye().skinSaturation(5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_viesus_correct:skin_saturation", () => { + const parts = "e_viesus_correct:skin_saturation" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.viesusCorrect().skinSaturation() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_viesus_correct:skin_saturation_20", () => { + const parts = "e_viesus_correct:skin_saturation_20" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.viesusCorrect().skinSaturation(20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_vignette", () => { + const parts = "e_vignette".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect(Effect.vignette()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_vignette:17", () => { + const parts = "e_vignette:17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.vignette().strength(17) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_vignette:30", () => { + const parts = "e_vignette:30".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").effect( + Effect.vignette().strength(30) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_volume:10", () => { + const parts = "e_volume:10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.volume(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_volume:50", () => { + const parts = "e_volume:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.volume(50) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_volume:5db", () => { + const parts = "e_volume:5db".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.volume("5db") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("e_volume:mute", () => { + const parts = "e_volume:mute".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.volume(Volume.mute()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("eo_10", () => { + const parts = "eo_10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().endOffset("10.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("eo_3", () => { + const parts = "eo_3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().endOffset("3.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto", () => { + const parts = "f_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.format(Format.auto()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,dpr_2,q_auto,h_150,bo_1px_solid_gray", () => { + const parts = "f_auto,dpr_2,q_auto,h_150,bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().height(150)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,dpr_2,q_auto,h_200,bo_1px_solid_gray", () => { + const parts = "f_auto,dpr_2,q_auto,h_200,bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().height(200)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,dpr_auto", () => { + const parts = "f_auto,dpr_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr(Dpr.auto())) + .delivery(Delivery.format(Format.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,fl_preserve_transparency", () => { + const parts = "f_auto,fl_preserve_transparency" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.format(Format.auto()).preserveTransparency() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,q_auto", () => { + const parts = "f_auto,q_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,q_auto,dpr_2", () => { + const parts = "f_auto,q_auto,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,q_auto,dpr_2,h_150,bo_1px_solid_gray", () => { + const parts = "f_auto,q_auto,dpr_2,h_150,bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().height(150)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,q_auto,dpr_2,h_200,bo_1px_solid_gray", () => { + const parts = "f_auto,q_auto,dpr_2,h_200,bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().height(200)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,q_auto,dpr_2/bo_1px_solid_gray/w_500", () => { + const parts = "f_auto,q_auto,dpr_2/bo_1px_solid_gray/w_500" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(500)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,q_auto,dpr_auto,w_300", () => { + const parts = "f_auto,q_auto,dpr_auto,w_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .delivery(Delivery.dpr(Dpr.auto())) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,q_auto,h_150,dpr_2,bo_1px_solid_gray", () => { + const parts = "f_auto,q_auto,h_150,dpr_2,bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().height(150)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,q_auto,w_500,dpr_2,bo_1px_solid_gray", () => { + const parts = "f_auto,q_auto,w_500,dpr_2,bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(500)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,q_auto/", () => { + const parts = "f_auto,q_auto/".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("/sample") + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto,w_150,dpr_2,q_auto", () => { + const parts = "f_auto,w_150,dpr_2,q_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_auto/dpr_auto", () => { + const parts = "f_auto/dpr_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.dpr(Dpr.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_gif,fl_lossy", () => { + const parts = "f_gif,fl_lossy".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.format(Format.gif()).lossy() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_gif/ar_1,b_rgb:a17ec5,c_fill,fl_animated,h_200", () => { + const parts = "f_gif/ar_1,b_rgb:a17ec5,c_fill,fl_animated,h_200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.format(Format.gif())) + .resize(Resize.fill().height(200).aspectRatio("1.0")) + .backgroundColor("#a17ec5") + .transcode(Transcode.toAnimated()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_glb", () => { + const parts = "f_glb".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.format(Format.glb()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_jpg", () => { + const parts = "f_jpg".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.format(Format.jpg()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_jpg,fl_progressive", () => { + const parts = "f_jpg,fl_progressive".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.format(Format.jpg()).progressive(Progressive.progressive()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_jpg,fl_progressive:semi", () => { + const parts = "f_jpg,fl_progressive:semi".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.format(Format.jpg()).progressive(Progressive.semi()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_jpg,u_some", () => { + const parts = "f_jpg,u_some".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").underlay( + Underlay.source( + Source.image("some").transformation( + new ImageTransformation().delivery(Delivery.format(Format.jpg())) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_jpg/u_some", () => { + const parts = "f_jpg/u_some".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.format(Format.jpg())) + .underlay(Underlay.source(Source.image("some"))); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_mp3", () => { + const parts = "f_mp3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.format(Format.audioMp3()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_mp4", () => { + const parts = "f_mp4".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.format(Format.videoMp4()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_mp4,w_300", () => { + const parts = "f_mp4,w_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .delivery(Delivery.format(Format.videoMp4())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_mp4/b_rgb:d5d2ca,h_300,fl_animated", () => { + const parts = "f_mp4/b_rgb:d5d2ca,h_300,fl_animated" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.format(Format.videoMp4())) + .resize(Resize.scale().height(300)) + .backgroundColor("#d5d2ca") + .transcode(Transcode.toAnimated()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_png", () => { + const parts = "f_png".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.format(Format.png()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_png/a_90,ar_1,b_rgb:a17ec5,c_fill,g_auto,h_200", () => { + const parts = "f_png/a_90,ar_1,b_rgb:a17ec5,c_fill,g_auto,h_200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.format(Format.png())) + .rotate(Rotate.byAngle(90)) + .resize( + Resize.fill() + .height(200) + .aspectRatio("1.0") + .gravity(Gravity.autoGravity()) + ) + .backgroundColor("#a17ec5"); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_png/w_800/l_text:Unkempt_250_bold:Water,fl_cutter,e_shadow", () => { + const parts = "f_png/w_800/l_text:Unkempt_250_bold:Water,fl_cutter,e_shadow" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.format(Format.png())) + .resize(Resize.scale().width(800)) + .reshape( + Reshape.cutByImage( + Source.text( + "Water", + new TextStyle("Unkempt", 250).fontWeight(FontWeight.bold()) + ).transformation(new ImageTransformation().effect(Effect.shadow())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_webm", () => { + const parts = "f_webm".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.format(Format.videoWebm()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("f_webp,fl_animated,fl_awebp,vs_10", () => { + const parts = "f_webp,fl_animated,fl_awebp,vs_10" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.toAnimated(AnimatedFormat.webp()).sampling(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_animated,f_auto", () => { + const parts = "fl_animated,f_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.toAnimated(AnimatedFormat.auto()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_animated,f_gif", () => { + const parts = "fl_animated,f_gif".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.toAnimated(AnimatedFormat.gif()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_apng", () => { + const parts = "fl_apng".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addFlag("apng"); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_attachment", () => { + const parts = "fl_attachment".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addFlag(Flag.attachment()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_attachment:pretty_flower", () => { + const parts = "fl_attachment:pretty_flower".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addFlag( + Flag.attachment("pretty_flower") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_attachment:pretty_flower,f_auto", () => { + const parts = "fl_attachment:pretty_flower,f_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.format(Format.auto())) + .addFlag(Flag.attachment("pretty_flower")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_clip,pg_2", () => { + const parts = "fl_clip,pg_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.clip().byIndex(2) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_clip,pg_name:path", () => { + const parts = "fl_clip,pg_name:path".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.clip().byName("path") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_clip,pg_name:stones", () => { + const parts = "fl_clip,pg_name:stones".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.clip().byName("stones") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_clip_evenodd", () => { + const parts = "fl_clip_evenodd".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.clip().evenOdd() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_clip_evenodd,pg_2", () => { + const parts = "fl_clip_evenodd,pg_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.clip().byIndex(2).evenOdd() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_draco", () => { + const parts = "fl_draco".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addFlag("draco"); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_keep_iptc", () => { + const parts = "fl_keep_iptc".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addFlag(Flag.keepIptc()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_lossy", () => { + const parts = "fl_lossy".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.format(Format.gif()).lossy() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_lossy,q_50", () => { + const parts = "fl_lossy,q_50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.format(Format.gif()).lossy()) + .delivery(Delivery.quality(50)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_progressive,r_10", () => { + const parts = "fl_progressive,r_10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .roundCorners(RoundCorners.byRadius(10)) + .addFlag(Flag.progressive()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_region_relative,g_adv_eyes,l_glasses,w_1.5", () => { + const parts = "fl_region_relative,g_adv_eyes,l_glasses,w_1.5" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("glasses").transformation( + new ImageTransformation().resize( + Resize.scale().width(1.5).regionRelative() + ) + ) + ).position( + new Position().gravity(Gravity.focusOn(FocusOn.advancedEyes())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_region_relative,g_adv_eyes,l_glasses,w_1.7", () => { + const parts = "fl_region_relative,g_adv_eyes,l_glasses,w_1.7" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("glasses").transformation( + new ImageTransformation().resize( + Resize.scale().width(1.7).regionRelative() + ) + ) + ).position( + new Position().gravity(Gravity.focusOn(FocusOn.advancedEyes())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_region_relative,g_adv_faces,l_silver_face_mask,w_1.1", () => { + const parts = "fl_region_relative,g_adv_faces,l_silver_face_mask,w_1.1" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("silver_face_mask").transformation( + new ImageTransformation().resize( + Resize.scale().width(1.1).regionRelative() + ) + ) + ).position( + new Position().gravity(Gravity.focusOn(FocusOn.advancedFaces())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_splice,l_sample/fl_layer_apply", () => { + const parts = "fl_splice,l_sample/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.concatenate(Concatenate.imageSource("sample")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_splice,l_video:dog/fl_layer_apply", () => { + const parts = "fl_splice,l_video:dog/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.concatenate(Concatenate.videoSource("dog")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_splice,l_video:dog/fl_layer_apply,so_0", () => { + const parts = "fl_splice,l_video:dog/fl_layer_apply,so_0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.concatenate(Concatenate.videoSource("dog")).prepend() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fl_whatever", () => { + const parts = "fl_whatever".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").addFlag("whatever"); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fn_pre:remote:aHR0cHM6Ly9teS5wcmVwcm9jZXNzLmN1c3RvbS9mdW5jdGlvbg==", () => { + const parts = + "fn_pre:remote:aHR0cHM6Ly9teS5wcmVwcm9jZXNzLmN1c3RvbS9mdW5jdGlvbg==" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").customFunction( + CustomFunction.remote( + "https://my.preprocess.custom/function" + ).preprocess() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fn_remote:aHR0cHM6Ly9teS5leGFtcGxlLmN1c3RvbS9mdW5jdGlvbg==", () => { + const parts = "fn_remote:aHR0cHM6Ly9teS5leGFtcGxlLmN1c3RvbS9mdW5jdGlvbg==" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").customFunction( + CustomFunction.remote("https://my.example.custom/function") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fn_wasm:my_example.wasm", () => { + const parts = "fn_wasm:my_example.wasm".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").customFunction( + CustomFunction.wasm("my_example.wasm") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fps_1-5", () => { + const parts = "fps_1-5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.fpsRange(1, 5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fps_10", () => { + const parts = "fps_10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode(Transcode.fps(10)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fps_10-", () => { + const parts = "fps_10-".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.fpsRange(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("fps_10-20", () => { + const parts = "fps_10-20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.fpsRange(10, 20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("g_face,c_crop", () => { + const parts = "g_face,c_crop".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("g_face,c_thumb,w_150,h_150", () => { + const parts = "g_face,c_thumb,w_150,h_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(150) + .height(150) + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("g_face,c_thumb,w_150,h_150,z_0.7", () => { + const parts = "g_face,c_thumb,w_150,h_150,z_0.7" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(150) + .height(150) + .zoom(0.7) + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("g_face,w_500,c_thumb,fl_getinfo", () => { + const parts = "g_face,w_500,c_thumb,fl_getinfo" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail().width(500).gravity(Gravity.focusOn(FocusOn.face())) + ) + .addFlag(Flag.getInfo()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("g_north,l_text:arial_60:watchme,y_20", () => { + const parts = "g_north,l_text:arial_60:watchme,y_20" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.text("watchme", new TextStyle("arial", 60)) + ).position( + new Position().gravity(Gravity.compass(Compass.north())).offsetY(20) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("g_south,l_text:Arial_200:Flower", () => { + const parts = "g_south,l_text:Arial_200:Flower" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.text("Flower", new TextStyle("Arial", 200)) + ).position(new Position().gravity(Gravity.compass(Compass.south()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_100,w_190", () => { + const parts = "h_100,w_190".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(190).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_105/e_shadow:50,x_10,y_10", () => { + const parts = "h_105/e_shadow:50,x_10,y_10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(105)) + .effect(Effect.shadow().strength(50).offsetX(10).offsetY(10)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_120", () => { + const parts = "h_120".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().height(120) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_150", () => { + const parts = "h_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().height(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_150,c_scale,fl_ignore_aspect_ratio", () => { + const parts = "h_150,c_scale,fl_ignore_aspect_ratio" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale() + .height(150) + .aspectRatio(AspectRatio.ignoreInitialAspectRatio()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_150,dpr_2.0", () => { + const parts = "h_150,dpr_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(150)) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_150,dpr_auto", () => { + const parts = "h_150,dpr_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(150)) + .delivery(Delivery.dpr(Dpr.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_150,fl_ignore_aspect_ratio", () => { + const parts = "h_150,fl_ignore_aspect_ratio".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale() + .height(150) + .aspectRatio(AspectRatio.ignoreInitialAspectRatio()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_150,w_150,c_pad,b_auto:predominant", () => { + const parts = "h_150,w_150,c_pad,b_auto:predominant" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(150).height(150).background(Background.predominant()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_150,w_150,c_pad,b_auto:predominant_gradient:2:diagonal_desc", () => { + const parts = + "h_150,w_150,c_pad,b_auto:predominant_gradient:2:diagonal_desc" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad() + .width(150) + .height(150) + .background( + Background.predominantGradient() + .gradientDirection(GradientDirection.diagonalDesc()) + .gradientColors(2) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_150/l_play_icon2,w_0.1", () => { + const parts = "h_150/l_play_icon2,w_0.1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(150)) + .overlay( + Overlay.source( + Source.image("play_icon2").transformation( + new ImageTransformation().resize(Resize.scale().width(0.1)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_150/q_auto,f_auto,dpr_2/bo_1px_solid_gray", () => { + const parts = "h_150/q_auto,f_auto,dpr_2/bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(150)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_200", () => { + const parts = "h_200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().height(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_200,c_scale/e_outline:15:200,co_orange", () => { + const parts = "h_200,c_scale/e_outline:15:200,co_orange" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(200)) + .effect(Effect.outline().width(15).blurLevel(200).color("orange")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_200,w_200,c_pad,b_auto:border", () => { + const parts = "h_200,w_200,c_pad,b_auto:border" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(200).height(200).background(Background.border()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_200,w_200,c_pad,b_auto:border_contrast", () => { + const parts = "h_200,w_200,c_pad,b_auto:border_contrast" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad() + .width(200) + .height(200) + .background(Background.border().contrast()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_200,w_200,c_pad,b_auto:predominant", () => { + const parts = "h_200,w_200,c_pad,b_auto:predominant" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(200).height(200).background(Background.predominant()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_200,w_200,c_pad,b_auto:predominant_contrast", () => { + const parts = "h_200,w_200,c_pad,b_auto:predominant_contrast" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad() + .width(200) + .height(200) + .background(Background.predominant().contrast()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_200/u_docs:iphone_template,h_300,a_90", () => { + const parts = "h_200/u_docs:iphone_template,h_300,a_90" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(200)) + .underlay( + Underlay.source( + Source.image("docs/iphone_template").transformation( + new ImageTransformation() + .rotate(Rotate.byAngle(90)) + .resize(Resize.scale().height(300)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_200/u_docs:transparent_grid,w_1.0,h_1.0,fl_relative,c_crop,o_50", () => { + const parts = + "h_200/u_docs:transparent_grid,w_1.0,h_1.0,fl_relative,c_crop,o_50" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(200)) + .underlay( + Underlay.source( + Source.image("docs/transparent_grid").transformation( + new ImageTransformation() + .resize(Resize.crop().width("1.0").height("1.0").relative()) + .adjust(Adjust.opacity(50)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_225/q_auto,f_auto,bo_1px_solid_black", () => { + const parts = "h_225/q_auto,f_auto,bo_1px_solid_black" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(225)) + .border(Border.solid(1, "black")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_250", () => { + const parts = "h_250".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().height(250) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_250,w_150,c_fill,g_auto/f_auto/q_auto", () => { + const parts = "h_250,w_150,c_fill,g_auto/f_auto/q_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill().width(150).height(250).gravity(Gravity.autoGravity()) + ) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_300", () => { + const parts = "h_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().height(300) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_300,ar_3:4,c_fill,g_auto:face", () => { + const parts = "h_300,ar_3:4,c_fill,g_auto:face" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .height(300) + .aspectRatio("3:4") + .gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.face())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_300,ar_3:4,c_fill,g_auto:faces", () => { + const parts = "h_300,ar_3:4,c_fill,g_auto:faces" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .height(300) + .aspectRatio("3:4") + .gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.faces())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_300,dpr_2.0", () => { + const parts = "h_300,dpr_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(300)) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_300,q_auto,f_auto,dpr_2", () => { + const parts = "h_300,q_auto,f_auto,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(300)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_300,w_300", () => { + const parts = "h_300,w_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(300).height(300) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_300,w_300,c_pad,b_auto:predominant", () => { + const parts = "h_300,w_300,c_pad,b_auto:predominant" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(300).height(300).background(Background.predominant()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_300,w_300,c_pad,b_auto:predominant/e_gradient_fade:symmetric_pad,x_0.5", () => { + const parts = + "h_300,w_300,c_pad,b_auto:predominant/e_gradient_fade:symmetric_pad,x_0.5" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.pad().width(300).height(300).background(Background.predominant()) + ) + .effect( + Effect.gradientFade() + .type(GradientFade.symmetricPad()) + .horizontalStartPoint(0.5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_300,w_300,c_pad,b_auto:predominant_gradient:2:diagonal_desc", () => { + const parts = + "h_300,w_300,c_pad,b_auto:predominant_gradient:2:diagonal_desc" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad() + .width(300) + .height(300) + .background( + Background.predominantGradient() + .gradientDirection(GradientDirection.diagonalDesc()) + .gradientColors(2) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_300,w_300,c_pad,b_auto:predominant_gradient:4:palette_red_green_blue_orange", () => { + const parts = + "h_300,w_300,c_pad,b_auto:predominant_gradient:4:palette_red_green_blue_orange" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad() + .width(300) + .height(300) + .background( + Background.predominantGradient() + .gradientColors(4) + .palette("red", "green", "blue", "orange") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_300,w_300,c_pad,b_auto:predominant_gradient_contrast:4", () => { + const parts = "h_300,w_300,c_pad,b_auto:predominant_gradient_contrast:4" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad() + .width(300) + .height(300) + .background( + Background.predominantGradient().contrast().gradientColors(4) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_310", () => { + const parts = "h_310".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().height(310) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_320,c_scale/c_pad,h_320,w_480,b_blurred:400:15/e_volume:mute/e_accelerate:100", () => { + const parts = + "h_320,c_scale/c_pad,h_320,w_480,b_blurred:400:15/e_volume:mute/e_accelerate:100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(320)) + .resize( + Resize.pad() + .width(480) + .height(320) + .background(Background.blurred().intensity(400).brightness(15)) + ) + .videoEdit(VideoEdit.volume(Volume.mute())) + .effect(Effect.accelerate().rate(100)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_320,w_480", () => { + const parts = "h_320,w_480".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(480).height(320) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_320,w_480/h_150", () => { + const parts = "h_320,w_480/h_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(480).height(320)) + .resize(Resize.scale().height(150)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_350/q_auto,dpr_auto", () => { + const parts = "h_350/q_auto,dpr_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(350)) + .delivery(Delivery.dpr(Dpr.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_375/u_docs:bg_beach,g_south,w_800", () => { + const parts = "h_375/u_docs:bg_beach,g_south,w_800" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(375)) + .underlay( + Underlay.source( + Source.image("docs/bg_beach").transformation( + new ImageTransformation().resize(Resize.scale().width(800)) + ) + ).position(new Position().gravity(Gravity.compass(Compass.south()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_375/u_docs:bg_beach,g_south,w_800/h_200", () => { + const parts = "h_375/u_docs:bg_beach,g_south,w_800/h_200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(375)) + .underlay( + Underlay.source( + Source.image("docs/bg_beach").transformation( + new ImageTransformation().resize(Resize.scale().width(800)) + ) + ).position(new Position().gravity(Gravity.compass(Compass.south()))) + ) + .resize(Resize.scale().height(200)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_375/u_docs:rainbow_field,g_south,w_800", () => { + const parts = "h_375/u_docs:rainbow_field,g_south,w_800" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(375)) + .underlay( + Underlay.source( + Source.image("docs/rainbow_field").transformation( + new ImageTransformation().resize(Resize.scale().width(800)) + ) + ).position(new Position().gravity(Gravity.compass(Compass.south()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_375/u_docs:rainbow_field,g_south,w_800/h_200", () => { + const parts = "h_375/u_docs:rainbow_field,g_south,w_800/h_200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(375)) + .underlay( + Underlay.source( + Source.image("docs/rainbow_field").transformation( + new ImageTransformation().resize(Resize.scale().width(800)) + ) + ).position(new Position().gravity(Gravity.compass(Compass.south()))) + ) + .resize(Resize.scale().height(200)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_400,ar_3:4,c_fill,g_auto:face", () => { + const parts = "h_400,ar_3:4,c_fill,g_auto:face" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .height(400) + .aspectRatio("3:4") + .gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.face())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_400,ar_9:16,c_fill_pad,g_auto/so_8", () => { + const parts = "h_400,ar_9:16,c_fill_pad,g_auto/so_8" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fillPad() + .height(400) + .aspectRatio("9:16") + .gravity(Gravity.autoGravity()) + ) + .videoEdit(VideoEdit.trim().startOffset("8.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_400,w_244,c_fill", () => { + const parts = "h_400,w_244,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(244).height(400) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_400,w_244,c_fill,so_1", () => { + const parts = "h_400,w_244,c_fill,so_1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("1.0")) + .resize(Resize.fill().width(244).height(400)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_400,w_244,g_auto,c_fill", () => { + const parts = "h_400,w_244,g_auto,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(244).height(400).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("h_500,w_500,c_fill", () => { + const parts = "h_500,w_500,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(500).height(500) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_!sale:in_stock!_in_tags,l_sale_icon,w_180,g_south_east,x_30,y_30", () => { + const parts = + "if_!sale:in_stock!_in_tags,l_sale_icon,w_180,g_south_east,x_30,y_30" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "!sale:in_stock! in tags", + new ImageTransformation().overlay( + Overlay.source( + Source.image("sale_icon").transformation( + new ImageTransformation().resize(Resize.scale().width(180)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.southEast())) + .offsetX(30) + .offsetY(30) + ) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_!sale:in_stock!_in_tags,l_sale_icon,w_180,g_south_east,x_30,y_30/w_250", () => { + const parts = + "if_!sale:in_stock!_in_tags,l_sale_icon,w_180,g_south_east,x_30,y_30/w_250" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .conditional( + Conditional.ifCondition( + "!sale:in_stock! in tags", + new ImageTransformation().overlay( + Overlay.source( + Source.image("sale_icon").transformation( + new ImageTransformation().resize(Resize.scale().width(180)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.southEast())) + .offsetX(30) + .offsetY(30) + ) + ) + ) + ) + .resize(Resize.scale().width(250)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_ar_gt_0.65_and_w_gt_1000,ar_0.65,h_1000,c_fill", () => { + const parts = "if_ar_gt_0.65_and_w_gt_1000,ar_0.65,h_1000,c_fill" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "aspect_ratio > 0.65 && width > 1000", + new ImageTransformation().resize( + Resize.fill().height(1000).aspectRatio(0.65) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_ar_gt_1.2,c_pad,h_320,w_480,b_black/if_else,c_pad,h_320,w_480,b_blurred:400:15", () => { + const parts = + "if_ar_gt_1.2,c_pad,h_320,w_480,b_black/if_else,c_pad,h_320,w_480,b_blurred:400:15" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "aspect_ratio > 1.2", + new ImageTransformation().resize( + Resize.pad() + .width(480) + .height(320) + .background(Background.color("black")) + ) + ).otherwise( + new ImageTransformation().resize( + Resize.pad() + .width(480) + .height(320) + .background(Background.blurred().intensity(400).brightness(15)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_ar_gt_1.2,c_pad,h_320,w_480,b_green/if_else,c_pad,h_320,w_480,b_blurred:400:15", () => { + const parts = + "if_ar_gt_1.2,c_pad,h_320,w_480,b_green/if_else,c_pad,h_320,w_480,b_blurred:400:15" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "aspect_ratio > 1.2", + new ImageTransformation().resize( + Resize.pad() + .width(480) + .height(320) + .background(Background.color("green")) + ) + ).otherwise( + new ImageTransformation().resize( + Resize.pad() + .width(480) + .height(320) + .background(Background.blurred().intensity(400).brightness(15)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_ar_gt_3:4_and_w_gt_300_and_h_gt_200,c_crop,w_300,h_200", () => { + const parts = "if_ar_gt_3:4_and_w_gt_300_and_h_gt_200,c_crop,w_300,h_200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "aspect_ratio > 3:4 && width > 300 && height > 200", + new ImageTransformation().resize(Resize.crop().width(300).height(200)) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_ar_lt_1.0,$height_300/if_else,$height_200/h_$height", () => { + const parts = "if_ar_lt_1.0,$height_300/if_else,$height_200/h_$height" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .conditional( + Conditional.ifCondition( + "aspect_ratio < 1.0", + new ImageTransformation().addVariable(Variable.set("height", 300)) + ).otherwise( + new ImageTransformation().addVariable(Variable.set("height", 200)) + ) + ) + .resize(Resize.scale().height("$height")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_ctx:!productType!_eq_!shoes!,w_200,ar_1:1,c_fill,g_auto", () => { + const parts = "if_ctx:!productType!_eq_!shoes!,w_200,ar_1:1,c_fill,g_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "ctx:!productType! = !shoes!", + new ImageTransformation().resize( + Resize.fill() + .width(200) + .aspectRatio(AspectRatio.ar1X1()) + .gravity(Gravity.autoGravity()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_expression,a_20", () => { + const parts = "if_expression,a_20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "expression", + new ImageTransformation().rotate(Rotate.byAngle(20)) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_expression/a_20/if_else/a_30/if_end", () => { + const parts = "if_expression/a_20/if_else/a_30/if_end" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "expression", + new ImageTransformation().rotate(Rotate.byAngle(20)) + ).otherwise(new ImageTransformation().rotate(Rotate.byAngle(30))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_expression/a_20/if_end", () => { + const parts = "if_expression/a_20/if_end".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "expression", + new ImageTransformation().rotate(Rotate.byAngle(20)) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_ils_gt_0.5,w_120,h_150,c_pad/if_else,w_120,h_150,c_fill", () => { + const parts = "if_ils_gt_0.5,w_120,h_150,c_pad/if_else,w_120,h_150,c_fill" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "ils > 0.5", + new ImageTransformation().resize(Resize.pad().width(120).height(150)) + ).otherwise( + new ImageTransformation().resize(Resize.fill().width(120).height(150)) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_iw_lte_200,c_fill,h_120,w_80/if_else,c_fill,h_90,w_100", () => { + const parts = "if_iw_lte_200,c_fill,h_120,w_80/if_else,c_fill,h_90,w_100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "iw_lte_200", + new ImageTransformation().resize(Resize.fill().width(80).height(120)) + ).otherwise( + new ImageTransformation().resize(Resize.fill().width(100).height(90)) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_w_gt_300,e_oil_paint", () => { + const parts = "if_w_gt_300,e_oil_paint".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "width > 300", + new ImageTransformation().effect(Effect.oilPaint()) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_w_gt_400,l_thumbs-up-small,w_150,g_north_east,x_10,y_10/w_400,c_limit", () => { + const parts = + "if_w_gt_400,l_thumbs-up-small,w_150,g_north_east,x_10,y_10/w_400,c_limit" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .conditional( + Conditional.ifCondition( + "width > 400", + new ImageTransformation().overlay( + Overlay.source( + Source.image("thumbs-up-small").transformation( + new ImageTransformation().resize(Resize.scale().width(150)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.northEast())) + .offsetX(10) + .offsetY(10) + ) + ) + ) + ) + .resize(Resize.limitFit().width(400)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_w_lte_200,c_fill,h_120,w_80/if_else,c_fill,h_90,w_100", () => { + const parts = "if_w_lte_200,c_fill,h_120,w_80/if_else,c_fill,h_90,w_100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "w_lte_200", + new ImageTransformation().resize(Resize.fill().width(80).height(120)) + ).otherwise( + new ImageTransformation().resize(Resize.fill().width(100).height(90)) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("if_w_lte_400/c_fill,h_220,w_180/e_red/if_else/c_fill,h_190,w_300/e_oil_paint/if_end", () => { + const parts = + "if_w_lte_400/c_fill,h_220,w_180/e_red/if_else/c_fill,h_190,w_300/e_oil_paint/if_end" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").conditional( + Conditional.ifCondition( + "w_lte_400", + new ImageTransformation() + .resize(Resize.fill().width(180).height(220)) + .adjust(Adjust.red()) + ).otherwise( + new ImageTransformation() + .resize(Resize.fill().width(300).height(190)) + .effect(Effect.oilPaint()) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ki_0.15", () => { + const parts = "ki_0.15".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.keyframeInterval(0.15) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("ki_0.4", () => { + const parts = "ki_0.4".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.keyframeInterval(0.4) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_badge,o_60,w_500", () => { + const parts = "l_badge,o_60,w_500".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("badge").transformation( + new ImageTransformation() + .resize(Resize.scale().width(500)) + .adjust(Adjust.opacity(60)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_call_text,fl_region_relative,w_1.1,g_ocr_text", () => { + const parts = "l_call_text,fl_region_relative,w_1.1,g_ocr_text" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("call_text").transformation( + new ImageTransformation().resize( + Resize.scale().width(1.1).regionRelative() + ) + ) + ).position(new Position().gravity(Gravity.focusOn(FocusOn.ocr()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_call_text,fl_region_relative,w_1.1,g_ocr_text/w_120", () => { + const parts = "l_call_text,fl_region_relative,w_1.1,g_ocr_text/w_120" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .overlay( + Overlay.source( + Source.image("call_text").transformation( + new ImageTransformation().resize( + Resize.scale().width(1.1).regionRelative() + ) + ) + ).position(new Position().gravity(Gravity.focusOn(FocusOn.ocr()))) + ) + .resize(Resize.scale().width(120)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon", () => { + const parts = "l_cloudinary_icon".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("cloudinary_icon")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon,g_north_west,y_20", () => { + const parts = "l_cloudinary_icon,g_north_west,y_20" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("cloudinary_icon")).position( + new Position().gravity(Gravity.compass(Compass.northWest())).offsetY(20) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon,so_6.5,eo_10,o_50,e_brightness:100", () => { + const parts = "l_cloudinary_icon,so_6.5,eo_10,o_50,e_brightness:100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .adjust(Adjust.opacity(50)) + .adjust(Adjust.brightness().level(100)) + ) + ).timeline(Timeline.position().startOffset(6.5).endOffset("10.0")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon,w_0.2,fl_relative", () => { + const parts = "l_cloudinary_icon,w_0.2,fl_relative" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation().resize(Resize.scale().width(0.2).relative()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon,w_0.8,fl_relative", () => { + const parts = "l_cloudinary_icon,w_0.8,fl_relative" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation().resize(Resize.scale().width(0.8).relative()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon,w_0.9,c_scale,g_north_east,o_70,e_brightness:50", () => { + const parts = + "l_cloudinary_icon,w_0.9,c_scale,g_north_east,o_70,e_brightness:50" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.9)) + .adjust(Adjust.opacity(70)) + .adjust(Adjust.brightness().level(50)) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon,w_300,g_north_east,o_60", () => { + const parts = "l_cloudinary_icon,w_300,g_north_east,o_60" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(300)) + .adjust(Adjust.opacity(60)) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon_blue", () => { + const parts = "l_cloudinary_icon_blue".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("cloudinary_icon_blue")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon_blue,g_north_west,x_20,y_20", () => { + const parts = "l_cloudinary_icon_blue,g_north_west,x_20,y_20" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("cloudinary_icon_blue")).position( + new Position() + .gravity(Gravity.compass(Compass.northWest())) + .offsetX(20) + .offsetY(20) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon_blue,w_0.3,fl_relative,g_north_east", () => { + const parts = "l_cloudinary_icon_blue,w_0.3,fl_relative,g_north_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("cloudinary_icon_blue").transformation( + new ImageTransformation().resize(Resize.scale().width(0.3).relative()) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon_blue,w_0.5,c_scale,g_north_east,o_70,e_brightness:50", () => { + const parts = + "l_cloudinary_icon_blue,w_0.5,c_scale,g_north_east,o_70,e_brightness:50" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("cloudinary_icon_blue").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.5)) + .adjust(Adjust.opacity(70)) + .adjust(Adjust.brightness().level(50)) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon_blue,w_0.8,fl_relative", () => { + const parts = "l_cloudinary_icon_blue,w_0.8,fl_relative" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("cloudinary_icon_blue").transformation( + new ImageTransformation().resize(Resize.scale().width(0.8).relative()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon_white,so_6.5,eo_10,o_50,e_brightness:100", () => { + const parts = "l_cloudinary_icon_white,so_6.5,eo_10,o_50,e_brightness:100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("cloudinary_icon_white").transformation( + new ImageTransformation() + .adjust(Adjust.opacity(50)) + .adjust(Adjust.brightness().level(100)) + ) + ).timeline(Timeline.position().startOffset(6.5).endOffset("10.0")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon_white,w_200,o_30,fl_tiled", () => { + const parts = "l_cloudinary_icon_white,w_200,o_30,fl_tiled" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("cloudinary_icon_white").transformation( + new ImageTransformation() + .resize(Resize.scale().width(200)) + .adjust(Adjust.opacity(30)) + ) + ).position(new Position().tiled()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_cloudinary_icon_white,w_300,g_north_east,o_60", () => { + const parts = "l_cloudinary_icon_white,w_300,g_north_east,o_60" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("cloudinary_icon_white").transformation( + new ImageTransformation() + .resize(Resize.scale().width(300)) + .adjust(Adjust.opacity(60)) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_face_left/w_200,h_200,c_thumb,g_face,r_max/fl_layer_apply,g_north_east", () => { + const parts = + "l_face_left/w_200,h_200,c_thumb,g_face,r_max/fl_layer_apply,g_north_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("face_left").transformation( + new ImageTransformation() + .resize( + Resize.thumbnail() + .width(200) + .height(200) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9sb2dvLnBuZw==,g_north_west,x_5,y_5", () => { + const parts = + "l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9sb2dvLnBuZw==,g_north_west,x_5,y_5" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.fetch("http://cloudinary.com/images/logo.png") + ).position( + new Position() + .gravity(Gravity.compass(Compass.northWest())) + .offsetX(5) + .offsetY(5) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9sb2dvLnBuZw==,g_north_west,x_5,y_5,eo_5", () => { + const parts = + "l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9sb2dvLnBuZw==,g_north_west,x_5,y_5,eo_5" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.fetch("http://cloudinary.com/images/logo.png")) + .position( + new Position() + .gravity(Gravity.compass(Compass.northWest())) + .offsetX(5) + .offsetY(5) + ) + .timeline(Timeline.position().endOffset("5.0")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9vbGRfbG9nby5wbmc=", () => { + const parts = + "l_fetch:aHR0cDovL2Nsb3VkaW5hcnkuY29tL2ltYWdlcy9vbGRfbG9nby5wbmc=" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.fetch("http://cloudinary.com/images/old_logo.png")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_fetch:aHR0cHM6Ly9yZXMuY2xvdWRpbmFyeS5jb20vZGVtby9pbWFnZS91cGxvYWQvbG9nb3MvY2xvdWRpbmFyeV9mdWxsX2xvZ29fd2hpdGVfc21hbGwucG5n", () => { + const parts = + "l_fetch:aHR0cHM6Ly9yZXMuY2xvdWRpbmFyeS5jb20vZGVtby9pbWFnZS91cGxvYWQvbG9nb3MvY2xvdWRpbmFyeV9mdWxsX2xvZ29fd2hpdGVfc21hbGwucG5n" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.fetch( + "https://res.cloudinary.com/demo/image/upload/logos/cloudinary_full_logo_white_small.png" + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_golden_star,g_faces,w_1.0,fl_region_relative", () => { + const parts = "l_golden_star,g_faces,w_1.0,fl_region_relative" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("golden_star").transformation( + new ImageTransformation().resize( + Resize.scale().width("1.0").regionRelative() + ) + ) + ).position(new Position().gravity(Gravity.focusOn(FocusOn.faces()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_golden_star,g_faces,w_1.1,fl_region_relative", () => { + const parts = "l_golden_star,g_faces,w_1.1,fl_region_relative" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("golden_star").transformation( + new ImageTransformation().resize( + Resize.scale().width(1.1).regionRelative() + ) + ) + ).position(new Position().gravity(Gravity.focusOn(FocusOn.faces()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_golden_star,g_north_west,w_20,x_314,y_148/w_500", () => { + const parts = "l_golden_star,g_north_west,w_20,x_314,y_148/w_500" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .overlay( + Overlay.source( + Source.image("golden_star").transformation( + new ImageTransformation().resize(Resize.scale().width(20)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.northWest())) + .offsetX(314) + .offsetY(148) + ) + ) + .resize(Resize.scale().width(500)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_happy_smiley,w_1.3,fl_region_relative,g_faces", () => { + const parts = "l_happy_smiley,w_1.3,fl_region_relative,g_faces" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("happy_smiley").transformation( + new ImageTransformation().resize( + Resize.scale().width(1.3).regionRelative() + ) + ) + ).position(new Position().gravity(Gravity.focusOn(FocusOn.faces()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_lut:iwltbap_aspen.3dl", () => { + const parts = "l_lut:iwltbap_aspen.3dl".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.by3dLut("iwltbap_aspen.3dl") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_lut:iwltbap_aspen.3dl/w_200", () => { + const parts = "l_lut:iwltbap_aspen.3dl/w_200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .adjust(Adjust.by3dLut("iwltbap_aspen.3dl")) + .resize(Resize.scale().width(200)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_lut:iwltbap_sedona.3dl", () => { + const parts = "l_lut:iwltbap_sedona.3dl".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust( + Adjust.by3dLut("iwltbap_sedona.3dl") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_lut:iwltbap_sedona.3dl/w_200", () => { + const parts = "l_lut:iwltbap_sedona.3dl/w_200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .adjust(Adjust.by3dLut("iwltbap_sedona.3dl")) + .resize(Resize.scale().width(200)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample", () => { + const parts = "l_sample".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("sample")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample,fl_cutter", () => { + const parts = "l_sample,fl_cutter".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").reshape( + Reshape.cutByImage(Source.image("sample")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample,fl_replace_image,e_cartoonify", () => { + const parts = "l_sample,fl_replace_image,e_cartoonify" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("sample").transformation( + new ImageTransformation() + .effect(Effect.cartoonify()) + .addFlag("replace_image") + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample,so_6.5,eo_10", () => { + const parts = "l_sample,so_6.5,eo_10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("sample")).timeline( + Timeline.position().startOffset(6.5).endOffset("10.0") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample.jpg", () => { + const parts = "l_sample.jpg".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("sample").format(Format.jpg())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample/e_anti_removal,fl_layer_apply", () => { + const parts = "l_sample/e_anti_removal,fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("sample")).blendMode(BlendMode.antiRemoval()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample/e_mask,fl_layer_apply", () => { + const parts = "l_sample/e_mask,fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("sample")).blendMode(BlendMode.mask()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample/e_multiply,fl_layer_apply", () => { + const parts = "l_sample/e_multiply,fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("sample")).blendMode(BlendMode.multiply()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample/e_overlay,fl_layer_apply", () => { + const parts = "l_sample/e_overlay,fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("sample")).blendMode(BlendMode.overlay()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample/e_screen,fl_layer_apply", () => { + const parts = "l_sample/e_screen,fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("sample")).blendMode(BlendMode.screen()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample/e_sepia/fl_layer_apply", () => { + const parts = "l_sample/e_sepia/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("sample").transformation( + new ImageTransformation().effect(Effect.sepia()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample/fl_cutter,fl_layer_apply,g_south", () => { + const parts = "l_sample/fl_cutter,fl_layer_apply,g_south" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").reshape( + Reshape.cutByImage(Source.image("sample")).position( + new Position().gravity(Gravity.compass(Compass.south())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample/fl_first_flag/fl_second_flag/fl_layer_apply", () => { + const parts = "l_sample/fl_first_flag/fl_second_flag/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("sample").transformation( + new ImageTransformation().addFlag("first_flag").addFlag("second_flag") + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample/fl_no_overflow,fl_layer_apply", () => { + const parts = "l_sample/fl_no_overflow,fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("sample")).position( + new Position().allowOverflow(false) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample/fl_tiled,fl_layer_apply", () => { + const parts = "l_sample/fl_tiled,fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("sample")).position(new Position().tiled()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample/g_face,fl_layer_apply", () => { + const parts = "l_sample/g_face,fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("sample")).position( + new Position().gravity(Gravity.focusOn(FocusOn.face())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_sample/x_10,fl_layer_apply", () => { + const parts = "l_sample/x_10,fl_layer_apply".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.image("sample")).position( + new Position().offsetX(10) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_subtitles:arial_17:sample_sub_en.srt", () => { + const parts = "l_subtitles:arial_17:sample_sub_en.srt" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.subtitles("sample_sub_en.srt").textStyle( + new TextStyle("arial", 17) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_subtitles:arial_20:sample_sub_en.srt", () => { + const parts = "l_subtitles:arial_20:sample_sub_en.srt" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.subtitles("sample_sub_en.srt").textStyle( + new TextStyle("arial", 20) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_subtitles:arial_40:sample_sub_en.srt,co_yellow,b_black", () => { + const parts = "l_subtitles:arial_40:sample_sub_en.srt,co_yellow,b_black" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.subtitles("sample_sub_en.srt") + .textStyle(new TextStyle("arial", 40)) + .textColor("yellow") + .backgroundColor("black") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_subtitles:arial_70:sample_sub_en.srt,co_rgb:ffff00,b_black", () => { + const parts = "l_subtitles:arial_70:sample_sub_en.srt,co_rgb:ffff00,b_black" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.subtitles("sample_sub_en.srt") + .textStyle(new TextStyle("arial", 70)) + .textColor("#ffff00") + .backgroundColor("black") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_subtitles:folder-permissions-tutorial.en-us.azure.transcript", () => { + const parts = + "l_subtitles:folder-permissions-tutorial.en-us.azure.transcript" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.subtitles("folder-permissions-tutorial.en-us.azure.transcript") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_subtitles:impact_15:lincoln.transcript,b_rgb:331a00", () => { + const parts = "l_subtitles:impact_15:lincoln.transcript,b_rgb:331a00" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.subtitles("lincoln.transcript") + .textStyle(new TextStyle("impact", 15)) + .backgroundColor("#331a00") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west", () => { + const parts = + "l_subtitles:impact_15:lincoln.transcript,co_khaki,b_rgb:331a00,g_south_west" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.subtitles("lincoln.transcript") + .textStyle(new TextStyle("impact", 15)) + .textColor("khaki") + .backgroundColor("#331a00") + ).position(new Position().gravity(Gravity.compass(Compass.southWest()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_subtitles:lincoln.transcript", () => { + const parts = "l_subtitles:lincoln.transcript" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.subtitles("lincoln.transcript")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_subtitles:sample_sub_en.srt", () => { + const parts = "l_subtitles:sample_sub_en.srt" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.subtitles("sample_sub_en.srt")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_subtitles:times_20:folder-permissions-tutorial.en-us.azure.transcript,co_blue,g_north", () => { + const parts = + "l_subtitles:times_20:folder-permissions-tutorial.en-us.azure.transcript,co_blue,g_north" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.subtitles("folder-permissions-tutorial.en-us.azure.transcript") + .textStyle(new TextStyle("times", 20)) + .textColor("blue") + ).position(new Position().gravity(Gravity.compass(Compass.north()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_text:Arial_45_bold:John", () => { + const parts = "l_text:Arial_45_bold:John".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.text( + "John", + new TextStyle("Arial", 45).fontWeight(FontWeight.bold()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_text:arial_15:hello", () => { + const parts = "l_text:arial_15:hello".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.text("hello", new TextStyle("arial", 15))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_text:arial_15_bold:hello", () => { + const parts = "l_text:arial_15_bold:hello".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.text( + "hello", + new TextStyle("arial", 15).fontWeight(FontWeight.bold()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_text:parisienne_17_bold_strikethrough_justify_stroke_letter_spacing_17_antialias_subpixel:Hello", () => { + const parts = + "l_text:parisienne_17_bold_strikethrough_justify_stroke_letter_spacing_17_antialias_subpixel:Hello" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.text( + "Hello", + new TextStyle("parisienne", 17) + .fontWeight(FontWeight.bold()) + .fontAntialias(FontAntialias.subpixel()) + .textDecoration(TextDecoration.strikethrough()) + .textAlignment(TextAlignment.justify()) + .letterSpacing(17) + .stroke() + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:dog,fl_splice,so_0,du_5", () => { + const parts = "l_video:dog,fl_splice,so_0,du_5" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.concatenate(Concatenate.videoSource("dog")) + .prepend() + .duration(5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:dog,fl_splice,w_300,c_fill,so_0/fl_layer_apply", () => { + const parts = "l_video:dog,fl_splice,w_300,c_fill,so_0/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("dog").transformation( + new ImageTransformation().resize(Resize.fill().width(300)) + ) + ).prepend() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:dog,so_4.5,eo_8,a_90,w_200,g_east", () => { + const parts = "l_video:dog,so_4.5,eo_8,a_90,w_200,g_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.video("dog").transformation( + new ImageTransformation() + .rotate(Rotate.byAngle(90)) + .resize(Resize.scale().width(200)) + ) + ) + .position(new Position().gravity(Gravity.compass(Compass.east()))) + .timeline(Timeline.position().startOffset(4.5).endOffset("8.0")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:dog,w_0.5", () => { + const parts = "l_video:dog,w_0.5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.video("dog").transformation( + new ImageTransformation().resize(Resize.scale().width(0.5)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:dog/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply", () => { + const parts = + "l_video:dog/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("dog").transformation( + new ImageTransformation().videoEdit(VideoEdit.trim().duration("5.0")) + ) + ).transition(Transition.videoSource("transition1")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:dog/e_transition,l_video:transition1/fl_layer_apply/fl_layer_apply", () => { + const parts = + "l_video:dog/e_transition,l_video:transition1/fl_layer_apply/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.concatenate(Concatenate.videoSource("dog")).transition( + Transition.videoSource("transition1") + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:dog/l_video:transition1,e_transition/a_180/fl_layer_apply/fl_layer_apply", () => { + const parts = + "l_video:dog/l_video:transition1,e_transition/a_180/fl_layer_apply/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.concatenate(Concatenate.videoSource("dog")).transition( + Transition.videoSource("transition1").transformation( + new ImageTransformation().rotate(Rotate.byAngle(180)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:electronic", () => { + const parts = "l_video:electronic".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.video("electronic")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:kitten_fighting,e_fade:3000,w_100", () => { + const parts = "l_video:kitten_fighting,e_fade:3000,w_100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.video("kitten_fighting").transformation( + new ImageTransformation() + .resize(Resize.scale().width(100)) + .effect(Effect.fadeIn().duration(3000)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:sample", () => { + const parts = "l_video:sample".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source(Source.video("sample")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:sample/e_sepia/fl_layer_apply", () => { + const parts = "l_video:sample/e_sepia/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.video("sample").transformation( + new ImageTransformation().effect(Effect.sepia()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:ski_jump,eo_6,c_scale,w_250,g_north_east", () => { + const parts = "l_video:ski_jump,eo_6,c_scale,w_250,g_north_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.video("ski_jump").transformation( + new ImageTransformation().resize(Resize.scale().width(250)) + ) + ) + .position(new Position().gravity(Gravity.compass(Compass.northEast()))) + .timeline(Timeline.position().endOffset("6.0")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_brightness:10,r_max", () => { + const parts = + "l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_brightness:10,r_max" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("ski_jump").transformation( + new ImageTransformation().effect(Effect.reverse()) + ) + ) + ) + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("ski_jump").transformation( + new ImageTransformation().effect(Effect.accelerate().rate(-50)) + ) + ) + ) + .roundCorners(RoundCorners.max()) + .adjust(Adjust.brightness().level(10)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_volume:mute/e_brightness:10,r_max", () => { + const parts = + "l_video:ski_jump,fl_splice,e_reverse/l_video:ski_jump,fl_splice,e_accelerate:-50/e_volume:mute/e_brightness:10,r_max" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("ski_jump").transformation( + new ImageTransformation().effect(Effect.reverse()) + ) + ) + ) + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("ski_jump").transformation( + new ImageTransformation().effect(Effect.accelerate().rate(-50)) + ) + ) + ) + .videoEdit(VideoEdit.volume(Volume.mute())) + .roundCorners(RoundCorners.max()) + .adjust(Adjust.brightness().level(10)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("l_video:ski_jump,so_3,eo_6,c_scale,w_250,g_north_east", () => { + const parts = "l_video:ski_jump,so_3,eo_6,c_scale,w_250,g_north_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.video("ski_jump").transformation( + new ImageTransformation().resize(Resize.scale().width(250)) + ) + ) + .position(new Position().gravity(Gravity.compass(Compass.northEast()))) + .timeline(Timeline.position().startOffset("3.0").endOffset("6.0")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("o_17", () => { + const parts = "o_17".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.opacity(17)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("o_30", () => { + const parts = "o_30".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").adjust(Adjust.opacity(30)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_2", () => { + const parts = "pg_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").extract( + Extract.getPage().byNumber(2) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_2-4;6;8", () => { + const parts = "pg_2-4;6;8".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").extract( + Extract.getPage().byRange(2, 4).byNumber(6).byNumber(8) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_2-4;6;8/w_300", () => { + const parts = "pg_2-4;6;8/w_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .extract(Extract.getPage().byRange(2, 4).byNumber(6).byNumber(8)) + .resize(Resize.scale().width(300)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_3", () => { + const parts = "pg_3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").extract( + Extract.getPage().byNumber(3) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_4-7;9", () => { + const parts = "pg_4-7;9".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").extract( + Extract.getPage().byRange(4, 7).byNumber(9) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_embedded:3", () => { + const parts = "pg_embedded:3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.smartObject().byIndex(3) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_embedded:3/w_300", () => { + const parts = "pg_embedded:3/w_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .psdTools(PSDTools.smartObject().byIndex(3)) + .resize(Resize.scale().width(300)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_embedded:3;5", () => { + const parts = "pg_embedded:3;5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.smartObject().byIndex(3).byIndex(5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_embedded:7", () => { + const parts = "pg_embedded:7".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.smartObject().byIndex(7) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_embedded:name:skyline-3242040_1920", () => { + const parts = "pg_embedded:name:skyline-3242040_1920" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.smartObject().byLayerName("skyline-3242040_1920") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_embedded:name:skyline-3242040_1920.jpg", () => { + const parts = "pg_embedded:name:skyline-3242040_1920.jpg" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.smartObject().byLayerName("skyline-3242040_1920.jpg") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_embedded:name:skyline.jpg", () => { + const parts = "pg_embedded:name:skyline.jpg".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.smartObject().byLayerName("skyline.jpg") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_embedded:name:skyline.jpg;bg.jpg", () => { + const parts = "pg_embedded:name:skyline.jpg;bg.jpg" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.smartObject().byLayerName("skyline.jpg").byLayerName("bg.jpg") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_name:lala;fofo", () => { + const parts = "pg_name:lala;fofo".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.getLayer().byName("lala").byName("fofo") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_name:record_cover;Shadow", () => { + const parts = "pg_name:record_cover;Shadow".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.getLayer().byName("record_cover").byName("Shadow") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_name:record_cover;Shadow/w_300", () => { + const parts = "pg_name:record_cover;Shadow/w_300" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .psdTools(PSDTools.getLayer().byName("record_cover").byName("Shadow")) + .resize(Resize.scale().width(300)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("pg_name:skyline", () => { + const parts = "pg_name:skyline".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").psdTools( + PSDTools.getLayer().byName("skyline") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_100", () => { + const parts = "q_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_20", () => { + const parts = "q_20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery(Delivery.quality(20)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_50", () => { + const parts = "q_50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery(Delivery.quality(50)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_60", () => { + const parts = "q_60".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery(Delivery.quality(60)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_60:420", () => { + const parts = "q_60:420".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(60).chromaSubSampling(ChromaSubSampling.chroma420()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_70:qmax_20", () => { + const parts = "q_70:qmax_20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(70).quantization(20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_80", () => { + const parts = "q_80".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery(Delivery.quality(80)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto", () => { + const parts = "q_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(Quality.auto()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,dpr_2,bo_1px_solid_black,f_auto", () => { + const parts = "q_auto,dpr_2,bo_1px_solid_black,f_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "black")) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,dpr_2,f_auto", () => { + const parts = "q_auto,dpr_2,f_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,dpr_2,f_auto,bo_1px_solid_black", () => { + const parts = "q_auto,dpr_2,f_auto,bo_1px_solid_black" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "black")) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,dpr_2,f_auto,bo_1px_solid_gray", () => { + const parts = "q_auto,dpr_2,f_auto,bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,dpr_2,f_auto,h_300", () => { + const parts = "q_auto,dpr_2,f_auto,h_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(300)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,dpr_2,h_300,f_auto,bo_1px_solid_black", () => { + const parts = "q_auto,dpr_2,h_300,f_auto,bo_1px_solid_black" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "black")) + .resize(Resize.scale().height(300)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,dpr_2,w_150,f_auto", () => { + const parts = "q_auto,dpr_2,w_150,f_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,dpr_auto", () => { + const parts = "q_auto,dpr_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr(Dpr.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto", () => { + const parts = "q_auto,f_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,bo_1px_solid_black", () => { + const parts = "q_auto,f_auto,bo_1px_solid_black" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "black")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,bo_1px_solid_gray,dpr_2,h_450", () => { + const parts = "q_auto,f_auto,bo_1px_solid_gray,dpr_2,h_450" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().height(450)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_250", () => { + const parts = "q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_250" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(250)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_650", () => { + const parts = "q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_650" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(650)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_660", () => { + const parts = "q_auto,f_auto,bo_1px_solid_gray,dpr_2,w_660" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(660)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,dpr_2", () => { + const parts = "q_auto,f_auto,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,dpr_2,bo_1px_solid_gray", () => { + const parts = "q_auto,f_auto,dpr_2,bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,dpr_2,c_crop,w_100,h_80/w_40", () => { + const parts = "q_auto,f_auto,dpr_2,c_crop,w_100,h_80/w_40" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(100).height(80)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .resize(Resize.scale().width(40)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,dpr_2,h_300", () => { + const parts = "q_auto,f_auto,dpr_2,h_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().height(300)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,dpr_2,w_350,r_20/e_outline:1,co_black", () => { + const parts = "q_auto,f_auto,dpr_2,w_350,r_20/e_outline:1,co_black" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .roundCorners(RoundCorners.byRadius(20)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .effect(Effect.outline().width(1).color("black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,dpr_2,w_400", () => { + const parts = "q_auto,f_auto,dpr_2,w_400".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(400)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,dpr_2/bo_1px_solid_gray", () => { + const parts = "q_auto,f_auto,dpr_2/bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,dpr_2/w_20", () => { + const parts = "q_auto,f_auto,dpr_2/w_20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .resize(Resize.scale().width(20)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,dpr_auto", () => { + const parts = "q_auto,f_auto,dpr_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .delivery(Delivery.dpr(Dpr.auto())) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,f_auto,w_500", () => { + const parts = "q_auto,f_auto,w_500".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,w_600,f_auto,dpr_2", () => { + const parts = "q_auto,w_600,f_auto,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(600)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto,w_800,f_auto", () => { + const parts = "q_auto,w_800,f_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(800)) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto:best", () => { + const parts = "q_auto:best".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(Quality.autoBest()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto:eco", () => { + const parts = "q_auto:eco".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(Quality.autoEco()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto:good", () => { + const parts = "q_auto:good".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(Quality.autoGood()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto:low", () => { + const parts = "q_auto:low".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(Quality.autoLow()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_auto:low:444", () => { + const parts = "q_auto:low:444".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(Quality.autoLow()).chromaSubSampling( + ChromaSubSampling.chroma444() + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_jpegmini", () => { + const parts = "q_jpegmini".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(Quality.jpegmini()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_jpegmini:0", () => { + const parts = "q_jpegmini:0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(Quality.jpegminiBest()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_jpegmini:1", () => { + const parts = "q_jpegmini:1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(Quality.jpegminiHigh()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("q_jpegmini:2", () => { + const parts = "q_jpegmini:2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").delivery( + Delivery.quality(Quality.jpegminiMedium()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("r_10", () => { + const parts = "r_10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").roundCorners( + RoundCorners.byRadius(10) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("r_10:20", () => { + const parts = "r_10:20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").roundCorners( + RoundCorners.byRadius(10, 20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("r_10:20:30", () => { + const parts = "r_10:20:30".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").roundCorners( + RoundCorners.byRadius(10, 20, 30) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("r_10:20:30:40", () => { + const parts = "r_10:20:30:40".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").roundCorners( + RoundCorners.byRadius(10, 20, 30, 40) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("r_20", () => { + const parts = "r_20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").roundCorners( + RoundCorners.byRadius(20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("r_20:0:40:60", () => { + const parts = "r_20:0:40:60".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").roundCorners( + RoundCorners.byRadius(20, 0, 40, 60) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("r_20:80", () => { + const parts = "r_20:80".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").roundCorners( + RoundCorners.byRadius(20, 80) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("r_max", () => { + const parts = "r_max".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").roundCorners( + RoundCorners.max() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_0,du_3", () => { + const parts = "so_0,du_3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("0.0").duration("3.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_1", () => { + const parts = "so_1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("1.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_10", () => { + const parts = "so_10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("10.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_10p,du_30p", () => { + const parts = "so_10p,du_30p".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("10%").duration("30%") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_120", () => { + const parts = "so_120".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("120.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_21/bo_2px_solid_black", () => { + const parts = "so_21/bo_2px_solid_black".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("21.0")) + .border(Border.solid(2, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_3", () => { + const parts = "so_3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("3.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_3,du_5", () => { + const parts = "so_3,du_5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("3.0").duration("5.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_3,eo_5", () => { + const parts = "so_3,eo_5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("3.0").endOffset("5.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_30/bo_2px_solid_black", () => { + const parts = "so_30/bo_2px_solid_black".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("30.0")) + .border(Border.solid(2, "black")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_3p,du_5p", () => { + const parts = "so_3p,du_5p".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("3%").duration("5%") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_4,w_350,h_350,c_crop,r_20,e_grayscale,bo_5px_solid_black", () => { + const parts = "so_4,w_350,h_350,c_crop,r_20,e_grayscale,bo_5px_solid_black" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("4.0")) + .border(Border.solid(5, "black").roundCorners(RoundCorners.byRadius(20))) + .resize(Resize.crop().width(350).height(350)) + .effect(Effect.grayscale()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_43,du_10/fl_mono", () => { + const parts = "so_43,du_10/fl_mono".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("43.0").duration("10.0")) + .addFlag(Flag.mono()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_5", () => { + const parts = "so_5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("5.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_6.5,eo_10", () => { + const parts = "so_6.5,eo_10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset(6.5).endOffset("10.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_62", () => { + const parts = "so_62".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("62.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_7/h_400,ar_9:16,c_fill,g_auto", () => { + const parts = "so_7/h_400,ar_9:16,c_fill,g_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("7.0")) + .resize( + Resize.fill() + .height(400) + .aspectRatio("9:16") + .gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_7/h_400,ar_9:16,c_fill_pad,g_auto", () => { + const parts = "so_7/h_400,ar_9:16,c_fill_pad,g_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("7.0")) + .resize( + Resize.fillPad() + .height(400) + .aspectRatio("9:16") + .gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_8", () => { + const parts = "so_8".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset("8.0") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("so_8.5", () => { + const parts = "so_8.5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").videoEdit( + VideoEdit.trim().startOffset(8.5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("sp_custom_square", () => { + const parts = "sp_custom_square".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.streamingProfile("custom_square") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("sp_full_hd", () => { + const parts = "sp_full_hd".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.streamingProfile(StreamingProfile.fullHd()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("sp_full_hd_lean", () => { + const parts = "sp_full_hd_lean".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.streamingProfile(StreamingProfile.fullHdLean()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("sp_full_hd_wifi", () => { + const parts = "sp_full_hd_wifi".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.streamingProfile(StreamingProfile.fullHdWifi()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("sp_hd", () => { + const parts = "sp_hd".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.streamingProfile(StreamingProfile.hd()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("sp_hd_lean", () => { + const parts = "sp_hd_lean".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.streamingProfile(StreamingProfile.hdLean()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("sp_my_custom_sp", () => { + const parts = "sp_my_custom_sp".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.streamingProfile("my_custom_sp") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("sp_sd", () => { + const parts = "sp_sd".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.streamingProfile(StreamingProfile.sd()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("t_demo_combined", () => { + const parts = "t_demo_combined".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").namedTransformation( + NamedTransformation.name("demo_combined") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("t_fit_100x150", () => { + const parts = "t_fit_100x150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").namedTransformation( + NamedTransformation.name("fit_100x150") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("t_jpg_with_quality_30,w_100,h_50,c_fit", () => { + const parts = "t_jpg_with_quality_30,w_100,h_50,c_fit" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fit().width(100).height(50)) + .namedTransformation(NamedTransformation.name("jpg_with_quality_30")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("t_jpg_with_quality_30/t_crop_400x400/t_fit_100x150", () => { + const parts = "t_jpg_with_quality_30/t_crop_400x400/t_fit_100x150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .namedTransformation(NamedTransformation.name("jpg_with_quality_30")) + .namedTransformation(NamedTransformation.name("crop_400x400")) + .namedTransformation(NamedTransformation.name("fit_100x150")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("t_my_named_transformation", () => { + const parts = "t_my_named_transformation".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").namedTransformation( + NamedTransformation.name("my_named_transformation") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("t_sample_named_transform", () => { + const parts = "t_sample_named_transform".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").namedTransformation( + NamedTransformation.name("sample_named_transform") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("t_sample_named_transform.sample_named_transform2", () => { + const parts = "t_sample_named_transform.sample_named_transform2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").namedTransformation( + NamedTransformation.name("sample_named_transform.sample_named_transform2") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("t_vignette_angle", () => { + const parts = "t_vignette_angle".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").namedTransformation( + NamedTransformation.name("vignette_angle") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("u_docs:iphone_template,h_300,a_90", () => { + const parts = "u_docs:iphone_template,h_300,a_90" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").underlay( + Underlay.source( + Source.image("docs/iphone_template").transformation( + new ImageTransformation() + .rotate(Rotate.byAngle(90)) + .resize(Resize.scale().height(300)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("u_sample/g_face,fl_layer_apply", () => { + const parts = "u_sample/g_face,fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").underlay( + Underlay.source(Source.image("sample")).position( + new Position().gravity(Gravity.focusOn(FocusOn.face())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("u_site_bg,w_1.0,h_1.0,fl_relative", () => { + const parts = "u_site_bg,w_1.0,h_1.0,fl_relative" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").underlay( + Underlay.source( + Source.image("site_bg").transformation( + new ImageTransformation().resize( + Resize.scale().width("1.0").height("1.0").relative() + ) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("vc_auto", () => { + const parts = "vc_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.videoCodec(VideoCodec.auto()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("vc_h264:baseline:3.1", () => { + const parts = "vc_h264:baseline:3.1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.videoCodec( + VideoCodec.h264() + .profile(VideoCodecProfile.baseline()) + .level(VideoCodecLevel.vcl31()) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("vs_40", () => { + const parts = "vs_40".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").transcode( + Transcode.toAnimated().sampling(40) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_0.25,c_scale", () => { + const parts = "w_0.25,c_scale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(0.25) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_0.4,a_20/l_cloudinary_icon,o_50,w_60,g_south_east,y_15,x_60", () => { + const parts = + "w_0.4,a_20/l_cloudinary_icon,o_50,w_60,g_south_east,y_15,x_60" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .rotate(Rotate.byAngle(20)) + .resize(Resize.scale().width(0.4)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(60)) + .adjust(Adjust.opacity(50)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.southEast())) + .offsetX(60) + .offsetY(15) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_0.4,a_20/l_cloudinary_icon_white,w_60,o_50,g_south_east,y_15,x_60", () => { + const parts = + "w_0.4,a_20/l_cloudinary_icon_white,w_60,o_50,g_south_east,y_15,x_60" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .rotate(Rotate.byAngle(20)) + .resize(Resize.scale().width(0.4)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_white").transformation( + new ImageTransformation() + .resize(Resize.scale().width(60)) + .adjust(Adjust.opacity(50)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.southEast())) + .offsetX(60) + .offsetY(15) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_0.5", () => { + const parts = "w_0.5".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(0.5) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_10/a_10", () => { + const parts = "w_10/a_10".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(10)) + .rotate(Rotate.byAngle(10)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100", () => { + const parts = "w_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100,c_fill", () => { + const parts = "w_100,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100,h_100,c_fill", () => { + const parts = "w_100,h_100,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(100).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100,h_100,c_fill,dpr_2.0", () => { + const parts = "w_100,h_100,c_fill,dpr_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(100).height(100)) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100,h_100,c_fill,dpr_2.0,g_face", () => { + const parts = "w_100,h_100,c_fill,dpr_2.0,g_face" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill() + .width(100) + .height(100) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100,h_100,c_pad,dpr_2.0", () => { + const parts = "w_100,h_100,c_pad,dpr_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.pad().width(100).height(100)) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100,h_150,c_fill", () => { + const parts = "w_100,h_150,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(100).height(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100,h_150,c_fill,g_faces", () => { + const parts = "w_100,h_150,c_fill,g_faces".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(100) + .height(150) + .gravity(Gravity.focusOn(FocusOn.faces())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100,h_40,c_thumb,g_adv_eyes", () => { + const parts = "w_100,h_40,c_thumb,g_adv_eyes" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(100) + .height(40) + .gravity(Gravity.focusOn(FocusOn.advancedEyes())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100/a_-20", () => { + const parts = "w_100/a_-20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(100)) + .rotate(Rotate.byAngle(-20)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100/a_90", () => { + const parts = "w_100/a_90".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(100)) + .rotate(Rotate.byAngle(90)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100/a_vflip/a_45", () => { + const parts = "w_100/a_vflip/a_45".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(100)) + .rotate(Rotate.mode(RotationMode.verticalFlip())) + .rotate(Rotate.byAngle(45)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100/dpr_1.0", () => { + const parts = "w_100/dpr_1.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(100)) + .delivery(Delivery.dpr("1.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100/dpr_2.0", () => { + const parts = "w_100/dpr_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(100)) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_100/dpr_3.0", () => { + const parts = "w_100/dpr_3.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(100)) + .delivery(Delivery.dpr("3.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_1000", () => { + const parts = "w_1000".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(1000) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_1000,dpr_2", () => { + const parts = "w_1000,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(1000)) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_1000,f_auto,q_auto:best", () => { + const parts = "w_1000,f_auto,q_auto:best".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(1000)) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.autoBest())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_115,h_135,c_thumb,g_faces", () => { + const parts = "w_115,h_135,c_thumb,g_faces".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(115) + .height(135) + .gravity(Gravity.focusOn(FocusOn.faces())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_120", () => { + const parts = "w_120".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(120) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_123/a_45", () => { + const parts = "w_123/a_45".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(123)) + .rotate(Rotate.byAngle(45)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,c_scale", () => { + const parts = "w_150,c_scale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:al_dente", () => { + const parts = "w_150,e_art:al_dente".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.alDente())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:athena", () => { + const parts = "w_150,e_art:athena".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.athena())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:audrey", () => { + const parts = "w_150,e_art:audrey".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.audrey())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:aurora", () => { + const parts = "w_150,e_art:aurora".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.aurora())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:daguerre", () => { + const parts = "w_150,e_art:daguerre".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.daguerre())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:eucalyptus", () => { + const parts = "w_150,e_art:eucalyptus".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.eucalyptus())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:fes", () => { + const parts = "w_150,e_art:fes".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.fes())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:frost", () => { + const parts = "w_150,e_art:frost".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.frost())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:hairspray", () => { + const parts = "w_150,e_art:hairspray".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.hairspray())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:hokusai", () => { + const parts = "w_150,e_art:hokusai".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.hokusai())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:incognito", () => { + const parts = "w_150,e_art:incognito".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.incognito())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:linen", () => { + const parts = "w_150,e_art:linen".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.linen())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:peacock", () => { + const parts = "w_150,e_art:peacock".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.peacock())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:primavera", () => { + const parts = "w_150,e_art:primavera".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.primavera())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:quartz", () => { + const parts = "w_150,e_art:quartz".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.quartz())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:red_rock", () => { + const parts = "w_150,e_art:red_rock".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.redRock())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:refresh", () => { + const parts = "w_150,e_art:refresh".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.refresh())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:sizzle", () => { + const parts = "w_150,e_art:sizzle".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.sizzle())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:sonnet", () => { + const parts = "w_150,e_art:sonnet".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.sonnet())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:ukulele", () => { + const parts = "w_150,e_art:ukulele".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.ukulele())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,e_art:zorro", () => { + const parts = "w_150,e_art:zorro".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .effect(Effect.artisticFilter(ArtisticFilter.zorro())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,f_auto,q_auto,dpr_2", () => { + const parts = "w_150,f_auto,q_auto,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(150)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_100", () => { + const parts = "w_150,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(150).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_100,c_fill", () => { + const parts = "w_150,h_100,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(150).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_100,c_fill,r_10:40:25", () => { + const parts = "w_150,h_100,c_fill,r_10:40:25" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(150).height(100)) + .roundCorners(RoundCorners.byRadius(10, 40, 25)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_100,c_fill,r_25", () => { + const parts = "w_150,h_100,c_fill,r_25".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(150).height(100)) + .roundCorners(RoundCorners.byRadius(25)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_100,c_fill,r_25:0", () => { + const parts = "w_150,h_100,c_fill,r_25:0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(150).height(100)) + .roundCorners(RoundCorners.byRadius(25, 0)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_100,c_fill,r_30:0:30:30", () => { + const parts = "w_150,h_100,c_fill,r_30:0:30:30" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(150).height(100)) + .roundCorners(RoundCorners.byRadius(30, 0, 30, 30)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_100,c_scale", () => { + const parts = "w_150,h_100,c_scale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(150).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_fill", () => { + const parts = "w_150,h_150,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(150).height(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_fill,g_east", () => { + const parts = "w_150,h_150,c_fill,g_east".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(150) + .height(150) + .gravity(Gravity.compass(Compass.east())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_lfill", () => { + const parts = "w_150,h_150,c_lfill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFill().width(150).height(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_limit", () => { + const parts = "w_150,h_150,c_limit".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFit().width(150).height(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_lpad,b_green", () => { + const parts = "w_150,h_150,c_lpad,b_green".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitPad() + .width(150) + .height(150) + .background(Background.color("green")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_pad,b_black", () => { + const parts = "w_150,h_150,c_pad,b_black".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(150).height(150).background(Background.color("black")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_pad,b_pink", () => { + const parts = "w_150,h_150,c_pad,b_pink".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(150).height(150).background(Background.color("pink")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_scale", () => { + const parts = "w_150,h_150,c_scale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(150).height(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_thumb,g_auto", () => { + const parts = "w_150,h_150,c_thumb,g_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail().width(150).height(150).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_thumb,g_center", () => { + const parts = "w_150,h_150,c_thumb,g_center".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(150) + .height(150) + .gravity(Gravity.compass(Compass.center())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_thumb,g_face", () => { + const parts = "w_150,h_150,c_thumb,g_face".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(150) + .height(150) + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_thumb,g_face,r_20,e_sepia/l_cloudinary_icon,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10", () => { + const parts = + "w_150,h_150,c_thumb,g_face,r_20,e_sepia/l_cloudinary_icon,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(150) + .height(150) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.byRadius(20)) + .effect(Effect.sepia()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(50)) + .adjust(Adjust.opacity(60)) + .adjust(Adjust.brightness().level(100)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.southEast())) + .offsetX(5) + .offsetY(5) + ) + ) + .rotate(Rotate.byAngle(10)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_150,c_thumb,g_face/r_20/e_sepia/l_cloudinary_icon_blue,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10", () => { + const parts = + "w_150,h_150,c_thumb,g_face/r_20/e_sepia/l_cloudinary_icon_blue,g_south_east,x_5,y_5,w_50,o_60,e_brightness:100/a_10" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(150) + .height(150) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.byRadius(20)) + .effect(Effect.sepia()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_blue").transformation( + new ImageTransformation() + .resize(Resize.scale().width(50)) + .adjust(Adjust.opacity(60)) + .adjust(Adjust.brightness().level(100)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.southEast())) + .offsetX(5) + .offsetY(5) + ) + ) + .rotate(Rotate.byAngle(10)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_200,c_lfill", () => { + const parts = "w_150,h_200,c_lfill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFill().width(150).height(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_150,h_60,c_fit", () => { + const parts = "w_150,h_60,c_fit".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fit().width(150).height(60) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_1520,h_1440,c_crop,g_west,x_50", () => { + const parts = "w_1520,h_1440,c_crop,g_west,x_50" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(1520) + .height(1440) + .gravity(Gravity.compass(Compass.west())) + .x(50) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_1520,h_1440,c_crop,g_west,x_50/e_pixelate_region:15,g_ocr_text", () => { + const parts = + "w_1520,h_1440,c_crop,g_west,x_50/e_pixelate_region:15,g_ocr_text" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop() + .width(1520) + .height(1440) + .gravity(Gravity.compass(Compass.west())) + .x(50) + ) + .effect(Effect.pixelate().squareSize(15).region(Region.ocr())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_1520,h_1440,c_crop,g_west,x_50/h_283", () => { + const parts = "w_1520,h_1440,c_crop,g_west,x_50/h_283" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop() + .width(1520) + .height(1440) + .gravity(Gravity.compass(Compass.west())) + .x(50) + ) + .resize(Resize.scale().height(283)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_20,h_20,c_mfit", () => { + const parts = "w_20,h_20,c_mfit".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumFit().width(20).height(20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_20,h_20,c_mpad", () => { + const parts = "w_20,h_20,c_mpad".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumPad().width(20).height(20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_20,q_auto", () => { + const parts = "w_20,q_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(20)) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200", () => { + const parts = "w_200".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,a_45", () => { + const parts = "w_200,a_45".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .rotate(Rotate.byAngle(45)) + .resize(Resize.scale().width(200)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,a_45/d_avatar.png", () => { + const parts = "w_200,a_45/d_avatar.png".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .rotate(Rotate.byAngle(45)) + .resize(Resize.scale().width(200)) + .delivery(Delivery.defaultImage("avatar.png")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,c_scale/e_outline:20:200,co_red/e_outline:15:200,co_orange/e_outline:10:200,co_yellow", () => { + const parts = + "w_200,c_scale/e_outline:20:200,co_red/e_outline:15:200,co_orange/e_outline:10:200,co_yellow" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(200)) + .effect(Effect.outline().width(20).blurLevel(200).color("red")) + .effect(Effect.outline().width(15).blurLevel(200).color("orange")) + .effect(Effect.outline().width(10).blurLevel(200).color("yellow")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,dpr_2.0", () => { + const parts = "w_200,dpr_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(200)) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,f_auto,q_auto,dpr_2", () => { + const parts = "w_200,f_auto,q_auto,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(200)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_100", () => { + const parts = "w_200,h_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(200).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_150,c_crop", () => { + const parts = "w_200,h_150,c_crop".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(200).height(150) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_150,c_crop,g_north_west", () => { + const parts = "w_200,h_150,c_crop,g_north_west" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(200) + .height(150) + .gravity(Gravity.compass(Compass.northWest())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_crop,g_auto", () => { + const parts = "w_200,h_200,c_crop,g_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(200).height(200).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_crop,g_center", () => { + const parts = "w_200,h_200,c_crop,g_center".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(200) + .height(200) + .gravity(Gravity.compass(Compass.center())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_crop,r_max", () => { + const parts = "w_200,h_200,c_crop,r_max".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(200).height(200)) + .roundCorners(RoundCorners.max()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_fill", () => { + const parts = "w_200,h_200,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(200).height(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_fill,g_auto", () => { + const parts = "w_200,h_200,c_fill,g_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(200).height(200).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_fill,g_center", () => { + const parts = "w_200,h_200,c_fill,g_center".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(200) + .height(200) + .gravity(Gravity.compass(Compass.center())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_fill,g_face", () => { + const parts = "w_200,h_200,c_fill,g_face".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(200) + .height(200) + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_fill,g_faces", () => { + const parts = "w_200,h_200,c_fill,g_faces".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(200) + .height(200) + .gravity(Gravity.focusOn(FocusOn.faces())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_fill,g_faces/u_docs:iphone_template,h_300,a_90", () => { + const parts = "w_200,h_200,c_fill,g_faces/u_docs:iphone_template,h_300,a_90" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill() + .width(200) + .height(200) + .gravity(Gravity.focusOn(FocusOn.faces())) + ) + .underlay( + Underlay.source( + Source.image("docs/iphone_template").transformation( + new ImageTransformation() + .rotate(Rotate.byAngle(90)) + .resize(Resize.scale().height(300)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_fill,r_max/a_30/e_trim", () => { + const parts = "w_200,h_200,c_fill,r_max/a_30/e_trim" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(200).height(200)) + .roundCorners(RoundCorners.max()) + .rotate(Rotate.byAngle(30)) + .reshape(Reshape.trim()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_fill/e_style_transfer,l_sailing_angel", () => { + const parts = "w_200,h_200,c_fill/e_style_transfer,l_sailing_angel" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(200).height(200)) + .effect(Effect.styleTransfer(Source.image("sailing_angel"))); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_fit,a_hflip/l_cloudinary_icon,w_0.4,fl_relative,g_north,x_15,y_35,a_4,e_brightness:100,o_70", () => { + const parts = + "w_200,h_200,c_fit,a_hflip/l_cloudinary_icon,w_0.4,fl_relative,g_north,x_15,y_35,a_4,e_brightness:100,o_70" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .rotate(Rotate.mode(RotationMode.horizontalFlip())) + .resize(Resize.fit().width(200).height(200)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .rotate(Rotate.byAngle(4)) + .resize(Resize.scale().width(0.4).relative()) + .adjust(Adjust.opacity(70)) + .adjust(Adjust.brightness().level(100)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.north())) + .offsetX(15) + .offsetY(35) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_fit,a_hflip/l_cloudinary_icon_white,w_0.4,fl_relative,g_north,x_15,y_35,a_4,e_brightness:100,o_70", () => { + const parts = + "w_200,h_200,c_fit,a_hflip/l_cloudinary_icon_white,w_0.4,fl_relative,g_north,x_15,y_35,a_4,e_brightness:100,o_70" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .rotate(Rotate.mode(RotationMode.horizontalFlip())) + .resize(Resize.fit().width(200).height(200)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_white").transformation( + new ImageTransformation() + .rotate(Rotate.byAngle(4)) + .resize(Resize.scale().width(0.4).relative()) + .adjust(Adjust.opacity(70)) + .adjust(Adjust.brightness().level(100)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.north())) + .offsetX(15) + .offsetY(35) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_thumb,g_face", () => { + const parts = "w_200,h_200,c_thumb,g_face".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(200) + .height(200) + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_thumb,g_face,r_max", () => { + const parts = "w_200,h_200,c_thumb,g_face,r_max" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(200) + .height(200) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_thumb,g_face,r_max,e_sharpen", () => { + const parts = "w_200,h_200,c_thumb,g_face,r_max,e_sharpen" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(200) + .height(200) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + .adjust(Adjust.sharpen()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_thumb,g_face,r_max,l_face_left/fl_layer_apply,g_north_east", () => { + const parts = + "w_200,h_200,c_thumb,g_face,r_max,l_face_left/fl_layer_apply,g_north_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").overlay( + Overlay.source( + Source.image("face_left").transformation( + new ImageTransformation() + .resize( + Resize.thumbnail() + .width(200) + .height(200) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_thumb,g_face/r_20,bo_5px_solid_black/l_cloudinary_icon,o_50,w_0.25,fl_relative,g_north_east,y_10,x_10", () => { + const parts = + "w_200,h_200,c_thumb,g_face/r_20,bo_5px_solid_black/l_cloudinary_icon,o_50,w_0.25,fl_relative,g_north_east,y_10,x_10" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(200) + .height(200) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .border(Border.solid(5, "black").roundCorners(RoundCorners.byRadius(20))) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.25).relative()) + .adjust(Adjust.opacity(50)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.northEast())) + .offsetX(10) + .offsetY(10) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_200,c_thumb,g_face/r_20,bo_5px_solid_black/l_cloudinary_icon_white,o_50,w_0.25,fl_relative,g_north_east,y_10,x_10", () => { + const parts = + "w_200,h_200,c_thumb,g_face/r_20,bo_5px_solid_black/l_cloudinary_icon_white,o_50,w_0.25,fl_relative,g_north_east,y_10,x_10" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(200) + .height(200) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .border(Border.solid(5, "black").roundCorners(RoundCorners.byRadius(20))) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_white").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.25).relative()) + .adjust(Adjust.opacity(50)) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.northEast())) + .offsetX(10) + .offsetY(10) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_220,c_thumb,g_face/l_hexagon_feather_sample,fl_cutter", () => { + const parts = + "w_200,h_220,c_thumb,g_face/l_hexagon_feather_sample,fl_cutter" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(200) + .height(220) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .reshape(Reshape.cutByImage(Source.image("hexagon_feather_sample"))); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_300,c_fill,g_auto", () => { + const parts = "w_200,h_300,c_fill,g_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(200).height(300).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200,h_300,c_fill,g_center", () => { + const parts = "w_200,h_300,c_fill,g_center".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(200) + .height(300) + .gravity(Gravity.compass(Compass.center())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200/dpr_1.0", () => { + const parts = "w_200/dpr_1.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(200)) + .delivery(Delivery.dpr("1.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200/dpr_2.0", () => { + const parts = "w_200/dpr_2.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(200)) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_200/dpr_3.0", () => { + const parts = "w_200/dpr_3.0".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(200)) + .delivery(Delivery.dpr("3.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_230,h_168,c_fit", () => { + const parts = "w_230,h_168,c_fit".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fit().width(230).height(168) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_25,h_150,c_fill,g_auto", () => { + const parts = "w_25,h_150,c_fill,g_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(25).height(150).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_25,h_150,c_fill_pad,g_auto,b_auto", () => { + const parts = "w_25,h_150,c_fill_pad,g_auto,b_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fillPad() + .width(25) + .height(150) + .gravity(Gravity.autoGravity()) + .background(Background.auto()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250", () => { + const parts = "w_250".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(250) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,bo_1px_solid_gray", () => { + const parts = "w_250,bo_1px_solid_gray".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(250)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,f_auto,q_auto,dpr_2", () => { + const parts = "w_250,f_auto,q_auto,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(250)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,fl_animated,f_auto", () => { + const parts = "w_250,fl_animated,f_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(250)) + .transcode(Transcode.toAnimated(AnimatedFormat.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,h_150,c_fill,r_max", () => { + const parts = "w_250,h_150,c_fill,r_max".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(250).height(150)) + .roundCorners(RoundCorners.max()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,h_250,c_fill", () => { + const parts = "w_250,h_250,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(250).height(250) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,h_250,c_fill,g_east", () => { + const parts = "w_250,h_250,c_fill,g_east".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(250) + .height(250) + .gravity(Gravity.compass(Compass.east())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,h_250,c_fill,g_faces", () => { + const parts = "w_250,h_250,c_fill,g_faces".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(250) + .height(250) + .gravity(Gravity.focusOn(FocusOn.faces())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,h_250,c_fill,g_north", () => { + const parts = "w_250,h_250,c_fill,g_north".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(250) + .height(250) + .gravity(Gravity.compass(Compass.north())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,h_250,c_fill,g_south_east", () => { + const parts = "w_250,h_250,c_fill,g_south_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(250) + .height(250) + .gravity(Gravity.compass(Compass.southEast())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,h_250,c_fit", () => { + const parts = "w_250,h_250,c_fit".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fit().width(250).height(250) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,h_250,c_limit", () => { + const parts = "w_250,h_250,c_limit".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitFit().width(250).height(250) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,h_250,c_lpad,b_black", () => { + const parts = "w_250,h_250,c_lpad,b_black".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitPad() + .width(250) + .height(250) + .background(Background.color("black")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,h_250,c_mfit", () => { + const parts = "w_250,h_250,c_mfit".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumFit().width(250).height(250) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,h_250,c_mpad", () => { + const parts = "w_250,h_250,c_mpad".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.minimumPad().width(250).height(250) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,h_250,c_pad,b_black", () => { + const parts = "w_250,h_250,c_pad,b_black".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(250).height(250).background(Background.color("black")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,q_80", () => { + const parts = "w_250,q_80".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(250)) + .delivery(Delivery.quality(80)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,q_auto:best", () => { + const parts = "w_250,q_auto:best".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(250)) + .delivery(Delivery.quality(Quality.autoBest())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,q_auto:eco", () => { + const parts = "w_250,q_auto:eco".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(250)) + .delivery(Delivery.quality(Quality.autoEco())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,q_auto:good", () => { + const parts = "w_250,q_auto:good".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(250)) + .delivery(Delivery.quality(Quality.autoGood())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,q_auto:low", () => { + const parts = "w_250,q_auto:low".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(250)) + .delivery(Delivery.quality(Quality.autoLow())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,x_780,y_350,c_crop", () => { + const parts = "w_250,x_780,y_350,c_crop".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(250).x(780).y(350) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,x_780,y_350,c_crop/u_docs:transparent_grid,w_250,c_crop,o_50", () => { + const parts = + "w_250,x_780,y_350,c_crop/u_docs:transparent_grid,w_250,c_crop,o_50" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(250).x(780).y(350)) + .underlay( + Underlay.source( + Source.image("docs/transparent_grid").transformation( + new ImageTransformation() + .resize(Resize.crop().width(250)) + .adjust(Adjust.opacity(50)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250,x_780,y_350,c_crop/w_1100", () => { + const parts = "w_250,x_780,y_350,c_crop/w_1100" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(250).x(780).y(350)) + .resize(Resize.scale().width(1100)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250/u_docs:transparent_grid,w_1.0,h_1.0,fl_relative,c_crop,o_50", () => { + const parts = + "w_250/u_docs:transparent_grid,w_1.0,h_1.0,fl_relative,c_crop,o_50" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(250)) + .underlay( + Underlay.source( + Source.image("docs/transparent_grid").transformation( + new ImageTransformation() + .resize(Resize.crop().width("1.0").height("1.0").relative()) + .adjust(Adjust.opacity(50)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_250/u_docs:transparent_grid,w_250,c_crop,o_50", () => { + const parts = "w_250/u_docs:transparent_grid,w_250,c_crop,o_50" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(250)) + .underlay( + Underlay.source( + Source.image("docs/transparent_grid").transformation( + new ImageTransformation() + .resize(Resize.crop().width(250)) + .adjust(Adjust.opacity(50)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_260,h_200,c_crop,g_north", () => { + const parts = "w_260,h_200,c_crop,g_north".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(260) + .height(200) + .gravity(Gravity.compass(Compass.north())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_28,q_auto", () => { + const parts = "w_28,q_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(28)) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_28,q_auto,f_auto", () => { + const parts = "w_28,q_auto,f_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(28)) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_28,q_auto,f_auto,dpr_2", () => { + const parts = "w_28,q_auto,f_auto,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(28)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300", () => { + const parts = "w_300".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(300) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,c_fill,g_auto,ar_1:1", () => { + const parts = "w_300,c_fill,g_auto,ar_1:1".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(300) + .aspectRatio(AspectRatio.ar1X1()) + .gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,c_scale,pg_2", () => { + const parts = "w_300,c_scale,pg_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .extract(Extract.getPage().byNumber(2)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,c_scale,pg_4,e_sepia,r_50,bo_2px_solid_rgb:999/l_aspose_cloud_logo,w_0.9,fl_relative,o_70,g_south,y_20", () => { + const parts = + "w_300,c_scale,pg_4,e_sepia,r_50,bo_2px_solid_rgb:999/l_aspose_cloud_logo,w_0.9,fl_relative,o_70,g_south,y_20" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(2, "#999").roundCorners(RoundCorners.byRadius(50))) + .resize(Resize.scale().width(300)) + .effect(Effect.sepia()) + .extract(Extract.getPage().byNumber(4)) + .overlay( + Overlay.source( + Source.image("aspose_cloud_logo").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.9).relative()) + .adjust(Adjust.opacity(70)) + ) + ).position( + new Position().gravity(Gravity.compass(Compass.south())).offsetY(20) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,e_accelerate:100", () => { + const parts = "w_300,e_accelerate:100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .effect(Effect.accelerate().rate(100)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,e_grayscale", () => { + const parts = "w_300,e_grayscale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .effect(Effect.grayscale()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,e_noise:50", () => { + const parts = "w_300,e_noise:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .effect(Effect.noise().level(50)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,f_auto,q_auto,dpr_2", () => { + const parts = "w_300,f_auto,q_auto,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,f_auto,q_auto,dpr_2,bo_1px_solid_gray", () => { + const parts = "w_300,f_auto,q_auto,dpr_2,bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(1, "gray")) + .resize(Resize.scale().width(300)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,fl_keep_iptc", () => { + const parts = "w_300,fl_keep_iptc".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .addFlag(Flag.keepIptc()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,fl_png8", () => { + const parts = "w_300,fl_png8".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .addFlag(Flag.png8()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_100,c_scale", () => { + const parts = "w_300,h_100,c_scale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(300).height(100) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_200,c_crop", () => { + const parts = "w_300,h_200,c_crop".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(300).height(200) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_200,c_fill,dpr_auto", () => { + const parts = "w_300,h_200,c_fill,dpr_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(300).height(200)) + .delivery(Delivery.dpr(Dpr.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill", () => { + const parts = "w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(300).height(200)) + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("dog").transformation( + new ImageTransformation().resize( + Resize.fill().width(300).height(200) + ) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0", () => { + const parts = + "w_300,h_200,c_fill/l_video:dog,fl_splice,w_300,h_200,c_fill,so_0" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(300).height(200)) + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("dog").transformation( + new ImageTransformation().resize( + Resize.fill().width(300).height(200) + ) + ) + ).prepend() + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_200,du_5/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply", () => { + const parts = + "w_300,h_200,du_5/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().duration("5.0")) + .resize(Resize.scale().width(300).height(200)) + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("dog").transformation( + new ImageTransformation() + .resize(Resize.scale().width(300).height(200)) + .videoEdit(VideoEdit.trim().duration("5.0")) + ) + ).transition(Transition.videoSource("transition1")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_200,du_5/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply/l_video:snow_deer,w_300,h_200/du_5/l_video:transition2,e_transition/fl_layer_apply/fl_layer_apply/l_video:dog,fl_splice,w_300,h_200/du_5/fl_layer_apply", () => { + const parts = + "w_300,h_200,du_5/l_video:dog,w_300,h_200/du_5/l_video:transition1,e_transition/fl_layer_apply/fl_layer_apply/l_video:snow_deer,w_300,h_200/du_5/l_video:transition2,e_transition/fl_layer_apply/fl_layer_apply/l_video:dog,fl_splice,w_300,h_200/du_5/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().duration("5.0")) + .resize(Resize.scale().width(300).height(200)) + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("dog").transformation( + new ImageTransformation() + .resize(Resize.scale().width(300).height(200)) + .videoEdit(VideoEdit.trim().duration("5.0")) + ) + ).transition(Transition.videoSource("transition1")) + ) + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("snow_deer").transformation( + new ImageTransformation() + .resize(Resize.scale().width(300).height(200)) + .videoEdit(VideoEdit.trim().duration("5.0")) + ) + ).transition(Transition.videoSource("transition2")) + ) + .videoEdit( + VideoEdit.concatenate( + Concatenate.videoSource("dog").transformation( + new ImageTransformation() + .resize(Resize.scale().width(300).height(200)) + .videoEdit(VideoEdit.trim().duration("5.0")) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_200/w_300,h_200,l_sample,fl_splice,du_3/so_0,fl_layer_apply", () => { + const parts = + "w_300,h_200/w_300,h_200,l_sample,fl_splice,du_3/so_0,fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300).height(200)) + .videoEdit( + VideoEdit.concatenate( + Concatenate.imageSource("sample").transformation( + new ImageTransformation().resize( + Resize.scale().width(300).height(200) + ) + ) + ) + .prepend() + .duration(3) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_250,e_grayscale", () => { + const parts = "w_300,h_250,e_grayscale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300).height(250)) + .effect(Effect.grayscale()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_300,c_fill,b_blue,r_max", () => { + const parts = "w_300,h_300,c_fill,b_blue,r_max" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(300).height(300)) + .roundCorners(RoundCorners.max()) + .backgroundColor("blue"); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_300,c_fill,g_face,r_max,f_auto", () => { + const parts = "w_300,h_300,c_fill,g_face,r_max,f_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill() + .width(300) + .height(300) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + .delivery(Delivery.format(Format.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_300,c_fill,r_max,e_sharpen,so_30p/l_cloudinary_icon,w_0.9,fl_relative,o_40", () => { + const parts = + "w_300,h_300,c_fill,r_max,e_sharpen,so_30p/l_cloudinary_icon,w_0.9,fl_relative,o_40" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("30%")) + .resize(Resize.fill().width(300).height(300)) + .roundCorners(RoundCorners.max()) + .adjust(Adjust.sharpen()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.9).relative()) + .adjust(Adjust.opacity(40)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_300,c_fill,r_max,e_sharpen,so_30p/l_cloudinary_icon_blue,w_0.9,fl_relative,o_40", () => { + const parts = + "w_300,h_300,c_fill,r_max,e_sharpen,so_30p/l_cloudinary_icon_blue,w_0.9,fl_relative,o_40" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("30%")) + .resize(Resize.fill().width(300).height(300)) + .roundCorners(RoundCorners.max()) + .adjust(Adjust.sharpen()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_blue").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.9).relative()) + .adjust(Adjust.opacity(40)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_300,c_fill/l_cloudinary_icon,w_0.8,fl_relative,e_brightness:100,o_50", () => { + const parts = + "w_300,h_300,c_fill/l_cloudinary_icon,w_0.8,fl_relative,e_brightness:100,o_50" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(300).height(300)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.8).relative()) + .adjust(Adjust.opacity(50)) + .adjust(Adjust.brightness().level(100)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_300,c_fill/l_cloudinary_icon_white,w_0.8,fl_relative,e_brightness:100,o_50", () => { + const parts = + "w_300,h_300,c_fill/l_cloudinary_icon_white,w_0.8,fl_relative,e_brightness:100,o_50" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(300).height(300)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_white").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.8).relative()) + .adjust(Adjust.opacity(50)) + .adjust(Adjust.brightness().level(100)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_300,c_pad,b_blue", () => { + const parts = "w_300,h_300,c_pad,b_blue".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(300).height(300).background(Background.color("blue")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_300,c_pad,b_green", () => { + const parts = "w_300,h_300,c_pad,b_green".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(300).height(300).background(Background.color("green")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_350,c_fill,g_north", () => { + const parts = "w_300,h_350,c_fill,g_north".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(300) + .height(350) + .gravity(Gravity.compass(Compass.north())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_350,c_fill,g_north/", () => { + const parts = "w_300,h_350,c_fill,g_north/".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("/sample").resize( + Resize.fill() + .width(300) + .height(350) + .gravity(Gravity.compass(Compass.north())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,h_80,c_thumb,g_adv_eyes", () => { + const parts = "w_300,h_80,c_thumb,g_adv_eyes" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(300) + .height(80) + .gravity(Gravity.focusOn(FocusOn.advancedEyes())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,pg_2", () => { + const parts = "w_300,pg_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .extract(Extract.getPage().byNumber(2)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,r_30", () => { + const parts = "w_300,r_30".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .roundCorners(RoundCorners.byRadius(30)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300,r_max", () => { + const parts = "w_300,r_max".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .roundCorners(RoundCorners.max()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300/c_fill,e_shadow,x_w_div_50,y_w_div_50", () => { + const parts = "w_300/c_fill,e_shadow,x_w_div_50,y_w_div_50" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .effect( + Effect.shadow() + .offsetX(Expression.expression("width / 50")) + .offsetY(Expression.expression("width / 50")) + ) + .resize(Resize.fill()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_300/l_video:dog,w_100,g_north_east,r_max", () => { + const parts = "w_300/l_video:dog,w_100,g_north_east,r_max" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(300)) + .overlay( + Overlay.source( + Source.video("dog").transformation( + new ImageTransformation() + .resize(Resize.scale().width(100)) + .roundCorners(RoundCorners.max()) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350", () => { + const parts = "w_350".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(350) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,bo_5px_solid_black/q_auto,dpr_auto", () => { + const parts = "w_350,bo_5px_solid_black/q_auto,dpr_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(5, "black")) + .resize(Resize.scale().width(350)) + .delivery(Delivery.dpr(Dpr.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,e_tint:100:red:blue:yellow", () => { + const parts = "w_350,e_tint:100:red:blue:yellow" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .adjust(Adjust.tint("100:red:blue:yellow")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,e_tint:20", () => { + const parts = "w_350,e_tint:20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .adjust(Adjust.tint(20)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,e_tint:equalize:80:red:50p:blue:60p:yellow:40p", () => { + const parts = "w_350,e_tint:equalize:80:red:50p:blue:60p:yellow:40p" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .adjust(Adjust.tint("equalize:80:red:50p:blue:60p:yellow:40p")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,f_auto", () => { + const parts = "w_350,f_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .delivery(Delivery.format(Format.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,f_gif", () => { + const parts = "w_350,f_gif".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .delivery(Delivery.format(Format.gif())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,h_200,x_230,y_20,c_crop", () => { + const parts = "w_350,h_200,x_230,y_20,c_crop" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(350).height(200).x(230).y(20) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,q_100", () => { + const parts = "w_350,q_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .delivery(Delivery.quality(100)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,q_80", () => { + const parts = "w_350,q_80".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .delivery(Delivery.quality(80)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,q_auto:best", () => { + const parts = "w_350,q_auto:best".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .delivery(Delivery.quality(Quality.autoBest())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,q_auto:eco", () => { + const parts = "w_350,q_auto:eco".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .delivery(Delivery.quality(Quality.autoEco())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,q_auto:good", () => { + const parts = "w_350,q_auto:good".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .delivery(Delivery.quality(Quality.autoGood())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350,q_auto:low", () => { + const parts = "w_350,q_auto:low".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .delivery(Delivery.quality(Quality.autoLow())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_350/q_auto,dpr_auto", () => { + const parts = "w_350/q_auto,dpr_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(350)) + .delivery(Delivery.dpr(Dpr.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_400", () => { + const parts = "w_400".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(400) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_400,ar_1,c_thumb,g_auto:skateboard", () => { + const parts = "w_400,ar_1,c_thumb,g_auto:skateboard" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(400) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.skateboard()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_400,ar_1,g_auto,c_fill_pad", () => { + const parts = "w_400,ar_1,g_auto,c_fill_pad".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fillPad() + .width(400) + .aspectRatio("1.0") + .gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_400,ar_1,g_auto,c_fill_pad,so_1", () => { + const parts = "w_400,ar_1,g_auto,c_fill_pad,so_1" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.trim().startOffset("1.0")) + .resize( + Resize.fillPad() + .width(400) + .aspectRatio("1.0") + .gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_400,c_fill,ar_4:3", () => { + const parts = "w_400,c_fill,ar_4:3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(400).aspectRatio(AspectRatio.ar4X3()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_400,f_png", () => { + const parts = "w_400,f_png".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(400)) + .delivery(Delivery.format(Format.png())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_400,fl_keep_iptc", () => { + const parts = "w_400,fl_keep_iptc".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(400)) + .addFlag(Flag.keepIptc()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_400,h_150,c_lpad,b_green", () => { + const parts = "w_400,h_150,c_lpad,b_green".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.limitPad() + .width(400) + .height(150) + .background(Background.color("green")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_400,h_250,c_fill,g_south/l_nice_couple,w_1.3,h_1.3,g_faces,c_crop,fl_region_relative/e_saturation:50/e_vignette/fl_layer_apply,w_100,r_max,g_center,y_20,x_-20/l_balloon,h_55/e_hue:-20,a_5/fl_layer_apply,x_30,y_5/l_text:Cookie_40_bold:Love,e_colorize,co_rgb:f08/a_20,fl_layer_apply,x_-45,y_44/c_crop,w_300,h_250,x_30/r_60", () => { + const parts = + "w_400,h_250,c_fill,g_south/l_nice_couple,w_1.3,h_1.3,g_faces,c_crop,fl_region_relative/e_saturation:50/e_vignette/fl_layer_apply,w_100,r_max,g_center,y_20,x_-20/l_balloon,h_55/e_hue:-20,a_5/fl_layer_apply,x_30,y_5/l_text:Cookie_40_bold:Love,e_colorize,co_rgb:f08/a_20,fl_layer_apply,x_-45,y_44/c_crop,w_300,h_250,x_30/r_60" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill() + .width(400) + .height(250) + .gravity(Gravity.compass(Compass.south())) + ) + .overlay( + Overlay.source( + Source.image("nice_couple").transformation( + new ImageTransformation() + .resize( + Resize.crop() + .width(1.3) + .height(1.3) + .gravity(Gravity.focusOn(FocusOn.faces())) + .regionRelative() + ) + .adjust(Adjust.saturation().level(50)) + .effect(Effect.vignette()) + .resize(Resize.scale().width(100)) + .roundCorners(RoundCorners.max()) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.center())) + .offsetX(-20) + .offsetY(20) + ) + ) + .overlay( + Overlay.source( + Source.image("balloon").transformation( + new ImageTransformation() + .resize(Resize.scale().height(55)) + .rotate(Rotate.byAngle(5)) + .adjust(Adjust.hue().level(-20)) + ) + ).position(new Position().offsetX(30).offsetY(5)) + ) + .overlay( + Overlay.source( + Source.text( + "Love", + new TextStyle("Cookie", 40).fontWeight(FontWeight.bold()) + ) + .textColor("#f08") + .transformation( + new ImageTransformation() + .effect(Effect.colorize()) + .rotate(Rotate.byAngle(20)) + ) + ).position(new Position().offsetX(-45).offsetY(44)) + ) + .resize(Resize.crop().width(300).height(250).x(30)) + .roundCorners(RoundCorners.byRadius(60)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_400,h_300,c_pad", () => { + const parts = "w_400,h_300,c_pad".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.pad().width(400).height(300) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_400,h_400,c_crop,g_face,r_max/w_200", () => { + const parts = "w_400,h_400,c_crop,g_face,r_max/w_200" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop() + .width(400) + .height(400) + .gravity(Gravity.focusOn(FocusOn.face())) + ) + .roundCorners(RoundCorners.max()) + .resize(Resize.scale().width(200)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_400,q_auto:best,vc_vp9", () => { + const parts = "w_400,q_auto:best,vc_vp9".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .transcode(Transcode.videoCodec(VideoCodec.vp9())) + .resize(Resize.scale().width(400)) + .delivery(Delivery.quality(Quality.autoBest())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_450,bo_5px_solid_black/q_auto,dpr_auto", () => { + const parts = "w_450,bo_5px_solid_black/q_auto,dpr_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(5, "black")) + .resize(Resize.scale().width(450)) + .delivery(Delivery.dpr(Dpr.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500", () => { + const parts = "w_500".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(500) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1,c_crop,g_auto:bottle", () => { + const parts = "w_500,ar_1,c_crop,g_auto:bottle" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(500) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.bottle())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1,c_crop,g_auto:bottle/h_150", () => { + const parts = "w_500,ar_1,c_crop,g_auto:bottle/h_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop() + .width(500) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.bottle())) + ) + ) + .resize(Resize.scale().height(150)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1,c_crop,g_bottle", () => { + const parts = "w_500,ar_1,c_crop,g_bottle".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop() + .width(500) + .aspectRatio("1.0") + .gravity(Gravity.focusOn(FocusOn.bottle())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1,c_crop,g_bottle/h_150", () => { + const parts = "w_500,ar_1,c_crop,g_bottle/h_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop() + .width(500) + .aspectRatio("1.0") + .gravity(Gravity.focusOn(FocusOn.bottle())) + ) + .resize(Resize.scale().height(150)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1,c_fill,g_auto:bottle", () => { + const parts = "w_500,ar_1,c_fill,g_auto:bottle" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(500) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.bottle())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1,c_fill,g_auto:bottle/h_150", () => { + const parts = "w_500,ar_1,c_fill,g_auto:bottle/h_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill() + .width(500) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.bottle())) + ) + ) + .resize(Resize.scale().height(150)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1,c_fill,g_bottle", () => { + const parts = "w_500,ar_1,c_fill,g_bottle".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(500) + .aspectRatio("1.0") + .gravity(Gravity.focusOn(FocusOn.bottle())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1,c_fill,g_bottle/h_150", () => { + const parts = "w_500,ar_1,c_fill,g_bottle/h_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill() + .width(500) + .aspectRatio("1.0") + .gravity(Gravity.focusOn(FocusOn.bottle())) + ) + .resize(Resize.scale().height(150)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1,c_thumb,g_auto:bottle", () => { + const parts = "w_500,ar_1,c_thumb,g_auto:bottle" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(500) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.bottle())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1,c_thumb,g_auto:bottle/h_150", () => { + const parts = "w_500,ar_1,c_thumb,g_auto:bottle/h_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(500) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.bottle())) + ) + ) + .resize(Resize.scale().height(150)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1,c_thumb,g_bottle", () => { + const parts = "w_500,ar_1,c_thumb,g_bottle".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(500) + .aspectRatio("1.0") + .gravity(Gravity.focusOn(FocusOn.bottle())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1,c_thumb,g_bottle/h_150", () => { + const parts = "w_500,ar_1,c_thumb,g_bottle/h_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(500) + .aspectRatio("1.0") + .gravity(Gravity.focusOn(FocusOn.bottle())) + ) + .resize(Resize.scale().height(150)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1.0,c_fill,g_auto", () => { + const parts = "w_500,ar_1.0,c_fill,g_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(500).aspectRatio("1.0").gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1.0,c_fill,g_auto/h_300", () => { + const parts = "w_500,ar_1.0,c_fill,g_auto/h_300" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill() + .width(500) + .aspectRatio("1.0") + .gravity(Gravity.autoGravity()) + ) + .resize(Resize.scale().height(300)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1.0,c_fill,g_auto:person_avoid", () => { + const parts = "w_500,ar_1.0,c_fill,g_auto:person_avoid" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(500) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.person()).avoid() + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_1.0,c_fill,g_auto:person_avoid/h_300", () => { + const parts = "w_500,ar_1.0,c_fill,g_auto:person_avoid/h_300" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill() + .width(500) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.person()).avoid() + ) + ) + ) + .resize(Resize.scale().height(300)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,ar_4:3", () => { + const parts = "w_500,ar_4:3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(500).aspectRatio(AspectRatio.ar4X3()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,bo_5px_solid_black", () => { + const parts = "w_500,bo_5px_solid_black".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .border(Border.solid(5, "black")) + .resize(Resize.scale().width(500)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,e_brightness:30", () => { + const parts = "w_500,e_brightness:30".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .adjust(Adjust.brightness().level(30)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,e_contrast:50", () => { + const parts = "w_500,e_contrast:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .adjust(Adjust.contrast().level(50)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,e_gamma:-20", () => { + const parts = "w_500,e_gamma:-20".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .adjust(Adjust.gamma().level(-20)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,e_reverse", () => { + const parts = "w_500,e_reverse".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .effect(Effect.reverse()); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,e_saturation:-50", () => { + const parts = "w_500,e_saturation:-50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .adjust(Adjust.saturation().level(-50)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,e_vignette:50", () => { + const parts = "w_500,e_vignette:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .effect(Effect.vignette().strength(50)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,e_volume:50", () => { + const parts = "w_500,e_volume:50".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .videoEdit(VideoEdit.volume(50)) + .resize(Resize.scale().width(500)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,f_auto", () => { + const parts = "w_500,f_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .delivery(Delivery.format(Format.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,f_auto,q_auto,dpr_2/bo_1px_solid_gray", () => { + const parts = "w_500,f_auto,q_auto,dpr_2/bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,f_auto/fl_streaming_attachment:mydog", () => { + const parts = "w_500,f_auto/fl_streaming_attachment:mydog" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .delivery(Delivery.format(Format.auto())) + .addFlag(Flag.streamingAttachment("mydog")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,q_auto,f_auto", () => { + const parts = "w_500,q_auto,f_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500,q_auto,f_auto,dpr_2", () => { + const parts = "w_500,q_auto,f_auto,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/e_brightness:70/l_woman,c_crop,g_face/w_150/e_saturation:50/e_shadow/fl_layer_apply", () => { + const parts = + "w_500/e_brightness:70/l_woman,c_crop,g_face/w_150/e_saturation:50/e_shadow/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .adjust(Adjust.brightness().level(70)) + .overlay( + Overlay.source( + Source.image("woman").transformation( + new ImageTransformation() + .resize(Resize.crop().gravity(Gravity.focusOn(FocusOn.face()))) + .resize(Resize.scale().width(150)) + .adjust(Adjust.saturation().level(50)) + .effect(Effect.shadow()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/e_brightness:70/l_woman,c_crop,g_face/w_250/e_saturation:50/e_shadow,x_20,y_20,co_grey/fl_layer_apply", () => { + const parts = + "w_500/e_brightness:70/l_woman,c_crop,g_face/w_250/e_saturation:50/e_shadow,x_20,y_20,co_grey/fl_layer_apply" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .adjust(Adjust.brightness().level(70)) + .overlay( + Overlay.source( + Source.image("woman").transformation( + new ImageTransformation() + .resize(Resize.crop().gravity(Gravity.focusOn(FocusOn.face()))) + .resize(Resize.scale().width(250)) + .adjust(Adjust.saturation().level(50)) + .effect(Effect.shadow().color("grey")) + ) + ).position(new Position().offsetX(20).offsetY(20)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_cloudinary_icon,g_north_east,o_50,w_200,e_anti_removal:90", () => { + const parts = + "w_500/l_cloudinary_icon,g_north_east,o_50,w_200,e_anti_removal:90" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(200)) + .adjust(Adjust.opacity(50)) + ) + ) + .position( + new Position().gravity(Gravity.compass(Compass.northEast())) + ) + .blendMode(BlendMode.antiRemoval(90)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_cloudinary_icon,o_50,w_100,e_brightness:100,fl_tiled", () => { + const parts = "w_500/l_cloudinary_icon,o_50,w_100,e_brightness:100,fl_tiled" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(100)) + .adjust(Adjust.opacity(50)) + .adjust(Adjust.brightness().level(100)) + ) + ).position(new Position().tiled()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_cloudinary_icon,w_150/e_blackwhite/fl_layer_apply,g_north_east", () => { + const parts = + "w_500/l_cloudinary_icon,w_150/e_blackwhite/fl_layer_apply,g_north_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(150)) + .effect(Effect.blackwhite()) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_cloudinary_icon,w_150/e_blackwhite/l_cloudinary_icon,w_50/fl_layer_apply/fl_layer_apply,g_north_east", () => { + const parts = + "w_500/l_cloudinary_icon,w_150/e_blackwhite/l_cloudinary_icon,w_50/fl_layer_apply/fl_layer_apply,g_north_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation() + .resize(Resize.scale().width(150)) + .effect(Effect.blackwhite()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon").transformation( + new ImageTransformation().resize(Resize.scale().width(50)) + ) + ) + ) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_cloudinary_icon_blue,g_north_east,o_50,w_200,e_anti_removal:90", () => { + const parts = + "w_500/l_cloudinary_icon_blue,g_north_east,o_50,w_200,e_anti_removal:90" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_blue").transformation( + new ImageTransformation() + .resize(Resize.scale().width(200)) + .adjust(Adjust.opacity(50)) + ) + ) + .position( + new Position().gravity(Gravity.compass(Compass.northEast())) + ) + .blendMode(BlendMode.antiRemoval(90)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_cloudinary_icon_blue,w_150/e_blackwhite/fl_layer_apply,g_north_east", () => { + const parts = + "w_500/l_cloudinary_icon_blue,w_150/e_blackwhite/fl_layer_apply,g_north_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_blue").transformation( + new ImageTransformation() + .resize(Resize.scale().width(150)) + .effect(Effect.blackwhite()) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_cloudinary_icon_blue,w_150/e_blackwhite/l_cloudinary_icon_blue,w_50/fl_layer_apply/fl_layer_apply,g_north_east", () => { + const parts = + "w_500/l_cloudinary_icon_blue,w_150/e_blackwhite/l_cloudinary_icon_blue,w_50/fl_layer_apply/fl_layer_apply,g_north_east" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_blue").transformation( + new ImageTransformation() + .resize(Resize.scale().width(150)) + .effect(Effect.blackwhite()) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_blue").transformation( + new ImageTransformation().resize(Resize.scale().width(50)) + ) + ) + ) + ) + ).position(new Position().gravity(Gravity.compass(Compass.northEast()))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_cloudinary_icon_white,o_50,w_100,e_brightness:100,fl_tiled", () => { + const parts = + "w_500/l_cloudinary_icon_white,o_50,w_100,e_brightness:100,fl_tiled" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.image("cloudinary_icon_white").transformation( + new ImageTransformation() + .resize(Resize.scale().width(100)) + .adjust(Adjust.opacity(50)) + .adjust(Adjust.brightness().level(100)) + ) + ).position(new Position().tiled()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_my_bg", () => { + const parts = "w_500/l_my_bg".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay(Overlay.source(Source.image("my_bg"))); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_my_icon", () => { + const parts = "w_500/l_my_icon".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay(Overlay.source(Source.image("my_icon"))); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_subtitles:Arial_40:sample_sub_he.srt", () => { + const parts = "w_500/l_subtitles:Arial_40:sample_sub_he.srt" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.subtitles("sample_sub_he.srt").textStyle( + new TextStyle("Arial", 40) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_subtitles:sample_sub_he.srt", () => { + const parts = "w_500/l_subtitles:sample_sub_he.srt" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay(Overlay.source(Source.subtitles("sample_sub_he.srt"))); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_text:Arial_80:Flowers", () => { + const parts = "w_500/l_text:Arial_80:Flowers" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source(Source.text("Flowers", new TextStyle("Arial", 80))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_text:Verdana_50_bold:Cool", () => { + const parts = "w_500/l_text:Verdana_50_bold:Cool" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.text( + "Cool", + new TextStyle("Verdana", 50).fontWeight(FontWeight.bold()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_text:Verdana_75_bold_underline_letter_spacing_14:Flowers", () => { + const parts = + "w_500/l_text:Verdana_75_bold_underline_letter_spacing_14:Flowers" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.text( + "Flowers", + new TextStyle("Verdana", 75) + .fontWeight(FontWeight.bold()) + .textDecoration(TextDecoration.underline()) + .letterSpacing(14) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24", () => { + const parts = + "w_500/l_text:Verdana_75_bold_underline_stroke_letter_spacing_14_line_spacing_4:words,y_24" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.text( + "words", + new TextStyle("Verdana", 75) + .fontWeight(FontWeight.bold()) + .textDecoration(TextDecoration.underline()) + .letterSpacing(14) + .stroke() + .lineSpacing(4) + ) + ).position(new Position().offsetY(24)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_text:verdana_12_bold_underline_left:words", () => { + const parts = "w_500/l_text:verdana_12_bold_underline_left:words" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.text( + "words", + new TextStyle("verdana", 12) + .fontWeight(FontWeight.bold()) + .textDecoration(TextDecoration.underline()) + .textAlignment(TextAlignment.left()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_text:verdana_12_bold_underline_left:words,y_23", () => { + const parts = "w_500/l_text:verdana_12_bold_underline_left:words,y_23" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.text( + "words", + new TextStyle("verdana", 12) + .fontWeight(FontWeight.bold()) + .textDecoration(TextDecoration.underline()) + .textAlignment(TextAlignment.left()) + ) + ).position(new Position().offsetY(23)) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_text:verdana_1:words", () => { + const parts = "w_500/l_text:verdana_1:words".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source(Source.text("words", new TextStyle("verdana", 1))) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_video:docs:bluescreen_watches,e_make_transparent:10,co_rgb:3d8d48,w_1.0,fl_relative/du_15", () => { + const parts = + "w_500/l_video:docs:bluescreen_watches,e_make_transparent:10,co_rgb:3d8d48,w_1.0,fl_relative/du_15" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.video("docs/bluescreen_watches").transformation( + new ImageTransformation() + .resize(Resize.scale().width("1.0").relative()) + .effect( + Effect.makeTransparent() + .tolerance("10.0") + .colorToReplace("#3d8d48") + ) + ) + ) + ) + .videoEdit(VideoEdit.trim().duration("15.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/l_video:docs:bluescreen_watches,e_make_transparent:20,co_rgb:0e80d8,w_0.6,fl_relative,g_north/du_15", () => { + const parts = + "w_500/l_video:docs:bluescreen_watches,e_make_transparent:20,co_rgb:0e80d8,w_0.6,fl_relative,g_north/du_15" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .overlay( + Overlay.source( + Source.video("docs/bluescreen_watches").transformation( + new ImageTransformation() + .resize(Resize.scale().width(0.6).relative()) + .effect( + Effect.makeTransparent() + .tolerance("20.0") + .colorToReplace("#0e80d8") + ) + ) + ).position(new Position().gravity(Gravity.compass(Compass.north()))) + ) + .videoEdit(VideoEdit.trim().duration("15.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/u_fetch:aW1hZ2UudXJs", () => { + const parts = "w_500/u_fetch:aW1hZ2UudXJs".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .underlay(Underlay.source(Source.fetch("image.url"))); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_500/u_my_bg", () => { + const parts = "w_500/u_my_bg".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(500)) + .underlay(Underlay.source(Source.image("my_bg"))); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_550,h_300,c_fit/f_auto,q_auto,dpr_2", () => { + const parts = "w_550,h_300,c_fit/f_auto,q_auto,dpr_2" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fit().width(550).height(300)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_550,h_35,c_crop,g_north_west/bo_1px_solid_gray/dpr_auto", () => { + const parts = "w_550,h_35,c_crop,g_north_west/bo_1px_solid_gray/dpr_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.crop() + .width(550) + .height(35) + .gravity(Gravity.compass(Compass.northWest())) + ) + .border(Border.solid(1, "gray")) + .delivery(Delivery.dpr(Dpr.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_600", () => { + const parts = "w_600".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(600) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_600,ar_1,c_thumb,g_auto:microwave", () => { + const parts = "w_600,ar_1,c_thumb,g_auto:microwave" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(600) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.microwave()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_600,ar_1,c_thumb,g_auto:microwave/h_150", () => { + const parts = "w_600,ar_1,c_thumb,g_auto:microwave/h_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(600) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.microwave()) + ) + ) + ) + .resize(Resize.scale().height(150)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_600,ar_1,c_thumb,g_auto:refrigerator", () => { + const parts = "w_600,ar_1,c_thumb,g_auto:refrigerator" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(600) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.refrigerator()) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_600,ar_1,c_thumb,g_auto:refrigerator/h_150", () => { + const parts = "w_600,ar_1,c_thumb,g_auto:refrigerator/h_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(600) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus( + AutoFocus.focusOn(FocusOn.refrigerator()) + ) + ) + ) + .resize(Resize.scale().height(150)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_600,ar_1,c_thumb,g_auto:sink", () => { + const parts = "w_600,ar_1,c_thumb,g_auto:sink" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.thumbnail() + .width(600) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.sink())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_600,ar_1,c_thumb,g_auto:sink/h_150", () => { + const parts = "w_600,ar_1,c_thumb,g_auto:sink/h_150" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.thumbnail() + .width(600) + .aspectRatio("1.0") + .gravity( + Gravity.autoGravity().autoFocus(AutoFocus.focusOn(FocusOn.sink())) + ) + ) + .resize(Resize.scale().height(150)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_600,f_auto,q_auto,dpr_2", () => { + const parts = "w_600,f_auto,q_auto,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(600)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_600/q_100", () => { + const parts = "w_600/q_100".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(600)) + .delivery(Delivery.quality(100)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_600/q_auto,f_auto,dpr_2/bo_1px_solid_gray", () => { + const parts = "w_600/q_auto,f_auto,dpr_2/bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(600)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_600/q_auto:low", () => { + const parts = "w_600/q_auto:low".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(600)) + .delivery(Delivery.quality(Quality.autoLow())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_600/w_570,h_43,c_crop,g_north_west/bo_1px_solid_gray", () => { + const parts = "w_600/w_570,h_43,c_crop,g_north_west/bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(600)) + .resize( + Resize.crop() + .width(570) + .height(43) + .gravity(Gravity.compass(Compass.northWest())) + ) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_700,dpr_2/f_auto,q_auto", () => { + const parts = "w_700,dpr_2/f_auto,q_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(700)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_700,f_auto,q_auto,dpr_2/bo_1px_solid_gray", () => { + const parts = "w_700,f_auto,q_auto,dpr_2/bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(700)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_700,h_700,c_fill", () => { + const parts = "w_700,h_700,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(700).height(700) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_700,h_700,c_fill/e_style_transfer,l_sailing_angel", () => { + const parts = "w_700,h_700,c_fill/e_style_transfer,l_sailing_angel" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(700).height(700)) + .effect(Effect.styleTransfer(Source.image("sailing_angel"))); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_700,h_700,c_fill/e_style_transfer:60,l_lighthouse/w_250", () => { + const parts = "w_700,h_700,c_fill/e_style_transfer:60,l_lighthouse/w_250" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(700).height(700)) + .effect(Effect.styleTransfer(Source.image("lighthouse")).strength(60)) + .resize(Resize.scale().width(250)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_700,h_700,c_fill/e_style_transfer:preserve_color,l_lighthouse/w_250", () => { + const parts = + "w_700,h_700,c_fill/e_style_transfer:preserve_color,l_lighthouse/w_250" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(700).height(700)) + .effect(Effect.styleTransfer(Source.image("lighthouse")).preserveColor()) + .resize(Resize.scale().width(250)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_700,h_700,c_fill/w_250", () => { + const parts = "w_700,h_700,c_fill/w_250".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.fill().width(700).height(700)) + .resize(Resize.scale().width(250)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_700,q_auto,f_auto,dpr_2", () => { + const parts = "w_700,q_auto,f_auto,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(700)) + .delivery(Delivery.dpr("2.0")) + .delivery(Delivery.format(Format.auto())) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_700,r_max/fl_region_relative,g_adv_eyes,l_harlequinmask,w_1.7", () => { + const parts = + "w_700,r_max/fl_region_relative,g_adv_eyes,l_harlequinmask,w_1.7" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(700)) + .roundCorners(RoundCorners.max()) + .overlay( + Overlay.source( + Source.image("harlequinmask").transformation( + new ImageTransformation().resize( + Resize.scale().width(1.7).regionRelative() + ) + ) + ).position( + new Position().gravity(Gravity.focusOn(FocusOn.advancedEyes())) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_700/dpr_auto/bo_1px_solid_gray", () => { + const parts = "w_700/dpr_auto/bo_1px_solid_gray" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(700)) + .delivery(Delivery.dpr(Dpr.auto())) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_750,h_750,c_fill,g_faces", () => { + const parts = "w_750,h_750,c_fill,g_faces".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(750) + .height(750) + .gravity(Gravity.focusOn(FocusOn.faces())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_750,h_750,c_fill,g_faces/u_docs:iphone_template,h_300,a_90", () => { + const parts = "w_750,h_750,c_fill,g_faces/u_docs:iphone_template,h_300,a_90" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize( + Resize.fill() + .width(750) + .height(750) + .gravity(Gravity.focusOn(FocusOn.faces())) + ) + .underlay( + Underlay.source( + Source.image("docs/iphone_template").transformation( + new ImageTransformation() + .rotate(Rotate.byAngle(90)) + .resize(Resize.scale().height(300)) + ) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_80,h_120,c_fill,g_face", () => { + const parts = "w_80,h_120,c_fill,g_face".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill() + .width(80) + .height(120) + .gravity(Gravity.focusOn(FocusOn.face())) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_80,h_400,c_fill,g_auto", () => { + const parts = "w_80,h_400,c_fill,g_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width(80).height(400).gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_80,h_400,c_fill_pad,g_auto,b_auto", () => { + const parts = "w_80,h_400,c_fill_pad,g_auto,b_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fillPad() + .width(80) + .height(400) + .gravity(Gravity.autoGravity()) + .background(Background.auto()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_800", () => { + const parts = "w_800".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(800) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_800,r_150", () => { + const parts = "w_800,r_150".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(800)) + .roundCorners(RoundCorners.byRadius(150)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_800/bo_1px_solid_gray", () => { + const parts = "w_800/bo_1px_solid_gray".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(800)) + .border(Border.solid(1, "gray")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_850,dpr_2", () => { + const parts = "w_850,dpr_2".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width(850)) + .delivery(Delivery.dpr("2.0")); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_abc", () => { + const parts = "w_abc".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width("abc") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_auto", () => { + const parts = "w_auto".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width("auto") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_auto,c_scale", () => { + const parts = "w_auto,c_scale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width("auto") + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_auto,dpr_auto,c_limit/g_north_east,y_5,x_5,co_white,l_text:Arial_18_bold:dpr_auto", () => { + const parts = + "w_auto,dpr_auto,c_limit/g_north_east,y_5,x_5,co_white,l_text:Arial_18_bold:dpr_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.limitFit().width("auto")) + .delivery(Delivery.dpr(Dpr.auto())) + .overlay( + Overlay.source( + Source.text( + "dpr_auto", + new TextStyle("Arial", 18).fontWeight(FontWeight.bold()) + ).textColor("white") + ).position( + new Position() + .gravity(Gravity.compass(Compass.northEast())) + .offsetX(5) + .offsetY(5) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_auto,dpr_auto,c_limit/g_north_east,y_5,x_5,co_white,l_text:Arial_18_bold:dpr_auto,w_auto", () => { + const parts = + "w_auto,dpr_auto,c_limit/g_north_east,y_5,x_5,co_white,l_text:Arial_18_bold:dpr_auto,w_auto" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.limitFit().width("auto")) + .delivery(Delivery.dpr(Dpr.auto())) + .overlay( + Overlay.source( + Source.text( + "dpr_auto", + new TextStyle("Arial", 18).fontWeight(FontWeight.bold()) + ) + .textColor("white") + .transformation( + new ImageTransformation().resize(Resize.scale().width("auto")) + ) + ).position( + new Position() + .gravity(Gravity.compass(Compass.northEast())) + .offsetX(5) + .offsetY(5) + ) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_auto,dpr_auto,c_scale", () => { + const parts = "w_auto,dpr_auto,c_scale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width("auto")) + .delivery(Delivery.dpr(Dpr.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_auto,f_auto,c_scale", () => { + const parts = "w_auto,f_auto,c_scale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width("auto")) + .delivery(Delivery.format(Format.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_auto,g_auto,c_fill", () => { + const parts = "w_auto,g_auto,c_fill".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.fill().width("auto").gravity(Gravity.autoGravity()) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_auto,q_auto,c_scale", () => { + const parts = "w_auto,q_auto,c_scale".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.scale().width("auto")) + .delivery(Delivery.quality(Quality.auto())); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("w_iw_add_100_div_3", () => { + const parts = "w_iw_add_100_div_3".replace(/\//g, ",").split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.scale().width(Expression.expression("initial_width + 100 / 3")) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("x_355,y_410,w_300,h_200,c_crop", () => { + const parts = "x_355,y_410,w_300,h_200,c_crop" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample").resize( + Resize.crop().width(300).height(200).x(355).y(410) + ); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill", () => { + const parts = "x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(300).height(200).x(355).y(410)) + .resize(Resize.fill().width(130).height(100)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill/a_20/c_scale,w_0.5", () => { + const parts = + "x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill/a_20/c_scale,w_0.5" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(300).height(200).x(355).y(410)) + .resize(Resize.fill().width(130).height(100)) + .rotate(Rotate.byAngle(20)) + .resize(Resize.scale().width(0.5)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill/a_20/w_0.5", () => { + const parts = "x_355,y_410,w_300,h_200,c_crop/w_130,h_100,c_fill/a_20/w_0.5" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(300).height(200).x(355).y(410)) + .resize(Resize.fill().width(130).height(100)) + .rotate(Rotate.byAngle(20)) + .resize(Resize.scale().width(0.5)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); + + it("x_355,y_410,w_300,h_200,c_crop/w_150,h_100,c_scale", () => { + const parts = "x_355,y_410,w_300,h_200,c_crop/w_150,h_100,c_scale" + .replace(/\//g, ",") + .split(","); + + const tAsset = new CloudinaryImage("sample") + .resize(Resize.crop().width(300).height(200).x(355).y(410)) + .resize(Resize.scale().width(150).height(100)); + parts.forEach((part) => { + expect(tAsset.toString()).toContain(part); + }); + }); +}); diff --git a/__TESTS__/unit/actions/Resize/LimitPadAction.test.ts b/__TESTS__/unit/actions/Resize/LimitPadAction.test.ts index 0b3bcbce..917a2644 100644 --- a/__TESTS__/unit/actions/Resize/LimitPadAction.test.ts +++ b/__TESTS__/unit/actions/Resize/LimitPadAction.test.ts @@ -2,6 +2,7 @@ import getImageWithResize from "./shared/getImageWithResize"; import {limitPad} from "../../../../src/actions/resize"; import {Background} from "../../../../src/qualifiers/background"; import {Gravity} from "../../../../src/qualifiers/gravity"; +import {Compass} from "../../../../src/qualifiers/compass"; describe('Tests for Transformation Action -- Resize.limitPad', () => { it('Ensures it generates the right URL', () => { @@ -17,9 +18,9 @@ describe('Tests for Transformation Action -- Resize.limitPad', () => { .aspectRatio(2) .offsetX(10) .offsetY(10) - .gravity(Gravity.autoGravity()) + .gravity(Gravity.compass(Compass.west())) .background(Background.color('red')), 'url'); - expect(url).toContain('ar_2.0,b_red,c_lpad,g_auto,h_250,w_250,x_10,y_10'); + expect(url).toContain('ar_2.0,b_red,c_lpad,g_west,h_250,w_250,x_10,y_10'); }); }); diff --git a/__TESTS__/unit/actions/Resize/MinimumPadAction.test.ts b/__TESTS__/unit/actions/Resize/MinimumPadAction.test.ts index a6f503ff..208059bb 100644 --- a/__TESTS__/unit/actions/Resize/MinimumPadAction.test.ts +++ b/__TESTS__/unit/actions/Resize/MinimumPadAction.test.ts @@ -2,6 +2,7 @@ import getImageWithResize from "./shared/getImageWithResize"; import {Background} from "../../../../src/qualifiers/background"; import {minimumPad} from "../../../../src/actions/resize"; import {Gravity} from "../../../../src/qualifiers/gravity"; +import {Compass} from "../../../../src/qualifiers/compass"; describe('Tests for Transformation Action -- Resize.minimumPad', () => { it('Ensures it generates the right URL', () => { @@ -14,12 +15,12 @@ describe('Tests for Transformation Action -- Resize.minimumPad', () => { minimumPad() .width(250) .height(250) - .gravity(Gravity.autoGravity()) + .gravity(Gravity.compass(Compass.west())) .offsetX(10) .offsetY(10) .background(Background.color('red')) .aspectRatio(1.2), 'url'); - expect(url).toContain('ar_1.2,b_red,c_mpad,g_auto,h_250,w_250,x_10,y_10'); + expect(url).toContain('ar_1.2,b_red,c_mpad,g_west,h_250,w_250,x_10,y_10'); }); }); diff --git a/__TESTS__/unit/actions/Resize/PadAction.test.ts b/__TESTS__/unit/actions/Resize/PadAction.test.ts index e65445f0..5229f333 100644 --- a/__TESTS__/unit/actions/Resize/PadAction.test.ts +++ b/__TESTS__/unit/actions/Resize/PadAction.test.ts @@ -2,6 +2,7 @@ import getImageWithResize from "./shared/getImageWithResize"; import {pad} from "../../../../src/actions/resize"; import {Background} from "../../../../src/qualifiers/background"; import {Gravity} from "../../../../src/qualifiers/gravity"; +import {Compass} from "../../../../src/qualifiers/compass"; describe('Tests for Transformation Action -- Resize.pad', () => { it('Ensures it generates the right URL', () => { @@ -14,12 +15,12 @@ describe('Tests for Transformation Action -- Resize.pad', () => { pad() .width(250) .height(250) - .gravity(Gravity.autoGravity()) + .gravity(Gravity.compass(Compass.west())) .offsetX(10) .offsetY(10) .background(Background.color('red')) .aspectRatio(1.2), 'url'); - expect(url).toContain('ar_1.2,b_red,c_pad,g_auto,h_250,w_250,x_10,y_10'); + expect(url).toContain('ar_1.2,b_red,c_pad,g_west,h_250,w_250,x_10,y_10'); }); }); diff --git a/package.json b/package.json index 6e2f336c..c5f6365e 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,8 @@ "scripts": { "test": "npm run test:types && npm run build && jest --coverage --reporters default && npm run test:size", "test:size": "ts-node -O '{\"module\":\"CommonJS\"}' __TESTS_BUNDLE_SIZE__/bin/bin.ts", - "test:comp": "node ./scripts/updateCompliationTests.js && jest __TESTS__/compilation.test.ts --coverage", - "test:comp:service": "ts-node ./devTools/sanity/index.ts && jest __TESTS__/compilation.test.ts --coverage", + "test:comp": "node ./scripts/updateCompliationTests.js && jest __TESTS__/compilationsOutput.test.ts --coverage", + "test:comp:service": "ts-node ./devTools/sanity/index.ts && jest __TESTS__/compilationsOutput.test.ts --coverage", "test:unit": "jest __TESTS__/unit --reporters default", "test:unit:watch": "jest __TESTS__/unit --watch --reporters default", "test:integration": "jest __TESTS__/integration", @@ -45,7 +45,7 @@ "bootstrap": "^3.3.7", "bundlewatch": "^0.2.6", "cheerio": "^0.22.0", - "clipboard": "^2.0.1", + "clipboard": "2.0.1", "cloudinary-core": "^2.11.4", "eslint": "^6.8.0", "extend": "^3.0.1", @@ -61,7 +61,7 @@ "handlebars-layouts": "^3.1.4", "jest": "^26.0.1", "jest-html-reporters": "^1.2.1", - "jquery": "^3.1.1", + "jquery": "3.1.1", "jsdoc": "^3.6.4", "jsdoc-plugin-typescript": "^2.0.5", "lunr": "^1.0.0", From 4346e52806930badea046782ae3e11086055752b Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 18 Jul 2021 20:31:47 +0300 Subject: [PATCH 18/18] Fix lint errors --- __TESTS__/compilationsOutput.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/__TESTS__/compilationsOutput.test.ts b/__TESTS__/compilationsOutput.test.ts index 96c96baa..8d3c2f89 100644 --- a/__TESTS__/compilationsOutput.test.ts +++ b/__TESTS__/compilationsOutput.test.ts @@ -8401,7 +8401,7 @@ describe("Testing", () => { Adjust.recolor([ [0.3, 0.7, 0.1, 0.2], [0.3, 0.6, 0.1, 0.2], - [0.2, 0.5, 0.1, 0.2], + [0.2, 0.5, 0.1, 0.2] ]) ); parts.forEach((part) => { @@ -8418,7 +8418,7 @@ describe("Testing", () => { Adjust.recolor([ [0.3, 0.7, 0.1], [0.3, 0.6, 0.1], - [0.2, 0.5, 0.1], + [0.2, 0.5, 0.1] ]) ); parts.forEach((part) => {