composer-schema.json 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. {
  2. "name": "Package",
  3. "type": "object",
  4. "additionalProperties": false,
  5. "properties": {
  6. "name": {
  7. "type": "string",
  8. "description": "Package name, including type prefix if it's a plugin",
  9. "required": true
  10. },
  11. "type": {
  12. "description": "Package type, either 'Library', or the parent project it applies to if it's a plugin for a framework or application (e.g. 'Symfony2', 'Typo3', 'Drupal', ..), note that this has to be defined and communicated by any project implementing a custom composer installer, those are just unreliable examples.",
  13. "type": "string",
  14. "optional": true
  15. },
  16. "target-dir": {
  17. "description": "Override install location of package",
  18. "type": "string"
  19. },
  20. "description": {
  21. "type": "string",
  22. "description": "Package description",
  23. "required": true
  24. },
  25. "keywords": {
  26. "type": "array",
  27. "items": {
  28. "type": "string"
  29. },
  30. "optional": true
  31. },
  32. "homepage": {
  33. "type": "string",
  34. "description": "Homepage URL for the project",
  35. "format": "uri",
  36. "optional": true
  37. },
  38. "version": {
  39. "type": "string",
  40. "description": "Package version, see http://packagist.org/about for more info on valid schemes",
  41. "required": true
  42. },
  43. "license": {
  44. "type": ["string", "array"],
  45. "description": "License name",
  46. "optional": true
  47. },
  48. "authors": {
  49. "type": "array",
  50. "items": {
  51. "type": "object",
  52. "additionalProperties": false,
  53. "properties": {
  54. "name": {
  55. "type": "string",
  56. "description": "Full name of the author",
  57. "required": true
  58. },
  59. "email": {
  60. "type": "string",
  61. "description": "Email address of the author",
  62. "format": "email",
  63. "required": true
  64. },
  65. "homepage": {
  66. "type": "string",
  67. "description": "Homepage URL for the author",
  68. "format": "uri",
  69. "optional": true
  70. }
  71. }
  72. },
  73. "optional": true
  74. },
  75. "require": {
  76. "type": "object",
  77. "additionalProperties": true,
  78. "optional": true
  79. },
  80. "replace": {
  81. "type": "object",
  82. "additionalProperties": true,
  83. "optional": true
  84. },
  85. "conflict": {
  86. "type": "object",
  87. "additionalProperties": true,
  88. "optional": true
  89. },
  90. "provide": {
  91. "type": "object",
  92. "additionalProperties": true,
  93. "optional": true
  94. },
  95. "recommend": {
  96. "type": "object",
  97. "additionalProperties": true,
  98. "optional": true
  99. },
  100. "suggest": {
  101. "type": "object",
  102. "additionalProperties": true,
  103. "optional": true
  104. },
  105. "extra": {
  106. "type": ["object", "array"],
  107. "additionalProperties": true,
  108. "optional": true
  109. },
  110. "autoload": {
  111. "type": "object",
  112. "properties": {
  113. "psr-0": {
  114. "type": "object",
  115. "additionalProperties": true
  116. }
  117. }
  118. },
  119. "repositories": {
  120. "type": ["object", "array"],
  121. "additionalProperties": true
  122. }
  123. }
  124. }