@strapi/plugin-documentation 5.0.0-beta.6 → 5.0.0-beta.7

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 (28) hide show
  1. package/dist/_chunks/{App-B9jhSuSS.js → App-C7jXxgem.js} +10 -13
  2. package/dist/_chunks/App-C7jXxgem.js.map +1 -0
  3. package/dist/_chunks/{App-BrVjqg1Q.mjs → App-Go7NNBmB.mjs} +11 -12
  4. package/dist/_chunks/App-Go7NNBmB.mjs.map +1 -0
  5. package/dist/_chunks/{Settings-QnTsyFEz.js → Settings-BaiyFmcb.js} +72 -59
  6. package/dist/_chunks/Settings-BaiyFmcb.js.map +1 -0
  7. package/dist/_chunks/{Settings-CNeRvz0K.mjs → Settings-MolQTtkV.mjs} +74 -59
  8. package/dist/_chunks/Settings-MolQTtkV.mjs.map +1 -0
  9. package/dist/_chunks/getTrad-BIFypGyq.mjs +6 -0
  10. package/dist/_chunks/{getTrad-DE9mW83F.mjs.map → getTrad-BIFypGyq.mjs.map} +1 -1
  11. package/dist/_chunks/{getTrad-BkXHRBI9.js → getTrad-X8N4GzO0.js} +2 -2
  12. package/dist/_chunks/{getTrad-BkXHRBI9.js.map → getTrad-X8N4GzO0.js.map} +1 -1
  13. package/dist/_chunks/{index--Y3Rlgs0.js → index-CTFz5sSR.js} +36 -27
  14. package/dist/_chunks/index-CTFz5sSR.js.map +1 -0
  15. package/dist/_chunks/{index-Bn_OgqQr.mjs → index-Dfhqe6__.mjs} +37 -28
  16. package/dist/_chunks/index-Dfhqe6__.mjs.map +1 -0
  17. package/dist/admin/index.js +1 -1
  18. package/dist/admin/index.mjs +1 -1
  19. package/dist/admin/src/services/api.d.ts +9 -9
  20. package/dist/admin/src/utils/baseQuery.d.ts +8 -9
  21. package/package.json +11 -12
  22. package/dist/_chunks/App-B9jhSuSS.js.map +0 -1
  23. package/dist/_chunks/App-BrVjqg1Q.mjs.map +0 -1
  24. package/dist/_chunks/Settings-CNeRvz0K.mjs.map +0 -1
  25. package/dist/_chunks/Settings-QnTsyFEz.js.map +0 -1
  26. package/dist/_chunks/getTrad-DE9mW83F.mjs +0 -6
  27. package/dist/_chunks/index--Y3Rlgs0.js.map +0 -1
  28. package/dist/_chunks/index-Bn_OgqQr.mjs.map +0 -1
@@ -1,22 +1,21 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { FieldAction, HeaderLayout, Button, ContentLayout, Box, Flex, Typography, Grid, GridItem, ToggleInput, TextInput, Main } from "@strapi/design-system";
3
- import { translatedErrors, useRBAC, useNotification, useAPIErrorHandler, Page } from "@strapi/strapi/admin";
2
+ import { Field, Button, Box, Flex, Typography, Grid, GridItem, Toggle, TextInput, Main } from "@strapi/design-system";
3
+ import { translatedErrors, useRBAC, Layouts, useNotification, useAPIErrorHandler, Page } from "@strapi/strapi/admin";
4
4
  import { useIntl } from "react-intl";
5
5
  import * as React from "react";
6
6
  import { Check, Eye, EyeStriked } from "@strapi/icons";
7
7
  import { Formik, Form } from "formik";
8
- import styled from "styled-components";
8
+ import { styled } from "styled-components";
9
9
  import * as yup from "yup";
10
- import { P as PERMISSIONS, u as useGetInfosQuery, c as useUpdateSettingsMutation, i as isBaseQueryError } from "./index-Bn_OgqQr.mjs";
11
- import { g as getTrad } from "./getTrad-DE9mW83F.mjs";
12
- import "axios";
10
+ import { P as PERMISSIONS, u as useGetInfoQuery, c as useUpdateSettingsMutation, i as isBaseQueryError } from "./index-Dfhqe6__.mjs";
11
+ import { g as getTrad } from "./getTrad-BIFypGyq.mjs";
13
12
  const schema = yup.object().shape({
14
13
  restrictedAccess: yup.boolean(),
15
14
  password: yup.string().when("restrictedAccess", (value, initSchema) => {
16
15
  return value ? initSchema.required(translatedErrors.required.id) : initSchema;
17
16
  })
18
17
  });
