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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +0 -1
  2. package/dist/_chunks/{index-7xstUX8_.mjs → App-ig-uE4do.mjs} +48 -14
  3. package/dist/_chunks/App-ig-uE4do.mjs.map +1 -0
  4. package/dist/_chunks/{index-D1KkfApT.js → App-o4uH8gaQ.js} +73 -20
  5. package/dist/_chunks/App-o4uH8gaQ.js.map +1 -0
  6. package/dist/_chunks/{index-VpLAJXMs.mjs → Settings-3hsPOP_b.mjs} +64 -33
  7. package/dist/_chunks/Settings-3hsPOP_b.mjs.map +1 -0
  8. package/dist/_chunks/{index-NbPCucJl.js → Settings-XmOzLTUn.js} +69 -37
  9. package/dist/_chunks/Settings-XmOzLTUn.js.map +1 -0
  10. package/dist/_chunks/getTrad-bnElvR8_.js +5 -0
  11. package/dist/_chunks/getTrad-bnElvR8_.js.map +1 -0
  12. package/dist/_chunks/getTrad-md7Tjpcv.mjs +6 -0
  13. package/dist/_chunks/getTrad-md7Tjpcv.mjs.map +1 -0
  14. package/{server/public/index.html → dist/_chunks/index-MKWIGajW.mjs} +9 -4
  15. package/dist/_chunks/index-MKWIGajW.mjs.map +1 -0
  16. package/dist/_chunks/index-WbbYm9_u.js +75 -0
  17. package/dist/_chunks/index-WbbYm9_u.js.map +1 -0
  18. package/dist/_chunks/{index-NvJ4m2q5.mjs → index-jpDwTC-Q.mjs} +121 -117
  19. package/dist/_chunks/index-jpDwTC-Q.mjs.map +1 -0
  20. package/dist/_chunks/{index-r7HsQTou.js → index-vNbIS1u2.js} +119 -115
  21. package/dist/_chunks/index-vNbIS1u2.js.map +1 -0
  22. package/dist/_chunks/login-HAajOKpu.js +150 -0
  23. package/dist/_chunks/login-HAajOKpu.js.map +1 -0
  24. package/{server/public/login.html → dist/_chunks/login-slUa679p.mjs} +6 -1
  25. package/dist/_chunks/login-slUa679p.mjs.map +1 -0
  26. package/dist/admin/index.js +1 -1
  27. package/dist/admin/index.mjs +2 -2
  28. package/dist/admin/src/components/SettingsForm.d.ts +8 -0
  29. package/dist/admin/src/constants.d.ts +18 -0
  30. package/dist/admin/src/index.d.ts +14 -0
  31. package/dist/admin/src/pages/App.d.ts +2 -0
  32. package/dist/admin/src/pages/Settings.d.ts +2 -0
  33. package/dist/admin/src/pluginId.d.ts +1 -0
  34. package/dist/admin/src/services/api.d.ts +25 -0
  35. package/dist/admin/src/types.d.ts +16 -0
  36. package/dist/admin/src/utils/baseQuery.d.ts +20 -0
  37. package/dist/admin/src/utils/getTrad.d.ts +1 -0
  38. package/dist/admin/src/utils/index.d.ts +2 -0
  39. package/dist/admin/src/utils/prefixPluginTranslations.d.ts +2 -0
  40. package/dist/server/index.js +1263 -0
  41. package/dist/server/index.js.map +1 -0
  42. package/dist/server/index.mjs +1238 -0
  43. package/dist/server/index.mjs.map +1 -0
  44. package/dist/server/src/bootstrap.d.ts +5 -0
  45. package/dist/server/src/bootstrap.d.ts.map +1 -0
  46. package/dist/server/src/config/default-plugin-config.d.ts +3 -0
  47. package/dist/server/src/config/default-plugin-config.d.ts.map +1 -0
  48. package/dist/server/src/config/index.d.ts +4 -0
  49. package/dist/server/src/config/index.d.ts.map +1 -0
  50. package/dist/server/src/controllers/documentation.d.ts +12 -0
  51. package/dist/server/src/controllers/documentation.d.ts.map +1 -0
  52. package/dist/server/src/controllers/index.d.ts +14 -0
  53. package/dist/server/src/controllers/index.d.ts.map +1 -0
  54. package/dist/server/src/index.d.ts +91 -0
  55. package/dist/server/src/index.d.ts.map +1 -0
  56. package/dist/server/src/middlewares/documentation.d.ts +5 -0
  57. package/dist/server/src/middlewares/documentation.d.ts.map +1 -0
  58. package/dist/server/src/middlewares/restrict-access.d.ts +4 -0
  59. package/dist/server/src/middlewares/restrict-access.d.ts.map +1 -0
  60. package/dist/server/src/register.d.ts +5 -0
  61. package/dist/server/src/register.d.ts.map +1 -0
  62. package/dist/server/src/routes/index.d.ts +36 -0
  63. package/dist/server/src/routes/index.d.ts.map +1 -0
  64. package/dist/server/src/services/__mocks__/mock-content-types.d.ts +449 -0
  65. package/dist/server/src/services/__mocks__/mock-content-types.d.ts.map +1 -0
  66. package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts +592 -0
  67. package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts.map +1 -0
  68. package/dist/server/src/services/documentation.d.ts +36 -0
  69. package/dist/server/src/services/documentation.d.ts.map +1 -0
  70. package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts +7 -0
  71. package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts.map +1 -0
  72. package/dist/server/src/services/helpers/build-component-schema.d.ts +4 -0
  73. package/dist/server/src/services/helpers/build-component-schema.d.ts.map +1 -0
  74. package/dist/server/src/services/helpers/index.d.ts +4 -0
  75. package/dist/server/src/services/helpers/index.d.ts.map +1 -0
  76. package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts +15 -0
  77. package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts.map +1 -0
  78. package/dist/server/src/services/helpers/utils/get-api-responses.d.ts +15 -0
  79. package/dist/server/src/services/helpers/utils/get-api-responses.d.ts.map +1 -0
  80. package/dist/server/src/services/helpers/utils/get-schema-data.d.ts +12 -0
  81. package/dist/server/src/services/helpers/utils/get-schema-data.d.ts.map +1 -0
  82. package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts +7 -0
  83. package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts.map +1 -0
  84. package/dist/server/src/services/helpers/utils/pascal-case.d.ts +3 -0
  85. package/dist/server/src/services/helpers/utils/pascal-case.d.ts.map +1 -0
  86. package/dist/server/src/services/helpers/utils/query-params.d.ts +4 -0
  87. package/dist/server/src/services/helpers/utils/query-params.d.ts.map +1 -0
  88. package/dist/server/src/services/helpers/utils/routes.d.ts +3 -0
  89. package/dist/server/src/services/helpers/utils/routes.d.ts.map +1 -0
  90. package/dist/server/src/services/index.d.ts +43 -0
  91. package/dist/server/src/services/index.d.ts.map +1 -0
  92. package/dist/server/src/services/override.d.ts +21 -0
  93. package/dist/server/src/services/override.d.ts.map +1 -0
  94. package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts +4 -0
  95. package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts.map +1 -0
  96. package/dist/server/src/types.d.ts +28 -0
  97. package/dist/server/src/types.d.ts.map +1 -0
  98. package/dist/server/src/utils.d.ts +12 -0
  99. package/dist/server/src/utils.d.ts.map +1 -0
  100. package/package.json +33 -15
  101. package/strapi-server.js +1 -1
  102. package/.eslintignore +0 -1
  103. package/.eslintrc +0 -17
  104. package/admin/src/constants.js +0 -17
  105. package/admin/src/hooks/useDocumentation.js +0 -81
  106. package/admin/src/index.js +0 -62
  107. package/admin/src/pages/PluginPage/index.jsx +0 -212
  108. package/admin/src/pages/PluginPage/tests/index.test.jsx +0 -160
  109. package/admin/src/pages/SettingsPage/index.jsx +0 -202
  110. package/admin/src/pages/SettingsPage/tests/index.test.jsx +0 -72
  111. package/admin/src/pluginId.js +0 -5
  112. package/admin/src/translations/ar.json +0 -20
  113. package/admin/src/translations/cs.json +0 -21
  114. package/admin/src/translations/de.json +0 -26
  115. package/admin/src/translations/dk.json +0 -39
  116. package/admin/src/translations/en.json +0 -39
  117. package/admin/src/translations/es.json +0 -39
  118. package/admin/src/translations/fr.json +0 -26
  119. package/admin/src/translations/id.json +0 -24
  120. package/admin/src/translations/it.json +0 -26
  121. package/admin/src/translations/ko.json +0 -39
  122. package/admin/src/translations/ms.json +0 -23
  123. package/admin/src/translations/nl.json +0 -21
  124. package/admin/src/translations/pl.json +0 -39
  125. package/admin/src/translations/pt-BR.json +0 -21
  126. package/admin/src/translations/pt.json +0 -21
  127. package/admin/src/translations/ru.json +0 -39
  128. package/admin/src/translations/sk.json +0 -24
  129. package/admin/src/translations/sv.json +0 -39
  130. package/admin/src/translations/th.json +0 -24
  131. package/admin/src/translations/tr.json +0 -39
  132. package/admin/src/translations/uk.json +0 -23
  133. package/admin/src/translations/vi.json +0 -24
  134. package/admin/src/translations/zh-Hans.json +0 -28
  135. package/admin/src/translations/zh.json +0 -39
  136. package/admin/src/utils/getTrad.js +0 -5
  137. package/admin/src/utils/index.js +0 -2
  138. package/admin/src/utils/prefixPluginTranslations.js +0 -13
  139. package/dist/_chunks/index-7xstUX8_.mjs.map +0 -1
  140. package/dist/_chunks/index-D1KkfApT.js.map +0 -1
  141. package/dist/_chunks/index-NbPCucJl.js.map +0 -1
  142. package/dist/_chunks/index-NvJ4m2q5.mjs.map +0 -1
  143. package/dist/_chunks/index-VpLAJXMs.mjs.map +0 -1
  144. package/dist/_chunks/index-r7HsQTou.js.map +0 -1
  145. package/dist/_chunks/useDocumentation-6Ks-_Ms6.mjs +0 -68
  146. package/dist/_chunks/useDocumentation-6Ks-_Ms6.mjs.map +0 -1
  147. package/dist/_chunks/useDocumentation-S0e4mU-U.js +0 -67
  148. package/dist/_chunks/useDocumentation-S0e4mU-U.js.map +0 -1
  149. package/jest.config.front.js +0 -7
  150. package/jest.config.js +0 -6
  151. package/packup.config.ts +0 -22
  152. package/server/bootstrap.js +0 -54
  153. package/server/config/default-plugin-config.js +0 -35
  154. package/server/config/index.js +0 -7
  155. package/server/controllers/documentation.js +0 -241
  156. package/server/controllers/index.js +0 -7
  157. package/server/index.js +0 -17
  158. package/server/middlewares/documentation.js +0 -25
  159. package/server/middlewares/index.js +0 -7
  160. package/server/middlewares/restrict-access.js +0 -24
  161. package/server/register.js +0 -11
  162. package/server/routes/index.js +0 -84
  163. package/server/services/__mocks__/mock-content-types.js +0 -264
  164. package/server/services/__mocks__/mock-strapi-data.js +0 -183
  165. package/server/services/__tests__/build-component-schema.test.js +0 -761
  166. package/server/services/__tests__/documentation.test.js +0 -481
  167. package/server/services/__tests__/override.test.js +0 -85
  168. package/server/services/documentation.js +0 -246
  169. package/server/services/helpers/build-api-endpoint-path.js +0 -186
  170. package/server/services/helpers/build-component-schema.js +0 -254
  171. package/server/services/helpers/index.js +0 -9
  172. package/server/services/helpers/utils/clean-schema-attributes.js +0 -246
  173. package/server/services/helpers/utils/get-api-responses.js +0 -105
  174. package/server/services/helpers/utils/get-schema-data.js +0 -32
  175. package/server/services/helpers/utils/loop-content-type-names.js +0 -55
  176. package/server/services/helpers/utils/pascal-case.js +0 -9
  177. package/server/services/helpers/utils/query-params.js +0 -105
  178. package/server/services/helpers/utils/routes.js +0 -10
  179. package/server/services/index.js +0 -9
  180. package/server/services/override.js +0 -52
  181. package/server/services/utils/default-openapi-components.js +0 -40
  182. package/server/services/utils/get-plugins-that-need-documentation.js +0 -24
  183. package/tests/server.js +0 -37
  184. package/tests/setup.js +0 -15
