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

132 lines
3.1 KiB

4 years ago
  1. {
  2. "definitions": {
  3. "stringOrPropertyList": {
  4. "oneOf": [
  5. {
  6. "type": "string"
  7. },
  8. {
  9. "type": "array",
  10. "minItems": 1,
  11. "uniqueItems": true,
  12. "items": {
  13. "type": "string",
  14. "property-reference": {
  15. "comment": "property-reference is an extension to the JSON schema validator. Here it jumps 3 levels up in the hierarchy and tests if a value is an existing key in descriptors. See test/validate-schema.js for implementation details.",
  16. "$data": "3"
  17. }
  18. }
  19. }
  20. ]
  21. }
  22. },
  23. "type": "object",
  24. "additionalProperties": {
  25. "type": "object",
  26. "additionalProperties": false,
  27. "properties": {
  28. "syntax": {
  29. "type": "string"
  30. },
  31. "interfaces": {
  32. "type": "array",
  33. "items": {
  34. "type": "string"
  35. }
  36. },
  37. "groups": {
  38. "type": "array",
  39. "minitems": 1,
  40. "uniqueItems": true,
  41. "items": {
  42. "$ref": "definitions.json#/groupList"
  43. }
  44. },
  45. "descriptors": {
  46. "type": "object",
  47. "additionalProperties": {
  48. "type": "object",
  49. "additionalProperties": false,
  50. "properties": {
  51. "syntax": {
  52. "type": "string"
  53. },
  54. "media": {
  55. "oneOf": [
  56. {
  57. "type": "string",
  58. "enum": [
  59. "all",
  60. "continuous",
  61. "paged",
  62. "visual"
  63. ]
  64. },
  65. {
  66. "type": "array",
  67. "minItems": 2,
  68. "uniqueItems": true,
  69. "items": {
  70. "type": "string",
  71. "enum": [
  72. "continuous",
  73. "paged",
  74. "visual"
  75. ]
  76. }
  77. }
  78. ]
  79. },
  80. "initial": {
  81. "$ref": "#/definitions/stringOrPropertyList"
  82. },
  83. "percentages": {
  84. "$ref": "#/definitions/stringOrPropertyList"
  85. },
  86. "computed": {
  87. "$ref": "#/definitions/stringOrPropertyList"
  88. },
  89. "order": {
  90. "enum": [
  91. "orderOfAppearance",
  92. "uniqueOrder"
  93. ]
  94. },
  95. "status": {
  96. "enum": [
  97. "standard",
  98. "nonstandard",
  99. "experimental"
  100. ]
  101. }
  102. },
  103. "required": [
  104. "syntax",
  105. "media",
  106. "initial",
  107. "percentages",
  108. "computed",
  109. "order",
  110. "status"
  111. ]
  112. }
  113. },
  114. "status": {
  115. "enum": [
  116. "standard",
  117. "nonstandard",
  118. "experimental"
  119. ]
  120. },
  121. "mdn_url": {
  122. "type": "string",
  123. "pattern": "^https://developer.mozilla.org/docs/Web/CSS/"
  124. }
  125. },
  126. "required": [
  127. "syntax",
  128. "groups",
  129. "status"
  130. ]
  131. }
  132. }