You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
composer/res/composer-repository-schema....

111 lines
4.0 KiB
JSON

{
"$schema": "https://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" },
{ "$ref": "#/definitions/metapackage" }
]
},
"package-base": {
"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."
},
"autoload": { "type": "object" },
"require": { "type": "object" },
"replace": { "type": "object" },
"conflict": { "type": "object" },
"provide": { "type": "object" },
"time": { "type": "string" }
},
"additionalProperties": true
},
"package": {
"allOf": [
{ "$ref": "#/definitions/package-base" },
{
"properties": {
"dist": { "type": "object" },
"source": { "type": "object" }
}
},
{ "oneOf": [
{ "required": [ "name", "version", "source" ] },
{ "required": [ "name", "version", "dist" ] }
] }
]
},
"metapackage": {
"allOf": [
{ "$ref": "#/definitions/package-base" },
{
"properties": {
"type": { "type": "string", "enum": [ "metapackage" ] }
},
"required": [ "name", "version", "type" ]
}
]
},
"provider": {
"type": "object",
"properties": {
"sha256": {
"type": "string",
"description": "Hash value that can be used to validate the resource."
}
}
}
}
}