Merge pull request #5739 from alcohol/composer-repository-json-schema
[wip] composer repository json schemapull/5758/head
commit
d0206233f3
|
@ -0,0 +1,99 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||
"description": "A representation of packages metadata.",
|
||||
"type": "object",
|
||||
"oneOf": [
|
||||
{ "required": [ "packages" ] },
|
||||
{ "required": [ "providers" ] },
|
||||
{ "required": [ "provider-includes", "providers-url" ] }
|
||||
],
|
||||
"properties": {
|
||||
"packages": {
|
||||
"type": ["object", "array"],
|
||||
"description": "A hashmap of package names in the form of <vendor>/<name>.",
|
||||
"additionalProperties": { "$ref": "#/definitions/versions" }
|
||||
},
|
||||
"providers-url": {
|
||||
"type": "string",
|
||||
"description": "Endpoint to retrieve provider data from, e.g. '/p/%package%$%hash%.json'."
|
||||
},
|
||||
"provider-includes": {
|
||||
"type": "object",
|
||||
"description": "A hashmap of provider listings.",
|
||||
"additionalProperties": { "$ref": "#/definitions/provider" }
|
||||
},
|
||||
"providers": {
|
||||
"type": "object",
|
||||
"description": "A hashmap of package names in the form of <vendor>/<name>.",
|
||||
"additionalProperties": { "$ref": "#/definitions/provider" }
|
||||
},
|
||||
"notify-batch": {
|
||||
"type": "string",
|
||||
"description": "Endpoint to call after multiple packages have been installed, e.g. '/downloads/'."
|
||||
},
|
||||
"search": {
|
||||
"type": "string",
|
||||
"description": "Endpoint that provides search capabilities, e.g. '/search.json?q=%query%&type=%type%'."
|
||||
},
|
||||
"warning": {
|
||||
"type": "string",
|
||||
"description": "A message that will be output by Composer as a warning when this source is consulted."
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
"versions": {
|
||||
"type": "object",
|
||||
"description": "A hashmap of versions and their metadata.",
|
||||
"additionalProperties": { "$ref": "#/definitions/version" }
|
||||
},
|
||||
"version": {
|
||||
"type": "object",
|
||||
"oneOf": [
|
||||
{ "$ref": "#/definitions/package-generic" },
|
||||
{ "$ref": "#/definitions/package-metapackage" }
|
||||
]
|
||||
},
|
||||
"package-generic": {
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"type": { "type": "string" },
|
||||
"version": { "type": "string" },
|
||||
"version_normalized": {
|
||||
"type": "string",
|
||||
"description": "Normalized version, optional but can save computational time on client side."
|
||||
},
|
||||
"source": { "type": "object" },
|
||||
"dist": { "type": "object" },
|
||||
"time": { "type": "string" }
|
||||
},
|
||||
"oneOf": [
|
||||
{ "required": [ "name", "version", "source" ] },
|
||||
{ "required": [ "name", "version", "dist" ] }
|
||||
],
|
||||
"additionalProperties": true
|
||||
},
|
||||
"package-metapackage": {
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"type": { "type": "string", "enum": [ "metapackage" ] },
|
||||
"version": { "type": "string" },
|
||||
"version_normalized": {
|
||||
"type": "string",
|
||||
"description": "Normalized version, optional but can save computational time on client side."
|
||||
},
|
||||
"time": { "type": "string" }
|
||||
},
|
||||
"required": [ "name", "version" ],
|
||||
"additionalProperties": true
|
||||
},
|
||||
"provider": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"sha256": {
|
||||
"type": "string",
|
||||
"description": "Hash value that can be used to validate the resource."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue