@strapi/plugin-documentation 0.0.0-experimental.62ebf57bb35846666febb5ee2078fe02fe990f57 → 0.0.0-experimental.6340da17068c3bed7fb006e7bcc554c71129e282

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/README.md +2 -3
  2. package/dist/admin/components/SettingsForm.js +203 -0
  3. package/dist/admin/components/SettingsForm.js.map +1 -0
  4. package/dist/admin/components/SettingsForm.mjs +180 -0
  5. package/dist/admin/components/SettingsForm.mjs.map +1 -0
  6. package/dist/admin/constants.js +47 -0
  7. package/dist/admin/constants.js.map +1 -0
  8. package/dist/admin/constants.mjs +45 -0
  9. package/dist/admin/constants.mjs.map +1 -0
  10. package/dist/admin/index.js +96 -5
  11. package/dist/admin/index.js.map +1 -1
  12. package/dist/admin/index.mjs +91 -5
  13. package/dist/admin/index.mjs.map +1 -1
  14. package/dist/admin/pages/App.js +254 -0
  15. package/dist/admin/pages/App.js.map +1 -0
  16. package/dist/admin/pages/App.mjs +232 -0
  17. package/dist/admin/pages/App.mjs.map +1 -0
  18. package/dist/admin/pages/Settings.js +54 -0
  19. package/dist/admin/pages/Settings.js.map +1 -0
  20. package/dist/admin/pages/Settings.mjs +52 -0
  21. package/dist/admin/pages/Settings.mjs.map +1 -0
  22. package/dist/admin/pluginId.js +6 -0
  23. package/dist/admin/pluginId.js.map +1 -0
  24. package/dist/admin/pluginId.mjs +4 -0
  25. package/dist/admin/pluginId.mjs.map +1 -0
  26. package/dist/admin/services/api.js +55 -0
  27. package/dist/admin/services/api.js.map +1 -0
  28. package/dist/admin/services/api.mjs +50 -0
  29. package/dist/admin/services/api.mjs.map +1 -0
  30. package/dist/admin/src/components/SettingsForm.d.ts +8 -0
  31. package/dist/admin/src/constants.d.ts +18 -0
  32. package/dist/admin/src/index.d.ts +15 -0
  33. package/dist/admin/src/pages/App.d.ts +2 -0
  34. package/dist/admin/src/pages/Settings.d.ts +2 -0
  35. package/dist/admin/src/pages/tests/App.test.d.ts +1 -0
  36. package/dist/admin/src/pages/tests/Settings.test.d.ts +1 -0
  37. package/dist/admin/src/pluginId.d.ts +1 -0
  38. package/dist/admin/src/services/api.d.ts +13 -0
  39. package/dist/admin/src/types.d.ts +16 -0
  40. package/dist/admin/src/utils/baseQuery.d.ts +5 -0
  41. package/dist/admin/src/utils/getTrad.d.ts +1 -0
  42. package/dist/admin/src/utils/index.d.ts +2 -0
  43. package/dist/admin/src/utils/prefixPluginTranslations.d.ts +2 -0
  44. package/dist/admin/translations/ar.json.js +25 -0
  45. package/dist/admin/translations/ar.json.js.map +1 -0
  46. package/dist/admin/translations/ar.json.mjs +23 -0
  47. package/dist/admin/translations/ar.json.mjs.map +1 -0
  48. package/dist/admin/translations/cs.json.js +47 -0
  49. package/dist/admin/translations/cs.json.js.map +1 -0
  50. package/dist/admin/translations/cs.json.mjs +45 -0
  51. package/dist/admin/translations/cs.json.mjs.map +1 -0
  52. package/dist/admin/translations/da.json.js +44 -0
  53. package/dist/admin/translations/da.json.js.map +1 -0
  54. package/dist/admin/translations/da.json.mjs +42 -0
  55. package/dist/admin/translations/da.json.mjs.map +1 -0
  56. package/dist/admin/translations/de.json.js +47 -0
  57. package/dist/admin/translations/de.json.js.map +1 -0
  58. package/dist/admin/translations/de.json.mjs +45 -0
  59. package/dist/admin/translations/de.json.mjs.map +1 -0
  60. package/dist/admin/translations/en.json.js +47 -0
  61. package/dist/admin/translations/en.json.js.map +1 -0
  62. package/dist/admin/translations/en.json.mjs +45 -0
  63. package/dist/admin/translations/en.json.mjs.map +1 -0
  64. package/dist/admin/translations/es.json.js +47 -0
  65. package/dist/admin/translations/es.json.js.map +1 -0
  66. package/dist/admin/translations/es.json.mjs +45 -0
  67. package/dist/admin/translations/es.json.mjs.map +1 -0
  68. package/dist/admin/translations/fr.json.js +31 -0
  69. package/dist/admin/translations/fr.json.js.map +1 -0
  70. package/dist/admin/translations/fr.json.mjs +29 -0
  71. package/dist/admin/translations/fr.json.mjs.map +1 -0
  72. package/dist/admin/translations/id.json.js +29 -0
  73. package/dist/admin/translations/id.json.js.map +1 -0
  74. package/dist/admin/translations/id.json.mjs +27 -0
  75. package/dist/admin/translations/id.json.mjs.map +1 -0
  76. package/dist/admin/translations/it.json.js +31 -0
  77. package/dist/admin/translations/it.json.js.map +1 -0
  78. package/dist/admin/translations/it.json.mjs +29 -0
  79. package/dist/admin/translations/it.json.mjs.map +1 -0
  80. package/dist/admin/translations/ko.json.js +44 -0
  81. package/dist/admin/translations/ko.json.js.map +1 -0
  82. package/dist/admin/translations/ko.json.mjs +42 -0
  83. package/dist/admin/translations/ko.json.mjs.map +1 -0
  84. package/dist/admin/translations/ms.json.js +28 -0
  85. package/dist/admin/translations/ms.json.js.map +1 -0
  86. package/dist/admin/translations/ms.json.mjs +26 -0
  87. package/dist/admin/translations/ms.json.mjs.map +1 -0
  88. package/dist/admin/translations/nl.json.js +26 -0
  89. package/dist/admin/translations/nl.json.js.map +1 -0
  90. package/dist/admin/translations/nl.json.mjs +24 -0
  91. package/dist/admin/translations/nl.json.mjs.map +1 -0
  92. package/dist/admin/translations/pl.json.js +47 -0
  93. package/dist/admin/translations/pl.json.js.map +1 -0
  94. package/dist/admin/translations/pl.json.mjs +45 -0
  95. package/dist/admin/translations/pl.json.mjs.map +1 -0
  96. package/dist/admin/translations/pt-BR.json.js +26 -0
  97. package/dist/admin/translations/pt-BR.json.js.map +1 -0
  98. package/dist/admin/translations/pt-BR.json.mjs +24 -0
  99. package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
  100. package/dist/admin/translations/pt.json.js +26 -0
  101. package/dist/admin/translations/pt.json.js.map +1 -0
  102. package/dist/admin/translations/pt.json.mjs +24 -0
  103. package/dist/admin/translations/pt.json.mjs.map +1 -0
  104. package/dist/admin/translations/ru.json.js +47 -0
  105. package/dist/admin/translations/ru.json.js.map +1 -0
  106. package/dist/admin/translations/ru.json.mjs +45 -0
  107. package/dist/admin/translations/ru.json.mjs.map +1 -0
  108. package/dist/admin/translations/sk.json.js +47 -0
  109. package/dist/admin/translations/sk.json.js.map +1 -0
  110. package/dist/admin/translations/sk.json.mjs +45 -0
  111. package/dist/admin/translations/sk.json.mjs.map +1 -0
  112. package/dist/admin/translations/sv.json.js +44 -0
  113. package/dist/admin/translations/sv.json.js.map +1 -0
  114. package/dist/admin/translations/sv.json.mjs +42 -0
  115. package/dist/admin/translations/sv.json.mjs.map +1 -0
  116. package/dist/admin/translations/th.json.js +29 -0
  117. package/dist/admin/translations/th.json.js.map +1 -0
  118. package/dist/admin/translations/th.json.mjs +27 -0
  119. package/dist/admin/translations/th.json.mjs.map +1 -0
  120. package/dist/admin/translations/tr.json.js +44 -0
  121. package/dist/admin/translations/tr.json.js.map +1 -0
  122. package/dist/admin/translations/tr.json.mjs +42 -0
  123. package/dist/admin/translations/tr.json.mjs.map +1 -0
  124. package/dist/admin/translations/uk.json.js +47 -0
  125. package/dist/admin/translations/uk.json.js.map +1 -0
  126. package/dist/admin/translations/uk.json.mjs +45 -0
  127. package/dist/admin/translations/uk.json.mjs.map +1 -0
  128. package/dist/admin/translations/vi.json.js +29 -0
  129. package/dist/admin/translations/vi.json.js.map +1 -0
  130. package/dist/admin/translations/vi.json.mjs +27 -0
  131. package/dist/admin/translations/vi.json.mjs.map +1 -0
  132. package/dist/admin/translations/zh-Hans.json.js +33 -0
  133. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  134. package/dist/admin/translations/zh-Hans.json.mjs +31 -0
  135. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  136. package/dist/admin/translations/zh.json.js +44 -0
  137. package/dist/admin/translations/zh.json.js.map +1 -0
  138. package/dist/admin/translations/zh.json.mjs +42 -0
  139. package/dist/admin/translations/zh.json.mjs.map +1 -0
  140. package/dist/admin/utils/baseQuery.js +8 -0
  141. package/dist/admin/utils/baseQuery.js.map +1 -0
  142. package/dist/admin/utils/baseQuery.mjs +6 -0
  143. package/dist/admin/utils/baseQuery.mjs.map +1 -0
  144. package/dist/admin/utils/getTrad.js +8 -0
  145. package/dist/admin/utils/getTrad.js.map +1 -0
  146. package/dist/admin/utils/getTrad.mjs +6 -0
  147. package/dist/admin/utils/getTrad.mjs.map +1 -0
  148. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  149. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  150. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  151. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  152. package/dist/server/bootstrap.js +57 -0
  153. package/dist/server/bootstrap.js.map +1 -0
  154. package/dist/server/bootstrap.mjs +55 -0
  155. package/dist/server/bootstrap.mjs.map +1 -0
  156. package/dist/server/config/default-plugin-config.js +88 -0
  157. package/dist/server/config/default-plugin-config.js.map +1 -0
  158. package/dist/server/config/default-plugin-config.mjs +86 -0
  159. package/dist/server/config/default-plugin-config.mjs.map +1 -0
  160. package/dist/server/config/index.js +10 -0
  161. package/dist/server/config/index.js.map +1 -0
  162. package/dist/server/config/index.mjs +8 -0
  163. package/dist/server/config/index.mjs.map +1 -0
  164. package/dist/server/controllers/documentation.js +194 -0
  165. package/dist/server/controllers/documentation.js.map +1 -0
  166. package/dist/server/controllers/documentation.mjs +182 -0
  167. package/dist/server/controllers/documentation.mjs.map +1 -0
  168. package/dist/server/controllers/index.js +10 -0
  169. package/dist/server/controllers/index.js.map +1 -0
  170. package/dist/server/controllers/index.mjs +8 -0
  171. package/dist/server/controllers/index.mjs.map +1 -0
  172. package/dist/server/index.js +20 -0
  173. package/dist/server/index.js.map +1 -0
  174. package/dist/server/index.mjs +18 -0
  175. package/dist/server/index.mjs.map +1 -0
  176. package/dist/server/middlewares/documentation.js +33 -0
  177. package/dist/server/middlewares/documentation.js.map +1 -0
  178. package/dist/server/middlewares/documentation.mjs +25 -0
  179. package/dist/server/middlewares/documentation.mjs.map +1 -0
  180. package/dist/server/middlewares/restrict-access.js +23 -0
  181. package/dist/server/middlewares/restrict-access.js.map +1 -0
  182. package/dist/server/middlewares/restrict-access.mjs +21 -0
  183. package/dist/server/middlewares/restrict-access.mjs.map +1 -0
  184. package/dist/server/public/index.html.js +6 -0
  185. package/dist/server/public/index.html.js.map +1 -0
  186. package/dist/server/public/index.html.mjs +4 -0
  187. package/dist/server/public/index.html.mjs.map +1 -0
  188. package/dist/server/public/login.html.js +6 -0
  189. package/dist/server/public/login.html.js.map +1 -0
  190. package/dist/server/public/login.html.mjs +4 -0
  191. package/dist/server/public/login.html.mjs.map +1 -0
  192. package/dist/server/register.js +12 -0
  193. package/dist/server/register.js.map +1 -0
  194. package/dist/server/register.mjs +10 -0
  195. package/dist/server/register.mjs.map +1 -0
  196. package/dist/server/routes/index.js +106 -0
  197. package/dist/server/routes/index.js.map +1 -0
  198. package/dist/server/routes/index.mjs +104 -0
  199. package/dist/server/routes/index.mjs.map +1 -0
  200. package/dist/server/services/documentation.js +193 -0
  201. package/dist/server/services/documentation.js.map +1 -0
  202. package/dist/server/services/documentation.mjs +186 -0
  203. package/dist/server/services/documentation.mjs.map +1 -0
  204. package/dist/server/services/helpers/build-api-endpoint-path.js +166 -0
  205. package/dist/server/services/helpers/build-api-endpoint-path.js.map +1 -0
  206. package/dist/server/services/helpers/build-api-endpoint-path.mjs +141 -0
  207. package/dist/server/services/helpers/build-api-endpoint-path.mjs.map +1 -0
  208. package/dist/server/services/helpers/build-component-schema.js +178 -0
  209. package/dist/server/services/helpers/build-component-schema.js.map +1 -0
  210. package/dist/server/services/helpers/build-component-schema.mjs +172 -0
  211. package/dist/server/services/helpers/build-component-schema.mjs.map +1 -0
  212. package/dist/server/services/helpers/utils/clean-schema-attributes.js +315 -0
  213. package/dist/server/services/helpers/utils/clean-schema-attributes.js.map +1 -0
  214. package/dist/server/services/helpers/utils/clean-schema-attributes.mjs +313 -0
  215. package/dist/server/services/helpers/utils/clean-schema-attributes.mjs.map +1 -0
  216. package/dist/server/services/helpers/utils/get-api-responses.js +88 -0
  217. package/dist/server/services/helpers/utils/get-api-responses.js.map +1 -0
  218. package/dist/server/services/helpers/utils/get-api-responses.mjs +86 -0
  219. package/dist/server/services/helpers/utils/get-api-responses.mjs.map +1 -0
  220. package/dist/server/services/helpers/utils/get-schema-data.js +57 -0
  221. package/dist/server/services/helpers/utils/get-schema-data.js.map +1 -0
  222. package/dist/server/services/helpers/utils/get-schema-data.mjs +55 -0
  223. package/dist/server/services/helpers/utils/get-schema-data.mjs.map +1 -0
  224. package/dist/server/services/helpers/utils/loop-content-type-names.js +44 -0
  225. package/dist/server/services/helpers/utils/loop-content-type-names.js.map +1 -0
  226. package/dist/server/services/helpers/utils/loop-content-type-names.mjs +38 -0
  227. package/dist/server/services/helpers/utils/loop-content-type-names.mjs.map +1 -0
  228. package/dist/server/services/helpers/utils/pascal-case.js +14 -0
  229. package/dist/server/services/helpers/utils/pascal-case.js.map +1 -0
  230. package/dist/server/services/helpers/utils/pascal-case.mjs +8 -0
  231. package/dist/server/services/helpers/utils/pascal-case.mjs.map +1 -0
  232. package/dist/server/services/helpers/utils/query-params.js +109 -0
  233. package/dist/server/services/helpers/utils/query-params.js.map +1 -0
  234. package/dist/server/services/helpers/utils/query-params.mjs +107 -0
  235. package/dist/server/services/helpers/utils/query-params.mjs.map +1 -0
  236. package/dist/server/services/helpers/utils/routes.js +11 -0
  237. package/dist/server/services/helpers/utils/routes.js.map +1 -0
  238. package/dist/server/services/helpers/utils/routes.mjs +9 -0
  239. package/dist/server/services/helpers/utils/routes.mjs.map +1 -0
  240. package/dist/server/services/index.js +13 -0
  241. package/dist/server/services/index.js.map +1 -0
  242. package/dist/server/services/index.mjs +11 -0
  243. package/dist/server/services/index.mjs.map +1 -0
  244. package/dist/server/services/override.js +45 -0
  245. package/dist/server/services/override.js.map +1 -0
  246. package/dist/server/services/override.mjs +43 -0
  247. package/dist/server/services/override.mjs.map +1 -0
  248. package/dist/server/services/utils/get-plugins-that-need-documentation.js +24 -0
  249. package/dist/server/services/utils/get-plugins-that-need-documentation.js.map +1 -0
  250. package/dist/server/services/utils/get-plugins-that-need-documentation.mjs +22 -0
  251. package/dist/server/services/utils/get-plugins-that-need-documentation.mjs.map +1 -0
  252. package/dist/server/src/bootstrap.d.ts +5 -0
  253. package/dist/server/src/bootstrap.d.ts.map +1 -0
  254. package/dist/server/src/config/default-plugin-config.d.ts +3 -0
  255. package/dist/server/src/config/default-plugin-config.d.ts.map +1 -0
  256. package/dist/server/src/config/index.d.ts +4 -0
  257. package/dist/server/src/config/index.d.ts.map +1 -0
  258. package/dist/server/src/controllers/documentation.d.ts +12 -0
  259. package/dist/server/src/controllers/documentation.d.ts.map +1 -0
  260. package/dist/server/src/controllers/index.d.ts +13 -0
  261. package/dist/server/src/controllers/index.d.ts.map +1 -0
  262. package/dist/server/src/index.d.ts +90 -0
  263. package/dist/server/src/index.d.ts.map +1 -0
  264. package/dist/server/src/middlewares/documentation.d.ts +5 -0
  265. package/dist/server/src/middlewares/documentation.d.ts.map +1 -0
  266. package/dist/server/src/middlewares/restrict-access.d.ts +4 -0
  267. package/dist/server/src/middlewares/restrict-access.d.ts.map +1 -0
  268. package/dist/server/src/register.d.ts +5 -0
  269. package/dist/server/src/register.d.ts.map +1 -0
  270. package/dist/server/src/routes/index.d.ts +35 -0
  271. package/dist/server/src/routes/index.d.ts.map +1 -0
  272. package/dist/server/src/services/__mocks__/mock-content-types.d.ts +449 -0
  273. package/dist/server/src/services/__mocks__/mock-content-types.d.ts.map +1 -0
  274. package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts +592 -0
  275. package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts.map +1 -0
  276. package/dist/server/src/services/documentation.d.ts +36 -0
  277. package/dist/server/src/services/documentation.d.ts.map +1 -0
  278. package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts +7 -0
  279. package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts.map +1 -0
  280. package/dist/server/src/services/helpers/build-component-schema.d.ts +4 -0
  281. package/dist/server/src/services/helpers/build-component-schema.d.ts.map +1 -0
  282. package/dist/server/src/services/helpers/index.d.ts +4 -0
  283. package/dist/server/src/services/helpers/index.d.ts.map +1 -0
  284. package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts +15 -0
  285. package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts.map +1 -0
  286. package/dist/server/src/services/helpers/utils/get-api-responses.d.ts +15 -0
  287. package/dist/server/src/services/helpers/utils/get-api-responses.d.ts.map +1 -0
  288. package/dist/server/src/services/helpers/utils/get-schema-data.d.ts +12 -0
  289. package/dist/server/src/services/helpers/utils/get-schema-data.d.ts.map +1 -0
  290. package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts +7 -0
  291. package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts.map +1 -0
  292. package/dist/server/src/services/helpers/utils/pascal-case.d.ts +3 -0
  293. package/dist/server/src/services/helpers/utils/pascal-case.d.ts.map +1 -0
  294. package/dist/server/src/services/helpers/utils/query-params.d.ts +4 -0
  295. package/dist/server/src/services/helpers/utils/query-params.d.ts.map +1 -0
  296. package/dist/server/src/services/helpers/utils/routes.d.ts +3 -0
  297. package/dist/server/src/services/helpers/utils/routes.d.ts.map +1 -0
  298. package/dist/server/src/services/index.d.ts +43 -0
  299. package/dist/server/src/services/index.d.ts.map +1 -0
  300. package/dist/server/src/services/override.d.ts +21 -0
  301. package/dist/server/src/services/override.d.ts.map +1 -0
  302. package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts +4 -0
  303. package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts.map +1 -0
  304. package/dist/server/src/types.d.ts +28 -0
  305. package/dist/server/src/types.d.ts.map +1 -0
  306. package/dist/server/src/utils.d.ts +12 -0
  307. package/dist/server/src/utils.d.ts.map +1 -0
  308. package/dist/server/utils.js +10 -0
  309. package/dist/server/utils.js.map +1 -0
  310. package/dist/server/utils.mjs +8 -0
  311. package/dist/server/utils.mjs.map +1 -0
  312. package/dist/tests/server.d.ts +2 -0
  313. package/package.json +61 -38
  314. package/.eslintignore +0 -1
  315. package/.eslintrc +0 -17
  316. package/admin/src/constants.js +0 -17
  317. package/admin/src/hooks/useDocumentation.js +0 -77
  318. package/admin/src/index.js +0 -76
  319. package/admin/src/pages/PluginPage/index.jsx +0 -230
  320. package/admin/src/pages/PluginPage/tests/index.test.jsx +0 -206
  321. package/admin/src/pages/SettingsPage/index.jsx +0 -211
  322. package/admin/src/pages/SettingsPage/tests/index.test.jsx +0 -124
  323. package/admin/src/pluginId.js +0 -5
  324. package/admin/src/translations/ar.json +0 -20
  325. package/admin/src/translations/cs.json +0 -21
  326. package/admin/src/translations/de.json +0 -26
  327. package/admin/src/translations/dk.json +0 -39
  328. package/admin/src/translations/en.json +0 -39
  329. package/admin/src/translations/es.json +0 -39
  330. package/admin/src/translations/fr.json +0 -26
  331. package/admin/src/translations/id.json +0 -24
  332. package/admin/src/translations/it.json +0 -26
  333. package/admin/src/translations/ko.json +0 -39
  334. package/admin/src/translations/ms.json +0 -23
  335. package/admin/src/translations/nl.json +0 -21
  336. package/admin/src/translations/pl.json +0 -39
  337. package/admin/src/translations/pt-BR.json +0 -21
  338. package/admin/src/translations/pt.json +0 -21
  339. package/admin/src/translations/ru.json +0 -39
  340. package/admin/src/translations/sk.json +0 -24
  341. package/admin/src/translations/sv.json +0 -39
  342. package/admin/src/translations/th.json +0 -24
  343. package/admin/src/translations/tr.json +0 -39
  344. package/admin/src/translations/uk.json +0 -23
  345. package/admin/src/translations/vi.json +0 -24
  346. package/admin/src/translations/zh-Hans.json +0 -28
  347. package/admin/src/translations/zh.json +0 -39
  348. package/admin/src/utils/getTrad.js +0 -5
  349. package/admin/src/utils/index.js +0 -2
  350. package/dist/_chunks/ar-4yWQcJB-.js +0 -24
  351. package/dist/_chunks/ar-4yWQcJB-.js.map +0 -1
  352. package/dist/_chunks/ar-dlnabvQE.mjs +0 -24
  353. package/dist/_chunks/ar-dlnabvQE.mjs.map +0 -1
  354. package/dist/_chunks/cs-knLCHelx.js +0 -25
  355. package/dist/_chunks/cs-knLCHelx.js.map +0 -1
  356. package/dist/_chunks/cs-x2Pr-Y38.mjs +0 -25
  357. package/dist/_chunks/cs-x2Pr-Y38.mjs.map +0 -1
  358. package/dist/_chunks/de-10J3uf4y.mjs +0 -30
  359. package/dist/_chunks/de-10J3uf4y.mjs.map +0 -1
  360. package/dist/_chunks/de-D0HJjv1r.js +0 -30
  361. package/dist/_chunks/de-D0HJjv1r.js.map +0 -1
  362. package/dist/_chunks/dk-OGCIxZ4f.js +0 -43
  363. package/dist/_chunks/dk-OGCIxZ4f.js.map +0 -1
  364. package/dist/_chunks/dk-_8JEfZdj.mjs +0 -43
  365. package/dist/_chunks/dk-_8JEfZdj.mjs.map +0 -1
  366. package/dist/_chunks/en-V4ac9UMW.mjs +0 -43
  367. package/dist/_chunks/en-V4ac9UMW.mjs.map +0 -1
  368. package/dist/_chunks/en-YgFnjikD.js +0 -43
  369. package/dist/_chunks/en-YgFnjikD.js.map +0 -1
  370. package/dist/_chunks/es-5fRDaTSK.js +0 -43
  371. package/dist/_chunks/es-5fRDaTSK.js.map +0 -1
  372. package/dist/_chunks/es-f_rfLY5r.mjs +0 -43
  373. package/dist/_chunks/es-f_rfLY5r.mjs.map +0 -1
  374. package/dist/_chunks/fr-L2xRpd2l.mjs +0 -30
  375. package/dist/_chunks/fr-L2xRpd2l.mjs.map +0 -1
  376. package/dist/_chunks/fr-qviymkcR.js +0 -30
  377. package/dist/_chunks/fr-qviymkcR.js.map +0 -1
  378. package/dist/_chunks/id-caKGgafZ.js +0 -28
  379. package/dist/_chunks/id-caKGgafZ.js.map +0 -1
  380. package/dist/_chunks/id-l-r-lPDE.mjs +0 -28
  381. package/dist/_chunks/id-l-r-lPDE.mjs.map +0 -1
  382. package/dist/_chunks/index-0Psmd6mH.js +0 -169
  383. package/dist/_chunks/index-0Psmd6mH.js.map +0 -1
  384. package/dist/_chunks/index-4A--h4wV.mjs +0 -200
  385. package/dist/_chunks/index-4A--h4wV.mjs.map +0 -1
  386. package/dist/_chunks/index-4Lb4OA-2.mjs +0 -173
  387. package/dist/_chunks/index-4Lb4OA-2.mjs.map +0 -1
  388. package/dist/_chunks/index-KO2LyVtS.js +0 -199
  389. package/dist/_chunks/index-KO2LyVtS.js.map +0 -1
  390. package/dist/_chunks/index-U-tAamSt.js +0 -194
  391. package/dist/_chunks/index-U-tAamSt.js.map +0 -1
  392. package/dist/_chunks/index-rLNpelbE.mjs +0 -167
  393. package/dist/_chunks/index-rLNpelbE.mjs.map +0 -1
  394. package/dist/_chunks/it-e3T319Va.js +0 -30
  395. package/dist/_chunks/it-e3T319Va.js.map +0 -1
  396. package/dist/_chunks/it-nCSZoaet.mjs +0 -30
  397. package/dist/_chunks/it-nCSZoaet.mjs.map +0 -1
  398. package/dist/_chunks/ko-nWCOH-TF.js +0 -43
  399. package/dist/_chunks/ko-nWCOH-TF.js.map +0 -1
  400. package/dist/_chunks/ko-pUwRxmfG.mjs +0 -43
  401. package/dist/_chunks/ko-pUwRxmfG.mjs.map +0 -1
  402. package/dist/_chunks/ms-8e8SEhhY.mjs +0 -27
  403. package/dist/_chunks/ms-8e8SEhhY.mjs.map +0 -1
  404. package/dist/_chunks/ms-CSGAOmvV.js +0 -27
  405. package/dist/_chunks/ms-CSGAOmvV.js.map +0 -1
  406. package/dist/_chunks/nl-82NK6g7v.js +0 -25
  407. package/dist/_chunks/nl-82NK6g7v.js.map +0 -1
  408. package/dist/_chunks/nl-RjdbZWuM.mjs +0 -25
  409. package/dist/_chunks/nl-RjdbZWuM.mjs.map +0 -1
  410. package/dist/_chunks/pl-UMuW3iDh.js +0 -43
  411. package/dist/_chunks/pl-UMuW3iDh.js.map +0 -1
  412. package/dist/_chunks/pl-sh4sAKA8.mjs +0 -43
  413. package/dist/_chunks/pl-sh4sAKA8.mjs.map +0 -1
  414. package/dist/_chunks/pt-2sEtQifY.js +0 -25
  415. package/dist/_chunks/pt-2sEtQifY.js.map +0 -1
  416. package/dist/_chunks/pt-BR-G0-nWgFV.js +0 -25
  417. package/dist/_chunks/pt-BR-G0-nWgFV.js.map +0 -1
  418. package/dist/_chunks/pt-BR-uX3O_t0X.mjs +0 -25
  419. package/dist/_chunks/pt-BR-uX3O_t0X.mjs.map +0 -1
  420. package/dist/_chunks/pt-GqKRRnNe.mjs +0 -25
  421. package/dist/_chunks/pt-GqKRRnNe.mjs.map +0 -1
  422. package/dist/_chunks/ru-dQr7xFOb.mjs +0 -43
  423. package/dist/_chunks/ru-dQr7xFOb.mjs.map +0 -1
  424. package/dist/_chunks/ru-wJyWus4I.js +0 -43
  425. package/dist/_chunks/ru-wJyWus4I.js.map +0 -1
  426. package/dist/_chunks/sk-mcEz1PMW.js +0 -28
  427. package/dist/_chunks/sk-mcEz1PMW.js.map +0 -1
  428. package/dist/_chunks/sk-nreoyD6V.mjs +0 -28
  429. package/dist/_chunks/sk-nreoyD6V.mjs.map +0 -1
  430. package/dist/_chunks/sv-V86KaP9y.js +0 -43
  431. package/dist/_chunks/sv-V86KaP9y.js.map +0 -1
  432. package/dist/_chunks/sv-kIUD_46v.mjs +0 -43
  433. package/dist/_chunks/sv-kIUD_46v.mjs.map +0 -1
  434. package/dist/_chunks/th-IcmZ0Yif.mjs +0 -28
  435. package/dist/_chunks/th-IcmZ0Yif.mjs.map +0 -1
  436. package/dist/_chunks/th-pZN4HdUY.js +0 -28
  437. package/dist/_chunks/th-pZN4HdUY.js.map +0 -1
  438. package/dist/_chunks/tr-CkXew0gQ.mjs +0 -43
  439. package/dist/_chunks/tr-CkXew0gQ.mjs.map +0 -1
  440. package/dist/_chunks/tr-fCijT6nA.js +0 -43
  441. package/dist/_chunks/tr-fCijT6nA.js.map +0 -1
  442. package/dist/_chunks/uk-E8Js7gDb.mjs +0 -27
  443. package/dist/_chunks/uk-E8Js7gDb.mjs.map +0 -1
  444. package/dist/_chunks/uk-TEHpQuls.js +0 -27
  445. package/dist/_chunks/uk-TEHpQuls.js.map +0 -1
  446. package/dist/_chunks/useDocumentation-0Rztpbjg.mjs +0 -66
  447. package/dist/_chunks/useDocumentation-0Rztpbjg.mjs.map +0 -1
  448. package/dist/_chunks/useDocumentation-ffVG-mHB.js +0 -65
  449. package/dist/_chunks/useDocumentation-ffVG-mHB.js.map +0 -1
  450. package/dist/_chunks/vi-Nxtm0xZz.js +0 -28
  451. package/dist/_chunks/vi-Nxtm0xZz.js.map +0 -1
  452. package/dist/_chunks/vi-k1R3Y3mS.mjs +0 -28
  453. package/dist/_chunks/vi-k1R3Y3mS.mjs.map +0 -1
  454. package/dist/_chunks/zh-Hans-FdUTcggu.mjs +0 -32
  455. package/dist/_chunks/zh-Hans-FdUTcggu.mjs.map +0 -1
  456. package/dist/_chunks/zh-Hans-tFSnVett.js +0 -32
  457. package/dist/_chunks/zh-Hans-tFSnVett.js.map +0 -1
  458. package/dist/_chunks/zh-Vd3mfBR-.mjs +0 -43
  459. package/dist/_chunks/zh-Vd3mfBR-.mjs.map +0 -1
  460. package/dist/_chunks/zh-bgauBZz8.js +0 -43
  461. package/dist/_chunks/zh-bgauBZz8.js.map +0 -1
  462. package/jest.config.front.js +0 -7
  463. package/jest.config.js +0 -6
  464. package/packup.config.ts +0 -22
  465. package/server/bootstrap.js +0 -54
  466. package/server/config/default-plugin-config.js +0 -35
  467. package/server/config/index.js +0 -7
  468. package/server/controllers/documentation.js +0 -241
  469. package/server/controllers/index.js +0 -7
  470. package/server/index.js +0 -17
  471. package/server/middlewares/documentation.js +0 -25
  472. package/server/middlewares/index.js +0 -7
  473. package/server/middlewares/restrict-access.js +0 -24
  474. package/server/public/index.html +0 -70
  475. package/server/public/login.html +0 -145
  476. package/server/register.js +0 -11
  477. package/server/routes/index.js +0 -84
  478. package/server/services/__mocks__/mock-content-types.js +0 -269
  479. package/server/services/__mocks__/mock-strapi-data.js +0 -183
  480. package/server/services/__tests__/build-component-schema.test.js +0 -761
  481. package/server/services/__tests__/documentation.test.js +0 -481
  482. package/server/services/__tests__/override.test.js +0 -85
  483. package/server/services/documentation.js +0 -247
  484. package/server/services/helpers/build-api-endpoint-path.js +0 -186
  485. package/server/services/helpers/build-component-schema.js +0 -254
  486. package/server/services/helpers/index.js +0 -9
  487. package/server/services/helpers/utils/clean-schema-attributes.js +0 -246
  488. package/server/services/helpers/utils/get-api-responses.js +0 -105
  489. package/server/services/helpers/utils/get-schema-data.js +0 -32
  490. package/server/services/helpers/utils/loop-content-type-names.js +0 -55
  491. package/server/services/helpers/utils/pascal-case.js +0 -9
  492. package/server/services/helpers/utils/query-params.js +0 -106
  493. package/server/services/helpers/utils/routes.js +0 -10
  494. package/server/services/index.js +0 -9
  495. package/server/services/override.js +0 -52
  496. package/server/services/utils/default-openapi-components.js +0 -40
  497. package/server/services/utils/get-plugins-that-need-documentation.js +0 -24
  498. package/strapi-server.js +0 -3
  499. package/tests/server.js +0 -37
  500. package/tests/setup.js +0 -15
