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

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