@strapi/plugin-documentation 5.0.0-beta.0 → 5.0.0-beta.10

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 (332) hide show
  1. package/README.md +0 -1
  2. package/dist/_chunks/{index-D1KkfApT.js → App-Cmiagsr-.js} +93 -53
  3. package/dist/_chunks/App-Cmiagsr-.js.map +1 -0
  4. package/dist/_chunks/{index-7xstUX8_.mjs → App-pk6g9tYL.mjs} +69 -46
  5. package/dist/_chunks/App-pk6g9tYL.mjs.map +1 -0
  6. package/dist/_chunks/Settings-CqLmbMfv.mjs +223 -0
  7. package/dist/_chunks/Settings-CqLmbMfv.mjs.map +1 -0
  8. package/dist/_chunks/Settings-MmkmHoxg.js +243 -0
  9. package/dist/_chunks/Settings-MmkmHoxg.js.map +1 -0
  10. package/dist/_chunks/{ar-4yWQcJB-.js → ar-CkqTE6jh.js} +1 -1
  11. package/dist/_chunks/ar-CkqTE6jh.js.map +1 -0
  12. package/dist/_chunks/{ar-dlnabvQE.mjs → ar-ckp9T43y.mjs} +1 -1
  13. package/dist/_chunks/ar-ckp9T43y.mjs.map +1 -0
  14. package/dist/_chunks/{cs-knLCHelx.js → cs-BbyKo6Hc.js} +1 -1
  15. package/dist/_chunks/cs-BbyKo6Hc.js.map +1 -0
  16. package/dist/_chunks/{cs-x2Pr-Y38.mjs → cs-ciLYCxgd.mjs} +1 -1
  17. package/dist/_chunks/cs-ciLYCxgd.mjs.map +1 -0
  18. package/dist/_chunks/{de-D0HJjv1r.js → de-CHwC0A85.js} +1 -1
  19. package/dist/_chunks/de-CHwC0A85.js.map +1 -0
  20. package/dist/_chunks/{de-10J3uf4y.mjs → de-DqkAUMvP.mjs} +1 -1
  21. package/dist/_chunks/de-DqkAUMvP.mjs.map +1 -0
  22. package/dist/_chunks/{dk-_8JEfZdj.mjs → dk-DgCq8mF-.mjs} +1 -1
  23. package/dist/_chunks/dk-DgCq8mF-.mjs.map +1 -0
  24. package/dist/_chunks/{dk-OGCIxZ4f.js → dk-qlI2J6S0.js} +1 -1
  25. package/dist/_chunks/dk-qlI2J6S0.js.map +1 -0
  26. package/dist/_chunks/{en-YgFnjikD.js → en-Cfq2Inmo.js} +1 -1
  27. package/dist/_chunks/en-Cfq2Inmo.js.map +1 -0
  28. package/dist/_chunks/{en-V4ac9UMW.mjs → en-DfCC9sZn.mjs} +1 -1
  29. package/dist/_chunks/en-DfCC9sZn.mjs.map +1 -0
  30. package/dist/_chunks/{es-f_rfLY5r.mjs → es-CEiXVnsb.mjs} +1 -1
  31. package/dist/_chunks/es-CEiXVnsb.mjs.map +1 -0
  32. package/dist/_chunks/{es-5fRDaTSK.js → es-DH1GVZe7.js} +1 -1
  33. package/dist/_chunks/es-DH1GVZe7.js.map +1 -0
  34. package/dist/_chunks/{fr-qviymkcR.js → fr-B1x-Nj5w.js} +1 -1
  35. package/dist/_chunks/fr-B1x-Nj5w.js.map +1 -0
  36. package/dist/_chunks/{fr-L2xRpd2l.mjs → fr-BlX-v4UF.mjs} +1 -1
  37. package/dist/_chunks/fr-BlX-v4UF.mjs.map +1 -0
  38. package/dist/_chunks/getTrad-AjYeGjZg.mjs +51 -0
  39. package/dist/_chunks/getTrad-AjYeGjZg.mjs.map +1 -0
  40. package/dist/_chunks/getTrad-CPA7x4Cg.js +50 -0
  41. package/dist/_chunks/getTrad-CPA7x4Cg.js.map +1 -0
  42. package/dist/_chunks/{id-l-r-lPDE.mjs → id-CPOl6_EU.mjs} +1 -1
  43. package/dist/_chunks/id-CPOl6_EU.mjs.map +1 -0
  44. package/dist/_chunks/{id-caKGgafZ.js → id-D3yFE72d.js} +1 -1
  45. package/dist/_chunks/id-D3yFE72d.js.map +1 -0
  46. package/{server/public/index.html → dist/_chunks/index-BTFWrNiz.mjs} +9 -4
  47. package/dist/_chunks/index-BTFWrNiz.mjs.map +1 -0
  48. package/dist/_chunks/index-Bjeq6z8p.js +100 -0
  49. package/dist/_chunks/index-Bjeq6z8p.js.map +1 -0
  50. package/dist/_chunks/index-CEoG11hQ.mjs +101 -0
  51. package/dist/_chunks/index-CEoG11hQ.mjs.map +1 -0
  52. package/dist/_chunks/index-CYcTK1eg.js +75 -0
  53. package/dist/_chunks/index-CYcTK1eg.js.map +1 -0
  54. package/dist/_chunks/{it-nCSZoaet.mjs → it-DWJI563z.mjs} +1 -1
  55. package/dist/_chunks/it-DWJI563z.mjs.map +1 -0
  56. package/dist/_chunks/{it-e3T319Va.js → it-WuNBIqG8.js} +1 -1
  57. package/dist/_chunks/it-WuNBIqG8.js.map +1 -0
  58. package/dist/_chunks/{ko-pUwRxmfG.mjs → ko-CFzSHayG.mjs} +1 -1
  59. package/dist/_chunks/ko-CFzSHayG.mjs.map +1 -0
  60. package/dist/_chunks/{ko-nWCOH-TF.js → ko-De5iYa_O.js} +1 -1
  61. package/dist/_chunks/ko-De5iYa_O.js.map +1 -0
  62. package/dist/_chunks/login-EQSKn2h7.js +150 -0
  63. package/dist/_chunks/login-EQSKn2h7.js.map +1 -0
  64. package/{server/public/login.html → dist/_chunks/login-KS59cQ6U.mjs} +6 -1
  65. package/dist/_chunks/login-KS59cQ6U.mjs.map +1 -0
  66. package/dist/_chunks/{ms-8e8SEhhY.mjs → ms-CUgPFo4U.mjs} +1 -1
  67. package/dist/_chunks/ms-CUgPFo4U.mjs.map +1 -0
  68. package/dist/_chunks/{ms-CSGAOmvV.js → ms-DQfa3FDx.js} +1 -1
  69. package/dist/_chunks/ms-DQfa3FDx.js.map +1 -0
  70. package/dist/_chunks/{nl-82NK6g7v.js → nl-BZHlqphk.js} +1 -1
  71. package/dist/_chunks/nl-BZHlqphk.js.map +1 -0
  72. package/dist/_chunks/{nl-RjdbZWuM.mjs → nl-B_7CHwVD.mjs} +1 -1
  73. package/dist/_chunks/nl-B_7CHwVD.mjs.map +1 -0
  74. package/dist/_chunks/{pl-UMuW3iDh.js → pl-DDl5i_mP.js} +1 -1
  75. package/dist/_chunks/pl-DDl5i_mP.js.map +1 -0
  76. package/dist/_chunks/{pl-sh4sAKA8.mjs → pl-DwLr8sw9.mjs} +1 -1
  77. package/dist/_chunks/pl-DwLr8sw9.mjs.map +1 -0
  78. package/dist/_chunks/{pt-2sEtQifY.js → pt-4GQ8ermL.js} +1 -1
  79. package/dist/_chunks/pt-4GQ8ermL.js.map +1 -0
  80. package/dist/_chunks/{pt-BR-G0-nWgFV.js → pt-BR-D24CJ0qp.js} +1 -1
  81. package/dist/_chunks/pt-BR-D24CJ0qp.js.map +1 -0
  82. package/dist/_chunks/{pt-BR-uX3O_t0X.mjs → pt-BR-MVXc6V9P.mjs} +1 -1
  83. package/dist/_chunks/pt-BR-MVXc6V9P.mjs.map +1 -0
  84. package/dist/_chunks/{pt-GqKRRnNe.mjs → pt-C2N9fdeh.mjs} +1 -1
  85. package/dist/_chunks/pt-C2N9fdeh.mjs.map +1 -0
  86. package/dist/_chunks/{ru-dQr7xFOb.mjs → ru-BddeNlU0.mjs} +1 -1
  87. package/dist/_chunks/ru-BddeNlU0.mjs.map +1 -0
  88. package/dist/_chunks/{ru-wJyWus4I.js → ru-QwZYcU6K.js} +1 -1
  89. package/dist/_chunks/ru-QwZYcU6K.js.map +1 -0
  90. package/dist/_chunks/{sk-nreoyD6V.mjs → sk-BmT4uZTG.mjs} +1 -1
  91. package/dist/_chunks/sk-BmT4uZTG.mjs.map +1 -0
  92. package/dist/_chunks/{sk-mcEz1PMW.js → sk-DgAXilB1.js} +1 -1
  93. package/dist/_chunks/sk-DgAXilB1.js.map +1 -0
  94. package/dist/_chunks/{sv-V86KaP9y.js → sv-CCLcAo3U.js} +1 -1
  95. package/dist/_chunks/sv-CCLcAo3U.js.map +1 -0
  96. package/dist/_chunks/{sv-kIUD_46v.mjs → sv-D_-KBtcw.mjs} +1 -1
  97. package/dist/_chunks/sv-D_-KBtcw.mjs.map +1 -0
  98. package/dist/_chunks/{th-pZN4HdUY.js → th-BhgV1BbW.js} +1 -1
  99. package/dist/_chunks/th-BhgV1BbW.js.map +1 -0
  100. package/dist/_chunks/{th-IcmZ0Yif.mjs → th-DkuoSGii.mjs} +1 -1
  101. package/dist/_chunks/th-DkuoSGii.mjs.map +1 -0
  102. package/dist/_chunks/{tr-fCijT6nA.js → tr-BysnAErC.js} +1 -1
  103. package/dist/_chunks/tr-BysnAErC.js.map +1 -0
  104. package/dist/_chunks/{tr-CkXew0gQ.mjs → tr-l-xxK4Yk.mjs} +1 -1
  105. package/dist/_chunks/tr-l-xxK4Yk.mjs.map +1 -0
  106. package/dist/_chunks/{uk-TEHpQuls.js → uk-CNlbntFx.js} +1 -1
  107. package/dist/_chunks/uk-CNlbntFx.js.map +1 -0
  108. package/dist/_chunks/{uk-E8Js7gDb.mjs → uk-Cpmsxyku.mjs} +1 -1
  109. package/dist/_chunks/uk-Cpmsxyku.mjs.map +1 -0
  110. package/dist/_chunks/{vi-k1R3Y3mS.mjs → vi-ClWGrFm9.mjs} +1 -1
  111. package/dist/_chunks/vi-ClWGrFm9.mjs.map +1 -0
  112. package/dist/_chunks/{vi-Nxtm0xZz.js → vi-_ib0GmNl.js} +1 -1
  113. package/dist/_chunks/vi-_ib0GmNl.js.map +1 -0
  114. package/dist/_chunks/{zh-Vd3mfBR-.mjs → zh-Glkg1L2g.mjs} +1 -1
  115. package/dist/_chunks/zh-Glkg1L2g.mjs.map +1 -0
  116. package/dist/_chunks/{zh-Hans-tFSnVett.js → zh-Hans-L_5U2KqC.js} +1 -1
  117. package/dist/_chunks/zh-Hans-L_5U2KqC.js.map +1 -0
  118. package/dist/_chunks/{zh-Hans-FdUTcggu.mjs → zh-Hans-XLMwjASk.mjs} +1 -1
  119. package/dist/_chunks/zh-Hans-XLMwjASk.mjs.map +1 -0
  120. package/dist/_chunks/{zh-bgauBZz8.js → zh-aEZZdkOu.js} +1 -1
  121. package/dist/_chunks/zh-aEZZdkOu.js.map +1 -0
  122. package/dist/admin/index.js +1 -1
  123. package/dist/admin/index.mjs +1 -1
  124. package/dist/admin/src/components/SettingsForm.d.ts +8 -0
  125. package/dist/admin/src/constants.d.ts +18 -0
  126. package/dist/admin/src/index.d.ts +14 -0
  127. package/dist/admin/src/pages/App.d.ts +2 -0
  128. package/dist/admin/src/pages/Settings.d.ts +2 -0
  129. package/dist/admin/src/pluginId.d.ts +1 -0
  130. package/dist/admin/src/services/api.d.ts +13 -0
  131. package/dist/admin/src/types.d.ts +16 -0
  132. package/dist/admin/src/utils/baseQuery.d.ts +5 -0
  133. package/dist/admin/src/utils/getTrad.d.ts +1 -0
  134. package/dist/admin/src/utils/index.d.ts +2 -0
  135. package/dist/admin/src/utils/prefixPluginTranslations.d.ts +2 -0
  136. package/dist/server/index.js +1263 -0
  137. package/dist/server/index.js.map +1 -0
  138. package/dist/server/index.mjs +1238 -0
  139. package/dist/server/index.mjs.map +1 -0
  140. package/dist/server/src/bootstrap.d.ts +5 -0
  141. package/dist/server/src/bootstrap.d.ts.map +1 -0
  142. package/dist/server/src/config/default-plugin-config.d.ts +3 -0
  143. package/dist/server/src/config/default-plugin-config.d.ts.map +1 -0
  144. package/dist/server/src/config/index.d.ts +4 -0
  145. package/dist/server/src/config/index.d.ts.map +1 -0
  146. package/dist/server/src/controllers/documentation.d.ts +12 -0
  147. package/dist/server/src/controllers/documentation.d.ts.map +1 -0
  148. package/dist/server/src/controllers/index.d.ts +14 -0
  149. package/dist/server/src/controllers/index.d.ts.map +1 -0
  150. package/dist/server/src/index.d.ts +91 -0
  151. package/dist/server/src/index.d.ts.map +1 -0
  152. package/dist/server/src/middlewares/documentation.d.ts +5 -0
  153. package/dist/server/src/middlewares/documentation.d.ts.map +1 -0
  154. package/dist/server/src/middlewares/restrict-access.d.ts +4 -0
  155. package/dist/server/src/middlewares/restrict-access.d.ts.map +1 -0
  156. package/dist/server/src/register.d.ts +5 -0
  157. package/dist/server/src/register.d.ts.map +1 -0
  158. package/dist/server/src/routes/index.d.ts +36 -0
  159. package/dist/server/src/routes/index.d.ts.map +1 -0
  160. package/dist/server/src/services/__mocks__/mock-content-types.d.ts +449 -0
  161. package/dist/server/src/services/__mocks__/mock-content-types.d.ts.map +1 -0
  162. package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts +592 -0
  163. package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts.map +1 -0
  164. package/dist/server/src/services/documentation.d.ts +36 -0
  165. package/dist/server/src/services/documentation.d.ts.map +1 -0
  166. package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts +7 -0
  167. package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts.map +1 -0
  168. package/dist/server/src/services/helpers/build-component-schema.d.ts +4 -0
  169. package/dist/server/src/services/helpers/build-component-schema.d.ts.map +1 -0
  170. package/dist/server/src/services/helpers/index.d.ts +4 -0
  171. package/dist/server/src/services/helpers/index.d.ts.map +1 -0
  172. package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts +15 -0
  173. package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts.map +1 -0
  174. package/dist/server/src/services/helpers/utils/get-api-responses.d.ts +15 -0
  175. package/dist/server/src/services/helpers/utils/get-api-responses.d.ts.map +1 -0
  176. package/dist/server/src/services/helpers/utils/get-schema-data.d.ts +12 -0
  177. package/dist/server/src/services/helpers/utils/get-schema-data.d.ts.map +1 -0
  178. package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts +7 -0
  179. package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts.map +1 -0
  180. package/dist/server/src/services/helpers/utils/pascal-case.d.ts +3 -0
  181. package/dist/server/src/services/helpers/utils/pascal-case.d.ts.map +1 -0
  182. package/dist/server/src/services/helpers/utils/query-params.d.ts +4 -0
  183. package/dist/server/src/services/helpers/utils/query-params.d.ts.map +1 -0
  184. package/dist/server/src/services/helpers/utils/routes.d.ts +3 -0
  185. package/dist/server/src/services/helpers/utils/routes.d.ts.map +1 -0
  186. package/dist/server/src/services/index.d.ts +43 -0
  187. package/dist/server/src/services/index.d.ts.map +1 -0
  188. package/dist/server/src/services/override.d.ts +21 -0
  189. package/dist/server/src/services/override.d.ts.map +1 -0
  190. package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts +4 -0
  191. package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts.map +1 -0
  192. package/dist/server/src/types.d.ts +28 -0
  193. package/dist/server/src/types.d.ts.map +1 -0
  194. package/dist/server/src/utils.d.ts +12 -0
  195. package/dist/server/src/utils.d.ts.map +1 -0
  196. package/package.json +45 -25
  197. package/strapi-server.js +1 -1
  198. package/.eslintignore +0 -1
  199. package/.eslintrc +0 -17
  200. package/admin/src/constants.js +0 -17
  201. package/admin/src/hooks/useDocumentation.js +0 -81
  202. package/admin/src/index.js +0 -62
  203. package/admin/src/pages/PluginPage/index.jsx +0 -212
  204. package/admin/src/pages/PluginPage/tests/index.test.jsx +0 -160
  205. package/admin/src/pages/SettingsPage/index.jsx +0 -202
  206. package/admin/src/pages/SettingsPage/tests/index.test.jsx +0 -72
  207. package/admin/src/pluginId.js +0 -5
  208. package/admin/src/translations/ar.json +0 -20
  209. package/admin/src/translations/cs.json +0 -21
  210. package/admin/src/translations/de.json +0 -26
  211. package/admin/src/translations/dk.json +0 -39
  212. package/admin/src/translations/en.json +0 -39
  213. package/admin/src/translations/es.json +0 -39
  214. package/admin/src/translations/fr.json +0 -26
  215. package/admin/src/translations/id.json +0 -24
  216. package/admin/src/translations/it.json +0 -26
  217. package/admin/src/translations/ko.json +0 -39
  218. package/admin/src/translations/ms.json +0 -23
  219. package/admin/src/translations/nl.json +0 -21
  220. package/admin/src/translations/pl.json +0 -39
  221. package/admin/src/translations/pt-BR.json +0 -21
  222. package/admin/src/translations/pt.json +0 -21
  223. package/admin/src/translations/ru.json +0 -39
  224. package/admin/src/translations/sk.json +0 -24
  225. package/admin/src/translations/sv.json +0 -39
  226. package/admin/src/translations/th.json +0 -24
  227. package/admin/src/translations/tr.json +0 -39
  228. package/admin/src/translations/uk.json +0 -23
  229. package/admin/src/translations/vi.json +0 -24
  230. package/admin/src/translations/zh-Hans.json +0 -28
  231. package/admin/src/translations/zh.json +0 -39
  232. package/admin/src/utils/getTrad.js +0 -5
  233. package/admin/src/utils/index.js +0 -2
  234. package/admin/src/utils/prefixPluginTranslations.js +0 -13
  235. package/dist/_chunks/ar-4yWQcJB-.js.map +0 -1
  236. package/dist/_chunks/ar-dlnabvQE.mjs.map +0 -1
  237. package/dist/_chunks/cs-knLCHelx.js.map +0 -1
  238. package/dist/_chunks/cs-x2Pr-Y38.mjs.map +0 -1
  239. package/dist/_chunks/de-10J3uf4y.mjs.map +0 -1
  240. package/dist/_chunks/de-D0HJjv1r.js.map +0 -1
  241. package/dist/_chunks/dk-OGCIxZ4f.js.map +0 -1
  242. package/dist/_chunks/dk-_8JEfZdj.mjs.map +0 -1
  243. package/dist/_chunks/en-V4ac9UMW.mjs.map +0 -1
  244. package/dist/_chunks/en-YgFnjikD.js.map +0 -1
  245. package/dist/_chunks/es-5fRDaTSK.js.map +0 -1
  246. package/dist/_chunks/es-f_rfLY5r.mjs.map +0 -1
  247. package/dist/_chunks/fr-L2xRpd2l.mjs.map +0 -1
  248. package/dist/_chunks/fr-qviymkcR.js.map +0 -1
  249. package/dist/_chunks/id-caKGgafZ.js.map +0 -1
  250. package/dist/_chunks/id-l-r-lPDE.mjs.map +0 -1
  251. package/dist/_chunks/index-7xstUX8_.mjs.map +0 -1
  252. package/dist/_chunks/index-D1KkfApT.js.map +0 -1
  253. package/dist/_chunks/index-NbPCucJl.js +0 -195
  254. package/dist/_chunks/index-NbPCucJl.js.map +0 -1
  255. package/dist/_chunks/index-NvJ4m2q5.mjs +0 -201
  256. package/dist/_chunks/index-NvJ4m2q5.mjs.map +0 -1
  257. package/dist/_chunks/index-VpLAJXMs.mjs +0 -174
  258. package/dist/_chunks/index-VpLAJXMs.mjs.map +0 -1
  259. package/dist/_chunks/index-r7HsQTou.js +0 -200
  260. package/dist/_chunks/index-r7HsQTou.js.map +0 -1
  261. package/dist/_chunks/it-e3T319Va.js.map +0 -1
  262. package/dist/_chunks/it-nCSZoaet.mjs.map +0 -1
  263. package/dist/_chunks/ko-nWCOH-TF.js.map +0 -1
  264. package/dist/_chunks/ko-pUwRxmfG.mjs.map +0 -1
  265. package/dist/_chunks/ms-8e8SEhhY.mjs.map +0 -1
  266. package/dist/_chunks/ms-CSGAOmvV.js.map +0 -1
  267. package/dist/_chunks/nl-82NK6g7v.js.map +0 -1
  268. package/dist/_chunks/nl-RjdbZWuM.mjs.map +0 -1
  269. package/dist/_chunks/pl-UMuW3iDh.js.map +0 -1
  270. package/dist/_chunks/pl-sh4sAKA8.mjs.map +0 -1
  271. package/dist/_chunks/pt-2sEtQifY.js.map +0 -1
  272. package/dist/_chunks/pt-BR-G0-nWgFV.js.map +0 -1
  273. package/dist/_chunks/pt-BR-uX3O_t0X.mjs.map +0 -1
  274. package/dist/_chunks/pt-GqKRRnNe.mjs.map +0 -1
  275. package/dist/_chunks/ru-dQr7xFOb.mjs.map +0 -1
  276. package/dist/_chunks/ru-wJyWus4I.js.map +0 -1
  277. package/dist/_chunks/sk-mcEz1PMW.js.map +0 -1
  278. package/dist/_chunks/sk-nreoyD6V.mjs.map +0 -1
  279. package/dist/_chunks/sv-V86KaP9y.js.map +0 -1
  280. package/dist/_chunks/sv-kIUD_46v.mjs.map +0 -1
  281. package/dist/_chunks/th-IcmZ0Yif.mjs.map +0 -1
  282. package/dist/_chunks/th-pZN4HdUY.js.map +0 -1
  283. package/dist/_chunks/tr-CkXew0gQ.mjs.map +0 -1
  284. package/dist/_chunks/tr-fCijT6nA.js.map +0 -1
  285. package/dist/_chunks/uk-E8Js7gDb.mjs.map +0 -1
  286. package/dist/_chunks/uk-TEHpQuls.js.map +0 -1
  287. package/dist/_chunks/useDocumentation-6Ks-_Ms6.mjs +0 -68
  288. package/dist/_chunks/useDocumentation-6Ks-_Ms6.mjs.map +0 -1
  289. package/dist/_chunks/useDocumentation-S0e4mU-U.js +0 -67
  290. package/dist/_chunks/useDocumentation-S0e4mU-U.js.map +0 -1
  291. package/dist/_chunks/vi-Nxtm0xZz.js.map +0 -1
  292. package/dist/_chunks/vi-k1R3Y3mS.mjs.map +0 -1
  293. package/dist/_chunks/zh-Hans-FdUTcggu.mjs.map +0 -1
  294. package/dist/_chunks/zh-Hans-tFSnVett.js.map +0 -1
  295. package/dist/_chunks/zh-Vd3mfBR-.mjs.map +0 -1
  296. package/dist/_chunks/zh-bgauBZz8.js.map +0 -1
  297. package/jest.config.front.js +0 -7
  298. package/jest.config.js +0 -6
  299. package/packup.config.ts +0 -22
  300. package/server/bootstrap.js +0 -54
  301. package/server/config/default-plugin-config.js +0 -35
  302. package/server/config/index.js +0 -7
  303. package/server/controllers/documentation.js +0 -241
  304. package/server/controllers/index.js +0 -7
  305. package/server/index.js +0 -17
  306. package/server/middlewares/documentation.js +0 -25
  307. package/server/middlewares/index.js +0 -7
  308. package/server/middlewares/restrict-access.js +0 -24
  309. package/server/register.js +0 -11
  310. package/server/routes/index.js +0 -84
  311. package/server/services/__mocks__/mock-content-types.js +0 -264
  312. package/server/services/__mocks__/mock-strapi-data.js +0 -183
  313. package/server/services/__tests__/build-component-schema.test.js +0 -761
  314. package/server/services/__tests__/documentation.test.js +0 -481
  315. package/server/services/__tests__/override.test.js +0 -85
  316. package/server/services/documentation.js +0 -246
  317. package/server/services/helpers/build-api-endpoint-path.js +0 -186
  318. package/server/services/helpers/build-component-schema.js +0 -254
  319. package/server/services/helpers/index.js +0 -9
  320. package/server/services/helpers/utils/clean-schema-attributes.js +0 -246
  321. package/server/services/helpers/utils/get-api-responses.js +0 -105
  322. package/server/services/helpers/utils/get-schema-data.js +0 -32
  323. package/server/services/helpers/utils/loop-content-type-names.js +0 -55
  324. package/server/services/helpers/utils/pascal-case.js +0 -9
  325. package/server/services/helpers/utils/query-params.js +0 -105
  326. package/server/services/helpers/utils/routes.js +0 -10
  327. package/server/services/index.js +0 -9
  328. package/server/services/override.js +0 -52
  329. package/server/services/utils/default-openapi-components.js +0 -40
  330. package/server/services/utils/get-plugins-that-need-documentation.js +0 -24
  331. package/tests/server.js +0 -37
  332. package/tests/setup.js +0 -15
