schema.json 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema#",
  3. "additionalProperties": false,
  4. "definitions": {
  5. "CategoryInfo": {
  6. "additionalProperties": false,
  7. "properties": {
  8. "checkable": {
  9. "type": "boolean"
  10. },
  11. "description": {
  12. "type": "string"
  13. },
  14. "label": {
  15. "type": "string"
  16. },
  17. "required": {
  18. "type": "boolean"
  19. }
  20. },
  21. "type": "object"
  22. },
  23. "Features": {
  24. "additionalProperties": {
  25. "$ref": "#/definitions/IModuleItem"
  26. },
  27. "type": "object"
  28. },
  29. "IFeatureGroup": {
  30. "additionalProperties": false,
  31. "properties": {
  32. "category": {
  33. "type": "string"
  34. },
  35. "default": {
  36. "type": "boolean"
  37. },
  38. "dependencies": {
  39. "items": {
  40. "type": "string"
  41. },
  42. "type": "array"
  43. },
  44. "description": {
  45. "type": "string"
  46. },
  47. "hidden": {
  48. "type": "boolean"
  49. },
  50. "label": {
  51. "type": "string"
  52. },
  53. "options": {
  54. "additionalProperties": {
  55. "$ref": "#/definitions/IFeatureItem"
  56. },
  57. "type": "object"
  58. },
  59. "readonly": {
  60. "type": "boolean"
  61. },
  62. "required": {
  63. "type": "boolean"
  64. }
  65. },
  66. "type": "object"
  67. },
  68. "IFeatureItem": {
  69. "additionalProperties": false,
  70. "properties": {
  71. "category": {
  72. "type": "string"
  73. },
  74. "cmakeConfig": {
  75. "type": "string"
  76. },
  77. "default": {
  78. "type": "boolean"
  79. },
  80. "dependencies": {
  81. "items": {
  82. "type": "string"
  83. },
  84. "type": "array"
  85. },
  86. "description": {
  87. "type": "string"
  88. },
  89. "enginePlugin": {
  90. "type": "boolean"
  91. },
  92. "envCondition": {
  93. "type": "string"
  94. },
  95. "fallback": {
  96. "type": "string"
  97. },
  98. "flags": {
  99. "additionalProperties": {
  100. "additionalProperties": false,
  101. "properties": {
  102. "default": {
  103. "type": "boolean"
  104. },
  105. "description": {
  106. "type": "string"
  107. },
  108. "label": {
  109. "type": "string"
  110. },
  111. "ui-type": {
  112. "enum": [
  113. "checkbox",
  114. "select"
  115. ],
  116. "type": "string"
  117. }
  118. },
  119. "type": "object"
  120. },
  121. "type": "object"
  122. },
  123. "hidden": {
  124. "type": "boolean"
  125. },
  126. "isNativeModule": {
  127. "type": "boolean"
  128. },
  129. "label": {
  130. "type": "string"
  131. },
  132. "readonly": {
  133. "type": "boolean"
  134. },
  135. "required": {
  136. "type": "boolean"
  137. }
  138. },
  139. "type": "object"
  140. },
  141. "IModuleItem": {
  142. "anyOf": [
  143. {
  144. "$ref": "#/definitions/IFeatureItem"
  145. },
  146. {
  147. "$ref": "#/definitions/IFeatureGroup"
  148. }
  149. ]
  150. }
  151. },
  152. "properties": {
  153. "$schema": {
  154. "type": "string"
  155. },
  156. "categories": {
  157. "additionalProperties": {
  158. "$ref": "#/definitions/CategoryInfo"
  159. },
  160. "description": "The categories info",
  161. "type": "object"
  162. },
  163. "features": {
  164. "$ref": "#/definitions/Features",
  165. "description": "The modules info"
  166. },
  167. "migrationScript": {
  168. "description": "The script to migrate, this script should export a const migrations: Migration[]`.",
  169. "type": "string"
  170. },
  171. "version": {
  172. "type": "string"
  173. }
  174. },
  175. "type": "object"
  176. }