@@ -1,16 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const react = require("react");
5
4
  const designSystem = require("@strapi/design-system");
6
- const icons = require("@strapi/icons");
7
5
  const admin = require("@strapi/strapi/admin");
8
- const formik = require("formik");
9
6
  const reactIntl = require("react-intl");
7
+ const React = require("react");
8
+ const icons = require("@strapi/icons");
9
+ const formik = require("formik");
10
10
  const styled = require("styled-components");
11
11
  const yup = require("yup");
12
- const index = require("./index-r7HsQTou.js");
13
- const useDocumentation = require("./useDocumentation-S0e4mU-U.js");
12
+ const index = require("./index-vNbIS1u2.js");
13
+ const getTrad = require("./getTrad-bnElvR8_.js");
14
+ require("axios");
14
15
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
15
16
  function _interopNamespace(e) {
16
17
  if (e && e.__esModule)
@@ -30,6 +31,7 @@ function _interopNamespace(e) {
30
31
  n.default = e;
31
32
  return Object.freeze(n);
32
33
  }
34
+ const React__namespace = /* @__PURE__ */ _interopNamespace(React);
33
35
  const styled__default = /* @__PURE__ */ _interopDefault(styled);
34
36
  const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
35
37
  const schema = yup__namespace.object().shape({
@@ -38,28 +40,28 @@ const schema = yup__namespace.object().shape({
38
40
  return value ? initSchema.required(admin.translatedErrors.required.id) : initSchema;
39
41
  })
40
42
  });
41
- const SettingsPage = () => {
43
+ const FieldActionWrapper = styled__default.default(designSystem.FieldAction)`
44
+ svg {
45
+ height: 1rem;
46
+ width: 1rem;
47
+ path {
48
+ fill: ${({ theme }) => theme.colors.neutral600};
49
+ }
50
+ }
51
+ `;
52
+ const SettingsForm = ({ data, onSubmit }) => {
42
53
  const { formatMessage } = reactIntl.useIntl();
43
- const { submit, data, isLoading } = useDocumentation.useDocumentation();
44
- const [passwordShown, setPasswordShown] = react.useState(false);
54
+ const [passwordShown, setPasswordShown] = React__namespace.useState(false);
45
55
  const { allowedActions } = admin.useRBAC(index.PERMISSIONS);
46
- const handleUpdateSettingsSubmit = (body) => {
47
- submit.mutate({
48
- prefix: data?.prefix,
49
- body
50
- });
51
- };
52
- if (isLoading) {
53
- return /* @__PURE__ */ jsxRuntime.jsx(admin.Page.Loading, {});
54
- }
55
- return /* @__PURE__ */ jsxRuntime.jsx(admin.Page.Main, { children: /* @__PURE__ */ jsxRuntime.jsx(
56
+ return /* @__PURE__ */ jsxRuntime.jsx(
56
57
  formik.Formik,
57
58
  {
59
+ enableReinitialize: true,
58
60
  initialValues: {
59
61
  restrictedAccess: data?.documentationAccess.restrictedAccess || false,
60
62
  password: ""
61
63
  },
62
- onSubmit: handleUpdateSettingsSubmit,
64
+ onSubmit,
63
65
  validationSchema: schema,
64
66
  children: ({
65
67
  handleSubmit,
@@ -68,6 +70,7 @@ const SettingsPage = () => {
68
70
  errors,
69
71
  setFieldTouched,
70
72
  setFieldValue,
73
+ setFieldError,
71
74
  dirty
72
75
  }) => {
73
76
  return /* @__PURE__ */ jsxRuntime.jsxs(formik.Form, { noValidate: true, onSubmit: handleSubmit, children: [
@@ -75,11 +78,11 @@ const SettingsPage = () => {
75
78
  designSystem.HeaderLayout,
76
79
  {
77
80
  title: formatMessage({
78
- id: useDocumentation.getTrad("plugin.name"),
81
+ id: getTrad.getTrad("plugin.name"),
79
82
  defaultMessage: "Documentation"
80
83
  }),
81
84
  subtitle: formatMessage({
82
- id: useDocumentation.getTrad("pages.SettingsPage.header.description"),
85
+ id: getTrad.getTrad("pages.SettingsPage.header.description"),
83
86
  defaultMessage: "Configure the documentation plugin"
84
87
  }),
85
88
  primaryAction: /* @__PURE__ */ jsxRuntime.jsx(
@@ -89,7 +92,7 @@ const SettingsPage = () => {
89
92
  startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}),
90
93
  disabled: !dirty && allowedActions.canUpdate,
91
94
  children: formatMessage({
92
- id: useDocumentation.getTrad("pages.SettingsPage.Button.save"),
95
+ id: getTrad.getTrad("pages.SettingsPage.Button.save"),
93
96
  defaultMessage: "Save"
94
97
  })
95
98
  }
@@ -117,11 +120,11 @@ const SettingsPage = () => {
117
120
  {
118
121
  name: "restrictedAccess",
119
122
  label: formatMessage({
120
- id: useDocumentation.getTrad("pages.SettingsPage.toggle.label"),
123
+ id: getTrad.getTrad("pages.SettingsPage.toggle.label"),
121
124
  defaultMessage: "Restricted Access"
122
125
  }),
123
126
  hint: formatMessage({
124
- id: useDocumentation.getTrad("pages.SettingsPage.toggle.hint"),
127
+ id: getTrad.getTrad("pages.SettingsPage.toggle.hint"),
125
128
  defaultMessage: "Make the documentation endpoint private"
126
129
  }),
127
130
  checked: values.restrictedAccess,
@@ -129,6 +132,7 @@ const SettingsPage = () => {
129
132
  if (values.restrictedAccess === true) {
130
133
  setFieldValue("password", "", false);
131
134
  setFieldTouched("password", false, false);
135
+ setFieldError("password", void 0);
132
136
  }
133
137
  setFieldValue("restrictedAccess", !values.restrictedAccess, false);
134
138
  },
@@ -150,8 +154,8 @@ const SettingsPage = () => {
150
154
  onChange: handleChange,
151
155
  error: errors.password ? formatMessage({
152
156
  id: errors.password,
153
- defaultMessage: "Invalid value"
154
- }) : null,
157
+ defaultMessage: errors.password
158
+ }) : void 0,
155
159
  endAction: /* @__PURE__ */ jsxRuntime.jsx(
156
160
  FieldActionWrapper,
157
161
  {
@@ -180,16 +184,44 @@ const SettingsPage = () => {
180
184
  ] });
181
185
  }
182
186
  }
183
- ) });
187
+ );
184
188
  };
185
- const FieldActionWrapper = styled__default.default(designSystem.FieldAction)`
186
- svg {
187
- height: 1rem;
188
- width: 1rem;
189
- path {
190
- fill: ${({ theme }) => theme.colors.neutral600};
191
- }
189
+ const SettingsPage = () => {
190
+ const { toggleNotification } = admin.useNotification();
191
+ const { formatMessage } = reactIntl.useIntl();
192
+ const {
193
+ _unstableFormatAPIError: formatAPIError,
194
+ _unstableFormatValidationErrors: formatValidationErrors
195
+ } = admin.useAPIErrorHandler();
196
+ const { data, isError, isLoading } = index.useGetInfosQuery();
197
+ const [updateSettings] = index.useUpdateSettingsMutation();
198
+ const onUpdateSettings = async (body, formik2) => {
199
+ return updateSettings({ body }).unwrap().then(() => {
200
+ toggleNotification({
201
+ type: "success",
202
+ message: formatMessage({
203
+ id: getTrad.getTrad("notification.update.success"),
204
+ defaultMessage: "Successfully updated settings"
205
+ })
206
+ });
207
+ }).catch((err) => {
208
+ if (index.isBaseQueryError(err) && err.name === "ValidationError") {
209
+ formik2.setErrors(formatValidationErrors(err));
210
+ } else {
211
+ toggleNotification({
212
+ type: "danger",
213
+ message: formatAPIError(err)
214
+ });
215
+ }
216
+ });
217
+ };
218
+ if (isLoading) {
219
+ return /* @__PURE__ */ jsxRuntime.jsx(admin.Page.Loading, {});
192
220
  }
193
- `;
194
- exports.default = SettingsPage;
195
- //# sourceMappingURL=index-NbPCucJl.js.map
221
+ if (isError) {
222
+ return /* @__PURE__ */ jsxRuntime.jsx(admin.Page.Error, {});
223
+ }
224
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Main, { children: /* @__PURE__ */ jsxRuntime.jsx(SettingsForm, { data, onSubmit: onUpdateSettings }) });
225
+ };
226
+ exports.SettingsPage = SettingsPage;
227
+ //# sourceMappingURL=Settings-XmOzLTUn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Settings-XmOzLTUn.js","sources":["../../admin/src/components/SettingsForm.tsx","../../admin/src/pages/Settings.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n ContentLayout,\n Flex,\n Grid,\n GridItem,\n HeaderLayout,\n TextInput,\n ToggleInput,\n Typography,\n FieldAction,\n} from '@strapi/design-system';\n// Strapi Icons\nimport { Check, Eye as Show, EyeStriked as Hide } from '@strapi/icons';\nimport { translatedErrors, useRBAC } 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 ? initSchema.required(translatedErrors.required.id) : initSchema;\n }),\n});\n\nconst FieldActionWrapper = styled(FieldAction)`\n svg {\n height: 1rem;\n width: 1rem;\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 <HeaderLayout\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 >\n {formatMessage({\n id: getTrad('pages.SettingsPage.Button.save'),\n defaultMessage: 'Save',\n })}\n </Button>\n }\n />\n <ContentLayout>\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\" as=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid gap={4}>\n <GridItem col={6} s={12}>\n <ToggleInput\n name=\"restrictedAccess\"\n label={formatMessage({\n id: getTrad('pages.SettingsPage.toggle.label'),\n defaultMessage: 'Restricted Access',\n })}\n hint={formatMessage({\n id: getTrad('pages.SettingsPage.toggle.hint'),\n defaultMessage: 'Make the documentation endpoint private',\n })}\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 </GridItem>\n {values.restrictedAccess && (\n <GridItem col={6} s={12}>\n <TextInput\n label={formatMessage({\n id: 'global.password',\n defaultMessage: 'Password',\n })}\n name=\"password\"\n placeholder=\"**********\"\n type={passwordShown ? 'text' : 'password'}\n value={values.password}\n onChange={handleChange}\n error={\n errors.password\n ? formatMessage({\n id: errors.password,\n defaultMessage: errors.password,\n })\n : undefined\n }\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 </GridItem>\n )}\n </Grid>\n </Flex>\n </Box>\n </ContentLayout>\n </Form>\n );\n }}\n </Formik>\n );\n};\n","import * as React from 'react';\n\nimport { Main } from '@strapi/design-system';\nimport { useAPIErrorHandler, Page, useNotification } from '@strapi/strapi/admin';\nimport { FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport { SettingsForm } from '../components/SettingsForm';\nimport { useGetInfosQuery, useUpdateSettingsMutation } from '../services/api';\nimport { getTrad, isBaseQueryError } from '../utils';\n\nimport type { SettingsInput } from '../types';\n\nconst SettingsPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const { data, isError, isLoading } = useGetInfosQuery();\n const [updateSettings] = useUpdateSettingsMutation();\n\n const onUpdateSettings = async (body: SettingsInput, formik: FormikHelpers<SettingsInput>) => {\n return updateSettings({ body })\n .unwrap()\n .then(() => {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.update.success'),\n defaultMessage: 'Successfully updated settings',\n }),\n });\n })\n .catch((err) => {\n if (isBaseQueryError(err) && err.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(err));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(err),\n });\n }\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Main>\n <SettingsForm data={data} onSubmit={onUpdateSettings} />\n </Main>\n );\n};\n\nexport { SettingsPage };\n"],"names":["yup","translatedErrors","styled","FieldAction","useIntl","React","useRBAC","PERMISSIONS","jsx","Formik","jsxs","Form","HeaderLayout","getTrad","Button","Check","ContentLayout","Box","Flex","Typography","Grid","GridItem","ToggleInput","TextInput","Show","Hide","useNotification","useAPIErrorHandler","useGetInfosQuery","useUpdateSettingsMutation","formik","isBaseQueryError","Page","Main"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ const index = require("./index-vNbIS1u2.js");
3
+ const getTrad = (id) => `${index.pluginId}.${id}`;
4
+ exports.getTrad = getTrad;
5
+ //# sourceMappingURL=getTrad-bnElvR8_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTrad-bnElvR8_.js","sources":["../../admin/src/utils/getTrad.ts"],"sourcesContent":["import { pluginId } from '../pluginId';\n\nexport const getTrad = (id: string) => `${pluginId}.${id}`;\n"],"names":["pluginId"],"mappings":";;AAEO,MAAM,UAAU,CAAC,OAAe,GAAGA,MAAAA,QAAQ,IAAI,EAAE;;"}
@@ -0,0 +1,6 @@
1
+ import { p as pluginId } from "./index-jpDwTC-Q.mjs";
2
+ const getTrad = (id) => `${pluginId}.${id}`;
3
+ export {
4
+ getTrad as g
5
+ };
6
+ //# sourceMappingURL=getTrad-md7Tjpcv.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTrad-md7Tjpcv.mjs","sources":["../../admin/src/utils/getTrad.ts"],"sourcesContent":["import { pluginId } from '../pluginId';\n\nexport const getTrad = (id: string) => `${pluginId}.${id}`;\n"],"names":[],"mappings":";AAEO,MAAM,UAAU,CAAC,OAAe,GAAG,QAAQ,IAAI,EAAE;"}
@@ -1,4 +1,4 @@
1
- <!-- HTML for static distribution bundle build --><!DOCTYPE html>
1
+ const index = `<!-- HTML for static distribution bundle build --><!DOCTYPE html>
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
@@ -62,9 +62,14 @@
62
62
 
63
63
  window.ui = ui;
64
64
  }
65
- </script>
65
+ <\/script>
66
66
 
67
- <script src="<%=backendUrl%>/plugins/documentation/swagger-ui-bundle.js"></script>
68
- <script src="<%=backendUrl%>/plugins/documentation/swagger-ui-standalone-preset.js"></script>
67
+ <script src="<%=backendUrl%>/plugins/documentation/swagger-ui-bundle.js"><\/script>
68
+ <script src="<%=backendUrl%>/plugins/documentation/swagger-ui-standalone-preset.js"><\/script>
69
69
  </body>
70
70
  </html>
71
+ `;
72
+ export {
73
+ index as default
74
+ };
75
+ //# sourceMappingURL=index-MKWIGajW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-MKWIGajW.mjs","sources":["../../server/src/public/index.html?raw"],"sourcesContent":["export default \"<!-- HTML for static distribution bundle build --><!DOCTYPE html>\\n<html lang=\\\"en\\\">\\n <head>\\n <meta charset=\\\"UTF-8\\\" />\\n <title>Swagger UI</title>\\n <link\\n rel=\\\"stylesheet\\\"\\n type=\\\"text/css\\\"\\n href=\\\"<%=backendUrl%>/plugins/documentation/swagger-ui.css\\\"\\n />\\n <link\\n rel=\\\"icon\\\"\\n type=\\\"image/png\\\"\\n href=\\\"<%=backendUrl%>/plugins/documentation/favicon-32x32.png\\\"\\n sizes=\\\"32x32\\\"\\n />\\n <link\\n rel=\\\"icon\\\"\\n type=\\\"image/png\\\"\\n href=\\\"<%=backendUrl%>/plugins/documentation/favicon-16x16.png\\\"\\n sizes=\\\"16x16\\\"\\n />\\n <style>\\n html {\\n box-sizing: border-box;\\n overflow: -moz-scrollbars-vertical;\\n overflow-y: scroll;\\n }\\n\\n *,\\n *:before,\\n *:after {\\n box-sizing: inherit;\\n }\\n\\n body {\\n margin: 0;\\n background: #fafafa;\\n }\\n </style>\\n </head>\\n\\n <body>\\n <div id=\\\"swagger-ui\\\"></div>\\n <script class=\\\"custom-swagger-ui\\\">\\n window.onload = function() {\\n const ui = SwaggerUIBundle({\\n url: \\\"https://petstore.swagger.io/v2/swagger.json\\\",\\n spec: <%=spec%>,\\n dom_id: '#swagger-ui',\\n docExpansion: \\\"none\\\",\\n deepLinking: true,\\n presets: [\\n SwaggerUIBundle.presets.apis,\\n SwaggerUIStandalonePreset,\\n ],\\n plugins: [\\n SwaggerUIBundle.plugins.DownloadUrl,\\n ],\\n layout: \\\"StandaloneLayout\\\",\\n });\\n\\n window.ui = ui;\\n }\\n </script>\\n\\n <script src=\\\"<%=backendUrl%>/plugins/documentation/swagger-ui-bundle.js\\\"></script>\\n <script src=\\\"<%=backendUrl%>/plugins/documentation/swagger-ui-standalone-preset.js\\\"></script>\\n </body>\\n</html>\\n\""],"names":[],"mappings":"AAAA,MAAe,QAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const index = `<!-- HTML for static distribution bundle build --><!DOCTYPE html>
4
+ <html lang="en">
5
+ <head>
6
+ <meta charset="UTF-8" />
7
+ <title>Swagger UI</title>
8
+ <link
9
+ rel="stylesheet"
10
+ type="text/css"
11
+ href="<%=backendUrl%>/plugins/documentation/swagger-ui.css"
12
+ />
13
+ <link
14
+ rel="icon"
15
+ type="image/png"
16
+ href="<%=backendUrl%>/plugins/documentation/favicon-32x32.png"
17
+ sizes="32x32"
18
+ />
19
+ <link
20
+ rel="icon"
21
+ type="image/png"
22
+ href="<%=backendUrl%>/plugins/documentation/favicon-16x16.png"
23
+ sizes="16x16"
24
+ />
25
+ <style>
26
+ html {
27
+ box-sizing: border-box;
28
+ overflow: -moz-scrollbars-vertical;
29
+ overflow-y: scroll;
30
+ }
31
+
32
+ *,
33
+ *:before,
34
+ *:after {
35
+ box-sizing: inherit;
36
+ }
37
+
38
+ body {
39
+ margin: 0;
40
+ background: #fafafa;
41
+ }
42
+ </style>
43
+ </head>
44
+
45
+ <body>
46
+ <div id="swagger-ui"></div>
47
+ <script class="custom-swagger-ui">
48
+ window.onload = function() {
49
+ const ui = SwaggerUIBundle({
50
+ url: "https://petstore.swagger.io/v2/swagger.json",
51
+ spec: <%=spec%>,
52
+ dom_id: '#swagger-ui',
53
+ docExpansion: "none",
54
+ deepLinking: true,
55
+ presets: [
56
+ SwaggerUIBundle.presets.apis,
57
+ SwaggerUIStandalonePreset,
58
+ ],
59
+ plugins: [
60
+ SwaggerUIBundle.plugins.DownloadUrl,
61
+ ],
62
+ layout: "StandaloneLayout",
63
+ });
64
+
65
+ window.ui = ui;
66
+ }
67
+ <\/script>
68
+
69
+ <script src="<%=backendUrl%>/plugins/documentation/swagger-ui-bundle.js"><\/script>
70
+ <script src="<%=backendUrl%>/plugins/documentation/swagger-ui-standalone-preset.js"><\/script>
71
+ </body>
72
+ </html>
73
+ `;
74
+ exports.default = index;
75
+ //# sourceMappingURL=index-WbbYm9_u.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-WbbYm9_u.js","sources":["../../server/src/public/index.html?raw"],"sourcesContent":["export default \"<!-- HTML for static distribution bundle build --><!DOCTYPE html>\\n<html lang=\\\"en\\\">\\n <head>\\n <meta charset=\\\"UTF-8\\\" />\\n <title>Swagger UI</title>\\n <link\\n rel=\\\"stylesheet\\\"\\n type=\\\"text/css\\\"\\n href=\\\"<%=backendUrl%>/plugins/documentation/swagger-ui.css\\\"\\n />\\n <link\\n rel=\\\"icon\\\"\\n type=\\\"image/png\\\"\\n href=\\\"<%=backendUrl%>/plugins/documentation/favicon-32x32.png\\\"\\n sizes=\\\"32x32\\\"\\n />\\n <link\\n rel=\\\"icon\\\"\\n type=\\\"image/png\\\"\\n href=\\\"<%=backendUrl%>/plugins/documentation/favicon-16x16.png\\\"\\n sizes=\\\"16x16\\\"\\n />\\n <style>\\n html {\\n box-sizing: border-box;\\n overflow: -moz-scrollbars-vertical;\\n overflow-y: scroll;\\n }\\n\\n *,\\n *:before,\\n *:after {\\n box-sizing: inherit;\\n }\\n\\n body {\\n margin: 0;\\n background: #fafafa;\\n }\\n </style>\\n </head>\\n\\n <body>\\n <div id=\\\"swagger-ui\\\"></div>\\n <script class=\\\"custom-swagger-ui\\\">\\n window.onload = function() {\\n const ui = SwaggerUIBundle({\\n url: \\\"https://petstore.swagger.io/v2/swagger.json\\\",\\n spec: <%=spec%>,\\n dom_id: '#swagger-ui',\\n docExpansion: \\\"none\\\",\\n deepLinking: true,\\n presets: [\\n SwaggerUIBundle.presets.apis,\\n SwaggerUIStandalonePreset,\\n ],\\n plugins: [\\n SwaggerUIBundle.plugins.DownloadUrl,\\n ],\\n layout: \\\"StandaloneLayout\\\",\\n });\\n\\n window.ui = ui;\\n }\\n </script>\\n\\n <script src=\\\"<%=backendUrl%>/plugins/documentation/swagger-ui-bundle.js\\\"></script>\\n <script src=\\\"<%=backendUrl%>/plugins/documentation/swagger-ui-standalone-preset.js\\\"></script>\\n </body>\\n</html>\\n\""],"names":[],"mappings":";;AAAA,MAAe,QAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;"}
@@ -1,4 +1,7 @@
1
1
  import { Information } from "@strapi/icons";
2
+ import { createApi } from "@reduxjs/toolkit/query/react";
3
+ import { getFetchClient } from "@strapi/strapi/admin";
4
+ import { isAxiosError } from "axios";
2
5
  const __variableDynamicImportRuntimeHelper = (glob, path) => {
3
6
  const v = glob[path];
4
7
  if (v) {
@@ -8,115 +11,6 @@ const __variableDynamicImportRuntimeHelper = (glob, path) => {
8
11
  (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
9
12
  });
10
13
  };
11
- const name$1 = "@strapi/plugin-documentation";
12
- const version = "5.0.0-alpha.4";
13
- const description = "Create an OpenAPI Document and visualize your API with SWAGGER UI.";
14
- const repository = {
15
- type: "git",
16
- url: "https://github.com/strapi/strapi.git",
17
- directory: "packages/plugins/documentation"
18
- };
19
- const license = "SEE LICENSE IN LICENSE";
20
- const author = {
21
- name: "Strapi Solutions SAS",
22
- email: "hi@strapi.io",
23
- url: "https://strapi.io"
24
- };
25
- const maintainers = [
26
- {
27
- name: "Strapi Solutions SAS",
28
- email: "hi@strapi.io",
29
- url: "https://strapi.io"
30
- }
31
- ];
32
- const exports = {
33
- "./strapi-admin": {
34
- source: "./admin/src/index.js",
35
- "import": "./dist/admin/index.mjs",
36
- require: "./dist/admin/index.js",
37
- "default": "./dist/admin/index.js"
38
- },
39
- "./strapi-server": {
40
- source: "./strapi-server.js",
41
- require: "./strapi-server.js",
42
- "default": "./strapi-server.js"
43
- },
44
- "./package.json": "./package.json"
45
- };
46
- const scripts = {
47
- build: "pack-up build",
48
- clean: "run -T rimraf dist",
49
- lint: "run -T eslint .",
50
- "test:front": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js",
51
- "test:front:watch": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
52
- "test:unit": "jest --verbose",
53
- "test:unit:watch": "run -T jest --watch",
54
- watch: "pack-up watch"
55
- };
56
- const dependencies = {
57
- "@strapi/design-system": "1.16.0",
58
- "@strapi/icons": "1.16.0",
59
- "@strapi/utils": "5.0.0-alpha.4",
60
- bcryptjs: "2.4.3",
61
- cheerio: "^1.0.0-rc.12",
62
- formik: "2.4.5",
63
- "fs-extra": "10.1.0",
64
- immer: "9.0.21",
65
- "koa-static": "^5.0.0",
66
- lodash: "4.17.21",
67
- "path-to-regexp": "6.2.1",
68
- "react-helmet": "^6.1.0",
69
- "react-intl": "6.6.2",
70
- "react-query": "3.39.3",
71
- "swagger-ui-dist": "4.19.0",
72
- yaml: "1.10.2",
73
- yup: "0.32.9"
74
- };
75
- const devDependencies = {
76
- "@apidevtools/swagger-parser": "^10.1.0",
77
- "@strapi/pack-up": "5.0.0-alpha.4",
78
- "@strapi/strapi": "5.0.0-alpha.4",
79
- "@testing-library/react": "14.0.0",
80
- "@testing-library/user-event": "14.4.3",
81
- msw: "1.3.0",
82
- react: "^18.2.0",
83
- "react-dom": "^18.2.0",
84
- "react-router-dom": "6.22.3",
85
- "styled-components": "5.3.11"
86
- };
87
- const peerDependencies = {
88
- "@strapi/strapi": "^4.0.0",
89
- react: "^17.0.0 || ^18.0.0",
90
- "react-dom": "^17.0.0 || ^18.0.0",
91
- "react-router-dom": "^6.0.0",
92
- "styled-components": "^5.2.1"
93
- };
94
- const engines = {
95
- node: ">=18.0.0 <=20.x.x",
96
- npm: ">=6.0.0"
97
- };
98
- const strapi = {
99
- displayName: "Documentation",
100
- name: "documentation",
101
- description: "Create an OpenAPI Document and visualize your API with SWAGGER UI.",
102
- kind: "plugin"
103
- };
104
- const pluginPkg = {
105
- name: name$1,
106
- version,
107
- description,
108
- repository,
109
- license,
110
- author,
111
- maintainers,
112
- exports,
113
- scripts,
114
- dependencies,
115
- devDependencies,
116
- peerDependencies,
117
- engines,
118
- strapi
119
- };
120
14
  const PERMISSIONS = {
121
15
  // This permission regards the main component (App) and is used to tell
122
16
  // If the plugin link should be displayed in the menu
@@ -134,7 +28,103 @@ const PERMISSIONS = {
134
28
  regenerate: [{ action: "plugin::documentation.settings.regenerate", subject: null }],
135
29
  update: [{ action: "plugin::documentation.settings.update", subject: null }]
136
30
  };
137
- const pluginId = pluginPkg.name.replace(/^@strapi\/plugin-/i, "");
31
+ const pluginId = "documentation";
32
+ const axiosBaseQuery = (config) => async (query, { signal }) => {
33
+ try {
34
+ const { get, post, del, put } = getFetchClient(config);
35
+ if (typeof query === "string") {
36
+ const result = await get(query, { signal });
37
+ return { data: result.data };
38
+ } else {
39
+ const { url, method = "GET", data, config: config2 } = query;
40
+ if (method === "POST") {
41
+ const result2 = await post(url, data, { ...config2, signal });
42
+ return { data: result2.data };
43
+ }
44
+ if (method === "DELETE") {
45
+ const result2 = await del(url, { ...config2, signal });
46
+ return { data: result2.data };
47
+ }
48
+ if (method === "PUT") {
49
+ const result2 = await put(url, data, { ...config2, signal });
50
+ return { data: result2.data };
51
+ }
52
+ const result = await get(url, { ...config2, signal });
53
+ return { data: result.data };
54
+ }
55
+ } catch (err) {
56
+ if (isAxiosError(err)) {
57
+ if (typeof err.response?.data === "object" && err.response?.data !== null && "error" in err.response?.data) {
58
+ return { data: void 0, error: err.response?.data.error };
59
+ } else {
60
+ return {
61
+ data: void 0,
62
+ error: {
63
+ name: "UnknownError",
64
+ message: "There was an unknown error response from the API",
65
+ details: err.response?.data,
66
+ status: err.response?.status
67
+ }
68
+ };
69
+ }
70
+ }
71
+ const error = err;
72
+ return {
73
+ data: void 0,
74
+ error: {
75
+ name: error.name,
76
+ message: error.message,
77
+ stack: error.stack
78
+ }
79
+ };
80
+ }
81
+ };
82
+ const isBaseQueryError = (error) => {
83
+ return error.name !== void 0;
84
+ };
85
+ const api = createApi({
86
+ reducerPath: "plugin::documentation",
87
+ baseQuery: axiosBaseQuery({
88
+ baseURL: "/documentation"
89
+ }),
90
+ tagTypes: ["DocumentInfos"],
91
+ endpoints: (builder) => {
92
+ return {
93
+ getInfos: builder.query({
94
+ query: () => "/getInfos",
95
+ providesTags: ["DocumentInfos"]
96
+ }),
97
+ deleteVersion: builder.mutation({
98
+ query: ({ version }) => ({
99
+ url: `/deleteDoc/${version}`,
100
+ method: "DELETE"
101
+ }),
102
+ invalidatesTags: ["DocumentInfos"]
103
+ }),
104
+ updateSettings: builder.mutation({
105
+ query: ({ body }) => ({
106
+ url: `/updateSettings`,
107
+ method: "PUT",
108
+ data: body
109
+ }),
110
+ invalidatesTags: ["DocumentInfos"]
111
+ }),
112
+ regenerateDoc: builder.mutation({
113
+ query: ({ version }) => ({
114
+ url: `/regenerateDoc`,
115
+ method: "POST",
116
+ data: { version }
117
+ })
118
+ })
119
+ };
120
+ }
121
+ });
122
+ const {
123
+ useGetInfosQuery,
124
+ useDeleteVersionMutation,
125
+ useUpdateSettingsMutation,
126
+ useRegenerateDocMutation
127
+ } = api;
138
128
  const prefixPluginTranslations = (trad, pluginId2) => {
139
129
  if (!pluginId2) {
140
130
  throw new TypeError("pluginId can't be empty");
@@ -144,7 +134,6 @@ const prefixPluginTranslations = (trad, pluginId2) => {
144
134
  return acc;
145
135
  }, {});
146
136
  };
147
- const name = pluginPkg.strapi.name;
148
137
  const index = {
149
138
  register(app) {
150
139
  app.addMenuLink({
@@ -155,11 +144,18 @@ const index = {
155
144
  defaultMessage: "Documentation"
156
145
  },
157
146
  permissions: PERMISSIONS.main,
158
- Component: () => import("./index-7xstUX8_.mjs")
147
+ Component: async () => {
148
+ const { App } = await import("./App-ig-uE4do.mjs");
149
+ return App;
150
+ }
151
+ });
152
+ app.addMiddlewares([() => api.middleware]);
153
+ app.addReducers({
154
+ [api.reducerPath]: api.reducer
159
155
  });
160
156
  app.registerPlugin({
161
157
  id: pluginId,
162
- name
158
+ name: pluginId
163
159
  });
164
160
  },
165
161
  bootstrap(app) {
@@ -170,7 +166,10 @@ const index = {
170
166
  },
171
167
  id: "documentation",
172
168
  to: pluginId,
173
- Component: () => import("./index-VpLAJXMs.mjs"),
169
+ Component: async () => {
170
+ const { SettingsPage } = await import("./Settings-3hsPOP_b.mjs");
171
+ return SettingsPage;
172
+ },
174
173
  permissions: PERMISSIONS.main
175
174
  });
176
175
  },
@@ -195,7 +194,12 @@ const index = {
195
194
  };
196
195
  export {
197
196
  PERMISSIONS as P,
198
- index as i,
199
- pluginId as p
197
+ useRegenerateDocMutation as a,
198
+ useDeleteVersionMutation as b,
199
+ useUpdateSettingsMutation as c,
200
+ index as d,
201
+ isBaseQueryError as i,
202
+ pluginId as p,
203
+ useGetInfosQuery as u
200
204
  };
201
- //# sourceMappingURL=index-NvJ4m2q5.mjs.map
205
+ //# sourceMappingURL=index-jpDwTC-Q.mjs.map