@strapi/plugin-documentation 5.12.0 → 5.12.2
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.
- package/dist/admin/{chunks/Settings-Cpj-uI9B.js → components/SettingsForm.js} +7 -52
- package/dist/admin/components/SettingsForm.js.map +1 -0
- package/dist/admin/{chunks/Settings-DyLMOJEx.mjs → components/SettingsForm.mjs} +7 -52
- package/dist/admin/components/SettingsForm.mjs.map +1 -0
- package/dist/admin/constants.js +47 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +45 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/index.js +93 -3
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +94 -2
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/{chunks/App-DC2H8bJ5.js → pages/App.js} +8 -8
- package/dist/admin/pages/App.js.map +1 -0
- package/dist/admin/{chunks/App-D6yQIQar.mjs → pages/App.mjs} +4 -4
- package/dist/admin/pages/App.mjs.map +1 -0
- package/dist/admin/pages/Settings.js +54 -0
- package/dist/admin/pages/Settings.js.map +1 -0
- package/dist/admin/pages/Settings.mjs +52 -0
- package/dist/admin/pages/Settings.mjs.map +1 -0
- package/dist/admin/pluginId.js +6 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +4 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/{chunks/getTrad-AvLNMP3V.js → services/api.js} +1 -5
- package/dist/admin/services/api.js.map +1 -0
- package/dist/admin/{chunks/getTrad-D9juLfq6.mjs → services/api.mjs} +2 -5
- package/dist/admin/services/api.mjs.map +1 -0
- package/dist/admin/{chunks/ar-Dix6VU4a.js → translations/ar.json.js} +2 -2
- package/dist/admin/translations/ar.json.js.map +1 -0
- package/dist/admin/{chunks/ar-Bu09tPI1.mjs → translations/ar.json.mjs} +1 -1
- package/dist/admin/translations/ar.json.mjs.map +1 -0
- package/dist/admin/{chunks/cs-C6k-mH5i.js → translations/cs.json.js} +2 -2
- package/dist/admin/translations/cs.json.js.map +1 -0
- package/dist/admin/{chunks/cs-tf-UeGst.mjs → translations/cs.json.mjs} +1 -1
- package/dist/admin/translations/cs.json.mjs.map +1 -0
- package/dist/admin/{chunks/de-DYskRe8j.js → translations/de.json.js} +2 -2
- package/dist/admin/translations/de.json.js.map +1 -0
- package/dist/admin/{chunks/de-CMhqnPQP.mjs → translations/de.json.mjs} +1 -1
- package/dist/admin/translations/de.json.mjs.map +1 -0
- package/dist/admin/{chunks/dk-BYJqzR_M.js → translations/dk.json.js} +2 -2
- package/dist/admin/translations/dk.json.js.map +1 -0
- package/dist/admin/{chunks/dk-BmQOOeIc.mjs → translations/dk.json.mjs} +1 -1
- package/dist/admin/translations/dk.json.mjs.map +1 -0
- package/dist/admin/{chunks/en-B90IBmYB.js → translations/en.json.js} +2 -2
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/{chunks/en-Cx8yPuig.mjs → translations/en.json.mjs} +1 -1
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/{chunks/es-5WsjlhIl.js → translations/es.json.js} +2 -2
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/{chunks/es-DAdgO3Ey.mjs → translations/es.json.mjs} +1 -1
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/{chunks/fr-C-vHEudQ.js → translations/fr.json.js} +2 -2
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/{chunks/fr-B5fjFqKX.mjs → translations/fr.json.mjs} +1 -1
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/{chunks/id-BKiCYOdS.js → translations/id.json.js} +2 -2
- package/dist/admin/translations/id.json.js.map +1 -0
- package/dist/admin/{chunks/id-CLApXj97.mjs → translations/id.json.mjs} +1 -1
- package/dist/admin/translations/id.json.mjs.map +1 -0
- package/dist/admin/{chunks/it-B7SnHLP2.js → translations/it.json.js} +2 -2
- package/dist/admin/translations/it.json.js.map +1 -0
- package/dist/admin/{chunks/it-C7GcWYBa.mjs → translations/it.json.mjs} +1 -1
- package/dist/admin/translations/it.json.mjs.map +1 -0
- package/dist/admin/{chunks/ko-CjOasZmz.js → translations/ko.json.js} +2 -2
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/{chunks/ko-DZvks90a.mjs → translations/ko.json.mjs} +1 -1
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/{chunks/ms-C2TEZHkD.js → translations/ms.json.js} +2 -2
- package/dist/admin/translations/ms.json.js.map +1 -0
- package/dist/admin/{chunks/ms-Df9gDB9M.mjs → translations/ms.json.mjs} +1 -1
- package/dist/admin/translations/ms.json.mjs.map +1 -0
- package/dist/admin/{chunks/nl-CLp2dhr9.js → translations/nl.json.js} +2 -2
- package/dist/admin/translations/nl.json.js.map +1 -0
- package/dist/admin/{chunks/nl-BlmTMaTL.mjs → translations/nl.json.mjs} +1 -1
- package/dist/admin/translations/nl.json.mjs.map +1 -0
- package/dist/admin/{chunks/pl-C8WRO2pt.js → translations/pl.json.js} +2 -2
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/{chunks/pl-5iT3b9r4.mjs → translations/pl.json.mjs} +1 -1
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/{chunks/pt-BR-Ds-dLXzD.js → translations/pt-BR.json.js} +2 -2
- package/dist/admin/translations/pt-BR.json.js.map +1 -0
- package/dist/admin/{chunks/pt-BR-De5jokla.mjs → translations/pt-BR.json.mjs} +1 -1
- package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
- package/dist/admin/{chunks/pt-DL-rrjA1.js → translations/pt.json.js} +2 -2
- package/dist/admin/translations/pt.json.js.map +1 -0
- package/dist/admin/{chunks/pt-BK5YbXpM.mjs → translations/pt.json.mjs} +1 -1
- package/dist/admin/translations/pt.json.mjs.map +1 -0
- package/dist/admin/{chunks/ru-Cqv4k9my.js → translations/ru.json.js} +2 -2
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/{chunks/ru-C_16WuLP.mjs → translations/ru.json.mjs} +1 -1
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/{chunks/sk-D6l_EMOT.js → translations/sk.json.js} +2 -2
- package/dist/admin/translations/sk.json.js.map +1 -0
- package/dist/admin/{chunks/sk-B7RadPe4.mjs → translations/sk.json.mjs} +1 -1
- package/dist/admin/translations/sk.json.mjs.map +1 -0
- package/dist/admin/{chunks/sv-Xg5gbVO9.js → translations/sv.json.js} +2 -2
- package/dist/admin/translations/sv.json.js.map +1 -0
- package/dist/admin/{chunks/sv-DK5DOsrV.mjs → translations/sv.json.mjs} +1 -1
- package/dist/admin/translations/sv.json.mjs.map +1 -0
- package/dist/admin/{chunks/th-Pci1U3n6.js → translations/th.json.js} +2 -2
- package/dist/admin/translations/th.json.js.map +1 -0
- package/dist/admin/{chunks/th-DNiRgKQH.mjs → translations/th.json.mjs} +1 -1
- package/dist/admin/translations/th.json.mjs.map +1 -0
- package/dist/admin/{chunks/tr-CBlxk5Of.js → translations/tr.json.js} +2 -2
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/{chunks/tr-CWX4cUiB.mjs → translations/tr.json.mjs} +1 -1
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/{chunks/uk-BkF_x68T.js → translations/uk.json.js} +2 -2
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/{chunks/uk-CWOtQQic.mjs → translations/uk.json.mjs} +1 -1
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/{chunks/vi-CAG7iDHR.js → translations/vi.json.js} +2 -2
- package/dist/admin/translations/vi.json.js.map +1 -0
- package/dist/admin/{chunks/vi-geadDLtq.mjs → translations/vi.json.mjs} +1 -1
- package/dist/admin/translations/vi.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-Hans-CtXQdJhw.js → translations/zh-Hans.json.js} +2 -2
- package/dist/admin/translations/zh-Hans.json.js.map +1 -0
- package/dist/admin/{chunks/zh-Hans-fcRf-TLx.mjs → translations/zh-Hans.json.mjs} +1 -1
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-rKHsKNA3.js → translations/zh.json.js} +2 -2
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/{chunks/zh-E4LX--2j.mjs → translations/zh.json.mjs} +1 -1
- package/dist/admin/translations/zh.json.mjs.map +1 -0
- package/dist/admin/utils/baseQuery.js +8 -0
- package/dist/admin/utils/baseQuery.js.map +1 -0
- package/dist/admin/utils/baseQuery.mjs +6 -0
- package/dist/admin/utils/baseQuery.mjs.map +1 -0
- package/dist/admin/utils/getTrad.js +8 -0
- package/dist/admin/utils/getTrad.js.map +1 -0
- package/dist/admin/utils/getTrad.mjs +6 -0
- package/dist/admin/utils/getTrad.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/server/bootstrap.js +57 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +55 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/config/default-plugin-config.js +88 -0
- package/dist/server/config/default-plugin-config.js.map +1 -0
- package/dist/server/config/default-plugin-config.mjs +86 -0
- package/dist/server/config/default-plugin-config.mjs.map +1 -0
- package/dist/server/config/index.js +10 -0
- package/dist/server/config/index.js.map +1 -0
- package/dist/server/config/index.mjs +8 -0
- package/dist/server/config/index.mjs.map +1 -0
- package/dist/server/controllers/documentation.js +185 -0
- package/dist/server/controllers/documentation.js.map +1 -0
- package/dist/server/controllers/documentation.mjs +181 -0
- package/dist/server/controllers/documentation.mjs.map +1 -0
- package/dist/server/controllers/index.js +10 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +8 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/index.js +12 -1586
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +6 -1561
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/middlewares/documentation.js +27 -0
- package/dist/server/middlewares/documentation.js.map +1 -0
- package/dist/server/middlewares/documentation.mjs +25 -0
- package/dist/server/middlewares/documentation.mjs.map +1 -0
- package/dist/server/middlewares/restrict-access.js +23 -0
- package/dist/server/middlewares/restrict-access.js.map +1 -0
- package/dist/server/middlewares/restrict-access.mjs +21 -0
- package/dist/server/middlewares/restrict-access.mjs.map +1 -0
- package/dist/server/{chunks/index--0fU1WeK.js → public/index.html.js} +2 -2
- package/dist/server/public/index.html.js.map +1 -0
- package/dist/server/{chunks/index-Dz3orHaf.mjs → public/index.html.mjs} +1 -1
- package/dist/server/public/index.html.mjs.map +1 -0
- package/dist/server/{chunks/login-CMPqkCFT.js → public/login.html.js} +2 -2
- package/dist/server/public/login.html.js.map +1 -0
- package/dist/server/{chunks/login-CYdORE5u.mjs → public/login.html.mjs} +1 -1
- package/dist/server/public/login.html.mjs.map +1 -0
- package/dist/server/register.js +12 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +10 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/index.js +106 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +104 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/services/documentation.js +182 -0
- package/dist/server/services/documentation.js.map +1 -0
- package/dist/server/services/documentation.mjs +180 -0
- package/dist/server/services/documentation.mjs.map +1 -0
- package/dist/server/services/helpers/build-api-endpoint-path.js +162 -0
- package/dist/server/services/helpers/build-api-endpoint-path.js.map +1 -0
- package/dist/server/services/helpers/build-api-endpoint-path.mjs +141 -0
- package/dist/server/services/helpers/build-api-endpoint-path.mjs.map +1 -0
- package/dist/server/services/helpers/build-component-schema.js +167 -0
- package/dist/server/services/helpers/build-component-schema.js.map +1 -0
- package/dist/server/services/helpers/build-component-schema.mjs +165 -0
- package/dist/server/services/helpers/build-component-schema.mjs.map +1 -0
- package/dist/server/services/helpers/utils/clean-schema-attributes.js +301 -0
- package/dist/server/services/helpers/utils/clean-schema-attributes.js.map +1 -0
- package/dist/server/services/helpers/utils/clean-schema-attributes.mjs +299 -0
- package/dist/server/services/helpers/utils/clean-schema-attributes.mjs.map +1 -0
- package/dist/server/services/helpers/utils/get-api-responses.js +88 -0
- package/dist/server/services/helpers/utils/get-api-responses.js.map +1 -0
- package/dist/server/services/helpers/utils/get-api-responses.mjs +86 -0
- package/dist/server/services/helpers/utils/get-api-responses.mjs.map +1 -0
- package/dist/server/services/helpers/utils/get-schema-data.js +43 -0
- package/dist/server/services/helpers/utils/get-schema-data.js.map +1 -0
- package/dist/server/services/helpers/utils/get-schema-data.mjs +41 -0
- package/dist/server/services/helpers/utils/get-schema-data.mjs.map +1 -0
- package/dist/server/services/helpers/utils/loop-content-type-names.js +40 -0
- package/dist/server/services/helpers/utils/loop-content-type-names.js.map +1 -0
- package/dist/server/services/helpers/utils/loop-content-type-names.mjs +38 -0
- package/dist/server/services/helpers/utils/loop-content-type-names.mjs.map +1 -0
- package/dist/server/services/helpers/utils/pascal-case.js +10 -0
- package/dist/server/services/helpers/utils/pascal-case.js.map +1 -0
- package/dist/server/services/helpers/utils/pascal-case.mjs +8 -0
- package/dist/server/services/helpers/utils/pascal-case.mjs.map +1 -0
- package/dist/server/services/helpers/utils/query-params.js +109 -0
- package/dist/server/services/helpers/utils/query-params.js.map +1 -0
- package/dist/server/services/helpers/utils/query-params.mjs +107 -0
- package/dist/server/services/helpers/utils/query-params.mjs.map +1 -0
- package/dist/server/services/helpers/utils/routes.js +11 -0
- package/dist/server/services/helpers/utils/routes.js.map +1 -0
- package/dist/server/services/helpers/utils/routes.mjs +9 -0
- package/dist/server/services/helpers/utils/routes.mjs.map +1 -0
- package/dist/server/services/index.js +13 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +11 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/override.js +45 -0
- package/dist/server/services/override.js.map +1 -0
- package/dist/server/services/override.mjs +43 -0
- package/dist/server/services/override.mjs.map +1 -0
- package/dist/server/services/utils/get-plugins-that-need-documentation.js +24 -0
- package/dist/server/services/utils/get-plugins-that-need-documentation.js.map +1 -0
- package/dist/server/services/utils/get-plugins-that-need-documentation.mjs +22 -0
- package/dist/server/services/utils/get-plugins-that-need-documentation.mjs.map +1 -0
- package/dist/server/utils.js +10 -0
- package/dist/server/utils.js.map +1 -0
- package/dist/server/utils.mjs +8 -0
- package/dist/server/utils.mjs.map +1 -0
- package/package.json +6 -6
- package/dist/admin/chunks/App-D6yQIQar.mjs.map +0 -1
- package/dist/admin/chunks/App-DC2H8bJ5.js.map +0 -1
- package/dist/admin/chunks/Settings-Cpj-uI9B.js.map +0 -1
- package/dist/admin/chunks/Settings-DyLMOJEx.mjs.map +0 -1
- package/dist/admin/chunks/ar-Bu09tPI1.mjs.map +0 -1
- package/dist/admin/chunks/ar-Dix6VU4a.js.map +0 -1
- package/dist/admin/chunks/cs-C6k-mH5i.js.map +0 -1
- package/dist/admin/chunks/cs-tf-UeGst.mjs.map +0 -1
- package/dist/admin/chunks/de-CMhqnPQP.mjs.map +0 -1
- package/dist/admin/chunks/de-DYskRe8j.js.map +0 -1
- package/dist/admin/chunks/dk-BYJqzR_M.js.map +0 -1
- package/dist/admin/chunks/dk-BmQOOeIc.mjs.map +0 -1
- package/dist/admin/chunks/en-B90IBmYB.js.map +0 -1
- package/dist/admin/chunks/en-Cx8yPuig.mjs.map +0 -1
- package/dist/admin/chunks/es-5WsjlhIl.js.map +0 -1
- package/dist/admin/chunks/es-DAdgO3Ey.mjs.map +0 -1
- package/dist/admin/chunks/fr-B5fjFqKX.mjs.map +0 -1
- package/dist/admin/chunks/fr-C-vHEudQ.js.map +0 -1
- package/dist/admin/chunks/getTrad-AvLNMP3V.js.map +0 -1
- package/dist/admin/chunks/getTrad-D9juLfq6.mjs.map +0 -1
- package/dist/admin/chunks/id-BKiCYOdS.js.map +0 -1
- package/dist/admin/chunks/id-CLApXj97.mjs.map +0 -1
- package/dist/admin/chunks/index-BHy3RKs2.mjs +0 -144
- package/dist/admin/chunks/index-BHy3RKs2.mjs.map +0 -1
- package/dist/admin/chunks/index-BSW-EfNW.js +0 -148
- package/dist/admin/chunks/index-BSW-EfNW.js.map +0 -1
- package/dist/admin/chunks/it-B7SnHLP2.js.map +0 -1
- package/dist/admin/chunks/it-C7GcWYBa.mjs.map +0 -1
- package/dist/admin/chunks/ko-CjOasZmz.js.map +0 -1
- package/dist/admin/chunks/ko-DZvks90a.mjs.map +0 -1
- package/dist/admin/chunks/ms-C2TEZHkD.js.map +0 -1
- package/dist/admin/chunks/ms-Df9gDB9M.mjs.map +0 -1
- package/dist/admin/chunks/nl-BlmTMaTL.mjs.map +0 -1
- package/dist/admin/chunks/nl-CLp2dhr9.js.map +0 -1
- package/dist/admin/chunks/pl-5iT3b9r4.mjs.map +0 -1
- package/dist/admin/chunks/pl-C8WRO2pt.js.map +0 -1
- package/dist/admin/chunks/pt-BK5YbXpM.mjs.map +0 -1
- package/dist/admin/chunks/pt-BR-De5jokla.mjs.map +0 -1
- package/dist/admin/chunks/pt-BR-Ds-dLXzD.js.map +0 -1
- package/dist/admin/chunks/pt-DL-rrjA1.js.map +0 -1
- package/dist/admin/chunks/ru-C_16WuLP.mjs.map +0 -1
- package/dist/admin/chunks/ru-Cqv4k9my.js.map +0 -1
- package/dist/admin/chunks/sk-B7RadPe4.mjs.map +0 -1
- package/dist/admin/chunks/sk-D6l_EMOT.js.map +0 -1
- package/dist/admin/chunks/sv-DK5DOsrV.mjs.map +0 -1
- package/dist/admin/chunks/sv-Xg5gbVO9.js.map +0 -1
- package/dist/admin/chunks/th-DNiRgKQH.mjs.map +0 -1
- package/dist/admin/chunks/th-Pci1U3n6.js.map +0 -1
- package/dist/admin/chunks/tr-CBlxk5Of.js.map +0 -1
- package/dist/admin/chunks/tr-CWX4cUiB.mjs.map +0 -1
- package/dist/admin/chunks/uk-BkF_x68T.js.map +0 -1
- package/dist/admin/chunks/uk-CWOtQQic.mjs.map +0 -1
- package/dist/admin/chunks/vi-CAG7iDHR.js.map +0 -1
- package/dist/admin/chunks/vi-geadDLtq.mjs.map +0 -1
- package/dist/admin/chunks/zh-E4LX--2j.mjs.map +0 -1
- package/dist/admin/chunks/zh-Hans-CtXQdJhw.js.map +0 -1
- package/dist/admin/chunks/zh-Hans-fcRf-TLx.mjs.map +0 -1
- package/dist/admin/chunks/zh-rKHsKNA3.js.map +0 -1
- package/dist/server/chunks/index--0fU1WeK.js.map +0 -1
- package/dist/server/chunks/index-Dz3orHaf.mjs.map +0 -1
- package/dist/server/chunks/login-CMPqkCFT.js.map +0 -1
- package/dist/server/chunks/login-CYdORE5u.mjs.map +0 -1
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
import getSchemaData from './get-schema-data.mjs';
|
|
2
|
+
import pascalCase from './pascal-case.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @description - Convert attribute component names to OpenAPI component names
|
|
6
|
+
*
|
|
7
|
+
* @returns OpenAPI component name
|
|
8
|
+
*/ const convertComponentName = (component, isRef = false)=>{
|
|
9
|
+
const cleanComponentName = `${pascalCase(component)}Component`;
|
|
10
|
+
if (isRef) {
|
|
11
|
+
return `#/components/schemas/${cleanComponentName}`;
|
|
12
|
+
}
|
|
13
|
+
return cleanComponentName;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @description - Converts types found on attributes to OpenAPI acceptable data types
|
|
17
|
+
*
|
|
18
|
+
* @returns Attributes using OpenAPI acceptable data types
|
|
19
|
+
*/ const cleanSchemaAttributes = (attributes, { typeMap = new Map(), isRequest = false, didAddStrapiComponentsToSchemas })=>{
|
|
20
|
+
const schemaAttributes = {};
|
|
21
|
+
for (const prop of Object.keys(attributes)){
|
|
22
|
+
const attribute = attributes[prop];
|
|
23
|
+
switch(attribute.type){
|
|
24
|
+
case 'password':
|
|
25
|
+
{
|
|
26
|
+
if (!isRequest) {
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
schemaAttributes[prop] = {
|
|
30
|
+
type: 'string',
|
|
31
|
+
format: 'password',
|
|
32
|
+
example: '*******'
|
|
33
|
+
};
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
case 'email':
|
|
37
|
+
{
|
|
38
|
+
schemaAttributes[prop] = {
|
|
39
|
+
type: 'string',
|
|
40
|
+
format: 'email'
|
|
41
|
+
};
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case 'string':
|
|
45
|
+
case 'text':
|
|
46
|
+
case 'richtext':
|
|
47
|
+
{
|
|
48
|
+
schemaAttributes[prop] = {
|
|
49
|
+
type: 'string'
|
|
50
|
+
};
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case 'timestamp':
|
|
54
|
+
{
|
|
55
|
+
schemaAttributes[prop] = {
|
|
56
|
+
type: 'string',
|
|
57
|
+
format: 'timestamp',
|
|
58
|
+
example: Date.now()
|
|
59
|
+
};
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
case 'time':
|
|
63
|
+
{
|
|
64
|
+
schemaAttributes[prop] = {
|
|
65
|
+
type: 'string',
|
|
66
|
+
format: 'time',
|
|
67
|
+
example: '12:54.000'
|
|
68
|
+
};
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
case 'date':
|
|
72
|
+
{
|
|
73
|
+
schemaAttributes[prop] = {
|
|
74
|
+
type: 'string',
|
|
75
|
+
format: 'date'
|
|
76
|
+
};
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
case 'datetime':
|
|
80
|
+
{
|
|
81
|
+
schemaAttributes[prop] = {
|
|
82
|
+
type: 'string',
|
|
83
|
+
format: 'date-time'
|
|
84
|
+
};
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
case 'boolean':
|
|
88
|
+
{
|
|
89
|
+
schemaAttributes[prop] = {
|
|
90
|
+
type: 'boolean'
|
|
91
|
+
};
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
case 'enumeration':
|
|
95
|
+
{
|
|
96
|
+
schemaAttributes[prop] = {
|
|
97
|
+
type: 'string',
|
|
98
|
+
enum: [
|
|
99
|
+
...attribute.enum
|
|
100
|
+
]
|
|
101
|
+
};
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
case 'decimal':
|
|
105
|
+
case 'float':
|
|
106
|
+
{
|
|
107
|
+
schemaAttributes[prop] = {
|
|
108
|
+
type: 'number',
|
|
109
|
+
format: 'float'
|
|
110
|
+
};
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
case 'integer':
|
|
114
|
+
{
|
|
115
|
+
schemaAttributes[prop] = {
|
|
116
|
+
type: 'integer'
|
|
117
|
+
};
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
case 'biginteger':
|
|
121
|
+
{
|
|
122
|
+
schemaAttributes[prop] = {
|
|
123
|
+
type: 'string',
|
|
124
|
+
pattern: '^\\d*$',
|
|
125
|
+
example: '123456789'
|
|
126
|
+
};
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case 'json':
|
|
130
|
+
case 'blocks':
|
|
131
|
+
{
|
|
132
|
+
schemaAttributes[prop] = {};
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
case 'uid':
|
|
136
|
+
{
|
|
137
|
+
schemaAttributes[prop] = {
|
|
138
|
+
type: 'string'
|
|
139
|
+
};
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
case 'component':
|
|
143
|
+
{
|
|
144
|
+
const componentAttributes = strapi.components[attribute.component].attributes;
|
|
145
|
+
const rawComponentSchema = {
|
|
146
|
+
type: 'object',
|
|
147
|
+
properties: {
|
|
148
|
+
...isRequest ? {} : {
|
|
149
|
+
id: {
|
|
150
|
+
type: 'number'
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
...cleanSchemaAttributes(componentAttributes, {
|
|
154
|
+
typeMap,
|
|
155
|
+
isRequest,
|
|
156
|
+
didAddStrapiComponentsToSchemas
|
|
157
|
+
})
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
const refComponentSchema = {
|
|
161
|
+
$ref: convertComponentName(attribute.component, true)
|
|
162
|
+
};
|
|
163
|
+
const componentExists = didAddStrapiComponentsToSchemas(convertComponentName(attribute.component), rawComponentSchema);
|
|
164
|
+
const finalComponentSchema = componentExists ? refComponentSchema : rawComponentSchema;
|
|
165
|
+
if (attribute.repeatable) {
|
|
166
|
+
schemaAttributes[prop] = {
|
|
167
|
+
type: 'array',
|
|
168
|
+
items: finalComponentSchema
|
|
169
|
+
};
|
|
170
|
+
} else {
|
|
171
|
+
schemaAttributes[prop] = finalComponentSchema;
|
|
172
|
+
}
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
case 'dynamiczone':
|
|
176
|
+
{
|
|
177
|
+
const components = attribute.components.map((component)=>{
|
|
178
|
+
const componentAttributes = strapi.components[component].attributes;
|
|
179
|
+
const rawComponentSchema = {
|
|
180
|
+
type: 'object',
|
|
181
|
+
properties: {
|
|
182
|
+
...isRequest ? {} : {
|
|
183
|
+
id: {
|
|
184
|
+
type: 'number'
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
__component: {
|
|
188
|
+
type: 'string',
|
|
189
|
+
enum: [
|
|
190
|
+
component
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
...cleanSchemaAttributes(componentAttributes, {
|
|
194
|
+
typeMap,
|
|
195
|
+
isRequest,
|
|
196
|
+
didAddStrapiComponentsToSchemas
|
|
197
|
+
})
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
const refComponentSchema = {
|
|
201
|
+
$ref: convertComponentName(component, true)
|
|
202
|
+
};
|
|
203
|
+
const componentExists = didAddStrapiComponentsToSchemas(convertComponentName(component), rawComponentSchema);
|
|
204
|
+
const finalComponentSchema = componentExists ? refComponentSchema : rawComponentSchema;
|
|
205
|
+
return finalComponentSchema;
|
|
206
|
+
});
|
|
207
|
+
let discriminator;
|
|
208
|
+
if (components.every((component)=>Object.hasOwn(component, '$ref'))) {
|
|
209
|
+
discriminator = {
|
|
210
|
+
propertyName: '__component',
|
|
211
|
+
mapping: attribute.components.reduce((acc, component)=>{
|
|
212
|
+
acc[component] = convertComponentName(component, true);
|
|
213
|
+
return acc;
|
|
214
|
+
}, {})
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
schemaAttributes[prop] = {
|
|
218
|
+
type: 'array',
|
|
219
|
+
items: {
|
|
220
|
+
anyOf: components
|
|
221
|
+
},
|
|
222
|
+
discriminator
|
|
223
|
+
};
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
case 'media':
|
|
227
|
+
{
|
|
228
|
+
const imageAttributes = strapi.contentType('plugin::upload.file').attributes;
|
|
229
|
+
const isListOfEntities = attribute.multiple ?? false;
|
|
230
|
+
if (isRequest) {
|
|
231
|
+
const oneOfType = {
|
|
232
|
+
oneOf: [
|
|
233
|
+
{
|
|
234
|
+
type: 'integer'
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
type: 'string'
|
|
238
|
+
}
|
|
239
|
+
],
|
|
240
|
+
example: 'string or id'
|
|
241
|
+
};
|
|
242
|
+
schemaAttributes[prop] = isListOfEntities ? {
|
|
243
|
+
type: 'array',
|
|
244
|
+
items: oneOfType
|
|
245
|
+
} : oneOfType;
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
schemaAttributes[prop] = getSchemaData(isListOfEntities, cleanSchemaAttributes(imageAttributes, {
|
|
249
|
+
typeMap,
|
|
250
|
+
didAddStrapiComponentsToSchemas
|
|
251
|
+
}));
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
case 'relation':
|
|
255
|
+
{
|
|
256
|
+
const isListOfEntities = attribute.relation.includes('ToMany');
|
|
257
|
+
if (isRequest) {
|
|
258
|
+
const oneOfType = {
|
|
259
|
+
oneOf: [
|
|
260
|
+
{
|
|
261
|
+
type: 'integer'
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
type: 'string'
|
|
265
|
+
}
|
|
266
|
+
],
|
|
267
|
+
example: 'string or id'
|
|
268
|
+
};
|
|
269
|
+
schemaAttributes[prop] = isListOfEntities ? {
|
|
270
|
+
type: 'array',
|
|
271
|
+
items: oneOfType
|
|
272
|
+
} : oneOfType;
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
if (!('target' in attribute) || !attribute.target || typeMap.has(attribute.target)) {
|
|
276
|
+
schemaAttributes[prop] = getSchemaData(isListOfEntities, {});
|
|
277
|
+
break;
|
|
278
|
+
}
|
|
279
|
+
typeMap.set(attribute.target, true);
|
|
280
|
+
const targetAttributes = strapi.contentType(attribute.target).attributes;
|
|
281
|
+
schemaAttributes[prop] = getSchemaData(isListOfEntities, cleanSchemaAttributes(targetAttributes, {
|
|
282
|
+
typeMap,
|
|
283
|
+
isRequest,
|
|
284
|
+
didAddStrapiComponentsToSchemas
|
|
285
|
+
}));
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
default:
|
|
289
|
+
{
|
|
290
|
+
// @ts-expect-error - This is a catch all for any other types
|
|
291
|
+
throw new Error(`Invalid type ${attribute.type} while generating open api schema.`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return schemaAttributes;
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
export { cleanSchemaAttributes as default };
|
|
299
|
+
//# sourceMappingURL=clean-schema-attributes.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clean-schema-attributes.mjs","sources":["../../../../../server/src/services/helpers/utils/clean-schema-attributes.ts"],"sourcesContent":["import type { Struct } from '@strapi/types';\nimport type { OpenAPIV3 } from 'openapi-types';\n\nimport getSchemaData from './get-schema-data';\nimport pascalCase from './pascal-case';\n\ninterface Options {\n typeMap?: Map<string, boolean>;\n isRequest?: boolean;\n didAddStrapiComponentsToSchemas: (name: string, schema: object) => boolean;\n}\n\n/**\n * @description - Convert attribute component names to OpenAPI component names\n *\n * @returns OpenAPI component name\n */\nconst convertComponentName = (component: string, isRef = false): string => {\n const cleanComponentName = `${pascalCase(component)}Component`;\n\n if (isRef) {\n return `#/components/schemas/${cleanComponentName}`;\n }\n return cleanComponentName;\n};\n\n/**\n * @description - Converts types found on attributes to OpenAPI acceptable data types\n *\n * @returns Attributes using OpenAPI acceptable data types\n */\nconst cleanSchemaAttributes = (\n attributes: Struct.SchemaAttributes,\n { typeMap = new Map(), isRequest = false, didAddStrapiComponentsToSchemas }: Options\n) => {\n const schemaAttributes: Record<string, OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject> = {};\n\n for (const prop of Object.keys(attributes)) {\n const attribute = attributes[prop];\n\n switch (attribute.type) {\n case 'password': {\n if (!isRequest) {\n break;\n }\n\n schemaAttributes[prop] = { type: 'string', format: 'password', example: '*******' };\n break;\n }\n case 'email': {\n schemaAttributes[prop] = { type: 'string', format: 'email' };\n break;\n }\n case 'string':\n case 'text':\n case 'richtext': {\n schemaAttributes[prop] = { type: 'string' };\n break;\n }\n case 'timestamp': {\n schemaAttributes[prop] = { type: 'string', format: 'timestamp', example: Date.now() };\n break;\n }\n case 'time': {\n schemaAttributes[prop] = { type: 'string', format: 'time', example: '12:54.000' };\n break;\n }\n case 'date': {\n schemaAttributes[prop] = { type: 'string', format: 'date' };\n break;\n }\n case 'datetime': {\n schemaAttributes[prop] = { type: 'string', format: 'date-time' };\n break;\n }\n case 'boolean': {\n schemaAttributes[prop] = { type: 'boolean' };\n break;\n }\n case 'enumeration': {\n schemaAttributes[prop] = { type: 'string', enum: [...attribute.enum] };\n break;\n }\n case 'decimal':\n case 'float': {\n schemaAttributes[prop] = { type: 'number', format: 'float' };\n break;\n }\n case 'integer': {\n schemaAttributes[prop] = { type: 'integer' };\n break;\n }\n case 'biginteger': {\n schemaAttributes[prop] = { type: 'string', pattern: '^\\\\d*$', example: '123456789' };\n break;\n }\n case 'json':\n case 'blocks': {\n schemaAttributes[prop] = {};\n break;\n }\n case 'uid': {\n schemaAttributes[prop] = { type: 'string' };\n break;\n }\n case 'component': {\n const componentAttributes = strapi.components[attribute.component].attributes;\n const rawComponentSchema: OpenAPIV3.SchemaObject = {\n type: 'object',\n properties: {\n ...(isRequest ? {} : { id: { type: 'number' } }),\n ...cleanSchemaAttributes(componentAttributes, {\n typeMap,\n isRequest,\n didAddStrapiComponentsToSchemas,\n }),\n },\n };\n\n const refComponentSchema: OpenAPIV3.ReferenceObject = {\n $ref: convertComponentName(attribute.component, true),\n };\n\n const componentExists = didAddStrapiComponentsToSchemas(\n convertComponentName(attribute.component),\n rawComponentSchema\n );\n\n const finalComponentSchema = componentExists ? refComponentSchema : rawComponentSchema;\n if (attribute.repeatable) {\n schemaAttributes[prop] = {\n type: 'array',\n items: finalComponentSchema,\n };\n } else {\n schemaAttributes[prop] = finalComponentSchema;\n }\n break;\n }\n case 'dynamiczone': {\n const components = attribute.components.map((component) => {\n const componentAttributes = strapi.components[component].attributes;\n const rawComponentSchema: OpenAPIV3.SchemaObject = {\n type: 'object',\n properties: {\n ...(isRequest ? {} : { id: { type: 'number' } }),\n __component: { type: 'string', enum: [component] },\n ...cleanSchemaAttributes(componentAttributes, {\n typeMap,\n isRequest,\n didAddStrapiComponentsToSchemas,\n }),\n },\n };\n\n const refComponentSchema: OpenAPIV3.ReferenceObject = {\n $ref: convertComponentName(component, true),\n };\n\n const componentExists = didAddStrapiComponentsToSchemas(\n convertComponentName(component),\n rawComponentSchema\n );\n const finalComponentSchema = componentExists ? refComponentSchema : rawComponentSchema;\n return finalComponentSchema;\n });\n let discriminator: OpenAPIV3.DiscriminatorObject | undefined;\n if (components.every((component) => Object.hasOwn(component, '$ref'))) {\n discriminator = {\n propertyName: '__component',\n mapping: attribute.components.reduce(\n (acc, component) => {\n acc[component] = convertComponentName(component, true);\n return acc;\n },\n {} as {\n [value: string]: string;\n }\n ),\n };\n }\n\n schemaAttributes[prop] = {\n type: 'array',\n items: {\n anyOf: components,\n },\n discriminator,\n };\n break;\n }\n case 'media': {\n const imageAttributes = strapi.contentType('plugin::upload.file').attributes;\n const isListOfEntities = attribute.multiple ?? false;\n\n if (isRequest) {\n const oneOfType: OpenAPIV3.SchemaObject = {\n oneOf: [{ type: 'integer' }, { type: 'string' }],\n example: 'string or id',\n };\n\n schemaAttributes[prop] = isListOfEntities\n ? { type: 'array', items: oneOfType }\n : oneOfType;\n break;\n }\n\n schemaAttributes[prop] = getSchemaData(\n isListOfEntities,\n cleanSchemaAttributes(imageAttributes, { typeMap, didAddStrapiComponentsToSchemas })\n );\n break;\n }\n\n case 'relation': {\n const isListOfEntities = attribute.relation.includes('ToMany');\n\n if (isRequest) {\n const oneOfType: OpenAPIV3.SchemaObject = {\n oneOf: [{ type: 'integer' }, { type: 'string' }],\n example: 'string or id',\n };\n\n schemaAttributes[prop] = isListOfEntities\n ? { type: 'array', items: oneOfType }\n : oneOfType;\n break;\n }\n\n if (!('target' in attribute) || !attribute.target || typeMap.has(attribute.target)) {\n schemaAttributes[prop] = getSchemaData(isListOfEntities, {});\n\n break;\n }\n\n typeMap.set(attribute.target, true);\n const targetAttributes = strapi.contentType(attribute.target).attributes;\n\n schemaAttributes[prop] = getSchemaData(\n isListOfEntities,\n cleanSchemaAttributes(targetAttributes, {\n typeMap,\n isRequest,\n didAddStrapiComponentsToSchemas,\n })\n );\n\n break;\n }\n default: {\n // @ts-expect-error - This is a catch all for any other types\n throw new Error(`Invalid type ${attribute.type} while generating open api schema.`);\n }\n }\n }\n\n return schemaAttributes;\n};\n\nexport default cleanSchemaAttributes;\n"],"names":["convertComponentName","component","isRef","cleanComponentName","pascalCase","cleanSchemaAttributes","attributes","typeMap","Map","isRequest","didAddStrapiComponentsToSchemas","schemaAttributes","prop","Object","keys","attribute","type","format","example","Date","now","enum","pattern","componentAttributes","strapi","components","rawComponentSchema","properties","id","refComponentSchema","$ref","componentExists","finalComponentSchema","repeatable","items","map","__component","discriminator","every","hasOwn","propertyName","mapping","reduce","acc","anyOf","imageAttributes","contentType","isListOfEntities","multiple","oneOfType","oneOf","getSchemaData","relation","includes","target","has","set","targetAttributes","Error"],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var pascalCase = require('./pascal-case.js');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @description - Builds the Swagger response object for a given api
|
|
7
|
+
*/ const getApiResponse = ({ uniqueName, route, isListOfEntities = false })=>{
|
|
8
|
+
const getSchema = ()=>{
|
|
9
|
+
if (route.method === 'DELETE') {
|
|
10
|
+
return {
|
|
11
|
+
type: 'integer',
|
|
12
|
+
format: 'int64'
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
if (isListOfEntities) {
|
|
16
|
+
return {
|
|
17
|
+
$ref: `#/components/schemas/${pascalCase(uniqueName)}ListResponse`
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
$ref: `#/components/schemas/${pascalCase(uniqueName)}Response`
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
const schema = getSchema();
|
|
25
|
+
return {
|
|
26
|
+
200: {
|
|
27
|
+
description: 'OK',
|
|
28
|
+
content: {
|
|
29
|
+
'application/json': {
|
|
30
|
+
schema
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
400: {
|
|
35
|
+
description: 'Bad Request',
|
|
36
|
+
content: {
|
|
37
|
+
'application/json': {
|
|
38
|
+
schema: {
|
|
39
|
+
$ref: '#/components/schemas/Error'
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
401: {
|
|
45
|
+
description: 'Unauthorized',
|
|
46
|
+
content: {
|
|
47
|
+
'application/json': {
|
|
48
|
+
schema: {
|
|
49
|
+
$ref: '#/components/schemas/Error'
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
403: {
|
|
55
|
+
description: 'Forbidden',
|
|
56
|
+
content: {
|
|
57
|
+
'application/json': {
|
|
58
|
+
schema: {
|
|
59
|
+
$ref: '#/components/schemas/Error'
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
404: {
|
|
65
|
+
description: 'Not Found',
|
|
66
|
+
content: {
|
|
67
|
+
'application/json': {
|
|
68
|
+
schema: {
|
|
69
|
+
$ref: '#/components/schemas/Error'
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
500: {
|
|
75
|
+
description: 'Internal Server Error',
|
|
76
|
+
content: {
|
|
77
|
+
'application/json': {
|
|
78
|
+
schema: {
|
|
79
|
+
$ref: '#/components/schemas/Error'
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
module.exports = getApiResponse;
|
|
88
|
+
//# sourceMappingURL=get-api-responses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-api-responses.js","sources":["../../../../../server/src/services/helpers/utils/get-api-responses.ts"],"sourcesContent":["import type { OpenAPIV3 } from 'openapi-types';\nimport pascalCase from './pascal-case';\n\ninterface Options {\n uniqueName: string;\n route: {\n method: string;\n };\n isListOfEntities?: boolean;\n isLocalizationPath?: boolean;\n}\n\n/**\n * @description - Builds the Swagger response object for a given api\n */\nconst getApiResponse = ({\n uniqueName,\n route,\n isListOfEntities = false,\n}: Options): OpenAPIV3.ResponsesObject => {\n const getSchema = (): OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject => {\n if (route.method === 'DELETE') {\n return {\n type: 'integer',\n format: 'int64',\n };\n }\n\n if (isListOfEntities) {\n return { $ref: `#/components/schemas/${pascalCase(uniqueName)}ListResponse` };\n }\n\n return { $ref: `#/components/schemas/${pascalCase(uniqueName)}Response` };\n };\n\n const schema = getSchema();\n\n return {\n 200: {\n description: 'OK',\n content: {\n 'application/json': {\n schema,\n },\n },\n },\n 400: {\n description: 'Bad Request',\n content: {\n 'application/json': {\n schema: {\n $ref: '#/components/schemas/Error',\n },\n },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: {\n 'application/json': {\n schema: {\n $ref: '#/components/schemas/Error',\n },\n },\n },\n },\n 403: {\n description: 'Forbidden',\n content: {\n 'application/json': {\n schema: {\n $ref: '#/components/schemas/Error',\n },\n },\n },\n },\n 404: {\n description: 'Not Found',\n content: {\n 'application/json': {\n schema: {\n $ref: '#/components/schemas/Error',\n },\n },\n },\n },\n 500: {\n description: 'Internal Server Error',\n content: {\n 'application/json': {\n schema: {\n $ref: '#/components/schemas/Error',\n },\n },\n },\n },\n };\n};\n\nexport default getApiResponse;\n"],"names":["getApiResponse","uniqueName","route","isListOfEntities","getSchema","method","type","format","$ref","pascalCase","schema","description","content"],"mappings":";;;;AAYA;;IAGA,MAAMA,cAAiB,GAAA,CAAC,EACtBC,UAAU,EACVC,KAAK,EACLC,gBAAmB,GAAA,KAAK,EAChB,GAAA;AACR,IAAA,MAAMC,SAAY,GAAA,IAAA;QAChB,IAAIF,KAAAA,CAAMG,MAAM,KAAK,QAAU,EAAA;YAC7B,OAAO;gBACLC,IAAM,EAAA,SAAA;gBACNC,MAAQ,EAAA;AACV,aAAA;AACF;AAEA,QAAA,IAAIJ,gBAAkB,EAAA;YACpB,OAAO;AAAEK,gBAAAA,IAAAA,EAAM,CAAC,qBAAqB,EAAEC,UAAWR,CAAAA,UAAAA,CAAAA,CAAY,YAAY;AAAE,aAAA;AAC9E;QAEA,OAAO;AAAEO,YAAAA,IAAAA,EAAM,CAAC,qBAAqB,EAAEC,UAAWR,CAAAA,UAAAA,CAAAA,CAAY,QAAQ;AAAE,SAAA;AAC1E,KAAA;AAEA,IAAA,MAAMS,MAASN,GAAAA,SAAAA,EAAAA;IAEf,OAAO;QACL,GAAK,EAAA;YACHO,WAAa,EAAA,IAAA;YACbC,OAAS,EAAA;gBACP,kBAAoB,EAAA;AAClBF,oBAAAA;AACF;AACF;AACF,SAAA;QACA,GAAK,EAAA;YACHC,WAAa,EAAA,aAAA;YACbC,OAAS,EAAA;gBACP,kBAAoB,EAAA;oBAClBF,MAAQ,EAAA;wBACNF,IAAM,EAAA;AACR;AACF;AACF;AACF,SAAA;QACA,GAAK,EAAA;YACHG,WAAa,EAAA,cAAA;YACbC,OAAS,EAAA;gBACP,kBAAoB,EAAA;oBAClBF,MAAQ,EAAA;wBACNF,IAAM,EAAA;AACR;AACF;AACF;AACF,SAAA;QACA,GAAK,EAAA;YACHG,WAAa,EAAA,WAAA;YACbC,OAAS,EAAA;gBACP,kBAAoB,EAAA;oBAClBF,MAAQ,EAAA;wBACNF,IAAM,EAAA;AACR;AACF;AACF;AACF,SAAA;QACA,GAAK,EAAA;YACHG,WAAa,EAAA,WAAA;YACbC,OAAS,EAAA;gBACP,kBAAoB,EAAA;oBAClBF,MAAQ,EAAA;wBACNF,IAAM,EAAA;AACR;AACF;AACF;AACF,SAAA;QACA,GAAK,EAAA;YACHG,WAAa,EAAA,uBAAA;YACbC,OAAS,EAAA;gBACP,kBAAoB,EAAA;oBAClBF,MAAQ,EAAA;wBACNF,IAAM,EAAA;AACR;AACF;AACF;AACF;AACF,KAAA;AACF;;;;"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import pascalCase from './pascal-case.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description - Builds the Swagger response object for a given api
|
|
5
|
+
*/ const getApiResponse = ({ uniqueName, route, isListOfEntities = false })=>{
|
|
6
|
+
const getSchema = ()=>{
|
|
7
|
+
if (route.method === 'DELETE') {
|
|
8
|
+
return {
|
|
9
|
+
type: 'integer',
|
|
10
|
+
format: 'int64'
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
if (isListOfEntities) {
|
|
14
|
+
return {
|
|
15
|
+
$ref: `#/components/schemas/${pascalCase(uniqueName)}ListResponse`
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
$ref: `#/components/schemas/${pascalCase(uniqueName)}Response`
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
const schema = getSchema();
|
|
23
|
+
return {
|
|
24
|
+
200: {
|
|
25
|
+
description: 'OK',
|
|
26
|
+
content: {
|
|
27
|
+
'application/json': {
|
|
28
|
+
schema
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
400: {
|
|
33
|
+
description: 'Bad Request',
|
|
34
|
+
content: {
|
|
35
|
+
'application/json': {
|
|
36
|
+
schema: {
|
|
37
|
+
$ref: '#/components/schemas/Error'
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
401: {
|
|
43
|
+
description: 'Unauthorized',
|
|
44
|
+
content: {
|
|
45
|
+
'application/json': {
|
|
46
|
+
schema: {
|
|
47
|
+
$ref: '#/components/schemas/Error'
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
403: {
|
|
53
|
+
description: 'Forbidden',
|
|
54
|
+
content: {
|
|
55
|
+
'application/json': {
|
|
56
|
+
schema: {
|
|
57
|
+
$ref: '#/components/schemas/Error'
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
404: {
|
|
63
|
+
description: 'Not Found',
|
|
64
|
+
content: {
|
|
65
|
+
'application/json': {
|
|
66
|
+
schema: {
|
|
67
|
+
$ref: '#/components/schemas/Error'
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
500: {
|
|
73
|
+
description: 'Internal Server Error',
|
|
74
|
+
content: {
|
|
75
|
+
'application/json': {
|
|
76
|
+
schema: {
|
|
77
|
+
$ref: '#/components/schemas/Error'
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export { getApiResponse as default };
|
|
86
|
+
//# sourceMappingURL=get-api-responses.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-api-responses.mjs","sources":["../../../../../server/src/services/helpers/utils/get-api-responses.ts"],"sourcesContent":["import type { OpenAPIV3 } from 'openapi-types';\nimport pascalCase from './pascal-case';\n\ninterface Options {\n uniqueName: string;\n route: {\n method: string;\n };\n isListOfEntities?: boolean;\n isLocalizationPath?: boolean;\n}\n\n/**\n * @description - Builds the Swagger response object for a given api\n */\nconst getApiResponse = ({\n uniqueName,\n route,\n isListOfEntities = false,\n}: Options): OpenAPIV3.ResponsesObject => {\n const getSchema = (): OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject => {\n if (route.method === 'DELETE') {\n return {\n type: 'integer',\n format: 'int64',\n };\n }\n\n if (isListOfEntities) {\n return { $ref: `#/components/schemas/${pascalCase(uniqueName)}ListResponse` };\n }\n\n return { $ref: `#/components/schemas/${pascalCase(uniqueName)}Response` };\n };\n\n const schema = getSchema();\n\n return {\n 200: {\n description: 'OK',\n content: {\n 'application/json': {\n schema,\n },\n },\n },\n 400: {\n description: 'Bad Request',\n content: {\n 'application/json': {\n schema: {\n $ref: '#/components/schemas/Error',\n },\n },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: {\n 'application/json': {\n schema: {\n $ref: '#/components/schemas/Error',\n },\n },\n },\n },\n 403: {\n description: 'Forbidden',\n content: {\n 'application/json': {\n schema: {\n $ref: '#/components/schemas/Error',\n },\n },\n },\n },\n 404: {\n description: 'Not Found',\n content: {\n 'application/json': {\n schema: {\n $ref: '#/components/schemas/Error',\n },\n },\n },\n },\n 500: {\n description: 'Internal Server Error',\n content: {\n 'application/json': {\n schema: {\n $ref: '#/components/schemas/Error',\n },\n },\n },\n },\n };\n};\n\nexport default getApiResponse;\n"],"names":["getApiResponse","uniqueName","route","isListOfEntities","getSchema","method","type","format","$ref","pascalCase","schema","description","content"],"mappings":";;AAYA;;IAGA,MAAMA,cAAiB,GAAA,CAAC,EACtBC,UAAU,EACVC,KAAK,EACLC,gBAAmB,GAAA,KAAK,EAChB,GAAA;AACR,IAAA,MAAMC,SAAY,GAAA,IAAA;QAChB,IAAIF,KAAAA,CAAMG,MAAM,KAAK,QAAU,EAAA;YAC7B,OAAO;gBACLC,IAAM,EAAA,SAAA;gBACNC,MAAQ,EAAA;AACV,aAAA;AACF;AAEA,QAAA,IAAIJ,gBAAkB,EAAA;YACpB,OAAO;AAAEK,gBAAAA,IAAAA,EAAM,CAAC,qBAAqB,EAAEC,UAAWR,CAAAA,UAAAA,CAAAA,CAAY,YAAY;AAAE,aAAA;AAC9E;QAEA,OAAO;AAAEO,YAAAA,IAAAA,EAAM,CAAC,qBAAqB,EAAEC,UAAWR,CAAAA,UAAAA,CAAAA,CAAY,QAAQ;AAAE,SAAA;AAC1E,KAAA;AAEA,IAAA,MAAMS,MAASN,GAAAA,SAAAA,EAAAA;IAEf,OAAO;QACL,GAAK,EAAA;YACHO,WAAa,EAAA,IAAA;YACbC,OAAS,EAAA;gBACP,kBAAoB,EAAA;AAClBF,oBAAAA;AACF;AACF;AACF,SAAA;QACA,GAAK,EAAA;YACHC,WAAa,EAAA,aAAA;YACbC,OAAS,EAAA;gBACP,kBAAoB,EAAA;oBAClBF,MAAQ,EAAA;wBACNF,IAAM,EAAA;AACR;AACF;AACF;AACF,SAAA;QACA,GAAK,EAAA;YACHG,WAAa,EAAA,cAAA;YACbC,OAAS,EAAA;gBACP,kBAAoB,EAAA;oBAClBF,MAAQ,EAAA;wBACNF,IAAM,EAAA;AACR;AACF;AACF;AACF,SAAA;QACA,GAAK,EAAA;YACHG,WAAa,EAAA,WAAA;YACbC,OAAS,EAAA;gBACP,kBAAoB,EAAA;oBAClBF,MAAQ,EAAA;wBACNF,IAAM,EAAA;AACR;AACF;AACF;AACF,SAAA;QACA,GAAK,EAAA;YACHG,WAAa,EAAA,WAAA;YACbC,OAAS,EAAA;gBACP,kBAAoB,EAAA;oBAClBF,MAAQ,EAAA;wBACNF,IAAM,EAAA;AACR;AACF;AACF;AACF,SAAA;QACA,GAAK,EAAA;YACHG,WAAa,EAAA,uBAAA;YACbC,OAAS,EAAA;gBACP,kBAAoB,EAAA;oBAClBF,MAAQ,EAAA;wBACNF,IAAM,EAAA;AACR;AACF;AACF;AACF;AACF,KAAA;AACF;;;;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @description Determines the format of the data response
|
|
5
|
+
*
|
|
6
|
+
* @param {boolean} isListOfEntities - Checks for a multiple entities
|
|
7
|
+
* @param {object} attributes - The attributes found on a contentType
|
|
8
|
+
|
|
9
|
+
* @returns object | array of attributes
|
|
10
|
+
*/ var getSchemaData = ((isListOfEntities, attributes)=>{
|
|
11
|
+
if (isListOfEntities) {
|
|
12
|
+
return {
|
|
13
|
+
type: 'array',
|
|
14
|
+
items: {
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties: {
|
|
17
|
+
id: {
|
|
18
|
+
type: 'number'
|
|
19
|
+
},
|
|
20
|
+
documentId: {
|
|
21
|
+
type: 'string'
|
|
22
|
+
},
|
|
23
|
+
...attributes
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
type: 'object',
|
|
30
|
+
properties: {
|
|
31
|
+
id: {
|
|
32
|
+
type: 'number'
|
|
33
|
+
},
|
|
34
|
+
documentId: {
|
|
35
|
+
type: 'string'
|
|
36
|
+
},
|
|
37
|
+
...attributes
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
module.exports = getSchemaData;
|
|
43
|
+
//# sourceMappingURL=get-schema-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-schema-data.js","sources":["../../../../../server/src/services/helpers/utils/get-schema-data.ts"],"sourcesContent":["import type { OpenAPIV3 } from 'openapi-types';\n\n/**\n * @description Determines the format of the data response\n *\n * @param {boolean} isListOfEntities - Checks for a multiple entities\n * @param {object} attributes - The attributes found on a contentType\n\n * @returns object | array of attributes\n */\nexport default (\n isListOfEntities: boolean,\n attributes: Record<string, OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject>\n): OpenAPIV3.SchemaObject => {\n if (isListOfEntities) {\n return {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n id: { type: 'number' },\n documentId: { type: 'string' },\n ...attributes,\n },\n },\n };\n }\n\n return {\n type: 'object',\n properties: {\n id: { type: 'number' },\n documentId: { type: 'string' },\n ...attributes,\n },\n };\n};\n"],"names":["isListOfEntities","attributes","type","items","properties","id","documentId"],"mappings":";;AAEA;;;;;;;IAQA,oBAAe,CAAA,CACbA,gBACAC,EAAAA,UAAAA,GAAAA;AAEA,IAAA,IAAID,gBAAkB,EAAA;QACpB,OAAO;YACLE,IAAM,EAAA,OAAA;YACNC,KAAO,EAAA;gBACLD,IAAM,EAAA,QAAA;gBACNE,UAAY,EAAA;oBACVC,EAAI,EAAA;wBAAEH,IAAM,EAAA;AAAS,qBAAA;oBACrBI,UAAY,EAAA;wBAAEJ,IAAM,EAAA;AAAS,qBAAA;AAC7B,oBAAA,GAAGD;AACL;AACF;AACF,SAAA;AACF;IAEA,OAAO;QACLC,IAAM,EAAA,QAAA;QACNE,UAAY,EAAA;YACVC,EAAI,EAAA;gBAAEH,IAAM,EAAA;AAAS,aAAA;YACrBI,UAAY,EAAA;gBAAEJ,IAAM,EAAA;AAAS,aAAA;AAC7B,YAAA,GAAGD;AACL;AACF,KAAA;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Determines the format of the data response
|
|
3
|
+
*
|
|
4
|
+
* @param {boolean} isListOfEntities - Checks for a multiple entities
|
|
5
|
+
* @param {object} attributes - The attributes found on a contentType
|
|
6
|
+
|
|
7
|
+
* @returns object | array of attributes
|
|
8
|
+
*/ var getSchemaData = ((isListOfEntities, attributes)=>{
|
|
9
|
+
if (isListOfEntities) {
|
|
10
|
+
return {
|
|
11
|
+
type: 'array',
|
|
12
|
+
items: {
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {
|
|
15
|
+
id: {
|
|
16
|
+
type: 'number'
|
|
17
|
+
},
|
|
18
|
+
documentId: {
|
|
19
|
+
type: 'string'
|
|
20
|
+
},
|
|
21
|
+
...attributes
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
type: 'object',
|
|
28
|
+
properties: {
|
|
29
|
+
id: {
|
|
30
|
+
type: 'number'
|
|
31
|
+
},
|
|
32
|
+
documentId: {
|
|
33
|
+
type: 'string'
|
|
34
|
+
},
|
|
35
|
+
...attributes
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
export { getSchemaData as default };
|
|
41
|
+
//# sourceMappingURL=get-schema-data.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-schema-data.mjs","sources":["../../../../../server/src/services/helpers/utils/get-schema-data.ts"],"sourcesContent":["import type { OpenAPIV3 } from 'openapi-types';\n\n/**\n * @description Determines the format of the data response\n *\n * @param {boolean} isListOfEntities - Checks for a multiple entities\n * @param {object} attributes - The attributes found on a contentType\n\n * @returns object | array of attributes\n */\nexport default (\n isListOfEntities: boolean,\n attributes: Record<string, OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject>\n): OpenAPIV3.SchemaObject => {\n if (isListOfEntities) {\n return {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n id: { type: 'number' },\n documentId: { type: 'string' },\n ...attributes,\n },\n },\n };\n }\n\n return {\n type: 'object',\n properties: {\n id: { type: 'number' },\n documentId: { type: 'string' },\n ...attributes,\n },\n };\n};\n"],"names":["isListOfEntities","attributes","type","items","properties","id","documentId"],"mappings":"AAEA;;;;;;;IAQA,oBAAe,CAAA,CACbA,gBACAC,EAAAA,UAAAA,GAAAA;AAEA,IAAA,IAAID,gBAAkB,EAAA;QACpB,OAAO;YACLE,IAAM,EAAA,OAAA;YACNC,KAAO,EAAA;gBACLD,IAAM,EAAA,QAAA;gBACNE,UAAY,EAAA;oBACVC,EAAI,EAAA;wBAAEH,IAAM,EAAA;AAAS,qBAAA;oBACrBI,UAAY,EAAA;wBAAEJ,IAAM,EAAA;AAAS,qBAAA;AAC7B,oBAAA,GAAGD;AACL;AACF;AACF,SAAA;AACF;IAEA,OAAO;QACLC,IAAM,EAAA,QAAA;QACNE,UAAY,EAAA;YACVC,EAAI,EAAA;gBAAEH,IAAM,EAAA;AAAS,aAAA;YACrBI,UAAY,EAAA;gBAAEJ,IAAM,EAAA;AAAS,aAAA;AAC7B,YAAA,GAAGD;AACL;AACF,KAAA;AACF,CAAA;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _ = require('lodash');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @description A reusable loop for building api endpoint paths and component schemas
|
|
7
|
+
*/ const loopContentTypeNames = (api, callback)=>{
|
|
8
|
+
let result = {};
|
|
9
|
+
for (const contentTypeName of api.ctNames){
|
|
10
|
+
// Get the attributes found on the api's contentType
|
|
11
|
+
const uid = `${api.getter}::${api.name}.${contentTypeName}`;
|
|
12
|
+
const { attributes, info: contentTypeInfo, kind } = strapi.contentType(uid);
|
|
13
|
+
// Get the routes for the current api
|
|
14
|
+
const routeInfo = api.getter === 'plugin' ? strapi.plugin(api.name).routes['content-api'] : strapi.api(api.name).routes[contentTypeName];
|
|
15
|
+
// Continue to next iteration if routeInfo is undefined
|
|
16
|
+
if (!routeInfo) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
// Uppercase the first letter of the api name
|
|
20
|
+
const apiName = _.upperFirst(api.name);
|
|
21
|
+
// Create a unique name if the api name and contentType name don't match
|
|
22
|
+
const uniqueName = api.name === contentTypeName ? apiName : `${apiName} - ${_.upperFirst(contentTypeName)}`;
|
|
23
|
+
const apiInfo = {
|
|
24
|
+
...api,
|
|
25
|
+
routeInfo,
|
|
26
|
+
attributes,
|
|
27
|
+
uniqueName,
|
|
28
|
+
contentTypeInfo,
|
|
29
|
+
kind
|
|
30
|
+
};
|
|
31
|
+
result = {
|
|
32
|
+
...result,
|
|
33
|
+
...callback(apiInfo)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
module.exports = loopContentTypeNames;
|
|
40
|
+
//# sourceMappingURL=loop-content-type-names.js.map
|