@@ -1,212 +0,0 @@
1
- import React, { useState } from 'react';
2
-
3
- import {
4
- LinkButton,
5
- ContentLayout,
6
- Flex,
7
- HeaderLayout,
8
- IconButton,
9
- Layout,
10
- Table,
11
- Tbody,
12
- Td,
13
- Th,
14
- Thead,
15
- Tr,
16
- Typography,
17
- EmptyStateLayout,
18
- } from '@strapi/design-system';
19
- import { Eye as Show, Refresh as Reload, Trash } from '@strapi/icons';
20
- import { ConfirmDialog, useRBAC, Page } from '@strapi/strapi/admin';
21
- import { Helmet } from 'react-helmet';
22
- import { useIntl } from 'react-intl';
23
- import styled from 'styled-components';
24
-
25
- import { PERMISSIONS } from '../../constants';
26
- import { useDocumentation } from '../../hooks/useDocumentation';
27
- import { getTrad } from '../../utils';
28
-
29
- const PluginPage = () => {
30
- const { formatMessage } = useIntl();
31
- const { data, isLoading, isError, remove, regenerate } = useDocumentation();
32
- const [showConfirmDelete, setShowConfirmDelete] = useState(false);
33
- const [versionToDelete, setVersionToDelete] = useState();
34
- const { allowedActions } = useRBAC(PERMISSIONS);
35
-
36
- const colCount = 4;
37
- const rowCount = (data?.docVersions?.length || 0) + 1;
38
-
39
- const handleRegenerateDoc = (version) => {
40
- regenerate.mutate({ version, prefix: data?.prefix });
41
- };
42
-
43
- const handleShowConfirmDelete = () => {
44
- setShowConfirmDelete(!showConfirmDelete);
45
- };
46
-
47
- const handleConfirmDelete = async () => {
48
- await remove.mutateAsync({ prefix: data?.prefix, version: versionToDelete });
49
- setShowConfirmDelete(!showConfirmDelete);
50
- };
51
-
52
- const handleClickDelete = (version) => {
53
- setVersionToDelete(version);
54
- setShowConfirmDelete(!showConfirmDelete);
55
- };
56
-
57
- const title = formatMessage({
58
- id: getTrad('plugin.name'),
59
- defaultMessage: 'Documentation',
60
- });
61
-
62
- if (isLoading) {
63
- return <Page.Loading />;
64
- }
65
-
66
- if (isError) {
67
- return <Page.Error />;
68
- }
69
-
70
- return (
71
- <Layout>
72
- <Helmet title={title} />
73
- <Page.Main>
74
- <HeaderLayout
75
- title={title}
76
- subtitle={formatMessage({
77
- id: getTrad('pages.PluginPage.header.description'),
78
- defaultMessage: 'Configure the documentation plugin',
79
- })}
80
- primaryAction={
81
- <OpenDocLink
82
- disabled={!allowedActions.canOpen || !data?.currentVersion || !data?.prefix}
83
- href={createDocumentationHref(`${data?.prefix}/v${data?.currentVersion}`)}
84
- startIcon={<Show />}
85
- >
86
- {formatMessage({
87
- id: getTrad('pages.PluginPage.Button.open'),
88
- defaultMessage: 'Open Documentation',
89
- })}
90
- </OpenDocLink>
91
- }
92
- />
93
- <ContentLayout>
94
- {data?.docVersions.length ? (
95
- <Table colCount={colCount} rowCount={rowCount}>
96
- <Thead>
97
- <Tr>
98
- <Th>
99
- <Typography variant="sigma" textColor="neutral600">
100
- {formatMessage({
101
- id: getTrad('pages.PluginPage.table.version'),
102
- defaultMessage: 'Version',
103
- })}
104
- </Typography>
105
- </Th>
106
- <Th>
107
- <Typography variant="sigma" textColor="neutral600">
108
- {formatMessage({
109
- id: getTrad('pages.PluginPage.table.generated'),
110
- defaultMessage: 'Last Generated',
111
- })}
112
- </Typography>
113
- </Th>
114
- </Tr>
115
- </Thead>
116
- <Tbody>
117
- {data.docVersions
118
- .sort((a, b) => (a.generatedDate < b.generatedDate ? 1 : -1))
119
- .map((doc) => (
120
- <Tr key={doc.version}>
121
- <Td width="50%">
122
- <Typography>{doc.version}</Typography>
123
- </Td>
124
- <Td width="50%">
125
- <Typography>{doc.generatedDate}</Typography>
126
- </Td>
127
- <Td>
128
- <Flex justifyContent="end" onClick={(e) => e.stopPropagation()}>
129
- <IconButton
130
- forwardedAs="a"
131
- disabled={!allowedActions.canOpen}
132
- href={createDocumentationHref(`${data.prefix}/v${doc.version}`)}
133
- noBorder
134
- icon={<Show />}
135
- target="_blank"
136
- rel="noopener noreferrer"
137
- label={formatMessage(
138
- {
139
- id: getTrad('pages.PluginPage.table.icon.show'),
140
- defaultMessage: 'Open {target}',
141
- },
142
- { target: `${doc.version}` }
143
- )}
144
- />
145
- {allowedActions.canRegenerate ? (
146
- <IconButton
147
- onClick={() => handleRegenerateDoc(doc.version)}
148
- noBorder
149
- icon={<Reload />}
150
- label={formatMessage(
151
- {
152
- id: getTrad('pages.PluginPage.table.icon.regenerate'),
153
- defaultMessage: 'Regenerate {target}',
154
- },
155
- { target: `${doc.version}` }
156
- )}
157
- />
158
- ) : null}
159
- {allowedActions.canUpdate && doc.version !== data.currentVersion ? (
160
- <IconButton
161
- onClick={() => handleClickDelete(doc.version)}
162
- noBorder
163
- icon={<Trash />}
164
- label={formatMessage(
165
- {
166
- id: 'global.delete-target',
167
- defaultMessage: 'Delete {target}',
168
- },
169
- { target: `${doc.version}` }
170
- )}
171
- />
172
- ) : null}
173
- </Flex>
174
- </Td>
175
- </Tr>
176
- ))}
177
- </Tbody>
178
- </Table>
179
- ) : (
180
- <EmptyStateLayout />
181
- )}
182
- </ContentLayout>
183
- <ConfirmDialog
184
- onConfirm={handleConfirmDelete}
185
- onClose={handleShowConfirmDelete}
186
- isOpen={showConfirmDelete}
187
- />
188
- </Page.Main>
189
- </Layout>
190
- );
191
- };
192
-
193
- /**
194
- * TODO: should this be fixed in the DS?
195
- */
196
- const OpenDocLink = styled(LinkButton)`
197
- text-decoration: none;
198
- `;
199
-
200
- const createDocumentationHref = (path) => {
201
- if (path.startsWith('http')) {
202
- return path;
203
- }
204
-
205
- if (path.startsWith('/')) {
206
- return `${window.strapi.backendURL}${path}`;
207
- }
208
-
209
- return `${window.strapi.backendURL}/${path}`;
210
- };
211
-
212
- export default PluginPage;
@@ -1,160 +0,0 @@
1
- import React from 'react';
2
-
3
- import { render, waitFor } from '@strapi/strapi/admin/test';
4
-
5
- import PluginPage from '../index';
6
-
7
- const versions = ['2.0.0', '1.2.0', '1.0.0'];
8
-
9
- describe('PluginPage', () => {
10
- it('render the plugin page correctly', async () => {
11
- const { getByRole, queryByText, getByText } = render(<PluginPage />);
12
-
13
- await waitFor(() => expect(queryByText('Loading content.')).not.toBeInTheDocument());
14
-
15
- expect(getByRole('heading', { name: 'Documentation' })).toBeInTheDocument();
16
- expect(getByText('Configure the documentation plugin')).toBeInTheDocument();
17
- expect(getByRole('link', { name: 'Open Documentation' })).toHaveAttribute(
18
- 'aria-disabled',
19
- 'false'
20
- );
21
-
22
- expect(getByRole('heading', { name: 'Documentation' })).toBeInTheDocument();
23
- expect(getByText('Configure the documentation plugin')).toBeInTheDocument();
24
- expect(getByRole('link', { name: 'Open Documentation' })).toBeInTheDocument();
25
-
26
- expect(getByRole('grid')).toBeInTheDocument();
27
- expect(getByRole('gridcell', { name: 'Version' })).toBeInTheDocument();
28
- expect(getByRole('gridcell', { name: 'Last Generated' })).toBeInTheDocument();
29
-
30
- versions.forEach((version) => {
31
- expect(getByRole('gridcell', { name: version })).toBeInTheDocument();
32
- expect(getByRole('link', { name: `Open ${version}` })).toBeInTheDocument();
33
- expect(getByRole('button', { name: `Regenerate ${version}` })).toBeInTheDocument();
34
-
35
- /**
36
- * You can't delete the original version
37
- */
38
- if (version !== '1.0.0') {
39
- expect(getByRole('button', { name: `Delete ${version}` })).toBeInTheDocument();
40
- }
41
- });
42
- });
43
-
44
- describe('actions', () => {
45
- it('should open the documentation', async () => {
46
- const { getByRole, queryByText, user } = render(<PluginPage />);
47
-
48
- await waitFor(() => expect(queryByText('Loading content.')).not.toBeInTheDocument());
49
-
50
- expect(getByRole('link', { name: 'Open Documentation' })).toHaveAttribute(
51
- 'href',
52
- 'http://localhost:1337/documentation/v1.0.0'
53
- );
54
-
55
- await user.click(getByRole('link', { name: 'Open Documentation' }));
56
-
57
- versions.forEach((version) => {
58
- expect(getByRole('link', { name: `Open ${version}` })).toHaveAttribute(
59
- 'href',
60
- `http://localhost:1337/documentation/v${version}`
61
- );
62
- });
63
- });
64
-
65
- it('should regenerate the documentation', async () => {
66
- const { getByRole, queryByText, user, getByText } = render(<PluginPage />);
67
-
68
- await waitFor(() => expect(queryByText('Loading content.')).not.toBeInTheDocument());
69
-
70
- expect(getByRole('button', { name: 'Regenerate 2.0.0' })).toBeInTheDocument();
71
-
72
- await user.click(getByRole('button', { name: 'Regenerate 2.0.0' }));
73
-
74
- expect(getByText('Successfully generated documentation')).toBeInTheDocument();
75
- });
76
-
77
- it('should delete the documentation', async () => {
78
- const { getByRole, queryByText, user, getByText } = render(<PluginPage />);
79
-
80
- await waitFor(() => expect(queryByText('Loading content.')).not.toBeInTheDocument());
81
-
82
- expect(getByRole('button', { name: 'Delete 2.0.0' })).toBeInTheDocument();
83
-
84
- await user.click(getByRole('button', { name: 'Delete 2.0.0' }));
85
-
86
- expect(getByRole('dialog', { name: 'Confirmation' })).toBeInTheDocument();
87
- expect(getByRole('button', { name: 'Confirm' })).toBeInTheDocument();
88
- expect(getByRole('button', { name: 'Cancel' })).toBeInTheDocument();
89
-
90
- await user.click(getByRole('button', { name: 'Confirm' }));
91
-
92
- expect(getByText('Successfully deleted documentation')).toBeInTheDocument();
93
- });
94
- });
95
-
96
- describe('permissions', () => {
97
- it("should always disable the 'Open Documentation' link if the user cannot open", async () => {
98
- const { getByRole, queryByText } = render(<PluginPage />, {
99
- providerOptions: { permissions: () => [] },
100
- });
101
-
102
- await waitFor(() => expect(queryByText('Loading content.')).not.toBeInTheDocument());
103
-
104
- expect(getByRole('link', { name: 'Open Documentation' })).toHaveAttribute(
105
- 'aria-disabled',
106
- 'true'
107
- );
108
-
109
- expect(getByRole('link', { name: 'Open Documentation' })).toHaveAttribute(
110
- 'aria-disabled',
111
- 'true'
112
- );
113
- });
114
-
115
- it('should disabled the open documentation version link in the table if the user cannot open', async () => {
116
- const { getByRole, queryByText } = render(<PluginPage />, {
117
- providerOptions: { permissions: () => [] },
118
- });
119
-
120
- await waitFor(() => expect(queryByText('Loading content.')).not.toBeInTheDocument());
121
-
122
- versions.forEach((version) => {
123
- expect(getByRole('gridcell', { name: version })).toBeInTheDocument();
124
-
125
- expect(getByRole('link', { name: `Open ${version}` })).toHaveAttribute(
126
- 'aria-disabled',
127
- 'true'
128
- );
129
- });
130
- });
131
-
132
- it('should not render the regenerate buttons if the user cannot regenerate', async () => {
133
- const { queryByRole, getByRole, queryByText } = render(<PluginPage />, {
134
- providerOptions: { permissions: () => [] },
135
- });
136
-
137
- await waitFor(() => expect(queryByText('Loading content.')).not.toBeInTheDocument());
138
-
139
- versions.forEach((version) => {
140
- expect(getByRole('gridcell', { name: version })).toBeInTheDocument();
141
-
142
- expect(queryByRole('button', { name: `Regenerate ${version}` })).not.toBeInTheDocument();
143
- });
144
- });
145
-
146
- it('should not render the delete buttons if the user cannot delete', async () => {
147
- const { queryByRole, getByRole, queryByText } = render(<PluginPage />, {
148
- providerOptions: { permissions: () => [] },
149
- });
150
-
151
- await waitFor(() => expect(queryByText('Loading content.')).not.toBeInTheDocument());
152
-
153
- versions.forEach((version) => {
154
- expect(getByRole('gridcell', { name: version })).toBeInTheDocument();
155
-
156
- expect(queryByRole('button', { name: `Delete ${version}` })).not.toBeInTheDocument();
157
- });
158
- });
159
- });
160
- });
@@ -1,202 +0,0 @@
1
- import React, { useState } from 'react';
2
-
3
- import {
4
- Box,
5
- Button,
6
- ContentLayout,
7
- Flex,
8
- Grid,
9
- GridItem,
10
- HeaderLayout,
11
- TextInput,
12
- ToggleInput,
13
- Typography,
14
- FieldAction,
15
- } from '@strapi/design-system';
16
- import { Check, Eye as Show, EyeStriked as Hide } from '@strapi/icons';
17
- import { translatedErrors, Page, useRBAC } from '@strapi/strapi/admin';
18
- import { Form, Formik } from 'formik';
19
- import { useIntl } from 'react-intl';
20
- import styled from 'styled-components';
21
- import * as yup from 'yup';
22
-
23
- import { PERMISSIONS } from '../../constants';
24
- import { useDocumentation } from '../../hooks/useDocumentation';
25
- import { getTrad } from '../../utils';
26
-
27
- const schema = yup.object().shape({
28
- restrictedAccess: yup.boolean(),
29
- password: yup.string().when('restrictedAccess', (value, initSchema) => {
30
- return value ? initSchema.required(translatedErrors.required.id) : initSchema;
31
- }),
32
- });
33
-
34
- const SettingsPage = () => {
35
- const { formatMessage } = useIntl();
36
- const { submit, data, isLoading } = useDocumentation();
37
- const [passwordShown, setPasswordShown] = useState(false);
38
- const { allowedActions } = useRBAC(PERMISSIONS);
39
-
40
- const handleUpdateSettingsSubmit = (body) => {
41
- submit.mutate({
42
- prefix: data?.prefix,
43
- body,
44
- });
45
- };
46
-
47
- if (isLoading) {
48
- return <Page.Loading />;
49
- }
50
-
51
- return (
52
- <Page.Main>
53
- <Formik
54
- initialValues={{
55
- restrictedAccess: data?.documentationAccess.restrictedAccess || false,
56
- password: '',
57
- }}
58
- onSubmit={handleUpdateSettingsSubmit}
59
- validationSchema={schema}
60
- >
61
- {({
62
- handleSubmit,
63
- values,
64
- handleChange,
65
- errors,
66
- setFieldTouched,
67
- setFieldValue,
68
- dirty,
69
- }) => {
70
- return (
71
- <Form noValidate onSubmit={handleSubmit}>
72
- <HeaderLayout
73
- title={formatMessage({
74
- id: getTrad('plugin.name'),
75
- defaultMessage: 'Documentation',
76
- })}
77
- subtitle={formatMessage({
78
- id: getTrad('pages.SettingsPage.header.description'),
79
- defaultMessage: 'Configure the documentation plugin',
80
- })}
81
- primaryAction={
82
- <Button
83
- type="submit"
84
- startIcon={<Check />}
85
- disabled={!dirty && allowedActions.canUpdate}
86
- >
87
- {formatMessage({
88
- id: getTrad('pages.SettingsPage.Button.save'),
89
- defaultMessage: 'Save',
90
- })}
91
- </Button>
92
- }
93
- />
94
- <ContentLayout>
95
- <Box
96
- background="neutral0"
97
- hasRadius
98
- shadow="filterShadow"
99
- paddingTop={6}
100
- paddingBottom={6}
101
- paddingLeft={7}
102
- paddingRight={7}
103
- >
104
- <Flex direction="column" alignItems="stretch" gap={4}>
105
- <Typography variant="delta" as="h2">
106
- {formatMessage({
107
- id: 'global.settings',
108
- defaultMessage: 'Settings',
109
- })}
110
- </Typography>
111
- <Grid gap={4}>
112
- <GridItem col={6} s={12}>
113
- <ToggleInput
114
- name="restrictedAccess"
115
- label={formatMessage({
116
- id: getTrad('pages.SettingsPage.toggle.label'),
117
- defaultMessage: 'Restricted Access',
118
- })}
119
- hint={formatMessage({
120
- id: getTrad('pages.SettingsPage.toggle.hint'),
121
- defaultMessage: 'Make the documentation endpoint private',
122
- })}
123
- checked={values.restrictedAccess}
124
- onChange={() => {
125
- if (values.restrictedAccess === true) {
126
- setFieldValue('password', '', false);
127
- setFieldTouched('password', false, false);
128
- }
129
-
130
- setFieldValue('restrictedAccess', !values.restrictedAccess, false);
131
- }}
132
- onLabel="On"
133
- offLabel="Off"
134
- />
135
- </GridItem>
136
- {values.restrictedAccess && (
137
- <GridItem col={6} s={12}>
138
- <TextInput
139
- label={formatMessage({
140
- id: 'global.password',
141
- defaultMessage: 'Password',
142
- })}
143
- name="password"
144
- placeholder="**********"
145
- type={passwordShown ? 'text' : 'password'}
146
- value={values.password}
147
- onChange={handleChange}
148
- error={
149
- errors.password
150
- ? formatMessage({
151
- id: errors.password,
152
- defaultMessage: 'Invalid value',
153
- })
154
- : null
155
- }
156
- endAction={
157
- <FieldActionWrapper
158
- onClick={(e) => {
159
- e.stopPropagation();
160
- setPasswordShown((prev) => !prev);
161
- }}
162
- label={formatMessage(
163
- passwordShown
164
- ? {
165
- id: 'Auth.form.password.show-password',
166
- defaultMessage: 'Show password',
167
- }
168
- : {
169
- id: 'Auth.form.password.hide-password',
170
- defaultMessage: 'Hide password',
171
- }
172
- )}
173
- >
174
- {passwordShown ? <Show /> : <Hide />}
175
- </FieldActionWrapper>
176
- }
177
- />
178
- </GridItem>
179
- )}
180
- </Grid>
181
- </Flex>
182
- </Box>
183
- </ContentLayout>
184
- </Form>
185
- );
186
- }}
187
- </Formik>
188
- </Page.Main>
189
- );
190
- };
191
-
192
- const FieldActionWrapper = styled(FieldAction)`
193
- svg {
194
- height: 1rem;
195
- width: 1rem;
196
- path {
197
- fill: ${({ theme }) => theme.colors.neutral600};
198
- }
199
- }
200
- `;
201
-
202
- export default SettingsPage;
@@ -1,72 +0,0 @@
1
- import React from 'react';
2
-
3
- import { fireEvent, render, waitFor } from '@strapi/strapi/admin/test';
4
- import { rest } from 'msw';
5
-
6
- import { server } from '../../../../../tests/server';
7
- import SettingsPage from '../index';
8
-
9
- describe('SettingsPage', () => {
10
- it('renders the setting page correctly', async () => {
11
- const { getByRole, queryByText, getByText } = render(<SettingsPage />);
12
-
13
- await waitFor(() => expect(queryByText('Loading content.')).not.toBeInTheDocument());
14
-
15
- expect(getByRole('heading', { name: 'Documentation' })).toBeInTheDocument();
16
- expect(getByText('Configure the documentation plugin')).toBeInTheDocument();
17
- expect(getByRole('heading', { name: 'Settings' })).toBeInTheDocument();
18
-
19
- expect(getByRole('button', { name: 'Save' })).toBeInTheDocument();
20
- expect(getByRole('button', { name: 'Save' })).toHaveAttribute('aria-disabled', 'true');
21
-
22
- expect(getByRole('checkbox', { name: 'Restricted Access' })).toBeInTheDocument();
23
- });
24
-
25
- it('should automatically render the password field if the server restricted access property is true', async () => {
26
- server.use(
27
- rest.get('*/getInfos', (req, res, ctx) => {
28
- return res(
29
- ctx.json({
30
- documentationAccess: { restrictedAccess: true },
31
- })
32
- );
33
- })
34
- );
35
-
36
- const { getByLabelText, queryByText } = render(<SettingsPage />);
37
-
38
- await waitFor(() => expect(queryByText('Loading content.')).not.toBeInTheDocument());
39
-
40
- expect(getByLabelText('Password')).toBeInTheDocument();
41
-
42
- server.restoreHandlers();
43
- });
44
-
45
- it('should render the password field when the Restricted Access checkbox is checked', async () => {
46
- const { getByRole, getByLabelText, queryByText } = render(<SettingsPage />);
47
-
48
- await waitFor(() => expect(queryByText('Loading content.')).not.toBeInTheDocument());
49
-
50
- fireEvent.click(getByRole('checkbox', { name: 'Restricted Access' }));
51
-
52
- expect(getByRole('button', { name: 'Save' })).toHaveAttribute('aria-disabled', 'false');
53
-
54
- expect(getByLabelText('Password')).toBeInTheDocument();
55
- });
56
-
57
- it('should allow me to type a password and save that settings change successfully', async () => {
58
- const { getByRole, getByLabelText, queryByText, user, getByText } = render(<SettingsPage />);
59
-
60
- await waitFor(() => expect(queryByText('Loading content.')).not.toBeInTheDocument());
61
-
62
- fireEvent.click(getByRole('checkbox', { name: 'Restricted Access' }));
63
-
64
- expect(getByRole('button', { name: 'Save' })).toHaveAttribute('aria-disabled', 'false');
65
-
66
- await user.type(getByLabelText('Password'), 'password');
67
-
68
- fireEvent.click(getByRole('button', { name: 'Save' }));
69
-
70
- await waitFor(() => expect(getByText('Successfully updated settings')).toBeInTheDocument());
71
- });
72
- });
@@ -1,5 +0,0 @@
1
- import pluginPkg from '../../package.json';
2
-
3
- const pluginId = pluginPkg.name.replace(/^@strapi\/plugin-/i, '');
4
-
5
- export default pluginId;
@@ -1,20 +0,0 @@
1
- {
2
- "components.Row.open": "Open",
3
- "components.Row.regenerate": "Regenerate",
4
- "containers.HomePage.Block.title": "Versions",
5
- "containers.HomePage.Button.update": "Update",
6
- "containers.HomePage.PluginHeader.title": "Documentation — Settings",
7
- "containers.HomePage.PopUpWarning.confirm": "I understand",
8
- "containers.HomePage.PopUpWarning.message": "Are you sure you want to delete this version?",
9
- "containers.HomePage.form.password": "Password",
10
- "containers.HomePage.form.password.inputDescription": "Set the password to access the documentation",
11
- "containers.HomePage.form.restrictedAccess": "Restricted access",
12
- "containers.HomePage.form.restrictedAccess.inputDescription": "Make the documentation endpoint private. By default, the access is public",
13
- "containers.HomePage.form.showGeneratedFiles": "Show generated files",
14
- "containers.HomePage.form.showGeneratedFiles.inputDescription": "Useful when you want to override the generated documentation. \nThe plugin will generate files split by model and plugin. \nBy enabling this option it will be easier to customize your documentation",
15
- "error.deleteDoc.versionMissing": "The version you are trying to delete does not exist.",
16
- "error.noVersion": "A version is required",
17
- "error.regenerateDoc": "An error occurred while regenerating the doc",
18
- "error.regenerateDoc.versionMissing": "The version you are trying to generate doesn't exist",
19
- "notification.update.success": "Settings updated successfully"
20
- }