forked from mdn/browser-compat-data
-
Notifications
You must be signed in to change notification settings - Fork 0
/
compat-data.schema.json
129 lines (119 loc) · 3.96 KB
/
compat-data.schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
{
"$schema": "http://json-schema.org/schema#",
"definitions": {
"simple_support_statement": {
"type": "object",
"properties": {
"prefix": { "type": "string" },
"alternative_name": { "type": "string" },
"flag": { "type": "object",
"properties": {
"type": { "type": "string", "enum": ["preference", "compile_flag", "runtime_flag"] },
"name": { "type": "string" },
"value_to_set": { "type": "string"}
},
"additionalProperties": false,
"required": ["type", "name"]
},
"partial_implementation": { "type": "boolean" },
"version_added": { "$ref": "#/definitions/version_value" },
"version_removed": { "$ref": "#/definitions/version_value" },
"notes": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
},
"required": ["version_added"],
"additionalProperties": false
},
"array_support_statement": {
"type": "array",
"minItems": 2,
"items": {
"$ref": "#/definitions/simple_support_statement"
}
},
"support_statement": {
"anyOf": [
{ "$ref": "#/definitions/simple_support_statement" },
{ "$ref": "#/definitions/array_support_statement" }
]
},
"status_block": {
"type": "object",
"properties": {
"experimental": { "type": "boolean" },
"standard_track": { "type": "boolean" },
"deprecated": { "type": "boolean" }
},
"required": ["experimental", "standard_track", "deprecated"],
"additionalProperties": false
},
"support_block": {
"type": "object",
"properties": {
"webview_android": { "$ref": "#/definitions/support_statement" },
"chrome": { "$ref": "#/definitions/support_statement" },
"chrome_android": { "$ref": "#/definitions/support_statement" },
"edge": { "$ref": "#/definitions/support_statement" },
"edge_mobile": { "$ref": "#/definitions/support_statement" },
"firefox": { "$ref": "#/definitions/support_statement" },
"firefox_android": { "$ref": "#/definitions/support_statement" },
"ie_mobile": { "$ref": "#/definitions/support_statement" },
"ie": { "$ref": "#/definitions/support_statement" },
"nodejs": { "$ref": "#/definitions/support_statement" },
"opera": { "$ref": "#/definitions/support_statement" },
"opera_android": { "$ref": "#/definitions/support_statement" },
"safari": { "$ref": "#/definitions/support_statement" },
"safari_ios": { "$ref": "#/definitions/support_statement" },
"samsunginternet_android": { "$ref": "#/definitions/support_statement" }
},
"additionalProperties": false
},
"compat_statement": {
"type": "object",
"properties": {
"description": { "type": "string" },
"mdn_url": {
"type": "string",
"format": "uri",
"pattern": "^https:\/\/developer\\.mozilla\\.org\/docs\/"
},
"support": { "$ref": "#/definitions/support_block" },
"status": { "$ref": "#/definitions/status_block" }
},
"required": ["support"],
"additionalProperties": false
},
"identifier": {
"type": "object",
"properties": {
"__compat": { "$ref": "#/definitions/compat_statement" }
},
"patternProperties":{
"^(?!__compat|.*\\.).+$" : { "$ref": "#/definitions/identifier" }
},
"additionalProperties": false
},
"version_value": {
"allOf": [
{ "type": ["string", "boolean", "null"] },
{ "not": { "enum": ["true", "false", "null"] } }
]
}
},
"type": "object",
"patternProperties": {
"^(?!__compat|.*\\.).+$": { "$ref": "#/definitions/identifier" }
},
"additionalProperties": false
}