initial commit of opencnam in typescript