{
    "name": "Search",
    "description": "Allows the user to search through the file tree.",
    "extensions": {
        "controllers": [
            {
                "key": "SearchController",
                "implementation": "controllers/SearchController.js",
                "depends": [ "$scope", "searchService" ]
            },
            {
                "key": "SearchItemController",
                "implementation": "controllers/SearchItemController.js",
                "depends": [ "$scope" ]
            }
        ],
        "templates": [
            {
                "key": "search",
                "templateUrl": "templates/search.html",
                "uses": [ "controls", "forms" ]
            }
        ],
        "representations": [
            {
                "key": "search-item",
                "templateUrl": "templates/search-item.html"
            }
        ],
        "components": [
            {
                "provides": "searchService",
                "type": "provider",
                "implementation": "providers/GenericSearchProvider.js",
                "depends": [ "$q", "objectService", "workerService", "roots[]" ]
            },
            {
                "provides": "searchService",
                "type": "provider",
                "implementation": "providers/ElasticsearchSearchProvider.js",
                "depends": [ "$http", "objectService", "ELASTIC_ROOT" ]
            },
            {
                "provides": "searchService",
                "type": "aggregator",
                "implementation": "SearchAggregator.js",
                "depends": [ "$q" ]
            }
        ],
        "workers": [
            {
                "key": "genericSearchWorker",
                "scriptUrl": "workers/GenericSearchWorker.js",
                "depends": [ "objectService" ]
            }
        ]
    }
}