@strapi/plugin-documentation 0.0.0-experimental.b8add035057504e7feb472f8cc437c83b49e7268 → 0.0.0-experimental.b92b41d5247f41b68d476f381b6958f1bd7736b5

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 (389) hide show
  1. package/LICENSE +18 -3
  2. package/README.md +2 -3
  3. package/dist/admin/components/SettingsForm.js +202 -0
  4. package/dist/admin/components/SettingsForm.js.map +1 -0
  5. package/dist/admin/components/SettingsForm.mjs +180 -0
  6. package/dist/admin/components/SettingsForm.mjs.map +1 -0
  7. package/dist/admin/constants.js +47 -0
  8. package/dist/admin/constants.js.map +1 -0
  9. package/dist/admin/constants.mjs +45 -0
  10. package/dist/admin/constants.mjs.map +1 -0
  11. package/dist/admin/index.js +97 -0
  12. package/dist/admin/index.js.map +1 -0
  13. package/dist/admin/index.mjs +93 -0
  14. package/dist/admin/index.mjs.map +1 -0
  15. package/dist/admin/pages/App.js +253 -0
  16. package/dist/admin/pages/App.js.map +1 -0
  17. package/dist/admin/pages/App.mjs +232 -0
  18. package/dist/admin/pages/App.mjs.map +1 -0
  19. package/dist/admin/pages/Settings.js +54 -0
  20. package/dist/admin/pages/Settings.js.map +1 -0
  21. package/dist/admin/pages/Settings.mjs +52 -0
  22. package/dist/admin/pages/Settings.mjs.map +1 -0
  23. package/dist/admin/pluginId.js +6 -0
  24. package/dist/admin/pluginId.js.map +1 -0
  25. package/dist/admin/pluginId.mjs +4 -0
  26. package/dist/admin/pluginId.mjs.map +1 -0
  27. package/dist/admin/services/api.js +55 -0
  28. package/dist/admin/services/api.js.map +1 -0
  29. package/dist/admin/services/api.mjs +50 -0
  30. package/dist/admin/services/api.mjs.map +1 -0
  31. package/dist/admin/src/components/SettingsForm.d.ts +8 -0
  32. package/dist/admin/src/constants.d.ts +18 -0
  33. package/dist/admin/src/index.d.ts +15 -0
  34. package/dist/admin/src/pages/App.d.ts +2 -0
  35. package/dist/admin/src/pages/Settings.d.ts +2 -0
  36. package/dist/admin/src/pages/tests/App.test.d.ts +1 -0
  37. package/dist/admin/src/pages/tests/Settings.test.d.ts +1 -0
  38. package/dist/admin/src/pluginId.d.ts +1 -0
  39. package/dist/admin/src/services/api.d.ts +13 -0
  40. package/dist/admin/src/types.d.ts +16 -0
  41. package/dist/admin/src/utils/baseQuery.d.ts +5 -0
  42. package/dist/admin/src/utils/getTrad.d.ts +1 -0
  43. package/dist/admin/src/utils/index.d.ts +2 -0
  44. package/dist/admin/src/utils/prefixPluginTranslations.d.ts +2 -0
  45. package/dist/admin/translations/ar.json.js +25 -0
  46. package/dist/admin/translations/ar.json.js.map +1 -0
  47. package/dist/admin/translations/ar.json.mjs +23 -0
  48. package/dist/admin/translations/ar.json.mjs.map +1 -0
  49. package/dist/admin/translations/cs.json.js +47 -0
  50. package/dist/admin/translations/cs.json.js.map +1 -0
  51. package/dist/admin/translations/cs.json.mjs +45 -0
  52. package/dist/admin/translations/cs.json.mjs.map +1 -0
  53. package/dist/admin/translations/de.json.js +47 -0
  54. package/dist/admin/translations/de.json.js.map +1 -0
  55. package/dist/admin/translations/de.json.mjs +45 -0
  56. package/dist/admin/translations/de.json.mjs.map +1 -0
  57. package/dist/admin/translations/dk.json.js +44 -0
  58. package/dist/admin/translations/dk.json.js.map +1 -0
  59. package/dist/admin/translations/dk.json.mjs +42 -0
  60. package/dist/admin/translations/dk.json.mjs.map +1 -0
  61. package/dist/admin/translations/en.json.js +47 -0
  62. package/dist/admin/translations/en.json.js.map +1 -0
  63. package/dist/admin/translations/en.json.mjs +45 -0
  64. package/dist/admin/translations/en.json.mjs.map +1 -0
  65. package/dist/admin/translations/es.json.js +47 -0
  66. package/dist/admin/translations/es.json.js.map +1 -0
  67. package/dist/admin/translations/es.json.mjs +45 -0
  68. package/dist/admin/translations/es.json.mjs.map +1 -0
  69. package/dist/admin/translations/fr.json.js +31 -0
  70. package/dist/admin/translations/fr.json.js.map +1 -0
  71. package/dist/admin/translations/fr.json.mjs +29 -0
  72. package/dist/admin/translations/fr.json.mjs.map +1 -0
  73. package/dist/admin/translations/id.json.js +29 -0
  74. package/dist/admin/translations/id.json.js.map +1 -0
  75. package/dist/admin/translations/id.json.mjs +27 -0
  76. package/dist/admin/translations/id.json.mjs.map +1 -0
  77. package/dist/admin/translations/it.json.js +31 -0
  78. package/dist/admin/translations/it.json.js.map +1 -0
  79. package/dist/admin/translations/it.json.mjs +29 -0
  80. package/dist/admin/translations/it.json.mjs.map +1 -0
  81. package/dist/admin/translations/ko.json.js +44 -0
  82. package/dist/admin/translations/ko.json.js.map +1 -0
  83. package/dist/admin/translations/ko.json.mjs +42 -0
  84. package/dist/admin/translations/ko.json.mjs.map +1 -0
  85. package/dist/admin/translations/ms.json.js +28 -0
  86. package/dist/admin/translations/ms.json.js.map +1 -0
  87. package/dist/admin/translations/ms.json.mjs +26 -0
  88. package/dist/admin/translations/ms.json.mjs.map +1 -0
  89. package/dist/admin/translations/nl.json.js +26 -0
  90. package/dist/admin/translations/nl.json.js.map +1 -0
  91. package/dist/admin/translations/nl.json.mjs +24 -0
  92. package/dist/admin/translations/nl.json.mjs.map +1 -0
  93. package/dist/admin/translations/pl.json.js +47 -0
  94. package/dist/admin/translations/pl.json.js.map +1 -0
  95. package/dist/admin/translations/pl.json.mjs +45 -0
  96. package/dist/admin/translations/pl.json.mjs.map +1 -0
  97. package/dist/admin/translations/pt-BR.json.js +26 -0
  98. package/dist/admin/translations/pt-BR.json.js.map +1 -0
  99. package/dist/admin/translations/pt-BR.json.mjs +24 -0
  100. package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
  101. package/dist/admin/translations/pt.json.js +26 -0
  102. package/dist/admin/translations/pt.json.js.map +1 -0
  103. package/dist/admin/translations/pt.json.mjs +24 -0
  104. package/dist/admin/translations/pt.json.mjs.map +1 -0
  105. package/dist/admin/translations/ru.json.js +47 -0
  106. package/dist/admin/translations/ru.json.js.map +1 -0
  107. package/dist/admin/translations/ru.json.mjs +45 -0
  108. package/dist/admin/translations/ru.json.mjs.map +1 -0
  109. package/dist/admin/translations/sk.json.js +29 -0
  110. package/dist/admin/translations/sk.json.js.map +1 -0
  111. package/dist/admin/translations/sk.json.mjs +27 -0
  112. package/dist/admin/translations/sk.json.mjs.map +1 -0
  113. package/dist/admin/translations/sv.json.js +44 -0
  114. package/dist/admin/translations/sv.json.js.map +1 -0
  115. package/dist/admin/translations/sv.json.mjs +42 -0
  116. package/dist/admin/translations/sv.json.mjs.map +1 -0
  117. package/dist/admin/translations/th.json.js +29 -0
  118. package/dist/admin/translations/th.json.js.map +1 -0
  119. package/dist/admin/translations/th.json.mjs +27 -0
  120. package/dist/admin/translations/th.json.mjs.map +1 -0
  121. package/dist/admin/translations/tr.json.js +44 -0
  122. package/dist/admin/translations/tr.json.js.map +1 -0
  123. package/dist/admin/translations/tr.json.mjs +42 -0
  124. package/dist/admin/translations/tr.json.mjs.map +1 -0
  125. package/dist/admin/translations/uk.json.js +47 -0
  126. package/dist/admin/translations/uk.json.js.map +1 -0
  127. package/dist/admin/translations/uk.json.mjs +45 -0
  128. package/dist/admin/translations/uk.json.mjs.map +1 -0
  129. package/dist/admin/translations/vi.json.js +29 -0
  130. package/dist/admin/translations/vi.json.js.map +1 -0
  131. package/dist/admin/translations/vi.json.mjs +27 -0
  132. package/dist/admin/translations/vi.json.mjs.map +1 -0
  133. package/dist/admin/translations/zh-Hans.json.js +33 -0
  134. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  135. package/dist/admin/translations/zh-Hans.json.mjs +31 -0
  136. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  137. package/dist/admin/translations/zh.json.js +44 -0
  138. package/dist/admin/translations/zh.json.js.map +1 -0
  139. package/dist/admin/translations/zh.json.mjs +42 -0
  140. package/dist/admin/translations/zh.json.mjs.map +1 -0
  141. package/dist/admin/utils/baseQuery.js +8 -0
  142. package/dist/admin/utils/baseQuery.js.map +1 -0
  143. package/dist/admin/utils/baseQuery.mjs +6 -0
  144. package/dist/admin/utils/baseQuery.mjs.map +1 -0
  145. package/dist/admin/utils/getTrad.js +8 -0
  146. package/dist/admin/utils/getTrad.js.map +1 -0
  147. package/dist/admin/utils/getTrad.mjs +6 -0
  148. package/dist/admin/utils/getTrad.mjs.map +1 -0
  149. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  150. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  151. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  152. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  153. package/dist/server/bootstrap.js +57 -0
  154. package/dist/server/bootstrap.js.map +1 -0
  155. package/dist/server/bootstrap.mjs +55 -0
  156. package/dist/server/bootstrap.mjs.map +1 -0
  157. package/dist/server/config/default-plugin-config.js +88 -0
  158. package/dist/server/config/default-plugin-config.js.map +1 -0
  159. package/dist/server/config/default-plugin-config.mjs +86 -0
  160. package/dist/server/config/default-plugin-config.mjs.map +1 -0
  161. package/dist/server/config/index.js +10 -0
  162. package/dist/server/config/index.js.map +1 -0
  163. package/dist/server/config/index.mjs +8 -0
  164. package/dist/server/config/index.mjs.map +1 -0
  165. package/dist/server/controllers/documentation.js +186 -0
  166. package/dist/server/controllers/documentation.js.map +1 -0
  167. package/dist/server/controllers/documentation.mjs +182 -0
  168. package/dist/server/controllers/documentation.mjs.map +1 -0
  169. package/dist/server/controllers/index.js +10 -0
  170. package/dist/server/controllers/index.js.map +1 -0
  171. package/dist/server/controllers/index.mjs +8 -0
  172. package/dist/server/controllers/index.mjs.map +1 -0
  173. package/dist/server/index.js +20 -0
  174. package/dist/server/index.js.map +1 -0
  175. package/dist/server/index.mjs +18 -0
  176. package/dist/server/index.mjs.map +1 -0
  177. package/dist/server/middlewares/documentation.js +27 -0
  178. package/dist/server/middlewares/documentation.js.map +1 -0
  179. package/dist/server/middlewares/documentation.mjs +25 -0
  180. package/dist/server/middlewares/documentation.mjs.map +1 -0
  181. package/dist/server/middlewares/restrict-access.js +23 -0
  182. package/dist/server/middlewares/restrict-access.js.map +1 -0
  183. package/dist/server/middlewares/restrict-access.mjs +21 -0
  184. package/dist/server/middlewares/restrict-access.mjs.map +1 -0
  185. package/dist/server/public/index.html.js +6 -0
  186. package/dist/server/public/index.html.js.map +1 -0
  187. package/dist/server/public/index.html.mjs +4 -0
  188. package/dist/server/public/index.html.mjs.map +1 -0
  189. package/dist/server/public/login.html.js +6 -0
  190. package/dist/server/public/login.html.js.map +1 -0
  191. package/dist/server/public/login.html.mjs +4 -0
  192. package/dist/server/public/login.html.mjs.map +1 -0
  193. package/dist/server/register.js +12 -0
  194. package/dist/server/register.js.map +1 -0
  195. package/dist/server/register.mjs +10 -0
  196. package/dist/server/register.mjs.map +1 -0
  197. package/dist/server/routes/index.js +106 -0
  198. package/dist/server/routes/index.js.map +1 -0
  199. package/dist/server/routes/index.mjs +104 -0
  200. package/dist/server/routes/index.mjs.map +1 -0
  201. package/dist/server/services/documentation.js +188 -0
  202. package/dist/server/services/documentation.js.map +1 -0
  203. package/dist/server/services/documentation.mjs +186 -0
  204. package/dist/server/services/documentation.mjs.map +1 -0
  205. package/dist/server/services/helpers/build-api-endpoint-path.js +162 -0
  206. package/dist/server/services/helpers/build-api-endpoint-path.js.map +1 -0
  207. package/dist/server/services/helpers/build-api-endpoint-path.mjs +141 -0
  208. package/dist/server/services/helpers/build-api-endpoint-path.mjs.map +1 -0
  209. package/dist/server/services/helpers/build-component-schema.js +174 -0
  210. package/dist/server/services/helpers/build-component-schema.js.map +1 -0
  211. package/dist/server/services/helpers/build-component-schema.mjs +172 -0
  212. package/dist/server/services/helpers/build-component-schema.mjs.map +1 -0
  213. package/dist/server/services/helpers/utils/clean-schema-attributes.js +315 -0
  214. package/dist/server/services/helpers/utils/clean-schema-attributes.js.map +1 -0
  215. package/dist/server/services/helpers/utils/clean-schema-attributes.mjs +313 -0
  216. package/dist/server/services/helpers/utils/clean-schema-attributes.mjs.map +1 -0
  217. package/dist/server/services/helpers/utils/get-api-responses.js +88 -0
  218. package/dist/server/services/helpers/utils/get-api-responses.js.map +1 -0
  219. package/dist/server/services/helpers/utils/get-api-responses.mjs +86 -0
  220. package/dist/server/services/helpers/utils/get-api-responses.mjs.map +1 -0
  221. package/dist/server/services/helpers/utils/get-schema-data.js +57 -0
  222. package/dist/server/services/helpers/utils/get-schema-data.js.map +1 -0
  223. package/dist/server/services/helpers/utils/get-schema-data.mjs +55 -0
  224. package/dist/server/services/helpers/utils/get-schema-data.mjs.map +1 -0
  225. package/dist/server/services/helpers/utils/loop-content-type-names.js +40 -0
  226. package/dist/server/services/helpers/utils/loop-content-type-names.js.map +1 -0
  227. package/dist/server/services/helpers/utils/loop-content-type-names.mjs +38 -0
  228. package/dist/server/services/helpers/utils/loop-content-type-names.mjs.map +1 -0
  229. package/dist/server/services/helpers/utils/pascal-case.js +10 -0
  230. package/dist/server/services/helpers/utils/pascal-case.js.map +1 -0
  231. package/dist/server/services/helpers/utils/pascal-case.mjs +8 -0
  232. package/dist/server/services/helpers/utils/pascal-case.mjs.map +1 -0
  233. package/dist/server/services/helpers/utils/query-params.js +109 -0
  234. package/dist/server/services/helpers/utils/query-params.js.map +1 -0
  235. package/dist/server/services/helpers/utils/query-params.mjs +107 -0
  236. package/dist/server/services/helpers/utils/query-params.mjs.map +1 -0
  237. package/dist/server/services/helpers/utils/routes.js +11 -0
  238. package/dist/server/services/helpers/utils/routes.js.map +1 -0
  239. package/dist/server/services/helpers/utils/routes.mjs +9 -0
  240. package/dist/server/services/helpers/utils/routes.mjs.map +1 -0
  241. package/dist/server/services/index.js +13 -0
  242. package/dist/server/services/index.js.map +1 -0
  243. package/dist/server/services/index.mjs +11 -0
  244. package/dist/server/services/index.mjs.map +1 -0
  245. package/dist/server/services/override.js +45 -0
  246. package/dist/server/services/override.js.map +1 -0
  247. package/dist/server/services/override.mjs +43 -0
  248. package/dist/server/services/override.mjs.map +1 -0
  249. package/dist/server/services/utils/get-plugins-that-need-documentation.js +24 -0
  250. package/dist/server/services/utils/get-plugins-that-need-documentation.js.map +1 -0
  251. package/dist/server/services/utils/get-plugins-that-need-documentation.mjs +22 -0
  252. package/dist/server/services/utils/get-plugins-that-need-documentation.mjs.map +1 -0
  253. package/dist/server/src/bootstrap.d.ts +5 -0
  254. package/dist/server/src/bootstrap.d.ts.map +1 -0
  255. package/dist/server/src/config/default-plugin-config.d.ts +3 -0
  256. package/dist/server/src/config/default-plugin-config.d.ts.map +1 -0
  257. package/dist/server/src/config/index.d.ts +4 -0
  258. package/dist/server/src/config/index.d.ts.map +1 -0
  259. package/dist/server/src/controllers/documentation.d.ts +12 -0
  260. package/dist/server/src/controllers/documentation.d.ts.map +1 -0
  261. package/dist/server/src/controllers/index.d.ts +14 -0
  262. package/dist/server/src/controllers/index.d.ts.map +1 -0
  263. package/dist/server/src/index.d.ts +91 -0
  264. package/dist/server/src/index.d.ts.map +1 -0
  265. package/dist/server/src/middlewares/documentation.d.ts +5 -0
  266. package/dist/server/src/middlewares/documentation.d.ts.map +1 -0
  267. package/dist/server/src/middlewares/restrict-access.d.ts +4 -0
  268. package/dist/server/src/middlewares/restrict-access.d.ts.map +1 -0
  269. package/dist/server/src/register.d.ts +5 -0
  270. package/dist/server/src/register.d.ts.map +1 -0
  271. package/dist/server/src/routes/index.d.ts +36 -0
  272. package/dist/server/src/routes/index.d.ts.map +1 -0
  273. package/dist/server/src/services/__mocks__/mock-content-types.d.ts +449 -0
  274. package/dist/server/src/services/__mocks__/mock-content-types.d.ts.map +1 -0
  275. package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts +592 -0
  276. package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts.map +1 -0
  277. package/dist/server/src/services/documentation.d.ts +36 -0
  278. package/dist/server/src/services/documentation.d.ts.map +1 -0
  279. package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts +7 -0
  280. package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts.map +1 -0
  281. package/dist/server/src/services/helpers/build-component-schema.d.ts +4 -0
  282. package/dist/server/src/services/helpers/build-component-schema.d.ts.map +1 -0
  283. package/dist/server/src/services/helpers/index.d.ts +4 -0
  284. package/dist/server/src/services/helpers/index.d.ts.map +1 -0
  285. package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts +15 -0
  286. package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts.map +1 -0
  287. package/dist/server/src/services/helpers/utils/get-api-responses.d.ts +15 -0
  288. package/dist/server/src/services/helpers/utils/get-api-responses.d.ts.map +1 -0
  289. package/dist/server/src/services/helpers/utils/get-schema-data.d.ts +12 -0
  290. package/dist/server/src/services/helpers/utils/get-schema-data.d.ts.map +1 -0
  291. package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts +7 -0
  292. package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts.map +1 -0
  293. package/dist/server/src/services/helpers/utils/pascal-case.d.ts +3 -0
  294. package/dist/server/src/services/helpers/utils/pascal-case.d.ts.map +1 -0
  295. package/dist/server/src/services/helpers/utils/query-params.d.ts +4 -0
  296. package/dist/server/src/services/helpers/utils/query-params.d.ts.map +1 -0
  297. package/dist/server/src/services/helpers/utils/routes.d.ts +3 -0
  298. package/dist/server/src/services/helpers/utils/routes.d.ts.map +1 -0
  299. package/dist/server/src/services/index.d.ts +43 -0
  300. package/dist/server/src/services/index.d.ts.map +1 -0
  301. package/dist/server/src/services/override.d.ts +21 -0
  302. package/dist/server/src/services/override.d.ts.map +1 -0
  303. package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts +4 -0
  304. package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts.map +1 -0
  305. package/dist/server/src/types.d.ts +28 -0
  306. package/dist/server/src/types.d.ts.map +1 -0
  307. package/dist/server/src/utils.d.ts +12 -0
  308. package/dist/server/src/utils.d.ts.map +1 -0
  309. package/dist/server/utils.js +10 -0
  310. package/dist/server/utils.js.map +1 -0
  311. package/dist/server/utils.mjs +8 -0
  312. package/dist/server/utils.mjs.map +1 -0
  313. package/dist/tests/server.d.ts +2 -0
  314. package/package.json +77 -34
  315. package/.eslintignore +0 -2
  316. package/.eslintrc.js +0 -14
  317. package/admin/src/constants.js +0 -17
  318. package/admin/src/hooks/useDocumentation.js +0 -77
  319. package/admin/src/index.js +0 -82
  320. package/admin/src/pages/PluginPage/index.js +0 -230
  321. package/admin/src/pages/PluginPage/tests/index.test.js +0 -206
  322. package/admin/src/pages/SettingsPage/index.js +0 -211
  323. package/admin/src/pages/SettingsPage/tests/index.test.js +0 -124
  324. package/admin/src/pluginId.js +0 -5
  325. package/admin/src/translations/ar.json +0 -20
  326. package/admin/src/translations/cs.json +0 -21
  327. package/admin/src/translations/de.json +0 -26
  328. package/admin/src/translations/dk.json +0 -39
  329. package/admin/src/translations/en.json +0 -39
  330. package/admin/src/translations/es.json +0 -39
  331. package/admin/src/translations/fr.json +0 -26
  332. package/admin/src/translations/id.json +0 -24
  333. package/admin/src/translations/it.json +0 -26
  334. package/admin/src/translations/ko.json +0 -39
  335. package/admin/src/translations/ms.json +0 -23
  336. package/admin/src/translations/nl.json +0 -21
  337. package/admin/src/translations/pl.json +0 -39
  338. package/admin/src/translations/pt-BR.json +0 -21
  339. package/admin/src/translations/pt.json +0 -21
  340. package/admin/src/translations/ru.json +0 -39
  341. package/admin/src/translations/sk.json +0 -24
  342. package/admin/src/translations/sv.json +0 -39
  343. package/admin/src/translations/th.json +0 -24
  344. package/admin/src/translations/tr.json +0 -39
  345. package/admin/src/translations/uk.json +0 -23
  346. package/admin/src/translations/vi.json +0 -24
  347. package/admin/src/translations/zh-Hans.json +0 -28
  348. package/admin/src/translations/zh.json +0 -39
  349. package/admin/src/utils/getTrad.js +0 -5
  350. package/admin/src/utils/index.js +0 -2
  351. package/jest.config.front.js +0 -7
  352. package/jest.config.js +0 -6
  353. package/server/bootstrap.js +0 -54
  354. package/server/config/default-plugin-config.js +0 -35
  355. package/server/config/index.js +0 -7
  356. package/server/controllers/documentation.js +0 -241
  357. package/server/controllers/index.js +0 -7
  358. package/server/index.js +0 -17
  359. package/server/middlewares/documentation.js +0 -25
  360. package/server/middlewares/index.js +0 -7
  361. package/server/middlewares/restrict-access.js +0 -24
  362. package/server/public/index.html +0 -70
  363. package/server/public/login.html +0 -145
  364. package/server/register.js +0 -11
  365. package/server/routes/index.js +0 -84
  366. package/server/services/__mocks__/mock-content-types.js +0 -269
  367. package/server/services/__mocks__/mock-strapi-data.js +0 -183
  368. package/server/services/__tests__/build-component-schema.test.js +0 -761
  369. package/server/services/__tests__/documentation.test.js +0 -481
  370. package/server/services/__tests__/override.test.js +0 -85
  371. package/server/services/documentation.js +0 -247
  372. package/server/services/helpers/build-api-endpoint-path.js +0 -186
  373. package/server/services/helpers/build-component-schema.js +0 -254
  374. package/server/services/helpers/index.js +0 -9
  375. package/server/services/helpers/utils/clean-schema-attributes.js +0 -243
  376. package/server/services/helpers/utils/get-api-responses.js +0 -105
  377. package/server/services/helpers/utils/get-schema-data.js +0 -32
  378. package/server/services/helpers/utils/loop-content-type-names.js +0 -55
  379. package/server/services/helpers/utils/pascal-case.js +0 -9
  380. package/server/services/helpers/utils/query-params.js +0 -105
  381. package/server/services/helpers/utils/routes.js +0 -10
  382. package/server/services/index.js +0 -9
  383. package/server/services/override.js +0 -52
  384. package/server/services/utils/default-openapi-components.js +0 -40
  385. package/server/services/utils/get-plugins-that-need-documentation.js +0 -24
  386. package/strapi-admin.js +0 -3
  387. package/strapi-server.js +0 -3
  388. package/tests/server.js +0 -37
  389. package/tests/setup.js +0 -15
