@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.
- package/dist/_chunks/{App-B9jhSuSS.js → App-C7jXxgem.js} +10 -13
- package/dist/_chunks/App-C7jXxgem.js.map +1 -0
- package/dist/_chunks/{App-BrVjqg1Q.mjs → App-Go7NNBmB.mjs} +11 -12
- package/dist/_chunks/App-Go7NNBmB.mjs.map +1 -0
- package/dist/_chunks/{Settings-QnTsyFEz.js → Settings-BaiyFmcb.js} +72 -59
- package/dist/_chunks/Settings-BaiyFmcb.js.map +1 -0
- package/dist/_chunks/{Settings-CNeRvz0K.mjs → Settings-MolQTtkV.mjs} +74 -59
- package/dist/_chunks/Settings-MolQTtkV.mjs.map +1 -0
- package/dist/_chunks/getTrad-BIFypGyq.mjs +6 -0
- package/dist/_chunks/{getTrad-DE9mW83F.mjs.map → getTrad-BIFypGyq.mjs.map} +1 -1
- package/dist/_chunks/{getTrad-BkXHRBI9.js → getTrad-X8N4GzO0.js} +2 -2
- package/dist/_chunks/{getTrad-BkXHRBI9.js.map → getTrad-X8N4GzO0.js.map} +1 -1
- package/dist/_chunks/{index--Y3Rlgs0.js → index-CTFz5sSR.js} +36 -27
- package/dist/_chunks/index-CTFz5sSR.js.map +1 -0
- package/dist/_chunks/{index-Bn_OgqQr.mjs → index-Dfhqe6__.mjs} +37 -28
- package/dist/_chunks/index-Dfhqe6__.mjs.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/services/api.d.ts +9 -9
- package/dist/admin/src/utils/baseQuery.d.ts +8 -9
- package/package.json +11 -12
- package/dist/_chunks/App-B9jhSuSS.js.map +0 -1
- package/dist/_chunks/App-BrVjqg1Q.mjs.map +0 -1
- package/dist/_chunks/Settings-CNeRvz0K.mjs.map +0 -1
- package/dist/_chunks/Settings-QnTsyFEz.js.map +0 -1
- package/dist/_chunks/getTrad-DE9mW83F.mjs +0 -6
- package/dist/_chunks/index--Y3Rlgs0.js.map +0 -1
- 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 {
|
|
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
|
|
11
|
-
import { g as getTrad } from "./getTrad-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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",
|
|
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__ */
|
|
95
|
-
|
|
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
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
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__ */
|
|
120
|
-
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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 } =
|
|
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-
|
|
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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTrad-
|
|
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
|
|
2
|
+
const index = require("./index-CTFz5sSR.js");
|
|
3
3
|
const getTrad = (id) => `${index.pluginId}.${id}`;
|
|
4
4
|
exports.getTrad = getTrad;
|
|
5
|
-
//# sourceMappingURL=getTrad-
|
|
5
|
+
//# sourceMappingURL=getTrad-X8N4GzO0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTrad-
|
|
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
|
|
32
|
+
const baseQuery = () => async (query, { signal }) => {
|
|
34
33
|
try {
|
|
35
|
-
const { get, post, del, put } = admin.getFetchClient(
|
|
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
|
|
39
|
+
const { url, method = "GET", data, config } = query;
|
|
41
40
|
if (method === "POST") {
|
|
42
|
-
const result2 = await post(url, data, {
|
|
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, {
|
|
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, {
|
|
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, {
|
|
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 (
|
|
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.
|
|
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:
|
|
89
|
-
|
|
90
|
-
}),
|
|
91
|
-
tagTypes: ["DocumentInfos"],
|
|
99
|
+
baseQuery: baseQuery(),
|
|
100
|
+
tagTypes: ["DocumentInfo"],
|
|
92
101
|
endpoints: (builder) => {
|
|
93
102
|
return {
|
|
94
|
-
|
|
95
|
-
query: () => "/getInfos",
|
|
96
|
-
providesTags: ["
|
|
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: ["
|
|
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: ["
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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.
|
|
213
|
+
exports.useGetInfoQuery = useGetInfoQuery;
|
|
205
214
|
exports.useRegenerateDocMutation = useRegenerateDocMutation;
|
|
206
215
|
exports.useUpdateSettingsMutation = useUpdateSettingsMutation;
|
|
207
|
-
//# sourceMappingURL=index
|
|
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
|
|
31
|
+
const baseQuery = () => async (query, { signal }) => {
|
|
33
32
|
try {
|
|
34
|
-
const { get, post, del, put } = getFetchClient(
|
|
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
|
|
38
|
+
const { url, method = "GET", data, config } = query;
|
|
40
39
|
if (method === "POST") {
|
|
41
|
-
const result2 = await post(url, data, {
|
|
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, {
|
|
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, {
|
|
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, {
|
|
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 (
|
|
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.
|
|
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:
|
|
88
|
-
|
|
89
|
-
}),
|
|
90
|
-
tagTypes: ["DocumentInfos"],
|
|
98
|
+
baseQuery: baseQuery(),
|
|
99
|
+
tagTypes: ["DocumentInfo"],
|
|
91
100
|
endpoints: (builder) => {
|
|
92
101
|
return {
|
|
93
|
-
|
|
94
|
-
query: () => "/getInfos",
|
|
95
|
-
providesTags: ["
|
|
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: ["
|
|
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: ["
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
215
|
+
useGetInfoQuery as u
|
|
207
216
|
};
|
|
208
|
-
//# sourceMappingURL=index-
|
|
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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"}
|
package/dist/admin/index.js
CHANGED