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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +0 -1
  2. package/dist/_chunks/{index-D1KkfApT.js → App-Dsqz1mTz.js} +74 -22
  3. package/dist/_chunks/App-Dsqz1mTz.js.map +1 -0
  4. package/dist/_chunks/{index-7xstUX8_.mjs → App-mrzd5Xqj.mjs} +49 -16
  5. package/dist/_chunks/App-mrzd5Xqj.mjs.map +1 -0
  6. package/dist/_chunks/{index-VpLAJXMs.mjs → Settings-8v7IbdtY.mjs} +64 -33
  7. package/dist/_chunks/Settings-8v7IbdtY.mjs.map +1 -0
  8. package/dist/_chunks/{index-NbPCucJl.js → Settings-wdLQpouP.js} +69 -37
  9. package/dist/_chunks/Settings-wdLQpouP.js.map +1 -0
  10. package/dist/_chunks/getTrad-SeEDjZbP.mjs +6 -0
  11. package/dist/_chunks/getTrad-SeEDjZbP.mjs.map +1 -0
  12. package/dist/_chunks/getTrad-xlpeC9HP.js +5 -0
  13. package/dist/_chunks/getTrad-xlpeC9HP.js.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-r7HsQTou.js → index-_yYcImHU.js} +126 -119
  19. package/dist/_chunks/index-_yYcImHU.js.map +1 -0
  20. package/dist/_chunks/{index-NvJ4m2q5.mjs → index-mXCyE3EQ.mjs} +128 -121
  21. package/dist/_chunks/index-mXCyE3EQ.mjs.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 -16
  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-_yYcImHU.js");