package/LICENSE CHANGED
@@ -2,7 +2,21 @@ Copyright (c) 2015-present Strapi Solutions SAS
2
2
 
3
3
  Portions of the Strapi software are licensed as follows:
4
4
 
5
- * All software that resides under an "ee/" directory (the “EE Software”), if that directory exists, is licensed under the license defined in "ee/LICENSE".
5
+ * All software that resides under an "ee/" directory (the “EE Software”), if that directory exists, is licensed under the license defined below.
6
+
7
+ Enterprise License
8
+
9
+ If you or the company you represent has entered into a written agreement referencing the Enterprise Edition of the Strapi source code available at
10
+ https://github.com/strapi/strapi, then such agreement applies to your use of the Enterprise Edition of the Strapi Software. If you or the company you
11
+ represent is using the Enterprise Edition of the Strapi Software in connection with a subscription to our cloud offering, then the agreement you have
12
+ agreed to with respect to our cloud offering and the licenses included in such agreement apply to your use of the Enterprise Edition of the Strapi Software.
13
+ Otherwise, the Strapi Enterprise Software License Agreement (found here https://strapi.io/enterprise-terms) applies to your use of the Enterprise Edition of the Strapi Software.
14
+
15
+ BY ACCESSING OR USING THE ENTERPRISE EDITION OF THE STRAPI SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE RELEVANT REFERENCED AGREEMENT.
16
+ IF YOU ARE NOT AUTHORIZED TO ACCEPT THESE TERMS ON BEHALF OF THE COMPANY YOU REPRESENT OR IF YOU DO NOT AGREE TO ALL OF THE RELEVANT TERMS AND CONDITIONS REFERENCED AND YOU
17
+ HAVE NOT OTHERWISE EXECUTED A WRITTEN AGREEMENT WITH STRAPI, YOU ARE NOT AUTHORIZED TO ACCESS OR USE OR ALLOW ANY USER TO ACCESS OR USE ANY PART OF
18
+ THE ENTERPRISE EDITION OF THE STRAPI SOFTWARE. YOUR ACCESS RIGHTS ARE CONDITIONAL ON YOUR CONSENT TO THE RELEVANT REFERENCED TERMS TO THE EXCLUSION OF ALL OTHER TERMS;
19
+ IF THE RELEVANT REFERENCED TERMS ARE CONSIDERED AN OFFER BY YOU, ACCEPTANCE IS EXPRESSLY LIMITED TO THE RELEVANT REFERENCED TERMS.
6
20
 
7
21
  * All software outside of the above-mentioned directories or restrictions above is available under the "MIT Expat" license as set forth below.
8
22
 
@@ -18,5 +32,6 @@ furnished to do so, subject to the following conditions:
18
32
  The above copyright notice and this permission notice shall be included in all
19
33
  copies or substantial portions of the Software.
20
34
 
21
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.
35
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
36
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
37
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -16,7 +16,7 @@ This plugin automates your API documentation creation. It basically generates a
16
16
 
17
17
  ### Config
18
18
 
19
- Create a `settings.json` file located in `src/extensions/documentation/config` folder where you can specify all your environment variables, licenses, external documentation and so one...
19
+ Create a `settings.json` file located in `src/extensions/documentation/config` folder where you can specify all your environment variables, licenses, external documentation and so on...
20
20
  You can add all the entries listed in the [specification](https://swagger.io/specification/).
21
21
 
22
22
  _NOTE_ if you need to add a custom key you can do it by prefixing your key by `x-{something}`
@@ -59,7 +59,6 @@ It has the following structure
59
59
  ...
60
60
  },
61
61
  "x-strapi-config": {
62
- "path": "/documentation", // Change this line to change to url of the doc
63
62
  "showGeneratedFiles": true // Do not change this line at the moment...
64
63
  },
65
64
  "servers": {}, // Your servers config (it will be automated)
@@ -89,7 +88,7 @@ You can modify the `tags`, `paths`, and `components` keys on the generated docum
89
88
 
90
89
  #### How does it generate the others plugins documentation ?
91
90
 
92
- In other to reference a plugin's route into the documentation you need to add a `description` key in the `config` object.
91
+ In order to reference a plugin's route into the documentation you need to add a `description` key in the `config` object.
93
92
 
94
93
  For example this is the plugin email routes.json file
95
94
 
@@ -0,0 +1,202 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var designSystem = require('@strapi/design-system');
6
+ var icons = require('@strapi/icons');
7
+ var admin = require('@strapi/strapi/admin');
8
+ var formik = require('formik');
9
+ var reactIntl = require('react-intl');
10
+ var styledComponents = require('styled-components');
11
+ var yup = require('yup');
12
+ var constants = require('../constants.js');
13
+ var getTrad = require('../utils/getTrad.js');
14
+
15
+ function _interopNamespaceDefault(e) {
16
+ var n = Object.create(null);
17
+ if (e) {
18
+ Object.keys(e).forEach(function (k) {
19
+ if (k !== 'default') {
20
+ var d = Object.getOwnPropertyDescriptor(e, k);
21
+ Object.defineProperty(n, k, d.get ? d : {
22
+ enumerable: true,
23
+ get: function () { return e[k]; }
24
+ });
25
+ }
26
+ });
27
+ }
28
+ n.default = e;
29
+ return Object.freeze(n);
30
+ }
31
+
32
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
33
+ var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
34
+
35
+ const schema = yup__namespace.object().shape({
36
+ restrictedAccess: yup__namespace.boolean(),
37
+ password: yup__namespace.string().when('restrictedAccess', (value, initSchema)=>{
38
+ return value ? initSchema.required(admin.translatedErrors.required.id).min(8).matches(/[a-z]/, 'components.Input.error.contain.lowercase').matches(/[A-Z]/, 'components.Input.error.contain.uppercase').matches(/\d/, 'components.Input.error.contain.number') : initSchema;
39
+ })
40
+ });
41
+ const FieldActionWrapper = styledComponents.styled(designSystem.Field.Action)`
42
+ svg {
43
+ height: 1.6rem;
44
+ width: 1.6rem;
45
+ path {
46
+ fill: ${({ theme })=>theme.colors.neutral600};
47
+ }
48
+ }
49
+ `;
50
+ const SettingsForm = ({ data, onSubmit })=>{
51
+ const { formatMessage } = reactIntl.useIntl();
52
+ const [passwordShown, setPasswordShown] = React__namespace.useState(false);
53
+ const { allowedActions } = admin.useRBAC(constants.PERMISSIONS);
54
+ return /*#__PURE__*/ jsxRuntime.jsx(formik.Formik, {
55
+ enableReinitialize: true,
56
+ initialValues: {
57
+ restrictedAccess: data?.documentationAccess.restrictedAccess || false,
58
+ password: ''
59
+ },
60
+ onSubmit: onSubmit,
61
+ validationSchema: schema,
62
+ children: ({ handleSubmit, values, handleChange, errors, setFieldTouched, setFieldValue, setFieldError, dirty })=>{
63
+ return /*#__PURE__*/ jsxRuntime.jsxs(formik.Form, {
64
+ noValidate: true,
65
+ onSubmit: handleSubmit,
66
+ children: [
67
+ /*#__PURE__*/ jsxRuntime.jsx(admin.Layouts.Header, {
68
+ title: formatMessage({
69
+ id: getTrad.getTrad('plugin.name'),
70
+ defaultMessage: 'Documentation'
71
+ }),
72
+ subtitle: formatMessage({
73
+ id: getTrad.getTrad('pages.SettingsPage.header.description'),
74
+ defaultMessage: 'Configure the documentation plugin'
75
+ }),
76
+ primaryAction: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
77
+ type: "submit",
78
+ startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Check, {}),
79
+ disabled: !dirty && allowedActions.canUpdate,
80
+ fullWidth: true,
81
+ children: formatMessage({
82
+ id: getTrad.getTrad('pages.SettingsPage.Button.save'),
83
+ defaultMessage: 'Save'
84
+ })
85
+ })
86
+ }),
87
+ /*#__PURE__*/ jsxRuntime.jsx(admin.Layouts.Content, {
88
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
89
+ background: "neutral0",
90
+ hasRadius: true,
91
+ shadow: "filterShadow",
92
+ paddingTop: 6,
93
+ paddingBottom: 6,
94
+ paddingLeft: 7,
95
+ paddingRight: 7,
96
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
97
+ direction: "column",
98
+ alignItems: "stretch",
99
+ gap: 4,
100
+ children: [
101
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
102
+ variant: "delta",
103
+ tag: "h2",
104
+ children: formatMessage({
105
+ id: 'global.settings',
106
+ defaultMessage: 'Settings'
107
+ })
108
+ }),
109
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Grid.Root, {
110
+ gap: 4,
111
+ children: [
112
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
113
+ col: 6,
114
+ xs: 12,
115
+ direction: "column",
116
+ alignItems: "stretch",
117
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
118
+ name: "restrictedAccess",
119
+ hint: formatMessage({
120
+ id: getTrad.getTrad('pages.SettingsPage.toggle.hint'),
121
+ defaultMessage: 'Make the documentation endpoint private'
122
+ }),
123
+ children: [
124
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
125
+ children: formatMessage({
126
+ id: getTrad.getTrad('pages.SettingsPage.toggle.label'),
127
+ defaultMessage: 'Restricted Access'
128
+ })
129
+ }),
130
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Toggle, {
131
+ checked: values.restrictedAccess,
132
+ onChange: ()=>{
133
+ if (values.restrictedAccess === true) {
134
+ setFieldValue('password', '', false);
135
+ setFieldTouched('password', false, false);
136
+ setFieldError('password', undefined);
137
+ }
138
+ setFieldValue('restrictedAccess', !values.restrictedAccess, false);
139
+ },
140
+ onLabel: "On",
141
+ offLabel: "Off"
142
+ }),
143
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Hint, {})
144
+ ]
145
+ })
146
+ }),
147
+ values.restrictedAccess && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
148
+ col: 6,
149
+ xs: 12,
150
+ direction: "column",
151
+ alignItems: "stretch",
152
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
153
+ name: "password",
154
+ error: errors.password ? formatMessage({
155
+ id: errors.password,
156
+ defaultMessage: errors.password
157
+ }) : undefined,
158
+ children: [
159
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
160
+ children: formatMessage({
161
+ id: 'global.password',
162
+ defaultMessage: 'Password'
163
+ })
164
+ }),
165
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.TextInput, {
166
+ placeholder: "**********",
167
+ type: passwordShown ? 'text' : 'password',
168
+ value: values.password,
169
+ onChange: handleChange,
170
+ endAction: /*#__PURE__*/ jsxRuntime.jsx(FieldActionWrapper, {
171
+ onClick: (e)=>{
172
+ e.stopPropagation();
173
+ setPasswordShown((prev)=>!prev);
174
+ },
175
+ label: formatMessage(passwordShown ? {
176
+ id: 'Auth.form.password.show-password',
177
+ defaultMessage: 'Show password'
178
+ } : {
179
+ id: 'Auth.form.password.hide-password',
180
+ defaultMessage: 'Hide password'
181
+ }),
182
+ children: passwordShown ? /*#__PURE__*/ jsxRuntime.jsx(icons.Eye, {}) : /*#__PURE__*/ jsxRuntime.jsx(icons.EyeStriked, {})
183
+ })
184
+ }),
185
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Error, {})
186
+ ]
187
+ })
188
+ })
189
+ ]
190
+ })
191
+ ]
192
+ })
193
+ })
194
+ })
195
+ ]
196
+ });
197
+ }
198
+ });
199
+ };
200
+
201
+ exports.SettingsForm = SettingsForm;
202
+ //# sourceMappingURL=SettingsForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsForm.js","sources":["../../../admin/src/components/SettingsForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n TextInput,\n Toggle,\n Typography,\n Field,\n} from '@strapi/design-system';\n// Strapi Icons\nimport { Check, Eye as Show, EyeStriked as Hide } from '@strapi/icons';\nimport { translatedErrors, useRBAC, Layouts } from '@strapi/strapi/admin';\nimport { Form, Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { PERMISSIONS } from '../constants';\nimport { DocumentInfos, SettingsInput } from '../types';\nimport { getTrad } from '../utils';\n\nconst schema = yup.object().shape({\n restrictedAccess: yup.boolean(),\n password: yup.string().when('restrictedAccess', (value, initSchema) => {\n return value\n ? initSchema\n .required(translatedErrors.required.id)\n .min(8)\n .matches(/[a-z]/, 'components.Input.error.contain.lowercase')\n .matches(/[A-Z]/, 'components.Input.error.contain.uppercase')\n .matches(/\\d/, 'components.Input.error.contain.number')\n : initSchema;\n }),\n});\n\nconst FieldActionWrapper = styled(Field.Action)`\n svg {\n height: 1.6rem;\n width: 1.6rem;\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\ntype SettingsFormProps = {\n data?: DocumentInfos;\n onSubmit: (body: SettingsInput, formik: FormikHelpers<SettingsInput>) => Promise<void>;\n};\n\nexport const SettingsForm = ({ data, onSubmit }: SettingsFormProps) => {\n const { formatMessage } = useIntl();\n const [passwordShown, setPasswordShown] = React.useState(false);\n const { allowedActions } = useRBAC(PERMISSIONS);\n\n return (\n <Formik\n enableReinitialize\n initialValues={{\n restrictedAccess: data?.documentationAccess.restrictedAccess || false,\n password: '',\n }}\n onSubmit={onSubmit}\n validationSchema={schema}\n >\n {({\n handleSubmit,\n values,\n handleChange,\n errors,\n setFieldTouched,\n setFieldValue,\n setFieldError,\n dirty,\n }) => {\n return (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n })}\n subtitle={formatMessage({\n id: getTrad('pages.SettingsPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={!dirty && allowedActions.canUpdate}\n fullWidth\n >\n {formatMessage({\n id: getTrad('pages.SettingsPage.Button.save'),\n defaultMessage: 'Save',\n })}\n </Button>\n }\n />\n <Layouts.Content>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"restrictedAccess\"\n hint={formatMessage({\n id: getTrad('pages.SettingsPage.toggle.hint'),\n defaultMessage: 'Make the documentation endpoint private',\n })}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('pages.SettingsPage.toggle.label'),\n defaultMessage: 'Restricted Access',\n })}\n </Field.Label>\n <Toggle\n checked={values.restrictedAccess}\n onChange={() => {\n if (values.restrictedAccess === true) {\n setFieldValue('password', '', false);\n setFieldTouched('password', false, false);\n setFieldError('password', undefined);\n }\n\n setFieldValue('restrictedAccess', !values.restrictedAccess, false);\n }}\n onLabel=\"On\"\n offLabel=\"Off\"\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n {values.restrictedAccess && (\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"password\"\n error={\n errors.password\n ? formatMessage({\n id: errors.password,\n defaultMessage: errors.password,\n })\n : undefined\n }\n >\n <Field.Label>\n {formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n })}\n </Field.Label>\n <TextInput\n placeholder=\"**********\"\n type={passwordShown ? 'text' : 'password'}\n value={values.password}\n onChange={handleChange}\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.stopPropagation();\n setPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n passwordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {passwordShown ? <Show /> : <Hide />}\n </FieldActionWrapper>\n }\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n )}\n </Grid.Root>\n </Flex>\n </Box>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n );\n};\n"],"names":["schema","yup","object","shape","restrictedAccess","boolean","password","string","when","value","initSchema","required","translatedErrors","id","min","matches","FieldActionWrapper","styled","Field","Action","theme","colors","neutral600","SettingsForm","data","onSubmit","formatMessage","useIntl","passwordShown","setPasswordShown","React","useState","allowedActions","useRBAC","PERMISSIONS","_jsx","Formik","enableReinitialize","initialValues","documentationAccess","validationSchema","handleSubmit","values","handleChange","errors","setFieldTouched","setFieldValue","setFieldError","dirty","_jsxs","Form","noValidate","Layouts","Header","title","getTrad","defaultMessage","subtitle","primaryAction","Button","type","startIcon","Check","disabled","canUpdate","fullWidth","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","Item","col","xs","name","hint","Label","Toggle","checked","onChange","undefined","onLabel","offLabel","Hint","error","TextInput","placeholder","endAction","onClick","e","stopPropagation","prev","label","Show","Hide","Error"],"mappings":"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"}
@@ -0,0 +1,180 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Button, Box, Flex, Typography, Grid, Field, Toggle, TextInput } from '@strapi/design-system';
4
+ import { Check, Eye, EyeStriked } from '@strapi/icons';
5
+ import { useRBAC, Layouts, translatedErrors } from '@strapi/strapi/admin';
6
+ import { Formik, Form } from 'formik';
7
+ import { useIntl } from 'react-intl';
8
+ import { styled } from 'styled-components';
9
+ import * as yup from 'yup';
10
+ import { PERMISSIONS } from '../constants.mjs';
11
+ import { getTrad } from '../utils/getTrad.mjs';
12
+
13
+ const schema = yup.object().shape({
14
+ restrictedAccess: yup.boolean(),
15
+ password: yup.string().when('restrictedAccess', (value, initSchema)=>{
16
+ return value ? initSchema.required(translatedErrors.required.id).min(8).matches(/[a-z]/, 'components.Input.error.contain.lowercase').matches(/[A-Z]/, 'components.Input.error.contain.uppercase').matches(/\d/, 'components.Input.error.contain.number') : initSchema;
17
+ })
18
+ });
19
+ const FieldActionWrapper = styled(Field.Action)`
20
+ svg {
21
+ height: 1.6rem;
22
+ width: 1.6rem;
23
+ path {
24
+ fill: ${({ theme })=>theme.colors.neutral600};
25
+ }
26
+ }
27
+ `;
28
+ const SettingsForm = ({ data, onSubmit })=>{
29
+ const { formatMessage } = useIntl();
30
+ const [passwordShown, setPasswordShown] = React.useState(false);
31
+ const { allowedActions } = useRBAC(PERMISSIONS);
32
+ return /*#__PURE__*/ jsx(Formik, {
33
+ enableReinitialize: true,
34
+ initialValues: {
35
+ restrictedAccess: data?.documentationAccess.restrictedAccess || false,
36
+ password: ''
37
+ },
38
+ onSubmit: onSubmit,
39
+ validationSchema: schema,
40
+ children: ({ handleSubmit, values, handleChange, errors, setFieldTouched, setFieldValue, setFieldError, dirty })=>{
41
+ return /*#__PURE__*/ jsxs(Form, {
42
+ noValidate: true,
43
+ onSubmit: handleSubmit,
44
+ children: [
45
+ /*#__PURE__*/ jsx(Layouts.Header, {
46
+ title: formatMessage({
47
+ id: getTrad('plugin.name'),
48
+ defaultMessage: 'Documentation'
49
+ }),
50
+ subtitle: formatMessage({
51
+ id: getTrad('pages.SettingsPage.header.description'),
52
+ defaultMessage: 'Configure the documentation plugin'
53
+ }),
54
+ primaryAction: /*#__PURE__*/ jsx(Button, {
55
+ type: "submit",
56
+ startIcon: /*#__PURE__*/ jsx(Check, {}),
57
+ disabled: !dirty && allowedActions.canUpdate,
58
+ fullWidth: true,
59
+ children: formatMessage({
60
+ id: getTrad('pages.SettingsPage.Button.save'),
61
+ defaultMessage: 'Save'
62
+ })
63
+ })
64
+ }),
65
+ /*#__PURE__*/ jsx(Layouts.Content, {
66
+ children: /*#__PURE__*/ jsx(Box, {
67
+ background: "neutral0",
68
+ hasRadius: true,
69
+ shadow: "filterShadow",
70
+ paddingTop: 6,
71
+ paddingBottom: 6,
72
+ paddingLeft: 7,
73
+ paddingRight: 7,
74
+ children: /*#__PURE__*/ jsxs(Flex, {
75
+ direction: "column",
76
+ alignItems: "stretch",
77
+ gap: 4,
78
+ children: [
79
+ /*#__PURE__*/ jsx(Typography, {
80
+ variant: "delta",
81
+ tag: "h2",
82
+ children: formatMessage({
83
+ id: 'global.settings',
84
+ defaultMessage: 'Settings'
85
+ })
86
+ }),
87
+ /*#__PURE__*/ jsxs(Grid.Root, {
88
+ gap: 4,
89
+ children: [
90
+ /*#__PURE__*/ jsx(Grid.Item, {
91
+ col: 6,
92
+ xs: 12,
93
+ direction: "column",
94
+ alignItems: "stretch",
95
+ children: /*#__PURE__*/ jsxs(Field.Root, {
96
+ name: "restrictedAccess",
97
+ hint: formatMessage({
98
+ id: getTrad('pages.SettingsPage.toggle.hint'),
99
+ defaultMessage: 'Make the documentation endpoint private'
100
+ }),
101
+ children: [
102
+ /*#__PURE__*/ jsx(Field.Label, {
103
+ children: formatMessage({
104
+ id: getTrad('pages.SettingsPage.toggle.label'),
105
+ defaultMessage: 'Restricted Access'
106
+ })
107
+ }),
108
+ /*#__PURE__*/ jsx(Toggle, {
109
+ checked: values.restrictedAccess,
110
+ onChange: ()=>{
111
+ if (values.restrictedAccess === true) {
112
+ setFieldValue('password', '', false);
113
+ setFieldTouched('password', false, false);
114
+ setFieldError('password', undefined);
115
+ }
116
+ setFieldValue('restrictedAccess', !values.restrictedAccess, false);
117
+ },
118
+ onLabel: "On",
119
+ offLabel: "Off"
120
+ }),
121
+ /*#__PURE__*/ jsx(Field.Hint, {})
122
+ ]
123
+ })
124
+ }),
125
+ values.restrictedAccess && /*#__PURE__*/ jsx(Grid.Item, {
126
+ col: 6,
127
+ xs: 12,
128
+ direction: "column",
129
+ alignItems: "stretch",
130
+ children: /*#__PURE__*/ jsxs(Field.Root, {
131
+ name: "password",
132
+ error: errors.password ? formatMessage({
133
+ id: errors.password,
134
+ defaultMessage: errors.password
135
+ }) : undefined,
136
+ children: [
137
+ /*#__PURE__*/ jsx(Field.Label, {
138
+ children: formatMessage({
139
+ id: 'global.password',
140
+ defaultMessage: 'Password'
141
+ })
142
+ }),
143
+ /*#__PURE__*/ jsx(TextInput, {
144
+ placeholder: "**********",
145
+ type: passwordShown ? 'text' : 'password',
146
+ value: values.password,
147
+ onChange: handleChange,
148
+ endAction: /*#__PURE__*/ jsx(FieldActionWrapper, {
149
+ onClick: (e)=>{
150
+ e.stopPropagation();
151
+ setPasswordShown((prev)=>!prev);
152
+ },
153
+ label: formatMessage(passwordShown ? {
154
+ id: 'Auth.form.password.show-password',
155
+ defaultMessage: 'Show password'
156
+ } : {
157
+ id: 'Auth.form.password.hide-password',
158
+ defaultMessage: 'Hide password'
159
+ }),
160
+ children: passwordShown ? /*#__PURE__*/ jsx(Eye, {}) : /*#__PURE__*/ jsx(EyeStriked, {})
161
+ })
162
+ }),
163
+ /*#__PURE__*/ jsx(Field.Error, {})
164
+ ]
165
+ })
166
+ })
167
+ ]
168
+ })
169
+ ]
170
+ })
171
+ })
172
+ })
173
+ ]
174
+ });
175
+ }
176
+ });
177
+ };
178
+
179
+ export { SettingsForm };
180
+ //# sourceMappingURL=SettingsForm.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsForm.mjs","sources":["../../../admin/src/components/SettingsForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n TextInput,\n Toggle,\n Typography,\n Field,\n} from '@strapi/design-system';\n// Strapi Icons\nimport { Check, Eye as Show, EyeStriked as Hide } from '@strapi/icons';\nimport { translatedErrors, useRBAC, Layouts } from '@strapi/strapi/admin';\nimport { Form, Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { PERMISSIONS } from '../constants';\nimport { DocumentInfos, SettingsInput } from '../types';\nimport { getTrad } from '../utils';\n\nconst schema = yup.object().shape({\n restrictedAccess: yup.boolean(),\n password: yup.string().when('restrictedAccess', (value, initSchema) => {\n return value\n ? initSchema\n .required(translatedErrors.required.id)\n .min(8)\n .matches(/[a-z]/, 'components.Input.error.contain.lowercase')\n .matches(/[A-Z]/, 'components.Input.error.contain.uppercase')\n .matches(/\\d/, 'components.Input.error.contain.number')\n : initSchema;\n }),\n});\n\nconst FieldActionWrapper = styled(Field.Action)`\n svg {\n height: 1.6rem;\n width: 1.6rem;\n path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n }\n`;\n\ntype SettingsFormProps = {\n data?: DocumentInfos;\n onSubmit: (body: SettingsInput, formik: FormikHelpers<SettingsInput>) => Promise<void>;\n};\n\nexport const SettingsForm = ({ data, onSubmit }: SettingsFormProps) => {\n const { formatMessage } = useIntl();\n const [passwordShown, setPasswordShown] = React.useState(false);\n const { allowedActions } = useRBAC(PERMISSIONS);\n\n return (\n <Formik\n enableReinitialize\n initialValues={{\n restrictedAccess: data?.documentationAccess.restrictedAccess || false,\n password: '',\n }}\n onSubmit={onSubmit}\n validationSchema={schema}\n >\n {({\n handleSubmit,\n values,\n handleChange,\n errors,\n setFieldTouched,\n setFieldValue,\n setFieldError,\n dirty,\n }) => {\n return (\n <Form noValidate onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Documentation',\n })}\n subtitle={formatMessage({\n id: getTrad('pages.SettingsPage.header.description'),\n defaultMessage: 'Configure the documentation plugin',\n })}\n primaryAction={\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={!dirty && allowedActions.canUpdate}\n fullWidth\n >\n {formatMessage({\n id: getTrad('pages.SettingsPage.Button.save'),\n defaultMessage: 'Save',\n })}\n </Button>\n }\n />\n <Layouts.Content>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={4}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"restrictedAccess\"\n hint={formatMessage({\n id: getTrad('pages.SettingsPage.toggle.hint'),\n defaultMessage: 'Make the documentation endpoint private',\n })}\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('pages.SettingsPage.toggle.label'),\n defaultMessage: 'Restricted Access',\n })}\n </Field.Label>\n <Toggle\n checked={values.restrictedAccess}\n onChange={() => {\n if (values.restrictedAccess === true) {\n setFieldValue('password', '', false);\n setFieldTouched('password', false, false);\n setFieldError('password', undefined);\n }\n\n setFieldValue('restrictedAccess', !values.restrictedAccess, false);\n }}\n onLabel=\"On\"\n offLabel=\"Off\"\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n {values.restrictedAccess && (\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"password\"\n error={\n errors.password\n ? formatMessage({\n id: errors.password,\n defaultMessage: errors.password,\n })\n : undefined\n }\n >\n <Field.Label>\n {formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n })}\n </Field.Label>\n <TextInput\n placeholder=\"**********\"\n type={passwordShown ? 'text' : 'password'}\n value={values.password}\n onChange={handleChange}\n endAction={\n <FieldActionWrapper\n onClick={(e) => {\n e.stopPropagation();\n setPasswordShown((prev) => !prev);\n }}\n label={formatMessage(\n passwordShown\n ? {\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n }\n : {\n id: 'Auth.form.password.hide-password',\n defaultMessage: 'Hide password',\n }\n )}\n >\n {passwordShown ? <Show /> : <Hide />}\n </FieldActionWrapper>\n }\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n )}\n </Grid.Root>\n </Flex>\n </Box>\n </Layouts.Content>\n </Form>\n );\n }}\n </Formik>\n );\n};\n"],"names":["schema","yup","object","shape","restrictedAccess","boolean","password","string","when","value","initSchema","required","translatedErrors","id","min","matches","FieldActionWrapper","styled","Field","Action","theme","colors","neutral600","SettingsForm","data","onSubmit","formatMessage","useIntl","passwordShown","setPasswordShown","React","useState","allowedActions","useRBAC","PERMISSIONS","_jsx","Formik","enableReinitialize","initialValues","documentationAccess","validationSchema","handleSubmit","values","handleChange","errors","setFieldTouched","setFieldValue","setFieldError","dirty","_jsxs","Form","noValidate","Layouts","Header","title","getTrad","defaultMessage","subtitle","primaryAction","Button","type","startIcon","Check","disabled","canUpdate","fullWidth","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","Item","col","xs","name","hint","Label","Toggle","checked","onChange","undefined","onLabel","offLabel","Hint","error","TextInput","placeholder","endAction","onClick","e","stopPropagation","prev","label","Show","Hide","Error"],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ const PERMISSIONS = {
4
+ // This permission regards the main component (App) and is used to tell
5
+ // If the plugin link should be displayed in the menu
6
+ // And also if the plugin is accessible. This use case is found when a user types the url of the
7
+ // plugin directly in the browser
8
+ main: [
9
+ {
10
+ action: 'plugin::documentation.read',
11
+ subject: null
12
+ },
13
+ {
14
+ action: 'plugin::documentation.settings.regenerate',
15
+ subject: null
16
+ },
17
+ {
18
+ action: 'plugin::documentation.settings.update',
19
+ subject: null
20
+ }
21
+ ],
22
+ open: [
23
+ {
24
+ action: 'plugin::documentation.read',
25
+ subject: null
26
+ },
27
+ {
28
+ action: 'plugin::documentation.settings.regenerate',
29
+ subject: null
30
+ }
31
+ ],
32
+ regenerate: [
33
+ {
34
+ action: 'plugin::documentation.settings.regenerate',
35
+ subject: null
36
+ }
37
+ ],
38
+ update: [
39
+ {
40
+ action: 'plugin::documentation.settings.update',
41
+ subject: null
42
+ }
43
+ ]
44
+ };
45
+
46
+ exports.PERMISSIONS = PERMISSIONS;
47
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../admin/src/constants.ts"],"sourcesContent":["export const PERMISSIONS = {\n // This permission regards the main component (App) and is used to tell\n // If the plugin link should be displayed in the menu\n // And also if the plugin is accessible. This use case is found when a user types the url of the\n // plugin directly in the browser\n main: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n { action: 'plugin::documentation.settings.update', subject: null },\n ],\n open: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n ],\n regenerate: [{ action: 'plugin::documentation.settings.regenerate', subject: null }],\n update: [{ action: 'plugin::documentation.settings.update', subject: null }],\n};\n"],"names":["PERMISSIONS","main","action","subject","open","regenerate","update"],"mappings":";;MAAaA,WAAAA,GAAc;;;;;IAKzBC,IAAAA,EAAM;AACJ,QAAA;YAAEC,MAAAA,EAAQ,4BAAA;YAA8BC,OAAAA,EAAS;AAAK,SAAA;AACtD,QAAA;YAAED,MAAAA,EAAQ,2CAAA;YAA6CC,OAAAA,EAAS;AAAK,SAAA;AACrE,QAAA;YAAED,MAAAA,EAAQ,uCAAA;YAAyCC,OAAAA,EAAS;AAAK;AAClE,KAAA;IACDC,IAAAA,EAAM;AACJ,QAAA;YAAEF,MAAAA,EAAQ,4BAAA;YAA8BC,OAAAA,EAAS;AAAK,SAAA;AACtD,QAAA;YAAED,MAAAA,EAAQ,2CAAA;YAA6CC,OAAAA,EAAS;AAAK;AACtE,KAAA;IACDE,UAAAA,EAAY;AAAC,QAAA;YAAEH,MAAAA,EAAQ,2CAAA;YAA6CC,OAAAA,EAAS;AAAK;AAAE,KAAA;IACpFG,MAAAA,EAAQ;AAAC,QAAA;YAAEJ,MAAAA,EAAQ,uCAAA;YAAyCC,OAAAA,EAAS;AAAK;AAAE;AAC9E;;;;"}
@@ -0,0 +1,45 @@
1
+ const PERMISSIONS = {
2
+ // This permission regards the main component (App) and is used to tell
3
+ // If the plugin link should be displayed in the menu
4
+ // And also if the plugin is accessible. This use case is found when a user types the url of the
5
+ // plugin directly in the browser
6
+ main: [
7
+ {
8
+ action: 'plugin::documentation.read',
9
+ subject: null
10
+ },
11
+ {
12
+ action: 'plugin::documentation.settings.regenerate',
13
+ subject: null
14
+ },
15
+ {
16
+ action: 'plugin::documentation.settings.update',
17
+ subject: null
18
+ }
19
+ ],
20
+ open: [
21
+ {
22
+ action: 'plugin::documentation.read',
23
+ subject: null
24
+ },
25
+ {
26
+ action: 'plugin::documentation.settings.regenerate',
27
+ subject: null
28
+ }
29
+ ],
30
+ regenerate: [
31
+ {
32
+ action: 'plugin::documentation.settings.regenerate',
33
+ subject: null
34
+ }
35
+ ],
36
+ update: [
37
+ {
38
+ action: 'plugin::documentation.settings.update',
39
+ subject: null
40
+ }
41
+ ]
42
+ };
43
+
44
+ export { PERMISSIONS };
45
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","sources":["../../admin/src/constants.ts"],"sourcesContent":["export const PERMISSIONS = {\n // This permission regards the main component (App) and is used to tell\n // If the plugin link should be displayed in the menu\n // And also if the plugin is accessible. This use case is found when a user types the url of the\n // plugin directly in the browser\n main: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n { action: 'plugin::documentation.settings.update', subject: null },\n ],\n open: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n ],\n regenerate: [{ action: 'plugin::documentation.settings.regenerate', subject: null }],\n update: [{ action: 'plugin::documentation.settings.update', subject: null }],\n};\n"],"names":["PERMISSIONS","main","action","subject","open","regenerate","update"],"mappings":"MAAaA,WAAAA,GAAc;;;;;IAKzBC,IAAAA,EAAM;AACJ,QAAA;YAAEC,MAAAA,EAAQ,4BAAA;YAA8BC,OAAAA,EAAS;AAAK,SAAA;AACtD,QAAA;YAAED,MAAAA,EAAQ,2CAAA;YAA6CC,OAAAA,EAAS;AAAK,SAAA;AACrE,QAAA;YAAED,MAAAA,EAAQ,uCAAA;YAAyCC,OAAAA,EAAS;AAAK;AAClE,KAAA;IACDC,IAAAA,EAAM;AACJ,QAAA;YAAEF,MAAAA,EAAQ,4BAAA;YAA8BC,OAAAA,EAAS;AAAK,SAAA;AACtD,QAAA;YAAED,MAAAA,EAAQ,2CAAA;YAA6CC,OAAAA,EAAS;AAAK;AACtE,KAAA;IACDE,UAAAA,EAAY;AAAC,QAAA;YAAEH,MAAAA,EAAQ,2CAAA;YAA6CC,OAAAA,EAAS;AAAK;AAAE,KAAA;IACpFG,MAAAA,EAAQ;AAAC,QAAA;YAAEJ,MAAAA,EAAQ,uCAAA;YAAyCC,OAAAA,EAAS;AAAK;AAAE;AAC9E;;;;"}