@qooxdoo/framework
Version:
The JS Framework for Coders
280 lines (279 loc) • 10.3 kB
JSON
{
"title": "Manifest.json Schema",
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "https://qooxdoo.org/schema/Manifest-1-0-0.json",
"description": "qooxdoo's Manifest files serve to provide meta information for a library in a structured way. Their syntax is in JSON. They have a more informational part (keyed info), which is more interesting for human readers, a technical part (named provides) that is used in the processing of generator configurations, and a part named externalResources to include CSS and Javascript files.",
"type": "object",
"required": ["provides", "$schema"],
"additionalProperties": false,
"properties": {
"$schema": {
"type": "string",
"description": "the json schema of the version of Manifest.json",
"enum": [
"https://qooxdoo.org/schema/Manifest-1-0-0.json",
"https://raw.githubusercontent.com/qooxdoo/qooxdoo/master/source/resource/qx/tool/schema/Manifest-1-0-0.json",
"./source/resource/qx/tool/schema/Manifest-1-0-0.json"
]
},
"info": {
"type": "object",
"additionalProperties": false,
"description": "General Information about the project",
"properties": {
"name": {
"type": "string",
"description": "Name of the library"
},
"summary": {
"type": "string",
"description": "Short summary of its purpose"
},
"description": {
"type": "string",
"description": "Descriptive text"
},
"keywords": {
"type": "array",
"description": "Lost of keywords, tags.",
"uniqueItems": true,
"items": {
"type": "string"
}
},
"homepage": {
"type": "string",
"description": "Homepage URL of the library."
},
"license": {
"type": "string",
"description": "License(s) of the library"
},
"authors": {
"description": "List of Authors",
"type": "array",
"items": {
"type": "object",
"required": ["name", "email"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"examples": ["First Author"]
},
"email": {
"type": "string",
"examples": ["first.author@site.domain"]
},
"githubUser": {
"type": "string",
"pattern": "[^\\s]+"
},
"gitlabUser": {
"type": "string",
"pattern": "[^\\s]+"
},
"facebookUser": {
"type": "string",
"pattern": "[^\\s]+"
},
"twitterHandle": {
"type": "string",
"pattern": "^@[^\\s]+"
}
}
}
},
"version": {
"type": "string",
"description": "a semver compatible version string"
},
"qooxdoo-versions": {
"type": "array",
"description": "(deprecated) An array of qooxdoo versions that this library is compatible with. This property is deprecated and will be removed in version 7."
},
"sourceViewUri": {
"type": "string",
"description": "URL to view the library's class code online. This URL will be used in generated API documentation. It has a special syntax and allows for placeholders (e.g. for the class name and the source line number)."
}
}
},
"provides": {
"required": ["namespace", "class"],
"additionalProperties": false,
"type": "object",
"properties": {
"namespace": {
"type": "string",
"description": "Library namespace (i.e. the namespace elements all class names in this library are prefixed with, e.g. foo for a main application class with name foo.Application)."
},
"encoding": {
"type": "string",
"default": "utf-8",
"description": "File encoding of source code files"
},
"class": {
"type": "string",
"default": "source/class",
"description": "Path to the library's class code relative to the Manifest.json file, up to but not including the root namespace folder"
},
"resource": {
"type": "string",
"default": "source/resource",
"description": "Path to the library's resources relative to the Manifest.json file, up to but not including the root namespace folder"
},
"translation": {
"type": "string",
"default": "source/translation",
"description": "Path to the library's translation files relative to the Manifest.json file"
},
"environmentChecks": {
"type": "object",
"description": "Maps environment check IDs to classes"
},
"fonts": {
"type": "object",
"description": "List of fonts; the key is the font ID, the value is an object describing the font to declare",
"additionalProperties": {
"type": "object",
"description": "Font declarations",
"additionalProperties": false,
"properties": {
"family": {
"type": "array",
"description": "List of font family names that this font identifier represents",
"items": {
"type": "string"
}
},
"defaultSize": {
"type": "integer",
"description": "Default size of the font in pixels, usually only defined for icon fonts"
},
"comparisonString": {
"type": "string",
"description": "String to use when looking for size differences, in order to detect that the font has loaded (default usually works just fine)"
},
"fontFaces": {
"type": "array",
"description": "list of @font-face ruless need to be defined in order to use this font",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"fontFamily": {
"type": "string",
"description": "the font face family name provided by the font files in `paths`, defaults to the font ID"
},
"fontWeight": {
"type": "string",
"description": "the font-weight provided by the font files in `paths`"
},
"fontStyle": {
"type": "string",
"description": "the font-style provided by the font files in `paths`"
},
"paths": {
"type": "array",
"description": "List of paths in the local resources that contain the fonts",
"items": {
"type": "string"
}
}
}
}
},
"css": {
"type": "array",
"description": "List of URLs for CSS, eg from a CDN",
"items": {
"type": "string"
}
},
"glyphs": {
"type": "string",
"description": "JSON mapping that lists the glyphs to use (see `qx export-glyphs`)"
}
}
}
},
"webfonts": {
"type": "array",
"description": "A list of webfont definitions",
"items": {
"type": "object",
"required": ["name", "resources"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "Font name"
},
"defaultSize": {
"type": "number",
"description": "Default font size"
},
"mapping": {
"type": "string",
"description": "Path to a json font map relative to the resource folder"
},
"comparisonString": {
"type": "string",
"description": "String to test of font is loaded."
},
"resources": {
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"description": "Path to the webfont file relative to the resource folder"
}
}
}
}
},
"application": {
"type": "object"
}
}
},
"requires": {
"description": "a list of of needed libraries and contribs. the keys `@qooxdoo/framework` is recognized to descript the respective versions of these components",
"type": "object",
"required": ["@qooxdoo/framework"],
"patternProperties": {
"^.*$": {
"description": "semver compatible range pattern",
"type": "string"
}
},
"additionalProperties": false
},
"externalResources": {
"type": "object",
"description": "Static Javascript and CSS files that shall be always included without further processing by qooxdoo. All paths are relative to the resource folder stated in the 'provides' section.",
"properties": {
"css": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"pattern": "[.]s?css$"
}
},
"script": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string",
"pattern": "[.]js$"
}
}
}
},
"setup": {
"description": "Setup Section - used in Qooxdoo SDK Manifest.json ... do we need this still?",
"type": "object"
}
}
}