composer.json support