package Ġcom . cloudinary . transformation Ċ Ċ import Ġcom . cloudinary . util . cl d Encode Public Id Ċ import Ġcom . cloudinary . util . cl d To Url Safe Base 6 4 Ċ Ċ // ĠTODO Ġsimplify Ċ class ĠCustom Function ( private Ġval Ġaction : ĠAction ) Ġ: ĠAction Ġby Ġaction Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġwasm ( public Id : ĠString ) Ġ= ĠBuilder ( public Id ). type ( Type . W ASM ). build () ĊĠĠĠĠĠĠĠ Ġfun Ġremote ( url : ĠString ) Ġ= ĠBuilder ( url ). type ( Type . REMOTE ). build () ĊĠĠĠĠĠĠĠ Ġfun Ġpre Process ( url : ĠString ) Ġ= ĠBuilder ( url ). type ( Type . PRE _ PROCESS ). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠBuilder ( private Ġval Ġsource : ĠString ) Ġ: ĠTransformation Component Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġtype : ĠType Ġ= ĠType . W ASM ĊĊĠĠĠĠĠĠĠ Ġfun Ġtype ( type : ĠType ) Ġ= Ġapply Ġ{ Ġthis . type Ġ= Ġtype Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild () Ġ= Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . PRE _ PROCESS Ġ-> Ġbuild Action ( listOf (" pre ", Ġ" remote ", Ġsource . cl d To Url Safe Base 6 4 ())) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . REMOTE Ġ-> Ġbuild Action ( listOf (" remote ", Ġsource . cl d To Url Safe Base 6 4 ())) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . W ASM Ġ-> Ġbuild Action ( listOf (" wasm ", Ġsource . cl d Encode Public Id ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbuild Action ( values : ĠList < Any >) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Function ( Params Action ( Param (" custom _ function ", Ġ" fn ", ĠParam Value ( values )))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠType Ġ{ ĊĠĠĠĠĠĠĠ ĠPRE _ PROCESS , ĊĠĠĠĠĠĠĠ ĠRE MOTE , ĊĠĠĠĠĠĠĠ ĠW ASM ĊĠĠĠ Ġ} Ċ }