94 lines
2.4 KiB
JSON
94 lines
2.4 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
"description": "A haxelib project",
|
|
"type": "object",
|
|
"properties": {
|
|
"name": { "$ref": "#/definitions/projectName" },
|
|
"url": {
|
|
"description": "Project's website",
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"description": {
|
|
"description": "Short description of the project",
|
|
"type": "string"
|
|
},
|
|
"license": {
|
|
"description": "Open source license under which the project is licensed",
|
|
"enum": ["GPL", "LGPL", "BSD", "Public", "MIT", "Apache"]
|
|
},
|
|
"version": { "$ref": "#/definitions/semver" },
|
|
"classPath": {
|
|
"description": "Folder in the package which contains the source files for this project",
|
|
"type": "string"
|
|
},
|
|
"contributors": {
|
|
"description": "List of project contributors that are allowed to upload to haxelib",
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/userName" },
|
|
"minItems": 1,
|
|
"uniqueItems": true
|
|
},
|
|
"tags": {
|
|
"description": "List of tags for easier finding the project on haxelib",
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/haxelibTag" },
|
|
"uniqueItems": true
|
|
},
|
|
"dependencies": {
|
|
"type": "object",
|
|
"description": "Project's dependencies",
|
|
"patternProperties": {
|
|
"^[A-Za-z0-9_.-]{3,}$": { "$ref": "#/definitions/dependencyVersion" }
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"releasenote": {
|
|
"description": "Short description of changes made in this version",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"required": ["name", "license", "releasenote", "contributors", "version"],
|
|
"definitions": {
|
|
"userName": {
|
|
"description": "The name of a user",
|
|
"type": "string",
|
|
"minLength": 3,
|
|
"pattern": "^[A-Za-z0-9_.-]{3,}$"
|
|
},
|
|
"projectName": {
|
|
"description": "The name of a haxelib project",
|
|
"type": "string",
|
|
"minLength": 3,
|
|
"pattern": "^[A-Za-z0-9_.-]{3,}$",
|
|
"not": {
|
|
"anyOf": [
|
|
{"enum": ["haxe", "all"]},
|
|
{"pattern": "\\.(zip|hxml)$"}
|
|
]
|
|
}
|
|
},
|
|
"haxelibTag": {
|
|
"description": "A keyword or term associated with a haxelib project",
|
|
"type": "string",
|
|
"minLength": 2,
|
|
"pattern": "^[A-Za-z0-9_.-]{2,}$"
|
|
},
|
|
"semver": {
|
|
"type": "string",
|
|
"description": "Project's version",
|
|
"pattern": "^(\\d|[1-9]\\d*)\\.(\\d|[1-9]\\d*)\\.(\\d|[1-9]\\d*)(-(alpha|beta|rc)(\\.(\\d|[1-9]\\d*))?)?$"
|
|
},
|
|
"dependencyVersion": {
|
|
"oneOf": [
|
|
{ "$ref": "#/definitions/semver" },
|
|
{
|
|
"type": "string",
|
|
"maxLength": 0
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|