13
+ const getTrad = require("./getTrad-xlpeC9HP.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-wdLQpouP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Settings-wdLQpouP.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,6 @@
1
+ import { p as pluginId } from "./index-mXCyE3EQ.mjs";
2
+ const getTrad = (id) => `${pluginId}.${id}`;
3
+ export {
4
+ getTrad as g
5
+ };
6
+ //# sourceMappingURL=getTrad-SeEDjZbP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTrad-SeEDjZbP.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;"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ const index = require("./index-_yYcImHU.js");
3
+ const getTrad = (id) => `${index.pluginId}.${id}`;
4
+ exports.getTrad = getTrad;
5
+ //# sourceMappingURL=getTrad-xlpeC9HP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTrad-xlpeC9HP.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;;"}
@@ -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,5 +1,8 @@
1
1
  "use strict";
2
2
  const icons = require("@strapi/icons");
3
+ const react = require("@reduxjs/toolkit/query/react");
4
+ const admin = require("@strapi/strapi/admin");
5
+ const axios = require("axios");
3
6
  const __variableDynamicImportRuntimeHelper = (glob, path) => {
4
7
  const v = glob[path];
5
8
  if (v) {
@@ -9,115 +12,6 @@ const __variableDynamicImportRuntimeHelper = (glob, path) => {
9
12
  (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
10
13
  });
11
14
  };
12
- const name$1 = "@strapi/plugin-documentation";
13
- const version = "5.0.0-alpha.4";
14
- const description = "Create an OpenAPI Document and visualize your API with SWAGGER UI.";
15
- const repository = {
16
- type: "git",
17
- url: "https://github.com/strapi/strapi.git",
18
- directory: "packages/plugins/documentation"
19
- };
20
- const license = "SEE LICENSE IN LICENSE";
21
- const author = {
22
- name: "Strapi Solutions SAS",
23
- email: "hi@strapi.io",
24
- url: "https://strapi.io"
25
- };
26
- const maintainers = [
27
- {
28
- name: "Strapi Solutions SAS",
29
- email: "hi@strapi.io",
30
- url: "https://strapi.io"
31
- }
32
- ];
33
- const exports$1 = {
34
- "./strapi-admin": {
35
- source: "./admin/src/index.js",
36
- "import": "./dist/admin/index.mjs",
37
- require: "./dist/admin/index.js",
38
- "default": "./dist/admin/index.js"
39
- },
40
- "./strapi-server": {
41
- source: "./strapi-server.js",
42
- require: "./strapi-server.js",
43
- "default": "./strapi-server.js"
44
- },
45
- "./package.json": "./package.json"
46
- };
47
- const scripts = {
48
- build: "pack-up build",
49
- clean: "run -T rimraf dist",
50
- lint: "run -T eslint .",
51
- "test:front": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js",
52
- "test:front:watch": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
53
- "test:unit": "jest --verbose",
54
- "test:unit:watch": "run -T jest --watch",
55
- watch: "pack-up watch"
56
- };
57
- const dependencies = {
58
- "@strapi/design-system": "1.16.0",
59
- "@strapi/icons": "1.16.0",
60
- "@strapi/utils": "5.0.0-alpha.4",
61
- bcryptjs: "2.4.3",
62
- cheerio: "^1.0.0-rc.12",
63
- formik: "2.4.5",
64
- "fs-extra": "10.1.0",
65
- immer: "9.0.21",
66
- "koa-static": "^5.0.0",
67
- lodash: "4.17.21",
68
- "path-to-regexp": "6.2.1",
69
- "react-helmet": "^6.1.0",
70
- "react-intl": "6.6.2",
71
- "react-query": "3.39.3",
72
- "swagger-ui-dist": "4.19.0",
73
- yaml: "1.10.2",
74
- yup: "0.32.9"
75
- };
76
- const devDependencies = {
77
- "@apidevtools/swagger-parser": "^10.1.0",
78
- "@strapi/pack-up": "5.0.0-alpha.4",
79
- "@strapi/strapi": "5.0.0-alpha.4",
80
- "@testing-library/react": "14.0.0",
81
- "@testing-library/user-event": "14.4.3",
82
- msw: "1.3.0",
83
- react: "^18.2.0",
84
- "react-dom": "^18.2.0",
85
- "react-router-dom": "6.22.3",
86
- "styled-components": "5.3.11"
87
- };
88
- const peerDependencies = {
89
- "@strapi/strapi": "^4.0.0",
90
- react: "^17.0.0 || ^18.0.0",
91
- "react-dom": "^17.0.0 || ^18.0.0",
92
- "react-router-dom": "^6.0.0",
93
- "styled-components": "^5.2.1"
94
- };
95
- const engines = {
96
- node: ">=18.0.0 <=20.x.x",
97
- npm: ">=6.0.0"
98
- };
99
- const strapi = {
100
- displayName: "Documentation",
101
- name: "documentation",
102
- description: "Create an OpenAPI Document and visualize your API with SWAGGER UI.",
103
- kind: "plugin"
104
- };
105
- const pluginPkg = {
106
- name: name$1,
107
- version,
108
- description,
109
- repository,
110
- license,
111
- author,
112
- maintainers,
113
- exports: exports$1,
114
- scripts,
115
- dependencies,
116
- devDependencies,
117
- peerDependencies,
118
- engines,
119
- strapi
120
- };
121
15
  const PERMISSIONS = {
122
16
  // This permission regards the main component (App) and is used to tell
123
17
  // If the plugin link should be displayed in the menu
@@ -135,17 +29,115 @@ const PERMISSIONS = {
135
29
  regenerate: [{ action: "plugin::documentation.settings.regenerate", subject: null }],
136
30
  update: [{ action: "plugin::documentation.settings.update", subject: null }]
137
31
  };
138
- const pluginId = pluginPkg.name.replace(/^@strapi\/plugin-/i, "");
32
+ const pluginId = "documentation";
33
+ const axiosBaseQuery = (config) => async (query, { signal }) => {
34
+ try {
35
+ const { get, post, del, put } = admin.getFetchClient(config);
36
+ if (typeof query === "string") {
37
+ const result = await get(query, { signal });
38
+ return { data: result.data };
39
+ } else {
40
+ const { url, method = "GET", data, config: config2 } = query;
41
+ if (method === "POST") {
42
+ const result2 = await post(url, data, { ...config2, signal });
43
+ return { data: result2.data };
44
+ }
45
+ if (method === "DELETE") {
46
+ const result2 = await del(url, { ...config2, signal });
47
+ return { data: result2.data };
48
+ }
49
+ if (method === "PUT") {
50
+ const result2 = await put(url, data, { ...config2, signal });
51
+ return { data: result2.data };
52
+ }
53
+ const result = await get(url, { ...config2, signal });
54
+ return { data: result.data };
55
+ }
56
+ } catch (err) {
57
+ if (axios.isAxiosError(err)) {
58
+ if (typeof err.response?.data === "object" && err.response?.data !== null && "error" in err.response?.data) {
59
+ return { data: void 0, error: err.response?.data.error };
60
+ } else {
61
+ return {
62
+ data: void 0,
63
+ error: {
64
+ name: "UnknownError",
65
+ message: "There was an unknown error response from the API",
66
+ details: err.response?.data,
67
+ status: err.response?.status
68
+ }
69
+ };
70
+ }
71
+ }
72
+ const error = err;
73
+ return {
74
+ data: void 0,
75
+ error: {
76
+ name: error.name,
77
+ message: error.message,
78
+ stack: error.stack
79
+ }
80
+ };
81
+ }
82
+ };
83
+ const isBaseQueryError = (error) => {
84
+ return error.name !== void 0;
85
+ };
86
+ const api = react.createApi({
87
+ reducerPath: "plugin::documentation",
88
+ baseQuery: axiosBaseQuery({
89
+ baseURL: "/documentation"
90
+ }),
91
+ tagTypes: ["DocumentInfos"],
92
+ endpoints: (builder) => {
93
+ return {
94
+ getInfos: builder.query({
95
+ query: () => "/getInfos",
96
+ providesTags: ["DocumentInfos"]
97
+ }),
98
+ deleteVersion: builder.mutation({
99
+ query: ({ version }) => ({
100
+ url: `/deleteDoc/${version}`,
101
+ method: "DELETE"
102
+ }),
103
+ invalidatesTags: ["DocumentInfos"]
104
+ }),
105
+ updateSettings: builder.mutation({
106
+ query: ({ body }) => ({
107
+ url: `/updateSettings`,
108
+ method: "PUT",
109
+ data: body
110
+ }),
111
+ invalidatesTags: ["DocumentInfos"]
112
+ }),
113
+ regenerateDoc: builder.mutation({
114
+ query: ({ version }) => ({
115
+ url: `/regenerateDoc`,
116
+ method: "POST",
117
+ data: { version }
118
+ })
119
+ })
120
+ };
121
+ }
122
+ });
123
+ const {
124
+ useGetInfosQuery,
125
+ useDeleteVersionMutation,
126
+ useUpdateSettingsMutation,
127
+ useRegenerateDocMutation
128
+ } = api;
139
129
  const prefixPluginTranslations = (trad, pluginId2) => {
140
130
  if (!pluginId2) {
141
131
  throw new TypeError("pluginId can't be empty");
142
132
  }
143
- return Object.keys(trad).reduce((acc, current) => {
144
- acc[`${pluginId2}.${current}`] = trad[current];
145
- return acc;
146
- }, {});
133
+ return Object.keys(trad).reduce(
134
+ (acc, current) => {
135
+ acc[`${pluginId2}.${current}`] = trad[current];
136
+ return acc;
137
+ },
138
+ {}
139
+ );
147
140
  };
148
- const name = pluginPkg.strapi.name;
149
141
  const index = {
150
142
  register(app) {
151
143
  app.addMenuLink({
@@ -156,11 +148,18 @@ const index = {
156
148
  defaultMessage: "Documentation"
157
149
  },
158
150
  permissions: PERMISSIONS.main,
159
- Component: () => Promise.resolve().then(() => require("./index-D1KkfApT.js"))
151
+ Component: async () => {
152
+ const { App } = await Promise.resolve().then(() => require("./App-Dsqz1mTz.js"));
153
+ return App;
154
+ }
155
+ });
156
+ app.addMiddlewares([() => api.middleware]);
157
+ app.addReducers({
158
+ [api.reducerPath]: api.reducer
160
159
  });
161
160
  app.registerPlugin({
162
161
  id: pluginId,
163
- name
162
+ name: pluginId
164
163
  });
165
164
  },
166
165
  bootstrap(app) {
@@ -171,7 +170,10 @@ const index = {
171
170
  },
172
171
  id: "documentation",
173
172
  to: pluginId,
174
- Component: () => Promise.resolve().then(() => require("./index-NbPCucJl.js")),
173
+ Component: async () => {
174
+ const { SettingsPage } = await Promise.resolve().then(() => require("./Settings-wdLQpouP.js"));
175
+ return SettingsPage;
176
+ },
175
177
  permissions: PERMISSIONS.main
176
178
  });
177
179
  },
@@ -196,5 +198,10 @@ const index = {
196
198
  };
197
199
  exports.PERMISSIONS = PERMISSIONS;
198
200
  exports.index = index;
201
+ exports.isBaseQueryError = isBaseQueryError;
199
202
  exports.pluginId = pluginId;
200
- //# sourceMappingURL=index-r7HsQTou.js.map
203
+ exports.useDeleteVersionMutation = useDeleteVersionMutation;
204
+ exports.useGetInfosQuery = useGetInfosQuery;
205
+ exports.useRegenerateDocMutation = useRegenerateDocMutation;
206
+ exports.useUpdateSettingsMutation = useUpdateSettingsMutation;
207
+ //# sourceMappingURL=index-_yYcImHU.js.map