@@ -1,481 +0,0 @@
1
- 'use strict';
2
-
3
- const _ = require('lodash/fp');
4
- const fse = require('fs-extra');
5
- const SwaggerParser = require('@apidevtools/swagger-parser');
6
- const { api, plugins, components, contentTypes } = require('../__mocks__/mock-strapi-data');
7
- const documentation = require('../documentation');
8
- const override = require('../override');
9
- const defaultConfig = require('../../config/default-plugin-config');
10
-
11
- const mockStrapiInstance = {
12
- dirs: {
13
- app: {
14
- api: './',
15
- extensions: './',
16
- },
17
- },
18
- contentTypes,
19
- components,
20
- api,
21
- plugins,
22
- config: {
23
- get: () => defaultConfig,
24
- },
25
- log: {
26
- info: jest.fn(),
27
- warn: jest.fn(),
28
- },
29
- };
30
-
31
- jest.mock('fs-extra', () => ({
32
- ...jest.requireActual('fs-extra'),
33
- writeJson: jest.fn(),
34
- ensureFile: jest.fn(),
35
- }));
36
-
37
- describe('Documentation plugin | Documentation service', () => {
38
- beforeAll(() => {
39
- global.strapi = mockStrapiInstance;
40
- global.strapi.contentType = jest.fn((uid) => {
41
- // Only deal with mocked data, return empty attributes for unmocked relations
42
- if (!global.strapi.contentTypes[uid]) return { attributes: {} };
43
-
44
- return global.strapi.contentTypes[uid];
45
- });
46
- global.strapi.plugin = jest.fn((name) => global.strapi.plugins[name]);
47
-
48
- global.strapi.plugins.documentation = {
49
- service: jest.fn((name) => {
50
- const mockServices = {
51
- override: override({ strapi: global.strapi }),
52
- };
53
-
54
- return mockServices[name];
55
- }),
56
- };
57
- });
58
-
59
- afterAll(() => {
60
- // Teardown the mocked strapi instance
61
- global.strapi = {};
62
- });
63
-
64
- afterEach(() => {
65
- // Reset the mocked strapi config
66
- global.strapi.config.get = () => defaultConfig;
67
- });
68
-
69
- it('generates a valid openapi schema', async () => {
70
- const docService = documentation({ strapi: global.strapi });
71
- await docService.generateFullDoc();
72
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
73
- const mockFinalDoc = lastMockCall[1];
74
-
75
- // The final documenation is read only, clone deep for this test
76
- const validatePromise = SwaggerParser.validate(_.cloneDeep(mockFinalDoc));
77
-
78
- await expect(validatePromise).resolves.not.toThrow();
79
- });
80
-
81
- it('generates the correct response component schema for a single type', async () => {
82
- const docService = documentation({ strapi: global.strapi });
83
- await docService.generateFullDoc();
84
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
85
- const mockFinalDoc = lastMockCall[1];
86
- const expected = {
87
- description: 'OK',
88
- content: {
89
- 'application/json': {
90
- schema: {
91
- $ref: '#/components/schemas/HomepageResponse',
92
- },
93
- },
94
- },
95
- };
96
- expect(mockFinalDoc.paths['/homepage'].get.responses['200']).toEqual(expected);
97
- expect(mockFinalDoc.paths['/homepage'].put.responses['200']).toEqual(expected);
98
- expect(mockFinalDoc.paths['/homepage'].post.responses['200']).toEqual(expected);
99
- });
100
-
101
- it('generates the correct response component schema for a collection type', async () => {
102
- const docService = documentation({ strapi: global.strapi });
103
- await docService.generateFullDoc();
104
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
105
- const mockFinalDoc = lastMockCall[1];
106
- const expectedList = {
107
- description: 'OK',
108
- content: {
109
- 'application/json': {
110
- schema: {
111
- $ref: '#/components/schemas/KitchensinkListResponse',
112
- },
113
- },
114
- },
115
- };
116
- const expectedOne = {
117
- description: 'OK',
118
- content: {
119
- 'application/json': {
120
- schema: {
121
- $ref: '#/components/schemas/KitchensinkResponse',
122
- },
123
- },
124
- },
125
- };
126
- expect(mockFinalDoc.paths['/kitchensinks'].get.responses['200']).toEqual(expectedList);
127
- expect(mockFinalDoc.paths['/kitchensinks'].post.responses['200']).toEqual(expectedOne);
128
- expect(mockFinalDoc.paths['/kitchensinks/{id}'].get.responses['200']).toEqual(expectedOne);
129
- expect(mockFinalDoc.paths['/kitchensinks/{id}'].put.responses['200']).toEqual(expectedOne);
130
- });
131
-
132
- describe('Determines the plugins that need documentation', () => {
133
- it('generates documentation for the default plugins if the user provided nothing in the config', async () => {
134
- const docService = documentation({ strapi: global.strapi });
135
-
136
- await docService.generateFullDoc();
137
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
138
- const mockFinalDoc = lastMockCall[1];
139
-
140
- expect(mockFinalDoc['x-strapi-config'].plugins).toEqual(['upload', 'users-permissions']);
141
- });
142
-
143
- it("generates documentation only for plugins in the user's config", async () => {
144
- global.strapi.config.get = () => ({
145
- ...defaultConfig,
146
- 'x-strapi-config': { ...defaultConfig['x-strapi-config'], plugins: ['upload'] },
147
- });
148
-
149
- const docService = documentation({ strapi: global.strapi });
150
-
151
- await docService.generateFullDoc();
152
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
153
- const mockFinalDoc = lastMockCall[1];
154
- expect(mockFinalDoc['x-strapi-config'].plugins).toEqual(['upload']);
155
- });
156
-
157
- it('does not generate documentation for any plugins', async () => {
158
- global.strapi.config.get = () => ({
159
- ...defaultConfig,
160
- 'x-strapi-config': { ...defaultConfig['x-strapi-config'], plugins: [] },
161
- });
162
-
163
- const docService = documentation({ strapi: global.strapi });
164
-
165
- await docService.generateFullDoc();
166
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
167
- const mockFinalDoc = lastMockCall[1];
168
- expect(mockFinalDoc['x-strapi-config'].plugins).toEqual([]);
169
- });
170
- });
171
-
172
- describe('Handles user config and overrides', () => {
173
- it('replaces default config with the user config', async () => {
174
- const userConfig = {
175
- info: {
176
- version: '4.0.0',
177
- title: 'custom-documentation',
178
- description: 'custom description',
179
- termsOfService: 'custom terms of service',
180
- contact: {
181
- name: 'custom-team',
182
- email: 'custom-contact-email@something.io',
183
- url: 'custom-mywebsite.io',
184
- },
185
- license: {
186
- name: 'custom Apache 2.0',
187
- url: 'custom https://www.apache.org/licenses/LICENSE-2.0.html',
188
- },
189
- },
190
- 'x-strapi-config': {
191
- path: 'custom-documentation',
192
- plugins: [],
193
- },
194
- servers: [{ server: 'custom-server' }],
195
- externalDocs: {
196
- description: 'custom Find out more',
197
- url: 'custom-doc-url',
198
- },
199
- webhooks: {
200
- test: {},
201
- },
202
- security: [
203
- {
204
- bearerAuth: ['custom'],
205
- },
206
- ],
207
- };
208
-
209
- global.strapi.config.get = () => ({ ...userConfig });
210
- const docService = documentation({ strapi: global.strapi });
211
- await docService.generateFullDoc();
212
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
213
- const mockFinalDoc = lastMockCall[1];
214
- // The generation data is dynamically added, it cannot be modified by the user
215
- const { 'x-generation-date': generationConfig, ...mockFinalDocInfo } = mockFinalDoc.info;
216
- expect(mockFinalDocInfo).toEqual(userConfig.info);
217
- expect(mockFinalDoc['x-strapi-config']).toEqual(userConfig['x-strapi-config']);
218
- expect(mockFinalDoc.externalDocs).toEqual(userConfig.externalDocs);
219
- expect(mockFinalDoc.security).toEqual(userConfig.security);
220
- expect(mockFinalDoc.webhooks).toEqual(userConfig.webhooks);
221
- expect(mockFinalDoc.servers).toEqual(userConfig.servers);
222
- });
223
-
224
- it("does not apply an override if the plugin providing the override isn't specified in the x-strapi-config.plugins", async () => {
225
- global.strapi.config.get = () => ({
226
- ...defaultConfig,
227
- 'x-strapi-config': { ...defaultConfig['x-strapi-config'], plugins: [] },
228
- });
229
- const docService = documentation({ strapi: global.strapi });
230
- const overrideService = override({ strapi: global.strapi });
231
-
232
- overrideService.registerOverride(
233
- {
234
- paths: {
235
- '/test': {
236
- get: {
237
- tags: ['Users-Permissions - Users & Roles'],
238
- summary: 'Get list of users',
239
- responses: {},
240
- },
241
- },
242
- },
243
- },
244
- { pluginOrigin: 'users-permissions' }
245
- );
246
-
247
- await docService.generateFullDoc();
248
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
249
- const mockFinalDoc = lastMockCall[1];
250
- expect(mockFinalDoc.paths['/test']).toBeUndefined();
251
- });
252
-
253
- it('overrides (extends) Tags', async () => {
254
- const overrideService = override({ strapi: global.strapi });
255
- // Simulate override from users-permissions plugin
256
- overrideService.registerOverride(
257
- {
258
- tags: ['users-permissions-tag'],
259
- },
260
- { pluginOrigin: 'users-permissions' }
261
- );
262
- // Simulate override from upload plugin
263
- overrideService.registerOverride(
264
- {
265
- tags: ['upload-tag'],
266
- },
267
- { pluginOrigin: 'upload' }
268
- );
269
- // Use the override service in the documentation service
270
- global.strapi.plugins.documentation = {
271
- service: jest.fn((name) => {
272
- const mockServices = {
273
- override: overrideService,
274
- };
275
-
276
- return mockServices[name];
277
- }),
278
- };
279
- const docService = documentation({ strapi: global.strapi });
280
- await docService.generateFullDoc();
281
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
282
- const mockFinalDoc = lastMockCall[1];
283
-
284
- expect(mockFinalDoc.tags).toEqual(['users-permissions-tag', 'upload-tag']);
285
- });
286
-
287
- it('overrides (replaces existing or adds new) Paths', async () => {
288
- const overrideService = override({ strapi: global.strapi });
289
- // Simulate override from upload plugin
290
- overrideService.registerOverride(
291
- {
292
- paths: {
293
- // This path exists after generating with mock data, replace it
294
- '/upload/files': {
295
- get: {
296
- responses: ['existing-path-test'],
297
- },
298
- },
299
- // This path does not exist after generating with mock data, add it
300
- '/upload/new-path': {
301
- get: {
302
- responses: ['new-path-test'],
303
- },
304
- },
305
- },
306
- },
307
- { pluginOrigin: 'upload' }
308
- );
309
- global.strapi.plugins.documentation = {
310
- service: jest.fn((name) => {
311
- const mockServices = {
312
- override: overrideService,
313
- };
314
-
315
- return mockServices[name];
316
- }),
317
- };
318
- const docService = documentation({ strapi: global.strapi });
319
- await docService.generateFullDoc();
320
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
321
- const mockFinalDoc = lastMockCall[1];
322
-
323
- expect(mockFinalDoc.paths['/upload/files'].get.responses).toEqual(['existing-path-test']);
324
- expect(Object.keys(mockFinalDoc.paths['/upload/files'].get)).toEqual(['responses']);
325
- expect(mockFinalDoc.paths['/upload/new-path'].get.responses).toEqual(['new-path-test']);
326
- });
327
-
328
- it('overrides (replaces existing or adds new) Components', async () => {
329
- const overrideService = override({ strapi: global.strapi });
330
- // Simulate override from upload plugin
331
- overrideService.registerOverride(
332
- {
333
- components: {
334
- schemas: {
335
- // This component schema exists after generating with mock data, replace it
336
- UploadFileResponse: {
337
- properties: {
338
- data: { $ref: 'test-existing-component' },
339
- meta: { type: 'object' },
340
- },
341
- },
342
- // This component schema does not exist after generating with mock data, add it
343
- UploadFileMockCompo: {
344
- properties: {
345
- data: { $ref: 'test-new-component' },
346
- meta: { type: 'object' },
347
- },
348
- },
349
- },
350
- },
351
- },
352
- { pluginOrigin: 'upload' }
353
- );
354
- global.strapi.plugins.documentation = {
355
- service: jest.fn((name) => {
356
- const mockServices = {
357
- override: overrideService,
358
- };
359
-
360
- return mockServices[name];
361
- }),
362
- };
363
- const docService = documentation({ strapi: global.strapi });
364
- await docService.generateFullDoc();
365
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
366
- const mockFinalDoc = lastMockCall[1];
367
-
368
- expect(mockFinalDoc.components.schemas.UploadFileResponse.properties.data.$ref).toEqual(
369
- 'test-existing-component'
370
- );
371
- expect(mockFinalDoc.components.schemas.UploadFileMockCompo.properties.data.$ref).toEqual(
372
- 'test-new-component'
373
- );
374
- });
375
- it('overrides only the specified version', async () => {
376
- const overrideService = override({ strapi: global.strapi });
377
- // Simulate override from upload plugin
378
- overrideService.registerOverride(
379
- {
380
- // Only override for version 1.0.0
381
- info: { version: '1.0.0' },
382
- components: {
383
- schemas: {
384
- // This component schema exists after generating with mock data, replace it
385
- ShouldNotBeAdded: {},
386
- },
387
- },
388
- },
389
- { pluginOrigin: 'upload' }
390
- );
391
- // Simulate override from upload plugin
392
- overrideService.registerOverride(
393
- {
394
- // Only override for version 2.0.0
395
- info: { version: '2.0.0' },
396
- components: {
397
- schemas: {
398
- // This component schema exists after generating with mock data, replace it
399
- ShouldBeAdded: {},
400
- },
401
- },
402
- },
403
- { pluginOrigin: 'upload' }
404
- );
405
- // Simulate override from upload plugin
406
- overrideService.registerOverride(
407
- {
408
- components: {
409
- schemas: {
410
- // This component schema exists after generating with mock data, replace it
411
- ShouldAlsoBeAdded: {},
412
- },
413
- },
414
- },
415
- { pluginOrigin: 'upload' }
416
- );
417
- global.strapi.plugins.documentation = {
418
- service: jest.fn((name) => {
419
- const mockServices = {
420
- override: overrideService,
421
- };
422
-
423
- return mockServices[name];
424
- }),
425
- };
426
- const docService = documentation({ strapi: global.strapi });
427
- await docService.generateFullDoc('2.0.0');
428
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
429
- const mockFinalDoc = lastMockCall[1];
430
-
431
- expect(mockFinalDoc.components.schemas.ShouldNotBeAdded).toBeUndefined();
432
- expect(mockFinalDoc.components.schemas.ShouldBeAdded).toBeDefined();
433
- expect(mockFinalDoc.components.schemas.ShouldAlsoBeAdded).toBeDefined();
434
- });
435
- it('excludes apis and plugins from generation', async () => {
436
- const overrideService = override({ strapi: global.strapi });
437
-
438
- overrideService.excludeFromGeneration('kitchensink');
439
-
440
- global.strapi.plugins.documentation = {
441
- service: jest.fn((name) => {
442
- const mockServices = {
443
- override: overrideService,
444
- };
445
-
446
- return mockServices[name];
447
- }),
448
- };
449
-
450
- const docService = documentation({ strapi: global.strapi });
451
- await docService.generateFullDoc();
452
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
453
- const mockFinalDoc = lastMockCall[1];
454
-
455
- expect(
456
- Object.keys(mockFinalDoc.paths).find((path) => path.includes('kitchensink'))
457
- ).toBeUndefined();
458
- expect(
459
- Object.keys(mockFinalDoc.components.schemas).find((compo) => compo.includes('Kitchensink'))
460
- ).toBeUndefined();
461
- });
462
- it("applies a user's mutateDocumentation function", async () => {
463
- global.strapi.config.get = () => ({
464
- ...defaultConfig,
465
- 'x-strapi-config': {
466
- ...defaultConfig['x-strapi-config'],
467
- mutateDocumentation(draft) {
468
- draft.paths['/kitchensinks'] = { get: { responses: { 200: { description: 'test' } } } };
469
- },
470
- },
471
- });
472
- const docService = documentation({ strapi: global.strapi });
473
- await docService.generateFullDoc();
474
- const lastMockCall = fse.writeJson.mock.calls[fse.writeJson.mock.calls.length - 1];
475
- const mockFinalDoc = lastMockCall[1];
476
- expect(mockFinalDoc.paths['/kitchensinks']).toEqual({
477
- get: { responses: { 200: { description: 'test' } } },
478
- });
479
- });
480
- });
481
- });
@@ -1,85 +0,0 @@
1
- 'use strict';
2
-
3
- const override = require('../override');
4
-
5
- const strapiMock = {
6
- config: {
7
- get: () => ({
8
- 'x-strapi-config': {
9
- plugins: null,
10
- },
11
- }),
12
- },
13
- };
14
-
15
- let strapi = strapiMock;
16
- describe('Documentation plugin | Override service', () => {
17
- afterEach(() => {
18
- // Reset strapi after each test
19
- strapi = strapiMock;
20
- });
21
-
22
- it('should register an override', () => {
23
- const mockOverride = {
24
- openapi: '3.0.0',
25
- info: {
26
- title: 'My API',
27
- version: '1.0.0',
28
- },
29
- };
30
- const overrideService = override({ strapi });
31
- overrideService.registerOverride(mockOverride);
32
-
33
- expect(overrideService.registeredOverrides).toEqual([mockOverride]);
34
- });
35
-
36
- it('should not register an override from a plugin that is not in the config', () => {
37
- const mockOverride = {
38
- openapi: '3.0.0',
39
- info: {
40
- title: 'My API',
41
- version: '1.0.0',
42
- },
43
- };
44
- const overrideService = override({ strapi });
45
- overrideService.registerOverride(mockOverride, { pluginOrigin: 'test' });
46
-
47
- expect(overrideService.registeredOverrides).toEqual([]);
48
- });
49
-
50
- it('should register an override from a plugin that is in the config and exclude it from generation', () => {
51
- const mockOverride = {
52
- openapi: '3.0.0',
53
- info: {
54
- title: 'My API',
55
- version: '1.0.0',
56
- },
57
- };
58
- strapi.config.get = () => ({
59
- 'x-strapi-config': {
60
- plugins: ['test'],
61
- },
62
- });
63
- const overrideService = override({ strapi });
64
- overrideService.registerOverride(mockOverride, {
65
- pluginOrigin: 'test',
66
- excludeFromGeneration: ['test', 'some-other-api-to-exclude'],
67
- });
68
-
69
- expect(overrideService.registeredOverrides).toEqual([mockOverride]);
70
- expect(overrideService.excludedFromGeneration).toEqual(['test', 'some-other-api-to-exclude']);
71
- });
72
-
73
- it('should register an api or plugin to exclude from generation', () => {
74
- const overrideService = override({ strapi });
75
- overrideService.excludeFromGeneration('my-api');
76
- overrideService.excludeFromGeneration(['my-other-api', 'my-plugin', 'my-other-plugin']);
77
-
78
- expect(overrideService.excludedFromGeneration).toEqual([
79
- 'my-api',
80
- 'my-other-api',
81
- 'my-plugin',
82
- 'my-other-plugin',
83
- ]);
84
- });
85
- });