19
- const FieldActionWrapper = styled(FieldAction)`
18
+ const FieldActionWrapper = styled(Field.Action)`
20
19
  svg {
21
20
  height: 1.6rem;
22
21
  width: 1.6rem;
@@ -51,7 +50,7 @@ const SettingsForm = ({ data, onSubmit }) => {
51
50
  }) => {
52
51
  return /* @__PURE__ */ jsxs(Form, { noValidate: true, onSubmit: handleSubmit, children: [
53
52
  /* @__PURE__ */ jsx(
54
- HeaderLayout,
53
+ Layouts.Header,
55
54
  {
56
55
  title: formatMessage({
57
56
  id: getTrad("plugin.name"),
@@ -75,7 +74,7 @@ const SettingsForm = ({ data, onSubmit }) => {
75
74
  )
76
75
  }
77
76
  ),
78
- /* @__PURE__ */ jsx(ContentLayout, { children: /* @__PURE__ */ jsx(
77
+ /* @__PURE__ */ jsx(Layouts.Content, { children: /* @__PURE__ */ jsx(
79
78
  Box,
80
79
  {
81
80
  background: "neutral0",
@@ -86,71 +85,87 @@ const SettingsForm = ({ data, onSubmit }) => {
86
85
  paddingLeft: 7,
87
86
  paddingRight: 7,
88
87
  children: /* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "stretch", gap: 4, children: [
89
- /* @__PURE__ */ jsx(Typography, { variant: "delta", as: "h2", children: formatMessage({
88
+ /* @__PURE__ */ jsx(Typography, { variant: "delta", tag: "h2", children: formatMessage({
90
89
  id: "global.settings",
91
90
  defaultMessage: "Settings"
92
91
  }) }),
93
92
  /* @__PURE__ */ jsxs(Grid, { gap: 4, children: [
94
- /* @__PURE__ */ jsx(GridItem, { col: 6, s: 12, children: /* @__PURE__ */ jsx(
95
- ToggleInput,
93
+ /* @__PURE__ */ jsx(GridItem, { col: 6, s: 12, children: /* @__PURE__ */ jsxs(
94
+ Field.Root,
96
95
  {
97
96
  name: "restrictedAccess",
98
- label: formatMessage({
99
- id: getTrad("pages.SettingsPage.toggle.label"),
100
- defaultMessage: "Restricted Access"
101
- }),
102
97
  hint: formatMessage({
103
98
  id: getTrad("pages.SettingsPage.toggle.hint"),
104
99
  defaultMessage: "Make the documentation endpoint private"
105
100
  }),
106
- checked: values.restrictedAccess,
107
- onChange: () => {
108
- if (values.restrictedAccess === true) {
109
- setFieldValue("password", "", false);
110
- setFieldTouched("password", false, false);
111
- setFieldError("password", void 0);
112
- }
113
- setFieldValue("restrictedAccess", !values.restrictedAccess, false);
114
- },
115
- onLabel: "On",
116
- offLabel: "Off"
101
+ children: [
102
+ /* @__PURE__ */ jsx(Field.Label, { children: formatMessage({
103
+ id: getTrad("pages.SettingsPage.toggle.label"),
104
+ defaultMessage: "Restricted Access"
105
+ }) }),
106
+ /* @__PURE__ */ jsx(
107
+ Toggle,
108
+ {
109
+ checked: values.restrictedAccess,
110
+ onChange: () => {
111
+ if (values.restrictedAccess === true) {
112
+ setFieldValue("password", "", false);
113
+ setFieldTouched("password", false, false);
114
+ setFieldError("password", void 0);
115
+ }
116
+ setFieldValue("restrictedAccess", !values.restrictedAccess, false);
117
+ },
118
+ onLabel: "On",
119
+ offLabel: "Off"
120
+ }
121
+ ),
122
+ /* @__PURE__ */ jsx(Field.Hint, {})
123
+ ]
117
124
  }
118
125
  ) }),
119
- values.restrictedAccess && /* @__PURE__ */ jsx(GridItem, { col: 6, s: 12, children: /* @__PURE__ */ jsx(
120
- TextInput,
126
+ values.restrictedAccess && /* @__PURE__ */ jsx(GridItem, { col: 6, s: 12, children: /* @__PURE__ */ jsxs(
127
+ Field.Root,
121
128
  {
122
- label: formatMessage({
123
- id: "global.password",
124
- defaultMessage: "Password"
125
- }),
126
129
  name: "password",
127
- placeholder: "**********",
128
- type: passwordShown ? "text" : "password",
129
- value: values.password,
130
- onChange: handleChange,
131
130
  error: errors.password ? formatMessage({
132
131
  id: errors.password,
133
132
  defaultMessage: errors.password
134
133
  }) : void 0,
135
- endAction: /* @__PURE__ */ jsx(
136
- FieldActionWrapper,
137
- {
138
- onClick: (e) => {
139
- e.stopPropagation();
140
- setPasswordShown((prev) => !prev);
141
- },
142
- label: formatMessage(
143
- passwordShown ? {
144
- id: "Auth.form.password.show-password",
145
- defaultMessage: "Show password"
146
- } : {
147
- id: "Auth.form.password.hide-password",
148
- defaultMessage: "Hide password"
149
- }
150
- ),
151
- children: passwordShown ? /* @__PURE__ */ jsx(Eye, {}) : /* @__PURE__ */ jsx(EyeStriked, {})
152
- }
153
- )
134
+ children: [
135
+ /* @__PURE__ */ jsx(Field.Label, { children: formatMessage({
136
+ id: "global.password",
137
+ defaultMessage: "Password"
138
+ }) }),
139
+ /* @__PURE__ */ jsx(
140
+ TextInput,
141
+ {
142
+ placeholder: "**********",
143
+ type: passwordShown ? "text" : "password",
144
+ value: values.password,
145
+ onChange: handleChange,
146
+ endAction: /* @__PURE__ */ jsx(
147
+ FieldActionWrapper,
148
+ {
149
+ onClick: (e) => {
150
+ e.stopPropagation();
151
+ setPasswordShown((prev) => !prev);
152
+ },
153
+ label: formatMessage(
154
+ passwordShown ? {
155
+ id: "Auth.form.password.show-password",
156
+ defaultMessage: "Show password"
157
+ } : {
158
+ id: "Auth.form.password.hide-password",
159
+ defaultMessage: "Hide password"
160
+ }
161
+ ),
162
+ children: passwordShown ? /* @__PURE__ */ jsx(Eye, {}) : /* @__PURE__ */ jsx(EyeStriked, {})
163
+ }
164
+ )
165
+ }
166
+ ),
167
+ /* @__PURE__ */ jsx(Field.Error, {})
168
+ ]
154
169
  }
155
170
  ) })
156
171
  ] })
@@ -169,7 +184,7 @@ const SettingsPage = () => {
169
184
  _unstableFormatAPIError: formatAPIError,
170
185
  _unstableFormatValidationErrors: formatValidationErrors
171
186
  } = useAPIErrorHandler();
172
- const { data, isError, isLoading } = useGetInfosQuery();
187
+ const { data, isError, isLoading, isFetching } = useGetInfoQuery();
173
188
  const [updateSettings] = useUpdateSettingsMutation();
174
189
  const onUpdateSettings = async (body, formik) => {
175
190
  return updateSettings({ body }).unwrap().then(() => {
@@ -191,7 +206,7 @@ const SettingsPage = () => {
191
206
  }
192
207
  });
193
208
  };
194
- if (isLoading) {
209
+ if (isLoading || isFetching) {
195
210
  return /* @__PURE__ */ jsx(Page.Loading, {});
196
211
  }
197
212
  if (isError) {
@@ -202,4 +217,4 @@ const SettingsPage = () => {
202
217
  export {
203
218
  SettingsPage
204
219
  };
205
- //# sourceMappingURL=Settings-CNeRvz0K.mjs.map
220
+ //# sourceMappingURL=Settings-MolQTtkV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Settings-MolQTtkV.mjs","sources":["../../admin/src/components/SettingsForm.tsx","../../admin/src/pages/Settings.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\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 ? initSchema.required(translatedErrors.required.id) : 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 >\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 gap={4}>\n <GridItem col={6} s={12}>\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 </GridItem>\n {values.restrictedAccess && (\n <GridItem col={6} s={12}>\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 </GridItem>\n )}\n </Grid>\n </Flex>\n </Box>\n </Layouts.Content>\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 { useGetInfoQuery, 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, isFetching } = useGetInfoQuery();\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 || isFetching) {\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":["Show","Hide"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { p as pluginId } from "./index-Dfhqe6__.mjs";
2
+ const getTrad = (id) => `${pluginId}.${id}`;
3
+ export {
4
+ getTrad as g
5
+ };
6
+ //# sourceMappingURL=getTrad-BIFypGyq.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"getTrad-DE9mW83F.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
+ {"version":3,"file":"getTrad-BIFypGyq.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,5 +1,5 @@
1
1
  "use strict";
2
- const index = require("./index--Y3Rlgs0.js");
2
+ const index = require("./index-CTFz5sSR.js");
3
3
  const getTrad = (id) => `${index.pluginId}.${id}`;
4
4
  exports.getTrad = getTrad;
5
- //# sourceMappingURL=getTrad-BkXHRBI9.js.map
5
+ //# sourceMappingURL=getTrad-X8N4GzO0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getTrad-BkXHRBI9.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
+ {"version":3,"file":"getTrad-X8N4GzO0.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;;"}
@@ -2,7 +2,6 @@
2
2
  const icons = require("@strapi/icons");
3
3
  const react = require("@reduxjs/toolkit/query/react");
4
4
  const admin = require("@strapi/strapi/admin");
5
- const axios = require("axios");
6
5
  const __variableDynamicImportRuntimeHelper = (glob, path) => {
7
6
  const v = glob[path];
8
7
  if (v) {
@@ -30,31 +29,43 @@ const PERMISSIONS = {
30
29
  update: [{ action: "plugin::documentation.settings.update", subject: null }]
31
30
  };
32
31
  const pluginId = "documentation";
33
- const axiosBaseQuery = (config) => async (query, { signal }) => {
32
+ const baseQuery = () => async (query, { signal }) => {
34
33
  try {
35
- const { get, post, del, put } = admin.getFetchClient(config);
34
+ const { get, post, del, put } = admin.getFetchClient();
36
35
  if (typeof query === "string") {
37
36
  const result = await get(query, { signal });
38
37
  return { data: result.data };
39
38
  } else {
40
- const { url, method = "GET", data, config: config2 } = query;
39
+ const { url, method = "GET", data, config } = query;
41
40
  if (method === "POST") {
42
- const result2 = await post(url, data, { ...config2, signal });
41
+ const result2 = await post(url, data, {
42
+ ...config,
43
+ signal
44
+ });
43
45
  return { data: result2.data };
44
46
  }
45
47
  if (method === "DELETE") {
46
- const result2 = await del(url, { ...config2, signal });
48
+ const result2 = await del(url, {
49
+ ...config,
50
+ signal
51
+ });
47
52
  return { data: result2.data };
48
53
  }
49
54
  if (method === "PUT") {
50
- const result2 = await put(url, data, { ...config2, signal });
55
+ const result2 = await put(url, data, {
56
+ ...config,
57
+ signal
58
+ });
51
59
  return { data: result2.data };
52
60
  }
53
- const result = await get(url, { ...config2, signal });
61
+ const result = await get(url, {
62
+ ...config,
63
+ signal
64
+ });
54
65
  return { data: result.data };
55
66
  }
56
67
  } catch (err) {
57
- if (axios.isAxiosError(err)) {
68
+ if (admin.isFetchError(err)) {
58
69
  if (typeof err.response?.data === "object" && err.response?.data !== null && "error" in err.response?.data) {
59
70
  return { data: void 0, error: err.response?.data.error };
60
71
  } else {
@@ -64,7 +75,7 @@ const axiosBaseQuery = (config) => async (query, { signal }) => {
64
75
  name: "UnknownError",
65
76
  message: "There was an unknown error response from the API",
66
77
  details: err.response?.data,
67
- status: err.response?.status
78
+ status: err.status
68
79
  }
69
80
  };
70
81
  }
@@ -85,34 +96,32 @@ const isBaseQueryError = (error) => {
85
96
  };
86
97
  const api = react.createApi({
87
98
  reducerPath: "plugin::documentation",
88
- baseQuery: axiosBaseQuery({
89
- baseURL: "/documentation"
90
- }),
91
- tagTypes: ["DocumentInfos"],
99
+ baseQuery: baseQuery(),
100
+ tagTypes: ["DocumentInfo"],
92
101
  endpoints: (builder) => {
93
102
  return {
94
- getInfos: builder.query({
95
- query: () => "/getInfos",
96
- providesTags: ["DocumentInfos"]
103
+ getInfo: builder.query({
104
+ query: () => "/documentation/getInfos",
105
+ providesTags: ["DocumentInfo"]
97
106
  }),
98
107
  deleteVersion: builder.mutation({
99
108
  query: ({ version }) => ({
100
- url: `/deleteDoc/${version}`,
109
+ url: `/documentation/deleteDoc/${version}`,
101
110
  method: "DELETE"
102
111
  }),
103
- invalidatesTags: ["DocumentInfos"]
112
+ invalidatesTags: ["DocumentInfo"]
104
113
  }),
105
114
  updateSettings: builder.mutation({
106
115
  query: ({ body }) => ({
107
- url: `/updateSettings`,
116
+ url: `/documentation/updateSettings`,
108
117
  method: "PUT",
109
118
  data: body
110
119
  }),
111
- invalidatesTags: ["DocumentInfos"]
120
+ invalidatesTags: ["DocumentInfo"]
112
121
  }),
113
122
  regenerateDoc: builder.mutation({
114
123
  query: ({ version }) => ({
115
- url: `/regenerateDoc`,
124
+ url: `/documentation/regenerateDoc`,
116
125
  method: "POST",
117
126
  data: { version }
118
127
  })
@@ -121,7 +130,7 @@ const api = react.createApi({
121
130
  }
122
131
  });
123
132
  const {
124
- useGetInfosQuery,
133
+ useGetInfoQuery,
125
134
  useDeleteVersionMutation,
126
135
  useUpdateSettingsMutation,
127
136
  useRegenerateDocMutation
@@ -149,7 +158,7 @@ const index = {
149
158
  },
150
159
  permissions: PERMISSIONS.main,
151
160
  Component: async () => {
152
- const { App } = await Promise.resolve().then(() => require("./App-B9jhSuSS.js"));
161
+ const { App } = await Promise.resolve().then(() => require("./App-C7jXxgem.js"));
153
162
  return App;
154
163
  }
155
164
  });
@@ -171,7 +180,7 @@ const index = {
171
180
  id: "documentation",
172
181
  to: pluginId,
173
182
  Component: async () => {
174
- const { SettingsPage } = await Promise.resolve().then(() => require("./Settings-QnTsyFEz.js"));
183
+ const { SettingsPage } = await Promise.resolve().then(() => require("./Settings-BaiyFmcb.js"));
175
184
  return SettingsPage;
176
185
  },
177
186
  permissions: PERMISSIONS.main
@@ -201,7 +210,7 @@ exports.index = index;
201
210
  exports.isBaseQueryError = isBaseQueryError;
202
211
  exports.pluginId = pluginId;
203
212
  exports.useDeleteVersionMutation = useDeleteVersionMutation;
204
- exports.useGetInfosQuery = useGetInfosQuery;
213
+ exports.useGetInfoQuery = useGetInfoQuery;
205
214
  exports.useRegenerateDocMutation = useRegenerateDocMutation;
206
215
  exports.useUpdateSettingsMutation = useUpdateSettingsMutation;
207
- //# sourceMappingURL=index--Y3Rlgs0.js.map
216
+ //# sourceMappingURL=index-CTFz5sSR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CTFz5sSR.js","sources":["../../admin/src/constants.ts","../../admin/src/pluginId.ts","../../admin/src/utils/baseQuery.ts","../../admin/src/services/api.ts","../../admin/src/utils/prefixPluginTranslations.ts","../../admin/src/index.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","export const pluginId = 'documentation';\n","import { SerializedError } from '@reduxjs/toolkit';\nimport { BaseQueryFn } from '@reduxjs/toolkit/query';\nimport {\n getFetchClient,\n isFetchError,\n type ApiError,\n type FetchOptions,\n} from '@strapi/strapi/admin';\n\nexport interface QueryArguments {\n url: string;\n method?: string;\n data?: unknown;\n config?: FetchOptions;\n}\n\nexport interface UnknownApiError {\n name: 'UnknownError';\n message: string;\n details?: unknown;\n status?: number;\n}\n\nexport type BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst baseQuery =\n (): BaseQueryFn<string | QueryArguments, unknown, BaseQueryError> =>\n async (query, { signal }) => {\n try {\n const { get, post, del, put } = getFetchClient();\n\n if (typeof query === 'string') {\n const result = await get(query, { signal });\n return { data: result.data };\n } else {\n const { url, method = 'GET', data, config } = query;\n\n if (method === 'POST') {\n const result = await post(url, data, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n\n if (method === 'DELETE') {\n const result = await del(url, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n\n if (method === 'PUT') {\n const result = await put(url, data, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n\n /**\n * Default is GET.\n */\n const result = await get(url, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n } catch (err) {\n /**\n * Handle error of type FetchError\n *\n * This format mimics what we want from an FetchError which is what the\n * rest of the app works with, except this format is \"serializable\" since\n * it goes into the redux store.\n *\n * NOTE – passing the whole response will highlight this \"serializability\" issue.\n */\n\n if (isFetchError(err)) {\n if (\n typeof err.response?.data === 'object' &&\n err.response?.data !== null &&\n 'error' in err.response?.data\n ) {\n /**\n * This will most likely be ApiError\n */\n return { data: undefined, error: err.response?.data.error };\n } else {\n return {\n data: undefined,\n error: {\n name: 'UnknownError',\n message: 'There was an unknown error response from the API',\n details: err.response?.data,\n status: err.status,\n } as UnknownApiError,\n };\n }\n }\n\n const error = err as Error;\n return {\n data: undefined,\n error: {\n name: error.name,\n message: error.message,\n stack: error.stack,\n } satisfies SerializedError,\n };\n }\n };\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { baseQuery, isBaseQueryError };\n","import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { DocumentInfos } from '../types';\nimport { baseQuery } from '../utils/baseQuery';\n\ntype SettingsInput = {\n restrictedAccess: boolean;\n password: string;\n};\n\nconst api = createApi({\n reducerPath: 'plugin::documentation',\n baseQuery: baseQuery(),\n tagTypes: ['DocumentInfo'],\n endpoints: (builder) => {\n return {\n getInfo: builder.query<DocumentInfos, void>({\n query: () => '/documentation/getInfos',\n providesTags: ['DocumentInfo'],\n }),\n\n deleteVersion: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/documentation/deleteDoc/${version}`,\n method: 'DELETE',\n }),\n invalidatesTags: ['DocumentInfo'],\n }),\n\n updateSettings: builder.mutation<void, { body: SettingsInput }>({\n query: ({ body }) => ({\n url: `/documentation/updateSettings`,\n method: 'PUT',\n data: body,\n }),\n invalidatesTags: ['DocumentInfo'],\n }),\n\n regenerateDoc: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/documentation/regenerateDoc`,\n method: 'POST',\n data: { version },\n }),\n }),\n };\n },\n});\n\nexport { api };\n\nexport const {\n useGetInfoQuery,\n useDeleteVersionMutation,\n useUpdateSettingsMutation,\n useRegenerateDocMutation,\n} = api;\n","const prefixPluginTranslations = (trad: Record<string, string>, pluginId?: string) => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n\n return Object.keys(trad).reduce(\n (acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n\n return acc;\n },\n {} as Record<string, string>\n );\n};\n\nexport { prefixPluginTranslations };\n","import { Information } from '@strapi/icons';\n\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { api } from './services/api';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: any) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Information,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n permissions: PERMISSIONS.main,\n Component: async () => {\n const { App } = await import('./pages/App');\n return App;\n },\n });\n\n app.addMiddlewares([() => api.middleware]);\n\n app.addReducers({\n [api.reducerPath]: api.reducer,\n });\n\n app.registerPlugin({\n id: pluginId,\n name: pluginId,\n });\n },\n bootstrap(app: any) {\n app.addSettingsLink('global', {\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n id: 'documentation',\n to: pluginId,\n Component: async () => {\n const { SettingsPage } = await import('./pages/Settings');\n return SettingsPage;\n },\n permissions: PERMISSIONS.main,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["getFetchClient","result","isFetchError","createApi","pluginId","Information"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { Information } from "@strapi/icons";
2
2
  import { createApi } from "@reduxjs/toolkit/query/react";
3
- import { getFetchClient } from "@strapi/strapi/admin";
4
- import { isAxiosError } from "axios";
3
+ import { getFetchClient, isFetchError } from "@strapi/strapi/admin";
5
4
  const __variableDynamicImportRuntimeHelper = (glob, path) => {
6
5
  const v = glob[path];
7
6
  if (v) {
@@ -29,31 +28,43 @@ const PERMISSIONS = {
29
28
  update: [{ action: "plugin::documentation.settings.update", subject: null }]
30
29
  };
31
30
  const pluginId = "documentation";
32
- const axiosBaseQuery = (config) => async (query, { signal }) => {
31
+ const baseQuery = () => async (query, { signal }) => {
33
32
  try {
34
- const { get, post, del, put } = getFetchClient(config);
33
+ const { get, post, del, put } = getFetchClient();
35
34
  if (typeof query === "string") {
36
35
  const result = await get(query, { signal });
37
36
  return { data: result.data };
38
37
  } else {
39
- const { url, method = "GET", data, config: config2 } = query;
38
+ const { url, method = "GET", data, config } = query;
40
39
  if (method === "POST") {
41
- const result2 = await post(url, data, { ...config2, signal });
40
+ const result2 = await post(url, data, {
41
+ ...config,
42
+ signal
43
+ });
42
44
  return { data: result2.data };
43
45
  }
44
46
  if (method === "DELETE") {
45
- const result2 = await del(url, { ...config2, signal });
47
+ const result2 = await del(url, {
48
+ ...config,
49
+ signal
50
+ });
46
51
  return { data: result2.data };
47
52
  }
48
53
  if (method === "PUT") {
49
- const result2 = await put(url, data, { ...config2, signal });
54
+ const result2 = await put(url, data, {
55
+ ...config,
56
+ signal
57
+ });
50
58
  return { data: result2.data };
51
59
  }
52
- const result = await get(url, { ...config2, signal });
60
+ const result = await get(url, {
61
+ ...config,
62
+ signal
63
+ });
53
64
  return { data: result.data };
54
65
  }
55
66
  } catch (err) {
56
- if (isAxiosError(err)) {
67
+ if (isFetchError(err)) {
57
68
  if (typeof err.response?.data === "object" && err.response?.data !== null && "error" in err.response?.data) {
58
69
  return { data: void 0, error: err.response?.data.error };
59
70
  } else {
@@ -63,7 +74,7 @@ const axiosBaseQuery = (config) => async (query, { signal }) => {
63
74
  name: "UnknownError",
64
75
  message: "There was an unknown error response from the API",
65
76
  details: err.response?.data,
66
- status: err.response?.status
77
+ status: err.status
67
78
  }
68
79
  };
69
80
  }
@@ -84,34 +95,32 @@ const isBaseQueryError = (error) => {
84
95
  };
85
96
  const api = createApi({
86
97
  reducerPath: "plugin::documentation",
87
- baseQuery: axiosBaseQuery({
88
- baseURL: "/documentation"
89
- }),
90
- tagTypes: ["DocumentInfos"],
98
+ baseQuery: baseQuery(),
99
+ tagTypes: ["DocumentInfo"],
91
100
  endpoints: (builder) => {
92
101
  return {
93
- getInfos: builder.query({
94
- query: () => "/getInfos",
95
- providesTags: ["DocumentInfos"]
102
+ getInfo: builder.query({
103
+ query: () => "/documentation/getInfos",
104
+ providesTags: ["DocumentInfo"]
96
105
  }),
97
106
  deleteVersion: builder.mutation({
98
107
  query: ({ version }) => ({
99
- url: `/deleteDoc/${version}`,
108
+ url: `/documentation/deleteDoc/${version}`,
100
109
  method: "DELETE"
101
110
  }),
102
- invalidatesTags: ["DocumentInfos"]
111
+ invalidatesTags: ["DocumentInfo"]
103
112
  }),
104
113
  updateSettings: builder.mutation({
105
114
  query: ({ body }) => ({
106
- url: `/updateSettings`,
115
+ url: `/documentation/updateSettings`,
107
116
  method: "PUT",
108
117
  data: body
109
118
  }),
110
- invalidatesTags: ["DocumentInfos"]
119
+ invalidatesTags: ["DocumentInfo"]
111
120
  }),
112
121
  regenerateDoc: builder.mutation({
113
122
  query: ({ version }) => ({
114
- url: `/regenerateDoc`,
123
+ url: `/documentation/regenerateDoc`,
115
124
  method: "POST",
116
125
  data: { version }
117
126
  })
@@ -120,7 +129,7 @@ const api = createApi({
120
129
  }
121
130
  });
122
131
  const {
123
- useGetInfosQuery,
132
+ useGetInfoQuery,
124
133
  useDeleteVersionMutation,
125
134
  useUpdateSettingsMutation,
126
135
  useRegenerateDocMutation
@@ -148,7 +157,7 @@ const index = {
148
157
  },
149
158
  permissions: PERMISSIONS.main,
150
159
  Component: async () => {
151
- const { App } = await import("./App-BrVjqg1Q.mjs");
160
+ const { App } = await import("./App-Go7NNBmB.mjs");
152
161
  return App;
153
162
  }
154
163
  });
@@ -170,7 +179,7 @@ const index = {
170
179
  id: "documentation",
171
180
  to: pluginId,
172
181
  Component: async () => {
173
- const { SettingsPage } = await import("./Settings-CNeRvz0K.mjs");
182
+ const { SettingsPage } = await import("./Settings-MolQTtkV.mjs");
174
183
  return SettingsPage;
175
184
  },
176
185
  permissions: PERMISSIONS.main
@@ -203,6 +212,6 @@ export {
203
212
  index as d,
204
213
  isBaseQueryError as i,
205
214
  pluginId as p,
206
- useGetInfosQuery as u
215
+ useGetInfoQuery as u
207
216
  };
208
- //# sourceMappingURL=index-Bn_OgqQr.mjs.map
217
+ //# sourceMappingURL=index-Dfhqe6__.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Dfhqe6__.mjs","sources":["../../admin/src/constants.ts","../../admin/src/pluginId.ts","../../admin/src/utils/baseQuery.ts","../../admin/src/services/api.ts","../../admin/src/utils/prefixPluginTranslations.ts","../../admin/src/index.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","export const pluginId = 'documentation';\n","import { SerializedError } from '@reduxjs/toolkit';\nimport { BaseQueryFn } from '@reduxjs/toolkit/query';\nimport {\n getFetchClient,\n isFetchError,\n type ApiError,\n type FetchOptions,\n} from '@strapi/strapi/admin';\n\nexport interface QueryArguments {\n url: string;\n method?: string;\n data?: unknown;\n config?: FetchOptions;\n}\n\nexport interface UnknownApiError {\n name: 'UnknownError';\n message: string;\n details?: unknown;\n status?: number;\n}\n\nexport type BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst baseQuery =\n (): BaseQueryFn<string | QueryArguments, unknown, BaseQueryError> =>\n async (query, { signal }) => {\n try {\n const { get, post, del, put } = getFetchClient();\n\n if (typeof query === 'string') {\n const result = await get(query, { signal });\n return { data: result.data };\n } else {\n const { url, method = 'GET', data, config } = query;\n\n if (method === 'POST') {\n const result = await post(url, data, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n\n if (method === 'DELETE') {\n const result = await del(url, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n\n if (method === 'PUT') {\n const result = await put(url, data, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n\n /**\n * Default is GET.\n */\n const result = await get(url, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n } catch (err) {\n /**\n * Handle error of type FetchError\n *\n * This format mimics what we want from an FetchError which is what the\n * rest of the app works with, except this format is \"serializable\" since\n * it goes into the redux store.\n *\n * NOTE – passing the whole response will highlight this \"serializability\" issue.\n */\n\n if (isFetchError(err)) {\n if (\n typeof err.response?.data === 'object' &&\n err.response?.data !== null &&\n 'error' in err.response?.data\n ) {\n /**\n * This will most likely be ApiError\n */\n return { data: undefined, error: err.response?.data.error };\n } else {\n return {\n data: undefined,\n error: {\n name: 'UnknownError',\n message: 'There was an unknown error response from the API',\n details: err.response?.data,\n status: err.status,\n } as UnknownApiError,\n };\n }\n }\n\n const error = err as Error;\n return {\n data: undefined,\n error: {\n name: error.name,\n message: error.message,\n stack: error.stack,\n } satisfies SerializedError,\n };\n }\n };\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { baseQuery, isBaseQueryError };\n","import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { DocumentInfos } from '../types';\nimport { baseQuery } from '../utils/baseQuery';\n\ntype SettingsInput = {\n restrictedAccess: boolean;\n password: string;\n};\n\nconst api = createApi({\n reducerPath: 'plugin::documentation',\n baseQuery: baseQuery(),\n tagTypes: ['DocumentInfo'],\n endpoints: (builder) => {\n return {\n getInfo: builder.query<DocumentInfos, void>({\n query: () => '/documentation/getInfos',\n providesTags: ['DocumentInfo'],\n }),\n\n deleteVersion: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/documentation/deleteDoc/${version}`,\n method: 'DELETE',\n }),\n invalidatesTags: ['DocumentInfo'],\n }),\n\n updateSettings: builder.mutation<void, { body: SettingsInput }>({\n query: ({ body }) => ({\n url: `/documentation/updateSettings`,\n method: 'PUT',\n data: body,\n }),\n invalidatesTags: ['DocumentInfo'],\n }),\n\n regenerateDoc: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/documentation/regenerateDoc`,\n method: 'POST',\n data: { version },\n }),\n }),\n };\n },\n});\n\nexport { api };\n\nexport const {\n useGetInfoQuery,\n useDeleteVersionMutation,\n useUpdateSettingsMutation,\n useRegenerateDocMutation,\n} = api;\n","const prefixPluginTranslations = (trad: Record<string, string>, pluginId?: string) => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n\n return Object.keys(trad).reduce(\n (acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n\n return acc;\n },\n {} as Record<string, string>\n );\n};\n\nexport { prefixPluginTranslations };\n","import { Information } from '@strapi/icons';\n\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { api } from './services/api';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: any) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Information,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n permissions: PERMISSIONS.main,\n Component: async () => {\n const { App } = await import('./pages/App');\n return App;\n },\n });\n\n app.addMiddlewares([() => api.middleware]);\n\n app.addReducers({\n [api.reducerPath]: api.reducer,\n });\n\n app.registerPlugin({\n id: pluginId,\n name: pluginId,\n });\n },\n bootstrap(app: any) {\n app.addSettingsLink('global', {\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n id: 'documentation',\n to: pluginId,\n Component: async () => {\n const { SettingsPage } = await import('./pages/Settings');\n return SettingsPage;\n },\n permissions: PERMISSIONS.main,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["result","pluginId"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const index = require("../_chunks/index--Y3Rlgs0.js");
2
+ const index = require("../_chunks/index-CTFz5sSR.js");
3
3
  require("@strapi/icons");
4
4
  module.exports = index.index;
5
5
  //# sourceMappingURL=index.js.map