@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.
- package/LICENSE +18 -3
- package/README.md +2 -3
- package/dist/admin/components/SettingsForm.js +202 -0
- package/dist/admin/components/SettingsForm.js.map +1 -0
- package/dist/admin/components/SettingsForm.mjs +180 -0
- 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 +97 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/index.mjs +93 -0
- package/dist/admin/index.mjs.map +1 -0
- package/dist/admin/pages/App.js +253 -0
- package/dist/admin/pages/App.js.map +1 -0
- package/dist/admin/pages/App.mjs +232 -0
- 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/services/api.js +55 -0
- package/dist/admin/services/api.js.map +1 -0
- package/dist/admin/services/api.mjs +50 -0
- package/dist/admin/services/api.mjs.map +1 -0
- package/dist/admin/src/components/SettingsForm.d.ts +8 -0
- package/dist/admin/src/constants.d.ts +18 -0
- package/dist/admin/src/index.d.ts +15 -0
- package/dist/admin/src/pages/App.d.ts +2 -0
- package/dist/admin/src/pages/Settings.d.ts +2 -0
- package/dist/admin/src/pages/tests/App.test.d.ts +1 -0
- package/dist/admin/src/pages/tests/Settings.test.d.ts +1 -0
- package/dist/admin/src/pluginId.d.ts +1 -0
- package/dist/admin/src/services/api.d.ts +13 -0
- package/dist/admin/src/types.d.ts +16 -0
- package/dist/admin/src/utils/baseQuery.d.ts +5 -0
- package/dist/admin/src/utils/getTrad.d.ts +1 -0
- package/dist/admin/src/utils/index.d.ts +2 -0
- package/dist/admin/src/utils/prefixPluginTranslations.d.ts +2 -0
- package/dist/admin/translations/ar.json.js +25 -0
- package/dist/admin/translations/ar.json.js.map +1 -0
- package/dist/admin/translations/ar.json.mjs +23 -0
- package/dist/admin/translations/ar.json.mjs.map +1 -0
- package/dist/admin/translations/cs.json.js +47 -0
- package/dist/admin/translations/cs.json.js.map +1 -0
- package/dist/admin/translations/cs.json.mjs +45 -0
- package/dist/admin/translations/cs.json.mjs.map +1 -0
- package/dist/admin/translations/de.json.js +47 -0
- package/dist/admin/translations/de.json.js.map +1 -0
- package/dist/admin/translations/de.json.mjs +45 -0
- package/dist/admin/translations/de.json.mjs.map +1 -0
- package/dist/admin/translations/dk.json.js +44 -0
- package/dist/admin/translations/dk.json.js.map +1 -0
- package/dist/admin/translations/dk.json.mjs +42 -0
- package/dist/admin/translations/dk.json.mjs.map +1 -0
- package/dist/admin/translations/en.json.js +47 -0
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/translations/en.json.mjs +45 -0
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/translations/es.json.js +47 -0
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/translations/es.json.mjs +45 -0
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/translations/fr.json.js +31 -0
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/translations/fr.json.mjs +29 -0
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/translations/id.json.js +29 -0
- package/dist/admin/translations/id.json.js.map +1 -0
- package/dist/admin/translations/id.json.mjs +27 -0
- package/dist/admin/translations/id.json.mjs.map +1 -0
- package/dist/admin/translations/it.json.js +31 -0
- package/dist/admin/translations/it.json.js.map +1 -0
- package/dist/admin/translations/it.json.mjs +29 -0
- package/dist/admin/translations/it.json.mjs.map +1 -0
- package/dist/admin/translations/ko.json.js +44 -0
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/translations/ko.json.mjs +42 -0
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/translations/ms.json.js +28 -0
- package/dist/admin/translations/ms.json.js.map +1 -0
- package/dist/admin/translations/ms.json.mjs +26 -0
- package/dist/admin/translations/ms.json.mjs.map +1 -0
- package/dist/admin/translations/nl.json.js +26 -0
- package/dist/admin/translations/nl.json.js.map +1 -0
- package/dist/admin/translations/nl.json.mjs +24 -0
- package/dist/admin/translations/nl.json.mjs.map +1 -0
- package/dist/admin/translations/pl.json.js +47 -0
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/translations/pl.json.mjs +45 -0
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/translations/pt-BR.json.js +26 -0
- package/dist/admin/translations/pt-BR.json.js.map +1 -0
- package/dist/admin/translations/pt-BR.json.mjs +24 -0
- package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
- package/dist/admin/translations/pt.json.js +26 -0
- package/dist/admin/translations/pt.json.js.map +1 -0
- package/dist/admin/translations/pt.json.mjs +24 -0
- package/dist/admin/translations/pt.json.mjs.map +1 -0
- package/dist/admin/translations/ru.json.js +47 -0
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/translations/ru.json.mjs +45 -0
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/translations/sk.json.js +29 -0
- package/dist/admin/translations/sk.json.js.map +1 -0
- package/dist/admin/translations/sk.json.mjs +27 -0
- package/dist/admin/translations/sk.json.mjs.map +1 -0
- package/dist/admin/translations/sv.json.js +44 -0
- package/dist/admin/translations/sv.json.js.map +1 -0
- package/dist/admin/translations/sv.json.mjs +42 -0
- package/dist/admin/translations/sv.json.mjs.map +1 -0
- package/dist/admin/translations/th.json.js +29 -0
- package/dist/admin/translations/th.json.js.map +1 -0
- package/dist/admin/translations/th.json.mjs +27 -0
- package/dist/admin/translations/th.json.mjs.map +1 -0
- package/dist/admin/translations/tr.json.js +44 -0
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/translations/tr.json.mjs +42 -0
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/translations/uk.json.js +47 -0
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/translations/uk.json.mjs +45 -0
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/translations/vi.json.js +29 -0
- package/dist/admin/translations/vi.json.js.map +1 -0
- package/dist/admin/translations/vi.json.mjs +27 -0
- package/dist/admin/translations/vi.json.mjs.map +1 -0
- package/dist/admin/translations/zh-Hans.json.js +33 -0
- package/dist/admin/translations/zh-Hans.json.js.map +1 -0
- package/dist/admin/translations/zh-Hans.json.mjs +31 -0
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/translations/zh.json.js +44 -0
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/translations/zh.json.mjs +42 -0
- 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 +186 -0
- package/dist/server/controllers/documentation.js.map +1 -0
- package/dist/server/controllers/documentation.mjs +182 -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 +20 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/index.mjs +18 -0
- package/dist/server/index.mjs.map +1 -0
- 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/public/index.html.js +6 -0
- package/dist/server/public/index.html.js.map +1 -0
- package/dist/server/public/index.html.mjs +4 -0
- package/dist/server/public/index.html.mjs.map +1 -0
- package/dist/server/public/login.html.js +6 -0
- package/dist/server/public/login.html.js.map +1 -0
- package/dist/server/public/login.html.mjs +4 -0
- 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 +188 -0
- package/dist/server/services/documentation.js.map +1 -0
- package/dist/server/services/documentation.mjs +186 -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 +174 -0
- package/dist/server/services/helpers/build-component-schema.js.map +1 -0
- package/dist/server/services/helpers/build-component-schema.mjs +172 -0
- package/dist/server/services/helpers/build-component-schema.mjs.map +1 -0
- package/dist/server/services/helpers/utils/clean-schema-attributes.js +315 -0
- package/dist/server/services/helpers/utils/clean-schema-attributes.js.map +1 -0
- package/dist/server/services/helpers/utils/clean-schema-attributes.mjs +313 -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 +57 -0
- package/dist/server/services/helpers/utils/get-schema-data.js.map +1 -0
- package/dist/server/services/helpers/utils/get-schema-data.mjs +55 -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/src/bootstrap.d.ts +5 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -0
- package/dist/server/src/config/default-plugin-config.d.ts +3 -0
- package/dist/server/src/config/default-plugin-config.d.ts.map +1 -0
- package/dist/server/src/config/index.d.ts +4 -0
- package/dist/server/src/config/index.d.ts.map +1 -0
- package/dist/server/src/controllers/documentation.d.ts +12 -0
- package/dist/server/src/controllers/documentation.d.ts.map +1 -0
- package/dist/server/src/controllers/index.d.ts +14 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +91 -0
- package/dist/server/src/index.d.ts.map +1 -0
- package/dist/server/src/middlewares/documentation.d.ts +5 -0
- package/dist/server/src/middlewares/documentation.d.ts.map +1 -0
- package/dist/server/src/middlewares/restrict-access.d.ts +4 -0
- package/dist/server/src/middlewares/restrict-access.d.ts.map +1 -0
- package/dist/server/src/register.d.ts +5 -0
- package/dist/server/src/register.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts +36 -0
- package/dist/server/src/routes/index.d.ts.map +1 -0
- package/dist/server/src/services/__mocks__/mock-content-types.d.ts +449 -0
- package/dist/server/src/services/__mocks__/mock-content-types.d.ts.map +1 -0
- package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts +592 -0
- package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts.map +1 -0
- package/dist/server/src/services/documentation.d.ts +36 -0
- package/dist/server/src/services/documentation.d.ts.map +1 -0
- package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts +7 -0
- package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts.map +1 -0
- package/dist/server/src/services/helpers/build-component-schema.d.ts +4 -0
- package/dist/server/src/services/helpers/build-component-schema.d.ts.map +1 -0
- package/dist/server/src/services/helpers/index.d.ts +4 -0
- package/dist/server/src/services/helpers/index.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts +15 -0
- package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/get-api-responses.d.ts +15 -0
- package/dist/server/src/services/helpers/utils/get-api-responses.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/get-schema-data.d.ts +12 -0
- package/dist/server/src/services/helpers/utils/get-schema-data.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts +7 -0
- package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/pascal-case.d.ts +3 -0
- package/dist/server/src/services/helpers/utils/pascal-case.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/query-params.d.ts +4 -0
- package/dist/server/src/services/helpers/utils/query-params.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/routes.d.ts +3 -0
- package/dist/server/src/services/helpers/utils/routes.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +43 -0
- package/dist/server/src/services/index.d.ts.map +1 -0
- package/dist/server/src/services/override.d.ts +21 -0
- package/dist/server/src/services/override.d.ts.map +1 -0
- package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts +4 -0
- package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts.map +1 -0
- package/dist/server/src/types.d.ts +28 -0
- package/dist/server/src/types.d.ts.map +1 -0
- package/dist/server/src/utils.d.ts +12 -0
- package/dist/server/src/utils.d.ts.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/dist/tests/server.d.ts +2 -0
- package/package.json +77 -34
- package/.eslintignore +0 -2
- package/.eslintrc.js +0 -14
- package/admin/src/constants.js +0 -17
- package/admin/src/hooks/useDocumentation.js +0 -77
- package/admin/src/index.js +0 -82
- package/admin/src/pages/PluginPage/index.js +0 -230
- package/admin/src/pages/PluginPage/tests/index.test.js +0 -206
- package/admin/src/pages/SettingsPage/index.js +0 -211
- package/admin/src/pages/SettingsPage/tests/index.test.js +0 -124
- package/admin/src/pluginId.js +0 -5
- package/admin/src/translations/ar.json +0 -20
- package/admin/src/translations/cs.json +0 -21
- package/admin/src/translations/de.json +0 -26
- package/admin/src/translations/dk.json +0 -39
- package/admin/src/translations/en.json +0 -39
- package/admin/src/translations/es.json +0 -39
- package/admin/src/translations/fr.json +0 -26
- package/admin/src/translations/id.json +0 -24
- package/admin/src/translations/it.json +0 -26
- package/admin/src/translations/ko.json +0 -39
- package/admin/src/translations/ms.json +0 -23
- package/admin/src/translations/nl.json +0 -21
- package/admin/src/translations/pl.json +0 -39
- package/admin/src/translations/pt-BR.json +0 -21
- package/admin/src/translations/pt.json +0 -21
- package/admin/src/translations/ru.json +0 -39
- package/admin/src/translations/sk.json +0 -24
- package/admin/src/translations/sv.json +0 -39
- package/admin/src/translations/th.json +0 -24
- package/admin/src/translations/tr.json +0 -39
- package/admin/src/translations/uk.json +0 -23
- package/admin/src/translations/vi.json +0 -24
- package/admin/src/translations/zh-Hans.json +0 -28
- package/admin/src/translations/zh.json +0 -39
- package/admin/src/utils/getTrad.js +0 -5
- package/admin/src/utils/index.js +0 -2
- package/jest.config.front.js +0 -7
- package/jest.config.js +0 -6
- package/server/bootstrap.js +0 -54
- package/server/config/default-plugin-config.js +0 -35
- package/server/config/index.js +0 -7
- package/server/controllers/documentation.js +0 -241
- package/server/controllers/index.js +0 -7
- package/server/index.js +0 -17
- package/server/middlewares/documentation.js +0 -25
- package/server/middlewares/index.js +0 -7
- package/server/middlewares/restrict-access.js +0 -24
- package/server/public/index.html +0 -70
- package/server/public/login.html +0 -145
- package/server/register.js +0 -11
- package/server/routes/index.js +0 -84
- package/server/services/__mocks__/mock-content-types.js +0 -269
- package/server/services/__mocks__/mock-strapi-data.js +0 -183
- package/server/services/__tests__/build-component-schema.test.js +0 -761
- package/server/services/__tests__/documentation.test.js +0 -481
- package/server/services/__tests__/override.test.js +0 -85
- package/server/services/documentation.js +0 -247
- package/server/services/helpers/build-api-endpoint-path.js +0 -186
- package/server/services/helpers/build-component-schema.js +0 -254
- package/server/services/helpers/index.js +0 -9
- package/server/services/helpers/utils/clean-schema-attributes.js +0 -243
- package/server/services/helpers/utils/get-api-responses.js +0 -105
- package/server/services/helpers/utils/get-schema-data.js +0 -32
- package/server/services/helpers/utils/loop-content-type-names.js +0 -55
- package/server/services/helpers/utils/pascal-case.js +0 -9
- package/server/services/helpers/utils/query-params.js +0 -105
- package/server/services/helpers/utils/routes.js +0 -10
- package/server/services/index.js +0 -9
- package/server/services/override.js +0 -52
- package/server/services/utils/default-openapi-components.js +0 -40
- package/server/services/utils/get-plugins-that-need-documentation.js +0 -24
- package/strapi-admin.js +0 -3
- package/strapi-server.js +0 -3
- package/tests/server.js +0 -37
- 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
|
|
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,
|
|
22
|
-
|
|
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
|
|
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
|
|
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":";;;;;;;;;;;;AAwBA,MAAMA,MAAAA,GAASC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AAChCC,IAAAA,gBAAAA,EAAkBH,IAAII,OAAO,EAAA;AAC7BC,IAAAA,QAAAA,EAAUL,IAAIM,MAAM,EAAA,CAAGC,IAAI,CAAC,kBAAA,EAAoB,CAACC,KAAAA,EAAOC,UAAAA,GAAAA;QACtD,OAAOD,KAAAA,GACHC,WACGC,QAAQ,CAACC,iBAAiBD,QAAQ,CAACE,EAAE,CAAA,CACrCC,GAAG,CAAC,GACJC,OAAO,CAAC,OAAA,EAAS,0CAAA,CAAA,CACjBA,OAAO,CAAC,SAAS,0CAAA,CAAA,CACjBA,OAAO,CAAC,IAAA,EAAM,uCAAA,CAAA,GACjBL,UAAAA;AACN,IAAA,CAAA;AACF,CAAA,CAAA;AAEA,MAAMM,kBAAAA,GAAqBC,MAAAA,CAAOC,KAAAA,CAAMC,MAAM,CAAC;;;;;YAKnC,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACC,UAAU,CAAC;;;AAGrD,CAAC;MAOYC,YAAAA,GAAe,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAqB,GAAA;IAChE,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,aAAAA,EAAeC,gBAAAA,CAAiB,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACzD,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGC,OAAAA,CAAQC,WAAAA,CAAAA;AAEnC,IAAA,qBACEC,GAAA,CAACC,MAAAA,EAAAA;QACCC,kBAAkB,EAAA,IAAA;QAClBC,aAAAA,EAAe;YACblC,gBAAAA,EAAkBoB,IAAAA,EAAMe,oBAAoBnC,gBAAAA,IAAoB,KAAA;YAChEE,QAAAA,EAAU;AACZ,SAAA;QACAmB,QAAAA,EAAUA,QAAAA;QACVe,gBAAAA,EAAkBxC,MAAAA;AAEjB,QAAA,QAAA,EAAA,CAAC,EACAyC,YAAY,EACZC,MAAM,EACNC,YAAY,EACZC,MAAM,EACNC,eAAe,EACfC,aAAa,EACbC,aAAa,EACbC,KAAK,EACN,GAAA;AACC,YAAA,qBACEC,IAAA,CAACC,IAAAA,EAAAA;gBAAKC,UAAU,EAAA,IAAA;gBAAC1B,QAAAA,EAAUgB,YAAAA;;AACzB,kCAAAN,GAAA,CAACiB,QAAQC,MAAM,EAAA;AACbC,wBAAAA,KAAAA,EAAO5B,aAAAA,CAAc;AACnBb,4BAAAA,EAAAA,EAAI0C,OAAAA,CAAQ,aAAA,CAAA;4BACZC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAC,wBAAAA,QAAAA,EAAU/B,aAAAA,CAAc;AACtBb,4BAAAA,EAAAA,EAAI0C,OAAAA,CAAQ,uCAAA,CAAA;4BACZC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AACAE,wBAAAA,aAAAA,gBACEvB,GAAA,CAACwB,MAAAA,EAAAA;4BACCC,IAAAA,EAAK,QAAA;AACLC,4BAAAA,SAAAA,gBAAW1B,GAAA,CAAC2B,KAAAA,EAAAA,EAAAA,CAAAA;4BACZC,QAAAA,EAAU,CAACf,KAAAA,IAAShB,cAAAA,CAAegC,SAAS;4BAC5CC,SAAS,EAAA,IAAA;sCAERvC,aAAAA,CAAc;AACbb,gCAAAA,EAAAA,EAAI0C,OAAAA,CAAQ,gCAAA,CAAA;gCACZC,cAAAA,EAAgB;AAClB,6BAAA;;;AAIN,kCAAArB,GAAA,CAACiB,QAAQc,OAAO,EAAA;AACd,wBAAA,QAAA,gBAAA/B,GAAA,CAACgC,GAAAA,EAAAA;4BACCC,UAAAA,EAAW,UAAA;4BACXC,SAAS,EAAA,IAAA;4BACTC,MAAAA,EAAO,cAAA;4BACPC,UAAAA,EAAY,CAAA;4BACZC,aAAAA,EAAe,CAAA;4BACfC,WAAAA,EAAa,CAAA;4BACbC,YAAAA,EAAc,CAAA;AAEd,4BAAA,QAAA,gBAAAzB,IAAA,CAAC0B,IAAAA,EAAAA;gCAAKC,SAAAA,EAAU,QAAA;gCAASC,UAAAA,EAAW,SAAA;gCAAUC,GAAAA,EAAK,CAAA;;kDACjD3C,GAAA,CAAC4C,UAAAA,EAAAA;wCAAWC,OAAAA,EAAQ,OAAA;wCAAQC,GAAAA,EAAI,IAAA;kDAC7BvD,aAAAA,CAAc;4CACbb,EAAAA,EAAI,iBAAA;4CACJ2C,cAAAA,EAAgB;AAClB,yCAAA;;AAEF,kDAAAP,IAAA,CAACiC,KAAKC,IAAI,EAAA;wCAACL,GAAAA,EAAK,CAAA;;AACd,0DAAA3C,GAAA,CAAC+C,KAAKE,IAAI,EAAA;gDAACC,GAAAA,EAAK,CAAA;gDAAGC,EAAAA,EAAI,EAAA;gDAAIV,SAAAA,EAAU,QAAA;gDAASC,UAAAA,EAAW,SAAA;wEACvD5B,IAAA,CAAC/B,MAAMiE,IAAI,EAAA;oDACTI,IAAAA,EAAK,kBAAA;AACLC,oDAAAA,IAAAA,EAAM9D,aAAAA,CAAc;AAClBb,wDAAAA,EAAAA,EAAI0C,OAAAA,CAAQ,gCAAA,CAAA;wDACZC,cAAAA,EAAgB;AAClB,qDAAA,CAAA;;AAEA,sEAAArB,GAAA,CAACjB,MAAMuE,KAAK,EAAA;sEACT/D,aAAAA,CAAc;AACbb,gEAAAA,EAAAA,EAAI0C,OAAAA,CAAQ,iCAAA,CAAA;gEACZC,cAAAA,EAAgB;AAClB,6DAAA;;sEAEFrB,GAAA,CAACuD,MAAAA,EAAAA;AACCC,4DAAAA,OAAAA,EAASjD,OAAOtC,gBAAgB;4DAChCwF,QAAAA,EAAU,IAAA;gEACR,IAAIlD,MAAAA,CAAOtC,gBAAgB,KAAK,IAAA,EAAM;AACpC0C,oEAAAA,aAAAA,CAAc,YAAY,EAAA,EAAI,KAAA,CAAA;AAC9BD,oEAAAA,eAAAA,CAAgB,YAAY,KAAA,EAAO,KAAA,CAAA;AACnCE,oEAAAA,aAAAA,CAAc,UAAA,EAAY8C,SAAAA,CAAAA;AAC5B,gEAAA;AAEA/C,gEAAAA,aAAAA,CAAc,kBAAA,EAAoB,CAACJ,MAAAA,CAAOtC,gBAAgB,EAAE,KAAA,CAAA;AAC9D,4DAAA,CAAA;4DACA0F,OAAAA,EAAQ,IAAA;4DACRC,QAAAA,EAAS;;AAEX,sEAAA5D,GAAA,CAACjB,MAAM8E,IAAI,EAAA,EAAA;;;;AAGdtD,4CAAAA,MAAAA,CAAOtC,gBAAgB,kBACtB+B,GAAA,CAAC+C,IAAAA,CAAKE,IAAI,EAAA;gDAACC,GAAAA,EAAK,CAAA;gDAAGC,EAAAA,EAAI,EAAA;gDAAIV,SAAAA,EAAU,QAAA;gDAASC,UAAAA,EAAW,SAAA;wEACvD5B,IAAA,CAAC/B,MAAMiE,IAAI,EAAA;oDACTI,IAAAA,EAAK,UAAA;oDACLU,KAAAA,EACErD,MAAAA,CAAOtC,QAAQ,GACXoB,aAAAA,CAAc;AACZb,wDAAAA,EAAAA,EAAI+B,OAAOtC,QAAQ;AACnBkD,wDAAAA,cAAAA,EAAgBZ,OAAOtC;qDACzB,CAAA,GACAuF,SAAAA;;AAGN,sEAAA1D,GAAA,CAACjB,MAAMuE,KAAK,EAAA;sEACT/D,aAAAA,CAAc;gEACbb,EAAAA,EAAI,iBAAA;gEACJ2C,cAAAA,EAAgB;AAClB,6DAAA;;sEAEFrB,GAAA,CAAC+D,SAAAA,EAAAA;4DACCC,WAAAA,EAAY,YAAA;AACZvC,4DAAAA,IAAAA,EAAMhC,gBAAgB,MAAA,GAAS,UAAA;AAC/BnB,4DAAAA,KAAAA,EAAOiC,OAAOpC,QAAQ;4DACtBsF,QAAAA,EAAUjD,YAAAA;AACVyD,4DAAAA,SAAAA,gBACEjE,GAAA,CAACnB,kBAAAA,EAAAA;AACCqF,gEAAAA,OAAAA,EAAS,CAACC,CAAAA,GAAAA;AACRA,oEAAAA,CAAAA,CAAEC,eAAe,EAAA;oEACjB1E,gBAAAA,CAAiB,CAAC2E,OAAS,CAACA,IAAAA,CAAAA;AAC9B,gEAAA,CAAA;AACAC,gEAAAA,KAAAA,EAAO/E,cACLE,aAAAA,GACI;oEACEf,EAAAA,EAAI,kCAAA;oEACJ2C,cAAAA,EAAgB;iEAClB,GACA;oEACE3C,EAAAA,EAAI,kCAAA;oEACJ2C,cAAAA,EAAgB;AAClB,iEAAA,CAAA;0EAGL5B,aAAAA,iBAAgBO,GAAA,CAACuE,yBAAUvE,GAAA,CAACwE,UAAAA,EAAAA,EAAAA;;;AAInC,sEAAAxE,GAAA,CAACjB,MAAM0F,KAAK,EAAA,EAAA;;;;;;;;;;;;AAUhC,QAAA;;AAGN;;;;"}
|
|
@@ -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;;;;"}
|