@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.
- package/README.md +0 -1
- package/dist/_chunks/{index-D1KkfApT.js → App-Dsqz1mTz.js} +74 -22
- package/dist/_chunks/App-Dsqz1mTz.js.map +1 -0
- package/dist/_chunks/{index-7xstUX8_.mjs → App-mrzd5Xqj.mjs} +49 -16
- package/dist/_chunks/App-mrzd5Xqj.mjs.map +1 -0
- package/dist/_chunks/{index-VpLAJXMs.mjs → Settings-8v7IbdtY.mjs} +64 -33
- package/dist/_chunks/Settings-8v7IbdtY.mjs.map +1 -0
- package/dist/_chunks/{index-NbPCucJl.js → Settings-wdLQpouP.js} +69 -37
- package/dist/_chunks/Settings-wdLQpouP.js.map +1 -0
- package/dist/_chunks/getTrad-SeEDjZbP.mjs +6 -0
- package/dist/_chunks/getTrad-SeEDjZbP.mjs.map +1 -0
- package/dist/_chunks/getTrad-xlpeC9HP.js +5 -0
- package/dist/_chunks/getTrad-xlpeC9HP.js.map +1 -0
- package/{server/public/index.html → dist/_chunks/index-MKWIGajW.mjs} +9 -4
- package/dist/_chunks/index-MKWIGajW.mjs.map +1 -0
- package/dist/_chunks/index-WbbYm9_u.js +75 -0
- package/dist/_chunks/index-WbbYm9_u.js.map +1 -0
- package/dist/_chunks/{index-r7HsQTou.js → index-_yYcImHU.js} +126 -119
- package/dist/_chunks/index-_yYcImHU.js.map +1 -0
- package/dist/_chunks/{index-NvJ4m2q5.mjs → index-mXCyE3EQ.mjs} +128 -121
- package/dist/_chunks/index-mXCyE3EQ.mjs.map +1 -0
- package/dist/_chunks/login-HAajOKpu.js +150 -0
- package/dist/_chunks/login-HAajOKpu.js.map +1 -0
- package/{server/public/login.html → dist/_chunks/login-slUa679p.mjs} +6 -1
- package/dist/_chunks/login-slUa679p.mjs.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +2 -2
- package/dist/admin/src/components/SettingsForm.d.ts +8 -0
- package/dist/admin/src/constants.d.ts +18 -0
- package/dist/admin/src/index.d.ts +14 -0
- package/dist/admin/src/pages/App.d.ts +2 -0
- package/dist/admin/src/pages/Settings.d.ts +2 -0
- package/dist/admin/src/pluginId.d.ts +1 -0
- package/dist/admin/src/services/api.d.ts +25 -0
- package/dist/admin/src/types.d.ts +16 -0
- package/dist/admin/src/utils/baseQuery.d.ts +20 -0
- package/dist/admin/src/utils/getTrad.d.ts +1 -0
- package/dist/admin/src/utils/index.d.ts +2 -0
- package/dist/admin/src/utils/prefixPluginTranslations.d.ts +2 -0
- package/dist/server/index.js +1263 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/index.mjs +1238 -0
- package/dist/server/index.mjs.map +1 -0
- package/dist/server/src/bootstrap.d.ts +5 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -0
- package/dist/server/src/config/default-plugin-config.d.ts +3 -0
- package/dist/server/src/config/default-plugin-config.d.ts.map +1 -0
- package/dist/server/src/config/index.d.ts +4 -0
- package/dist/server/src/config/index.d.ts.map +1 -0
- package/dist/server/src/controllers/documentation.d.ts +12 -0
- package/dist/server/src/controllers/documentation.d.ts.map +1 -0
- package/dist/server/src/controllers/index.d.ts +14 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +91 -0
- package/dist/server/src/index.d.ts.map +1 -0
- package/dist/server/src/middlewares/documentation.d.ts +5 -0
- package/dist/server/src/middlewares/documentation.d.ts.map +1 -0
- package/dist/server/src/middlewares/restrict-access.d.ts +4 -0
- package/dist/server/src/middlewares/restrict-access.d.ts.map +1 -0
- package/dist/server/src/register.d.ts +5 -0
- package/dist/server/src/register.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts +36 -0
- package/dist/server/src/routes/index.d.ts.map +1 -0
- package/dist/server/src/services/__mocks__/mock-content-types.d.ts +449 -0
- package/dist/server/src/services/__mocks__/mock-content-types.d.ts.map +1 -0
- package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts +592 -0
- package/dist/server/src/services/__mocks__/mock-strapi-data.d.ts.map +1 -0
- package/dist/server/src/services/documentation.d.ts +36 -0
- package/dist/server/src/services/documentation.d.ts.map +1 -0
- package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts +7 -0
- package/dist/server/src/services/helpers/build-api-endpoint-path.d.ts.map +1 -0
- package/dist/server/src/services/helpers/build-component-schema.d.ts +4 -0
- package/dist/server/src/services/helpers/build-component-schema.d.ts.map +1 -0
- package/dist/server/src/services/helpers/index.d.ts +4 -0
- package/dist/server/src/services/helpers/index.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts +15 -0
- package/dist/server/src/services/helpers/utils/clean-schema-attributes.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/get-api-responses.d.ts +15 -0
- package/dist/server/src/services/helpers/utils/get-api-responses.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/get-schema-data.d.ts +12 -0
- package/dist/server/src/services/helpers/utils/get-schema-data.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts +7 -0
- package/dist/server/src/services/helpers/utils/loop-content-type-names.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/pascal-case.d.ts +3 -0
- package/dist/server/src/services/helpers/utils/pascal-case.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/query-params.d.ts +4 -0
- package/dist/server/src/services/helpers/utils/query-params.d.ts.map +1 -0
- package/dist/server/src/services/helpers/utils/routes.d.ts +3 -0
- package/dist/server/src/services/helpers/utils/routes.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +43 -0
- package/dist/server/src/services/index.d.ts.map +1 -0
- package/dist/server/src/services/override.d.ts +21 -0
- package/dist/server/src/services/override.d.ts.map +1 -0
- package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts +4 -0
- package/dist/server/src/services/utils/get-plugins-that-need-documentation.d.ts.map +1 -0
- package/dist/server/src/types.d.ts +28 -0
- package/dist/server/src/types.d.ts.map +1 -0
- package/dist/server/src/utils.d.ts +12 -0
- package/dist/server/src/utils.d.ts.map +1 -0
- package/package.json +33 -16
- package/strapi-server.js +1 -1
- package/.eslintignore +0 -1
- package/.eslintrc +0 -17
- package/admin/src/constants.js +0 -17
- package/admin/src/hooks/useDocumentation.js +0 -81
- package/admin/src/index.js +0 -62
- package/admin/src/pages/PluginPage/index.jsx +0 -212
- package/admin/src/pages/PluginPage/tests/index.test.jsx +0 -160
- package/admin/src/pages/SettingsPage/index.jsx +0 -202
- package/admin/src/pages/SettingsPage/tests/index.test.jsx +0 -72
- package/admin/src/pluginId.js +0 -5
- package/admin/src/translations/ar.json +0 -20
- package/admin/src/translations/cs.json +0 -21
- package/admin/src/translations/de.json +0 -26
- package/admin/src/translations/dk.json +0 -39
- package/admin/src/translations/en.json +0 -39
- package/admin/src/translations/es.json +0 -39
- package/admin/src/translations/fr.json +0 -26
- package/admin/src/translations/id.json +0 -24
- package/admin/src/translations/it.json +0 -26
- package/admin/src/translations/ko.json +0 -39
- package/admin/src/translations/ms.json +0 -23
- package/admin/src/translations/nl.json +0 -21
- package/admin/src/translations/pl.json +0 -39
- package/admin/src/translations/pt-BR.json +0 -21
- package/admin/src/translations/pt.json +0 -21
- package/admin/src/translations/ru.json +0 -39
- package/admin/src/translations/sk.json +0 -24
- package/admin/src/translations/sv.json +0 -39
- package/admin/src/translations/th.json +0 -24
- package/admin/src/translations/tr.json +0 -39
- package/admin/src/translations/uk.json +0 -23
- package/admin/src/translations/vi.json +0 -24
- package/admin/src/translations/zh-Hans.json +0 -28
- package/admin/src/translations/zh.json +0 -39
- package/admin/src/utils/getTrad.js +0 -5
- package/admin/src/utils/index.js +0 -2
- package/admin/src/utils/prefixPluginTranslations.js +0 -13
- package/dist/_chunks/index-7xstUX8_.mjs.map +0 -1
- package/dist/_chunks/index-D1KkfApT.js.map +0 -1
- package/dist/_chunks/index-NbPCucJl.js.map +0 -1
- package/dist/_chunks/index-NvJ4m2q5.mjs.map +0 -1
- package/dist/_chunks/index-VpLAJXMs.mjs.map +0 -1
- package/dist/_chunks/index-r7HsQTou.js.map +0 -1
- package/dist/_chunks/useDocumentation-6Ks-_Ms6.mjs +0 -68
- package/dist/_chunks/useDocumentation-6Ks-_Ms6.mjs.map +0 -1
- package/dist/_chunks/useDocumentation-S0e4mU-U.js +0 -67
- package/dist/_chunks/useDocumentation-S0e4mU-U.js.map +0 -1
- package/jest.config.front.js +0 -7
- package/jest.config.js +0 -6
- package/packup.config.ts +0 -22
- package/server/bootstrap.js +0 -54
- package/server/config/default-plugin-config.js +0 -35
- package/server/config/index.js +0 -7
- package/server/controllers/documentation.js +0 -241
- package/server/controllers/index.js +0 -7
- package/server/index.js +0 -17
- package/server/middlewares/documentation.js +0 -25
- package/server/middlewares/index.js +0 -7
- package/server/middlewares/restrict-access.js +0 -24
- package/server/register.js +0 -11
- package/server/routes/index.js +0 -84
- package/server/services/__mocks__/mock-content-types.js +0 -264
- package/server/services/__mocks__/mock-strapi-data.js +0 -183
- package/server/services/__tests__/build-component-schema.test.js +0 -761
- package/server/services/__tests__/documentation.test.js +0 -481
- package/server/services/__tests__/override.test.js +0 -85
- package/server/services/documentation.js +0 -246
- package/server/services/helpers/build-api-endpoint-path.js +0 -186
- package/server/services/helpers/build-component-schema.js +0 -254
- package/server/services/helpers/index.js +0 -9
- package/server/services/helpers/utils/clean-schema-attributes.js +0 -246
- package/server/services/helpers/utils/get-api-responses.js +0 -105
- package/server/services/helpers/utils/get-schema-data.js +0 -32
- package/server/services/helpers/utils/loop-content-type-names.js +0 -55
- package/server/services/helpers/utils/pascal-case.js +0 -9
- package/server/services/helpers/utils/query-params.js +0 -105
- package/server/services/helpers/utils/routes.js +0 -10
- package/server/services/index.js +0 -9
- package/server/services/override.js +0 -52
- package/server/services/utils/default-openapi-components.js +0 -40
- package/server/services/utils/get-plugins-that-need-documentation.js +0 -24
- package/tests/server.js +0 -37
- package/tests/setup.js +0 -15
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-_yYcImHU.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 { getFetchClient, ApiError } from '@strapi/strapi/admin';\nimport { isAxiosError, type AxiosRequestConfig } from 'axios';\n\n/* -------------------------------------------------------------------------------------------------\n * Axios data\n * -----------------------------------------------------------------------------------------------*/\nexport interface QueryArguments {\n url: string;\n method?: AxiosRequestConfig['method'];\n data?: AxiosRequestConfig['data'];\n config?: AxiosRequestConfig;\n}\n\nexport interface UnknownApiError {\n name: 'UnknownError';\n message: string;\n details?: unknown;\n status?: number;\n}\n\nexport type BaseQueryError = ApiError | UnknownApiError;\n\nconst axiosBaseQuery =\n (config: AxiosRequestConfig): BaseQueryFn<string | QueryArguments, unknown, BaseQueryError> =>\n async (query, { signal }) => {\n try {\n const { get, post, del, put } = getFetchClient(config);\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, { ...config, signal });\n return { data: result.data };\n }\n\n if (method === 'DELETE') {\n const result = await del(url, { ...config, signal });\n return { data: result.data };\n }\n\n if (method === 'PUT') {\n const result = await put(url, data, { ...config, signal });\n return { data: result.data };\n }\n\n /**\n * Default is GET.\n */\n const result = await get(url, { ...config, signal });\n return { data: result.data };\n }\n } catch (err) {\n /**\n * Handle error of type AxiosError\n *\n * This format mimics what we want from an AxiosError 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 (isAxiosError(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.response?.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 | SerializedError): error is BaseQueryError => {\n return error.name !== undefined;\n};\n\nexport { axiosBaseQuery, isBaseQueryError };\n","import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { DocumentInfos } from '../types';\nimport { axiosBaseQuery } from '../utils/baseQuery';\n\ntype SettingsInput = {\n restrictedAccess: boolean;\n password: string;\n};\n\nconst api = createApi({\n reducerPath: 'plugin::documentation',\n baseQuery: axiosBaseQuery({\n baseURL: '/documentation',\n }),\n tagTypes: ['DocumentInfos'],\n endpoints: (builder) => {\n return {\n getInfos: builder.query<DocumentInfos, void>({\n query: () => '/getInfos',\n providesTags: ['DocumentInfos'],\n }),\n\n deleteVersion: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/deleteDoc/${version}`,\n method: 'DELETE',\n }),\n invalidatesTags: ['DocumentInfos'],\n }),\n\n updateSettings: builder.mutation<void, { body: SettingsInput }>({\n query: ({ body }) => ({\n url: `/updateSettings`,\n method: 'PUT',\n data: body,\n }),\n invalidatesTags: ['DocumentInfos'],\n }),\n\n regenerateDoc: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/regenerateDoc`,\n method: 'POST',\n data: { version },\n }),\n }),\n };\n },\n});\n\nexport { api };\n\nexport const {\n useGetInfosQuery,\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","config","result","isAxiosError","createApi","pluginId","Information"],"mappings":";;;;;;;;;;;;;;AAAO,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,EAKzB,MAAM;AAAA,IACJ,EAAE,QAAQ,8BAA8B,SAAS,KAAK;AAAA,IACtD,EAAE,QAAQ,6CAA6C,SAAS,KAAK;AAAA,IACrE,EAAE,QAAQ,yCAAyC,SAAS,KAAK;AAAA,EACnE;AAAA,EACA,MAAM;AAAA,IACJ,EAAE,QAAQ,8BAA8B,SAAS,KAAK;AAAA,IACtD,EAAE,QAAQ,6CAA6C,SAAS,KAAK;AAAA,EACvE;AAAA,EACA,YAAY,CAAC,EAAE,QAAQ,6CAA6C,SAAS,MAAM;AAAA,EACnF,QAAQ,CAAC,EAAE,QAAQ,yCAAyC,SAAS,MAAM;AAC7E;AChBO,MAAM,WAAW;ACwBxB,MAAM,iBACJ,CAAC,WACD,OAAO,OAAO,EAAE,aAAa;AACvB,MAAA;AACF,UAAM,EAAE,KAAK,MAAM,KAAK,QAAQA,MAAAA,eAAe,MAAM;AAEjD,QAAA,OAAO,UAAU,UAAU;AAC7B,YAAM,SAAS,MAAM,IAAI,OAAO,EAAE,OAAQ,CAAA;AACnC,aAAA,EAAE,MAAM,OAAO;IAAK,OACtB;AACL,YAAM,EAAE,KAAK,SAAS,OAAO,MAAM,QAAAC,QAAW,IAAA;AAE9C,UAAI,WAAW,QAAQ;AACfC,cAAAA,UAAS,MAAM,KAAK,KAAK,MAAM,EAAE,GAAGD,SAAQ,OAAA,CAAQ;AACnD,eAAA,EAAE,MAAMC,QAAO;MACxB;AAEA,UAAI,WAAW,UAAU;AACjBA,cAAAA,UAAS,MAAM,IAAI,KAAK,EAAE,GAAGD,SAAQ,QAAQ;AAC5C,eAAA,EAAE,MAAMC,QAAO;MACxB;AAEA,UAAI,WAAW,OAAO;AACdA,cAAAA,UAAS,MAAM,IAAI,KAAK,MAAM,EAAE,GAAGD,SAAQ,OAAA,CAAQ;AAClD,eAAA,EAAE,MAAMC,QAAO;MACxB;AAKM,YAAA,SAAS,MAAM,IAAI,KAAK,EAAE,GAAGD,SAAQ,QAAQ;AAC5C,aAAA,EAAE,MAAM,OAAO;IACxB;AAAA,WACO,KAAK;AAWR,QAAAE,MAAAA,aAAa,GAAG,GAAG;AACrB,UACE,OAAO,IAAI,UAAU,SAAS,YAC9B,IAAI,UAAU,SAAS,QACvB,WAAW,IAAI,UAAU,MACzB;AAIA,eAAO,EAAE,MAAM,QAAW,OAAO,IAAI,UAAU,KAAK;MAAM,OACrD;AACE,eAAA;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,YACL,MAAM;AAAA,YACN,SAAS;AAAA,YACT,SAAS,IAAI,UAAU;AAAA,YACvB,QAAQ,IAAI,UAAU;AAAA,UACxB;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAEA,UAAM,QAAQ;AACP,WAAA;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,QACL,MAAM,MAAM;AAAA,QACZ,SAAS,MAAM;AAAA,QACf,OAAO,MAAM;AAAA,MACf;AAAA,IAAA;AAAA,EAEJ;AACF;AAEI,MAAA,mBAAmB,CAAC,UAAqE;AAC7F,SAAO,MAAM,SAAS;AACxB;AC/FA,MAAM,MAAMC,MAAAA,UAAU;AAAA,EACpB,aAAa;AAAA,EACb,WAAW,eAAe;AAAA,IACxB,SAAS;AAAA,EAAA,CACV;AAAA,EACD,UAAU,CAAC,eAAe;AAAA,EAC1B,WAAW,CAAC,YAAY;AACf,WAAA;AAAA,MACL,UAAU,QAAQ,MAA2B;AAAA,QAC3C,OAAO,MAAM;AAAA,QACb,cAAc,CAAC,eAAe;AAAA,MAAA,CAC/B;AAAA,MAED,eAAe,QAAQ,SAAoC;AAAA,QACzD,OAAO,CAAC,EAAE,eAAe;AAAA,UACvB,KAAK,cAAc,OAAO;AAAA,UAC1B,QAAQ;AAAA,QAAA;AAAA,QAEV,iBAAiB,CAAC,eAAe;AAAA,MAAA,CAClC;AAAA,MAED,gBAAgB,QAAQ,SAAwC;AAAA,QAC9D,OAAO,CAAC,EAAE,YAAY;AAAA,UACpB,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,MAAM;AAAA,QAAA;AAAA,QAER,iBAAiB,CAAC,eAAe;AAAA,MAAA,CAClC;AAAA,MAED,eAAe,QAAQ,SAAoC;AAAA,QACzD,OAAO,CAAC,EAAE,eAAe;AAAA,UACvB,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,MAAM,EAAE,QAAQ;AAAA,QAAA;AAAA,MAClB,CACD;AAAA,IAAA;AAAA,EAEL;AACF,CAAC;AAIY,MAAA;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;AC1DJ,MAAM,2BAA2B,CAAC,MAA8BC,cAAsB;AACpF,MAAI,CAACA,WAAU;AACP,UAAA,IAAI,UAAU,yBAAyB;AAAA,EAC/C;AAEO,SAAA,OAAO,KAAK,IAAI,EAAE;AAAA,IACvB,CAAC,KAAK,YAAY;AAChB,UAAI,GAAGA,SAAQ,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO;AAErC,aAAA;AAAA,IACT;AAAA,IACA,CAAC;AAAA,EAAA;AAEL;ACLA,MAAe,QAAA;AAAA,EACb,SAAS,KAAU;AACjB,QAAI,YAAY;AAAA,MACd,IAAI,WAAW,QAAQ;AAAA,MACvB,MAAMC,MAAA;AAAA,MACN,WAAW;AAAA,QACT,IAAI,GAAG,QAAQ;AAAA,QACf,gBAAgB;AAAA,MAClB;AAAA,MACA,aAAa,YAAY;AAAA,MACzB,WAAW,YAAY;AACrB,cAAM,EAAE,IAAA,IAAQ,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,mBAAa,CAAA;AACnC,eAAA;AAAA,MACT;AAAA,IAAA,CACD;AAED,QAAI,eAAe,CAAC,MAAM,IAAI,UAAU,CAAC;AAEzC,QAAI,YAAY;AAAA,MACd,CAAC,IAAI,WAAW,GAAG,IAAI;AAAA,IAAA,CACxB;AAED,QAAI,eAAe;AAAA,MACjB,IAAI;AAAA,MACJ,MAAM;AAAA,IAAA,CACP;AAAA,EACH;AAAA,EACA,UAAU,KAAU;AAClB,QAAI,gBAAgB,UAAU;AAAA,MAC5B,WAAW;AAAA,QACT,IAAI,GAAG,QAAQ;AAAA,QACf,gBAAgB;AAAA,MAClB;AAAA,MACA,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,WAAW,YAAY;AACrB,cAAM,EAAE,aAAA,IAAiB,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,wBAAkB,CAAA;AACjD,eAAA;AAAA,MACT;AAAA,MACA,aAAa,YAAY;AAAA,IAAA,CAC1B;AAAA,EACH;AAAA,EACA,MAAM,cAAc,EAAE,WAAkC;AAChD,UAAA,gBAAgB,MAAM,QAAQ;AAAA,MAClC,QAAQ,IAAI,CAAC,WAAW;AACf,eAAA,qCAA+B,uBAAA,OAAA,EAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,IAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,qCAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,IAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,qCAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,IAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,qCAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,IAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,IAAA,6BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,qBAAA,CAAA,GAAA,0BAAA,MAAA,qCAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,IAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,qCAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,CAAA,GAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,IAAA,0BAAA,MAAA,QAAA,QAAA,EAAA,KAAA,MAAA,QAAA,kBAAA,CAAA,GAAA,+BAAA,MAAA,qCAAA,uBAAA,CAAA,GAAA,0BAAA,MAAA,qCAAA,kBAAA,CAAA,EAAA,CAAA,GAAA,kBAAA,MAAA,OAAA,EACnC,KAAK,CAAC,EAAE,SAAS,KAAA,MAAW;AACpB,iBAAA;AAAA,YACL,MAAM,yBAAyB,MAAM,QAAQ;AAAA,YAC7C;AAAA,UAAA;AAAA,QACF,CACD,EACA,MAAM,MAAM;AACJ,iBAAA;AAAA,YACL,MAAM,CAAC;AAAA,YACP;AAAA,UAAA;AAAA,QACF,CACD;AAAA,MAAA,CACJ;AAAA,IAAA;AAGI,WAAA,QAAQ,QAAQ,aAAa;AAAA,EACtC;AACF;;;;;;;;;"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { Information } from "@strapi/icons";
|
|
2
|
+
import { createApi } from "@reduxjs/toolkit/query/react";
|
|
3
|
+
import { getFetchClient } from "@strapi/strapi/admin";
|
|
4
|
+
import { isAxiosError } from "axios";
|
|
2
5
|
const __variableDynamicImportRuntimeHelper = (glob, path) => {
|
|
3
6
|
const v = glob[path];
|
|
4
7
|
if (v) {
|
|
@@ -8,115 +11,6 @@ const __variableDynamicImportRuntimeHelper = (glob, path) => {
|
|
|
8
11
|
(typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
|
|
9
12
|
});
|
|
10
13
|
};
|
|
11
|
-
const name$1 = "@strapi/plugin-documentation";
|
|
12
|
-
const version = "5.0.0-alpha.4";
|
|
13
|
-
const description = "Create an OpenAPI Document and visualize your API with SWAGGER UI.";
|
|
14
|
-
const repository = {
|
|
15
|
-
type: "git",
|
|
16
|
-
url: "https://github.com/strapi/strapi.git",
|
|
17
|
-
directory: "packages/plugins/documentation"
|
|
18
|
-
};
|
|
19
|
-
const license = "SEE LICENSE IN LICENSE";
|
|
20
|
-
const author = {
|
|
21
|
-
name: "Strapi Solutions SAS",
|
|
22
|
-
email: "hi@strapi.io",
|
|
23
|
-
url: "https://strapi.io"
|
|
24
|
-
};
|
|
25
|
-
const maintainers = [
|
|
26
|
-
{
|
|
27
|
-
name: "Strapi Solutions SAS",
|
|
28
|
-
email: "hi@strapi.io",
|
|
29
|
-
url: "https://strapi.io"
|
|
30
|
-
}
|
|
31
|
-
];
|
|
32
|
-
const exports = {
|
|
33
|
-
"./strapi-admin": {
|
|
34
|
-
source: "./admin/src/index.js",
|
|
35
|
-
"import": "./dist/admin/index.mjs",
|
|
36
|
-
require: "./dist/admin/index.js",
|
|
37
|
-
"default": "./dist/admin/index.js"
|
|
38
|
-
},
|
|
39
|
-
"./strapi-server": {
|
|
40
|
-
source: "./strapi-server.js",
|
|
41
|
-
require: "./strapi-server.js",
|
|
42
|
-
"default": "./strapi-server.js"
|
|
43
|
-
},
|
|
44
|
-
"./package.json": "./package.json"
|
|
45
|
-
};
|
|
46
|
-
const scripts = {
|
|
47
|
-
build: "pack-up build",
|
|
48
|
-
clean: "run -T rimraf dist",
|
|
49
|
-
lint: "run -T eslint .",
|
|
50
|
-
"test:front": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js",
|
|
51
|
-
"test:front:watch": "run -T cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
|
|
52
|
-
"test:unit": "jest --verbose",
|
|
53
|
-
"test:unit:watch": "run -T jest --watch",
|
|
54
|
-
watch: "pack-up watch"
|
|
55
|
-
};
|
|
56
|
-
const dependencies = {
|
|
57
|
-
"@strapi/design-system": "1.16.0",
|
|
58
|
-
"@strapi/icons": "1.16.0",
|
|
59
|
-
"@strapi/utils": "5.0.0-alpha.4",
|
|
60
|
-
bcryptjs: "2.4.3",
|
|
61
|
-
cheerio: "^1.0.0-rc.12",
|
|
62
|
-
formik: "2.4.5",
|
|
63
|
-
"fs-extra": "10.1.0",
|
|
64
|
-
immer: "9.0.21",
|
|
65
|
-
"koa-static": "^5.0.0",
|
|
66
|
-
lodash: "4.17.21",
|
|
67
|
-
"path-to-regexp": "6.2.1",
|
|
68
|
-
"react-helmet": "^6.1.0",
|
|
69
|
-
"react-intl": "6.6.2",
|
|
70
|
-
"react-query": "3.39.3",
|
|
71
|
-
"swagger-ui-dist": "4.19.0",
|
|
72
|
-
yaml: "1.10.2",
|
|
73
|
-
yup: "0.32.9"
|
|
74
|
-
};
|
|
75
|
-
const devDependencies = {
|
|
76
|
-
"@apidevtools/swagger-parser": "^10.1.0",
|
|
77
|
-
"@strapi/pack-up": "5.0.0-alpha.4",
|
|
78
|
-
"@strapi/strapi": "5.0.0-alpha.4",
|
|
79
|
-
"@testing-library/react": "14.0.0",
|
|
80
|
-
"@testing-library/user-event": "14.4.3",
|
|
81
|
-
msw: "1.3.0",
|
|
82
|
-
react: "^18.2.0",
|
|
83
|
-
"react-dom": "^18.2.0",
|
|
84
|
-
"react-router-dom": "6.22.3",
|
|
85
|
-
"styled-components": "5.3.11"
|
|
86
|
-
};
|
|
87
|
-
const peerDependencies = {
|
|
88
|
-
"@strapi/strapi": "^4.0.0",
|
|
89
|
-
react: "^17.0.0 || ^18.0.0",
|
|
90
|
-
"react-dom": "^17.0.0 || ^18.0.0",
|
|
91
|
-
"react-router-dom": "^6.0.0",
|
|
92
|
-
"styled-components": "^5.2.1"
|
|
93
|
-
};
|
|
94
|
-
const engines = {
|
|
95
|
-
node: ">=18.0.0 <=20.x.x",
|
|
96
|
-
npm: ">=6.0.0"
|
|
97
|
-
};
|
|
98
|
-
const strapi = {
|
|
99
|
-
displayName: "Documentation",
|
|
100
|
-
name: "documentation",
|
|
101
|
-
description: "Create an OpenAPI Document and visualize your API with SWAGGER UI.",
|
|
102
|
-
kind: "plugin"
|
|
103
|
-
};
|
|
104
|
-
const pluginPkg = {
|
|
105
|
-
name: name$1,
|
|
106
|
-
version,
|
|
107
|
-
description,
|
|
108
|
-
repository,
|
|
109
|
-
license,
|
|
110
|
-
author,
|
|
111
|
-
maintainers,
|
|
112
|
-
exports,
|
|
113
|
-
scripts,
|
|
114
|
-
dependencies,
|
|
115
|
-
devDependencies,
|
|
116
|
-
peerDependencies,
|
|
117
|
-
engines,
|
|
118
|
-
strapi
|
|
119
|
-
};
|
|
120
14
|
const PERMISSIONS = {
|
|
121
15
|
// This permission regards the main component (App) and is used to tell
|
|
122
16
|
// If the plugin link should be displayed in the menu
|
|
@@ -134,17 +28,115 @@ const PERMISSIONS = {
|
|
|
134
28
|
regenerate: [{ action: "plugin::documentation.settings.regenerate", subject: null }],
|
|
135
29
|
update: [{ action: "plugin::documentation.settings.update", subject: null }]
|
|
136
30
|
};
|
|
137
|
-
const pluginId =
|
|
31
|
+
const pluginId = "documentation";
|
|
32
|
+
const axiosBaseQuery = (config) => async (query, { signal }) => {
|
|
33
|
+
try {
|
|
34
|
+
const { get, post, del, put } = getFetchClient(config);
|
|
35
|
+
if (typeof query === "string") {
|
|
36
|
+
const result = await get(query, { signal });
|
|
37
|
+
return { data: result.data };
|
|
38
|
+
} else {
|
|
39
|
+
const { url, method = "GET", data, config: config2 } = query;
|
|
40
|
+
if (method === "POST") {
|
|
41
|
+
const result2 = await post(url, data, { ...config2, signal });
|
|
42
|
+
return { data: result2.data };
|
|
43
|
+
}
|
|
44
|
+
if (method === "DELETE") {
|
|
45
|
+
const result2 = await del(url, { ...config2, signal });
|
|
46
|
+
return { data: result2.data };
|
|
47
|
+
}
|
|
48
|
+
if (method === "PUT") {
|
|
49
|
+
const result2 = await put(url, data, { ...config2, signal });
|
|
50
|
+
return { data: result2.data };
|
|
51
|
+
}
|
|
52
|
+
const result = await get(url, { ...config2, signal });
|
|
53
|
+
return { data: result.data };
|
|
54
|
+
}
|
|
55
|
+
} catch (err) {
|
|
56
|
+
if (isAxiosError(err)) {
|
|
57
|
+
if (typeof err.response?.data === "object" && err.response?.data !== null && "error" in err.response?.data) {
|
|
58
|
+
return { data: void 0, error: err.response?.data.error };
|
|
59
|
+
} else {
|
|
60
|
+
return {
|
|
61
|
+
data: void 0,
|
|
62
|
+
error: {
|
|
63
|
+
name: "UnknownError",
|
|
64
|
+
message: "There was an unknown error response from the API",
|
|
65
|
+
details: err.response?.data,
|
|
66
|
+
status: err.response?.status
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const error = err;
|
|
72
|
+
return {
|
|
73
|
+
data: void 0,
|
|
74
|
+
error: {
|
|
75
|
+
name: error.name,
|
|
76
|
+
message: error.message,
|
|
77
|
+
stack: error.stack
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const isBaseQueryError = (error) => {
|
|
83
|
+
return error.name !== void 0;
|
|
84
|
+
};
|
|
85
|
+
const api = createApi({
|
|
86
|
+
reducerPath: "plugin::documentation",
|
|
87
|
+
baseQuery: axiosBaseQuery({
|
|
88
|
+
baseURL: "/documentation"
|
|
89
|
+
}),
|
|
90
|
+
tagTypes: ["DocumentInfos"],
|
|
91
|
+
endpoints: (builder) => {
|
|
92
|
+
return {
|
|
93
|
+
getInfos: builder.query({
|
|
94
|
+
query: () => "/getInfos",
|
|
95
|
+
providesTags: ["DocumentInfos"]
|
|
96
|
+
}),
|
|
97
|
+
deleteVersion: builder.mutation({
|
|
98
|
+
query: ({ version }) => ({
|
|
99
|
+
url: `/deleteDoc/${version}`,
|
|
100
|
+
method: "DELETE"
|
|
101
|
+
}),
|
|
102
|
+
invalidatesTags: ["DocumentInfos"]
|
|
103
|
+
}),
|
|
104
|
+
updateSettings: builder.mutation({
|
|
105
|
+
query: ({ body }) => ({
|
|
106
|
+
url: `/updateSettings`,
|
|
107
|
+
method: "PUT",
|
|
108
|
+
data: body
|
|
109
|
+
}),
|
|
110
|
+
invalidatesTags: ["DocumentInfos"]
|
|
111
|
+
}),
|
|
112
|
+
regenerateDoc: builder.mutation({
|
|
113
|
+
query: ({ version }) => ({
|
|
114
|
+
url: `/regenerateDoc`,
|
|
115
|
+
method: "POST",
|
|
116
|
+
data: { version }
|
|
117
|
+
})
|
|
118
|
+
})
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
const {
|
|
123
|
+
useGetInfosQuery,
|
|
124
|
+
useDeleteVersionMutation,
|
|
125
|
+
useUpdateSettingsMutation,
|
|
126
|
+
useRegenerateDocMutation
|
|
127
|
+
} = api;
|
|
138
128
|
const prefixPluginTranslations = (trad, pluginId2) => {
|
|
139
129
|
if (!pluginId2) {
|
|
140
130
|
throw new TypeError("pluginId can't be empty");
|
|
141
131
|
}
|
|
142
|
-
return Object.keys(trad).reduce(
|
|
143
|
-
acc
|
|
144
|
-
|
|
145
|
-
|
|
132
|
+
return Object.keys(trad).reduce(
|
|
133
|
+
(acc, current) => {
|
|
134
|
+
acc[`${pluginId2}.${current}`] = trad[current];
|
|
135
|
+
return acc;
|
|
136
|
+
},
|
|
137
|
+
{}
|
|
138
|
+
);
|
|
146
139
|
};
|
|
147
|
-
const name = pluginPkg.strapi.name;
|
|
148
140
|
const index = {
|
|
149
141
|
register(app) {
|
|
150
142
|
app.addMenuLink({
|
|
@@ -155,11 +147,18 @@ const index = {
|
|
|
155
147
|
defaultMessage: "Documentation"
|
|
156
148
|
},
|
|
157
149
|
permissions: PERMISSIONS.main,
|
|
158
|
-
Component: () =>
|
|
150
|
+
Component: async () => {
|
|
151
|
+
const { App } = await import("./App-mrzd5Xqj.mjs");
|
|
152
|
+
return App;
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
app.addMiddlewares([() => api.middleware]);
|
|
156
|
+
app.addReducers({
|
|
157
|
+
[api.reducerPath]: api.reducer
|
|
159
158
|
});
|
|
160
159
|
app.registerPlugin({
|
|
161
160
|
id: pluginId,
|
|
162
|
-
name
|
|
161
|
+
name: pluginId
|
|
163
162
|
});
|
|
164
163
|
},
|
|
165
164
|
bootstrap(app) {
|
|
@@ -170,7 +169,10 @@ const index = {
|
|
|
170
169
|
},
|
|
171
170
|
id: "documentation",
|
|
172
171
|
to: pluginId,
|
|
173
|
-
Component: () =>
|
|
172
|
+
Component: async () => {
|
|
173
|
+
const { SettingsPage } = await import("./Settings-8v7IbdtY.mjs");
|
|
174
|
+
return SettingsPage;
|
|
175
|
+
},
|
|
174
176
|
permissions: PERMISSIONS.main
|
|
175
177
|
});
|
|
176
178
|
},
|
|
@@ -195,7 +197,12 @@ const index = {
|
|
|
195
197
|
};
|
|
196
198
|
export {
|
|
197
199
|
PERMISSIONS as P,
|
|
198
|
-
|
|
199
|
-
|
|
200
|
+
useRegenerateDocMutation as a,
|
|
201
|
+
useDeleteVersionMutation as b,
|
|
202
|
+
useUpdateSettingsMutation as c,
|
|
203
|
+
index as d,
|
|
204
|
+
isBaseQueryError as i,
|
|
205
|
+
pluginId as p,
|
|
206
|
+
useGetInfosQuery as u
|
|
200
207
|
};
|
|
201
|
-
//# sourceMappingURL=index-
|
|
208
|
+
//# sourceMappingURL=index-mXCyE3EQ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-mXCyE3EQ.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 { getFetchClient, ApiError } from '@strapi/strapi/admin';\nimport { isAxiosError, type AxiosRequestConfig } from 'axios';\n\n/* -------------------------------------------------------------------------------------------------\n * Axios data\n * -----------------------------------------------------------------------------------------------*/\nexport interface QueryArguments {\n url: string;\n method?: AxiosRequestConfig['method'];\n data?: AxiosRequestConfig['data'];\n config?: AxiosRequestConfig;\n}\n\nexport interface UnknownApiError {\n name: 'UnknownError';\n message: string;\n details?: unknown;\n status?: number;\n}\n\nexport type BaseQueryError = ApiError | UnknownApiError;\n\nconst axiosBaseQuery =\n (config: AxiosRequestConfig): BaseQueryFn<string | QueryArguments, unknown, BaseQueryError> =>\n async (query, { signal }) => {\n try {\n const { get, post, del, put } = getFetchClient(config);\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, { ...config, signal });\n return { data: result.data };\n }\n\n if (method === 'DELETE') {\n const result = await del(url, { ...config, signal });\n return { data: result.data };\n }\n\n if (method === 'PUT') {\n const result = await put(url, data, { ...config, signal });\n return { data: result.data };\n }\n\n /**\n * Default is GET.\n */\n const result = await get(url, { ...config, signal });\n return { data: result.data };\n }\n } catch (err) {\n /**\n * Handle error of type AxiosError\n *\n * This format mimics what we want from an AxiosError 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 (isAxiosError(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.response?.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 | SerializedError): error is BaseQueryError => {\n return error.name !== undefined;\n};\n\nexport { axiosBaseQuery, isBaseQueryError };\n","import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { DocumentInfos } from '../types';\nimport { axiosBaseQuery } from '../utils/baseQuery';\n\ntype SettingsInput = {\n restrictedAccess: boolean;\n password: string;\n};\n\nconst api = createApi({\n reducerPath: 'plugin::documentation',\n baseQuery: axiosBaseQuery({\n baseURL: '/documentation',\n }),\n tagTypes: ['DocumentInfos'],\n endpoints: (builder) => {\n return {\n getInfos: builder.query<DocumentInfos, void>({\n query: () => '/getInfos',\n providesTags: ['DocumentInfos'],\n }),\n\n deleteVersion: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/deleteDoc/${version}`,\n method: 'DELETE',\n }),\n invalidatesTags: ['DocumentInfos'],\n }),\n\n updateSettings: builder.mutation<void, { body: SettingsInput }>({\n query: ({ body }) => ({\n url: `/updateSettings`,\n method: 'PUT',\n data: body,\n }),\n invalidatesTags: ['DocumentInfos'],\n }),\n\n regenerateDoc: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/regenerateDoc`,\n method: 'POST',\n data: { version },\n }),\n }),\n };\n },\n});\n\nexport { api };\n\nexport const {\n useGetInfosQuery,\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":["config","result","pluginId"],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const login = `<!DOCTYPE html>
|
|
4
|
+
<html>
|
|
5
|
+
<head>
|
|
6
|
+
<title>Login - Documentation</title>
|
|
7
|
+
<link href="https://fonts.googleapis.com/css?family=Lato:400,700" rel="stylesheet" />
|
|
8
|
+
<style>
|
|
9
|
+
html {
|
|
10
|
+
font-size: 62.5%;
|
|
11
|
+
height: 100%;
|
|
12
|
+
margin: 0;
|
|
13
|
+
padding: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
body {
|
|
17
|
+
height: 100%;
|
|
18
|
+
margin: 0;
|
|
19
|
+
background-color: #ffffff;
|
|
20
|
+
font-family: 'Lato';
|
|
21
|
+
font-size: 1.4rem;
|
|
22
|
+
font-weight: 400;
|
|
23
|
+
text-rendering: optimizeLegibility;
|
|
24
|
+
-webkit-font-smoothing: antialiased;
|
|
25
|
+
-moz-osx-font-smoothing: grayscale;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.login {
|
|
29
|
+
height: 100%;
|
|
30
|
+
background-color: #f6f9fc;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.login .login-form {
|
|
34
|
+
height: calc(100% - 70px);
|
|
35
|
+
padding: 68px 0 0;
|
|
36
|
+
text-align: center;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.login .login-form form {
|
|
40
|
+
position: relative;
|
|
41
|
+
max-width: 460px;
|
|
42
|
+
padding: 26px 30px;
|
|
43
|
+
margin: 55px auto 0;
|
|
44
|
+
background-color: #ffffff;
|
|
45
|
+
border-radius: 3px;
|
|
46
|
+
box-shadow: 0px 2px 4px rgba(91, 107, 174, 0.15);
|
|
47
|
+
text-align: center;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.login .login-form form:before {
|
|
51
|
+
position: absolute;
|
|
52
|
+
content: '';
|
|
53
|
+
top: 0px;
|
|
54
|
+
left: 0;
|
|
55
|
+
display: inline-block;
|
|
56
|
+
width: 100%;
|
|
57
|
+
height: 2px;
|
|
58
|
+
background-color: #2b66cc;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.login .login-form form .error {
|
|
62
|
+
display: block;
|
|
63
|
+
color: #ff4e00;
|
|
64
|
+
padding-bottom: 20px;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.login .login-form .sub-title {
|
|
68
|
+
margin-top: 35px;
|
|
69
|
+
font-size: 1.6rem;
|
|
70
|
+
font-weight: 400;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.login .login-form .logo {
|
|
74
|
+
max-height: 40px;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.login .login-form form label {
|
|
78
|
+
display: block;
|
|
79
|
+
margin-bottom: 18px;
|
|
80
|
+
width: 100%;
|
|
81
|
+
text-align: left;
|
|
82
|
+
font-weight: 600;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.login .login-form form input {
|
|
86
|
+
outline: none;
|
|
87
|
+
width: calc(100% - 30px);
|
|
88
|
+
height: 36px;
|
|
89
|
+
padding: 0 15px;
|
|
90
|
+
border: 1px solid #ececec;
|
|
91
|
+
border-radius: 2px;
|
|
92
|
+
margin-bottom: 20px;
|
|
93
|
+
line-height: 36px;
|
|
94
|
+
text-align: left;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.login .login-form form input[type='submit'] {
|
|
98
|
+
cursor: pointer;
|
|
99
|
+
display: inline-block;
|
|
100
|
+
width: auto;
|
|
101
|
+
margin: 12px auto 0;
|
|
102
|
+
padding: 0 75px;
|
|
103
|
+
background: transparent;
|
|
104
|
+
border-radius: 36px;
|
|
105
|
+
border: 1px solid #2b66cc;
|
|
106
|
+
color: #2b66cc;
|
|
107
|
+
text-transform: uppercase;
|
|
108
|
+
font-size: 1.4rem;
|
|
109
|
+
font-weight: 700;
|
|
110
|
+
transition: all 0.2s ease-out;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.login .login-form form input[type='submit']:hover {
|
|
114
|
+
background: #2b66cc;
|
|
115
|
+
color: #ffffff;
|
|
116
|
+
}
|
|
117
|
+
</style>
|
|
118
|
+
</head>
|
|
119
|
+
<body>
|
|
120
|
+
<div class="login">
|
|
121
|
+
<section class="login-form">
|
|
122
|
+
<div class="container">
|
|
123
|
+
<div class="row">
|
|
124
|
+
<div class="col-lg-6 col-lg-offset-3 col-md-12">
|
|
125
|
+
<img
|
|
126
|
+
alt="Strapi logo"
|
|
127
|
+
class="logo"
|
|
128
|
+
src="https://strapi.io/assets/images/logo_login.png"
|
|
129
|
+
/>
|
|
130
|
+
<h2 class="sub-title">Enter the password to access the documentation.</h2>
|
|
131
|
+
<form method="post" action="<%=actionUrl%>">
|
|
132
|
+
<span class="error">Wrong password...</span>
|
|
133
|
+
<label>Password</label>
|
|
134
|
+
<input
|
|
135
|
+
type="password"
|
|
136
|
+
name="password"
|
|
137
|
+
placeholder="•••••••••"
|
|
138
|
+
/>
|
|
139
|
+
<input type="submit" value="Login" />
|
|
140
|
+
</form>
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
</section>
|
|
145
|
+
</div>
|
|
146
|
+
</body>
|
|
147
|
+
</html>
|
|
148
|
+
`;
|
|
149
|
+
exports.default = login;
|
|
150
|
+
//# sourceMappingURL=login-HAajOKpu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-HAajOKpu.js","sources":["../../server/src/public/login.html?raw"],"sourcesContent":["export default \"<!DOCTYPE html>\\n<html>\\n <head>\\n <title>Login - Documentation</title>\\n <link href=\\\"https://fonts.googleapis.com/css?family=Lato:400,700\\\" rel=\\\"stylesheet\\\" />\\n <style>\\n html {\\n font-size: 62.5%;\\n height: 100%;\\n margin: 0;\\n padding: 0;\\n }\\n\\n body {\\n height: 100%;\\n margin: 0;\\n background-color: #ffffff;\\n font-family: 'Lato';\\n font-size: 1.4rem;\\n font-weight: 400;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n }\\n\\n .login {\\n height: 100%;\\n background-color: #f6f9fc;\\n }\\n\\n .login .login-form {\\n height: calc(100% - 70px);\\n padding: 68px 0 0;\\n text-align: center;\\n }\\n\\n .login .login-form form {\\n position: relative;\\n max-width: 460px;\\n padding: 26px 30px;\\n margin: 55px auto 0;\\n background-color: #ffffff;\\n border-radius: 3px;\\n box-shadow: 0px 2px 4px rgba(91, 107, 174, 0.15);\\n text-align: center;\\n }\\n\\n .login .login-form form:before {\\n position: absolute;\\n content: '';\\n top: 0px;\\n left: 0;\\n display: inline-block;\\n width: 100%;\\n height: 2px;\\n background-color: #2b66cc;\\n }\\n\\n .login .login-form form .error {\\n display: block;\\n color: #ff4e00;\\n padding-bottom: 20px;\\n }\\n\\n .login .login-form .sub-title {\\n margin-top: 35px;\\n font-size: 1.6rem;\\n font-weight: 400;\\n }\\n\\n .login .login-form .logo {\\n max-height: 40px;\\n }\\n\\n .login .login-form form label {\\n display: block;\\n margin-bottom: 18px;\\n width: 100%;\\n text-align: left;\\n font-weight: 600;\\n }\\n\\n .login .login-form form input {\\n outline: none;\\n width: calc(100% - 30px);\\n height: 36px;\\n padding: 0 15px;\\n border: 1px solid #ececec;\\n border-radius: 2px;\\n margin-bottom: 20px;\\n line-height: 36px;\\n text-align: left;\\n }\\n\\n .login .login-form form input[type='submit'] {\\n cursor: pointer;\\n display: inline-block;\\n width: auto;\\n margin: 12px auto 0;\\n padding: 0 75px;\\n background: transparent;\\n border-radius: 36px;\\n border: 1px solid #2b66cc;\\n color: #2b66cc;\\n text-transform: uppercase;\\n font-size: 1.4rem;\\n font-weight: 700;\\n transition: all 0.2s ease-out;\\n }\\n\\n .login .login-form form input[type='submit']:hover {\\n background: #2b66cc;\\n color: #ffffff;\\n }\\n </style>\\n </head>\\n <body>\\n <div class=\\\"login\\\">\\n <section class=\\\"login-form\\\">\\n <div class=\\\"container\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-lg-6 col-lg-offset-3 col-md-12\\\">\\n <img\\n alt=\\\"Strapi logo\\\"\\n class=\\\"logo\\\"\\n src=\\\"https://strapi.io/assets/images/logo_login.png\\\"\\n />\\n <h2 class=\\\"sub-title\\\">Enter the password to access the documentation.</h2>\\n <form method=\\\"post\\\" action=\\\"<%=actionUrl%>\\\">\\n <span class=\\\"error\\\">Wrong password...</span>\\n <label>Password</label>\\n <input\\n type=\\\"password\\\"\\n name=\\\"password\\\"\\n placeholder=\\\"•••••••••\\\"\\n />\\n <input type=\\\"submit\\\" value=\\\"Login\\\" />\\n </form>\\n </div>\\n </div>\\n </div>\\n </section>\\n </div>\\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;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;AAAA;AAAA;AAAA;AAAA;AAAA;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const login = `<!DOCTYPE html>
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<title>Login - Documentation</title>
|
|
@@ -143,3 +143,8 @@
|
|
|
143
143
|
</div>
|
|
144
144
|
</body>
|
|
145
145
|
</html>
|
|
146
|
+
`;
|
|
147
|
+
export {
|
|
148
|
+
login as default
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=login-slUa679p.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-slUa679p.mjs","sources":["../../server/src/public/login.html?raw"],"sourcesContent":["export default \"<!DOCTYPE html>\\n<html>\\n <head>\\n <title>Login - Documentation</title>\\n <link href=\\\"https://fonts.googleapis.com/css?family=Lato:400,700\\\" rel=\\\"stylesheet\\\" />\\n <style>\\n html {\\n font-size: 62.5%;\\n height: 100%;\\n margin: 0;\\n padding: 0;\\n }\\n\\n body {\\n height: 100%;\\n margin: 0;\\n background-color: #ffffff;\\n font-family: 'Lato';\\n font-size: 1.4rem;\\n font-weight: 400;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n }\\n\\n .login {\\n height: 100%;\\n background-color: #f6f9fc;\\n }\\n\\n .login .login-form {\\n height: calc(100% - 70px);\\n padding: 68px 0 0;\\n text-align: center;\\n }\\n\\n .login .login-form form {\\n position: relative;\\n max-width: 460px;\\n padding: 26px 30px;\\n margin: 55px auto 0;\\n background-color: #ffffff;\\n border-radius: 3px;\\n box-shadow: 0px 2px 4px rgba(91, 107, 174, 0.15);\\n text-align: center;\\n }\\n\\n .login .login-form form:before {\\n position: absolute;\\n content: '';\\n top: 0px;\\n left: 0;\\n display: inline-block;\\n width: 100%;\\n height: 2px;\\n background-color: #2b66cc;\\n }\\n\\n .login .login-form form .error {\\n display: block;\\n color: #ff4e00;\\n padding-bottom: 20px;\\n }\\n\\n .login .login-form .sub-title {\\n margin-top: 35px;\\n font-size: 1.6rem;\\n font-weight: 400;\\n }\\n\\n .login .login-form .logo {\\n max-height: 40px;\\n }\\n\\n .login .login-form form label {\\n display: block;\\n margin-bottom: 18px;\\n width: 100%;\\n text-align: left;\\n font-weight: 600;\\n }\\n\\n .login .login-form form input {\\n outline: none;\\n width: calc(100% - 30px);\\n height: 36px;\\n padding: 0 15px;\\n border: 1px solid #ececec;\\n border-radius: 2px;\\n margin-bottom: 20px;\\n line-height: 36px;\\n text-align: left;\\n }\\n\\n .login .login-form form input[type='submit'] {\\n cursor: pointer;\\n display: inline-block;\\n width: auto;\\n margin: 12px auto 0;\\n padding: 0 75px;\\n background: transparent;\\n border-radius: 36px;\\n border: 1px solid #2b66cc;\\n color: #2b66cc;\\n text-transform: uppercase;\\n font-size: 1.4rem;\\n font-weight: 700;\\n transition: all 0.2s ease-out;\\n }\\n\\n .login .login-form form input[type='submit']:hover {\\n background: #2b66cc;\\n color: #ffffff;\\n }\\n </style>\\n </head>\\n <body>\\n <div class=\\\"login\\\">\\n <section class=\\\"login-form\\\">\\n <div class=\\\"container\\\">\\n <div class=\\\"row\\\">\\n <div class=\\\"col-lg-6 col-lg-offset-3 col-md-12\\\">\\n <img\\n alt=\\\"Strapi logo\\\"\\n class=\\\"logo\\\"\\n src=\\\"https://strapi.io/assets/images/logo_login.png\\\"\\n />\\n <h2 class=\\\"sub-title\\\">Enter the password to access the documentation.</h2>\\n <form method=\\\"post\\\" action=\\\"<%=actionUrl%>\\\">\\n <span class=\\\"error\\\">Wrong password...</span>\\n <label>Password</label>\\n <input\\n type=\\\"password\\\"\\n name=\\\"password\\\"\\n placeholder=\\\"•••••••••\\\"\\n />\\n <input type=\\\"submit\\\" value=\\\"Login\\\" />\\n </form>\\n </div>\\n </div>\\n </div>\\n </section>\\n </div>\\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;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;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
package/dist/admin/index.js
CHANGED
package/dist/admin/index.mjs
CHANGED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FormikHelpers } from 'formik';
|
|
2
|
+
import { DocumentInfos, SettingsInput } from '../types';
|
|
3
|
+
type SettingsFormProps = {
|
|
4
|
+
data?: DocumentInfos;
|
|
5
|
+
onSubmit: (body: SettingsInput, formik: FormikHelpers<SettingsInput>) => Promise<void>;
|
|
6
|
+
};
|
|
7
|
+
export declare const SettingsForm: ({ data, onSubmit }: SettingsFormProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const PERMISSIONS: {
|
|
2
|
+
main: {
|
|
3
|
+
action: string;
|
|
4
|
+
subject: null;
|
|
5
|
+
}[];
|
|
6
|
+
open: {
|
|
7
|
+
action: string;
|
|
8
|
+
subject: null;
|
|
9
|
+
}[];
|
|
10
|
+
regenerate: {
|
|
11
|
+
action: string;
|
|
12
|
+
subject: null;
|
|
13
|
+
}[];
|
|
14
|
+
update: {
|
|
15
|
+
action: string;
|
|
16
|
+
subject: null;
|
|
17
|
+
}[];
|
|
18
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
register(app: any): void;
|
|
3
|
+
bootstrap(app: any): void;
|
|
4
|
+
registerTrads({ locales }: {
|
|
5
|
+
locales: string[];
|
|
6
|
+
}): Promise<({
|
|
7
|
+
data: Record<string, string>;
|
|
8
|
+
locale: string;
|
|
9
|
+
} | {
|
|
10
|
+
data: {};
|
|
11
|
+
locale: string;
|
|
12
|
+
})[]>;
|
|
13
|
+
};
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const pluginId = "documentation";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DocumentInfos } from '../types';
|
|
2
|
+
type SettingsInput = {
|
|
3
|
+
restrictedAccess: boolean;
|
|
4
|
+
password: string;
|
|
5
|
+
};
|
|
6
|
+
declare const api: import("@reduxjs/toolkit/query/react").Api<import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("../utils/baseQuery").QueryArguments, unknown, import("../utils/baseQuery").BaseQueryError>, {
|
|
7
|
+
getInfos: import("@reduxjs/toolkit/query/react").QueryDefinition<void, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("../utils/baseQuery").QueryArguments, unknown, import("../utils/baseQuery").BaseQueryError>, "DocumentInfos", DocumentInfos, "plugin::documentation">;
|
|
8
|
+
deleteVersion: import("@reduxjs/toolkit/query/react").MutationDefinition<{
|
|
9
|
+
version: string;
|
|
10
|
+
}, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("../utils/baseQuery").QueryArguments, unknown, import("../utils/baseQuery").BaseQueryError>, "DocumentInfos", void, "plugin::documentation">;
|
|
11
|
+
updateSettings: import("@reduxjs/toolkit/query/react").MutationDefinition<{
|
|
12
|
+
body: SettingsInput;
|
|
13
|
+
}, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("../utils/baseQuery").QueryArguments, unknown, import("../utils/baseQuery").BaseQueryError>, "DocumentInfos", void, "plugin::documentation">;
|
|
14
|
+
regenerateDoc: import("@reduxjs/toolkit/query/react").MutationDefinition<{
|
|
15
|
+
version: string;
|
|
16
|
+
}, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("../utils/baseQuery").QueryArguments, unknown, import("../utils/baseQuery").BaseQueryError>, "DocumentInfos", void, "plugin::documentation">;
|
|
17
|
+
}, "plugin::documentation", "DocumentInfos", typeof import("@reduxjs/toolkit/query/react").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
|
|
18
|
+
export { api };
|
|
19
|
+
export declare const useGetInfosQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query/react").QueryDefinition<void, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("../utils/baseQuery").QueryArguments, unknown, import("../utils/baseQuery").BaseQueryError>, "DocumentInfos", DocumentInfos, "plugin::documentation">>, useDeleteVersionMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query/react").MutationDefinition<{
|
|
20
|
+
version: string;
|
|
21
|
+
}, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("../utils/baseQuery").QueryArguments, unknown, import("../utils/baseQuery").BaseQueryError>, "DocumentInfos", void, "plugin::documentation">>, useUpdateSettingsMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query/react").MutationDefinition<{
|
|
22
|
+
body: SettingsInput;
|
|
23
|
+
}, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("../utils/baseQuery").QueryArguments, unknown, import("../utils/baseQuery").BaseQueryError>, "DocumentInfos", void, "plugin::documentation">>, useRegenerateDocMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query/react").MutationDefinition<{
|
|
24
|
+
version: string;
|
|
25
|
+
}, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("../utils/baseQuery").QueryArguments, unknown, import("../utils/baseQuery").BaseQueryError>, "DocumentInfos", void, "plugin::documentation">>;
|