@strapi/plugin-documentation 5.0.0-beta.7 → 5.0.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{App-Go7NNBmB.mjs → App-DA2BHbXn.mjs} +12 -12
- package/dist/_chunks/App-DA2BHbXn.mjs.map +1 -0
- package/dist/_chunks/{App-C7jXxgem.js → App-DcdhgmrA.js} +15 -15
- package/dist/_chunks/App-DcdhgmrA.js.map +1 -0
- package/dist/_chunks/{Settings-MolQTtkV.mjs → Settings-BL7U87Uv.mjs} +6 -3
- package/dist/_chunks/Settings-BL7U87Uv.mjs.map +1 -0
- package/dist/_chunks/{Settings-BaiyFmcb.js → Settings-BixD2UPK.js} +9 -6
- package/dist/_chunks/Settings-BixD2UPK.js.map +1 -0
- package/dist/_chunks/getTrad-BOYjM2qH.js +50 -0
- package/dist/_chunks/getTrad-BOYjM2qH.js.map +1 -0
- package/dist/_chunks/getTrad-DaxOKsel.mjs +51 -0
- package/dist/_chunks/getTrad-DaxOKsel.mjs.map +1 -0
- package/dist/_chunks/{index-Dfhqe6__.mjs → index-BgCmKIlZ.mjs} +7 -123
- package/dist/_chunks/index-BgCmKIlZ.mjs.map +1 -0
- package/dist/_chunks/{index-CTFz5sSR.js → index-CFzYhRlr.js} +5 -121
- package/dist/_chunks/index-CFzYhRlr.js.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +2 -2
- package/dist/admin/src/services/api.d.ts +5 -17
- package/dist/admin/src/utils/baseQuery.d.ts +4 -18
- package/package.json +13 -13
- package/dist/_chunks/App-C7jXxgem.js.map +0 -1
- package/dist/_chunks/App-Go7NNBmB.mjs.map +0 -1
- package/dist/_chunks/Settings-BaiyFmcb.js.map +0 -1
- package/dist/_chunks/Settings-MolQTtkV.mjs.map +0 -1
- package/dist/_chunks/getTrad-BIFypGyq.mjs +0 -6
- package/dist/_chunks/getTrad-BIFypGyq.mjs.map +0 -1
- package/dist/_chunks/getTrad-X8N4GzO0.js +0 -5
- package/dist/_chunks/getTrad-X8N4GzO0.js.map +0 -1
- package/dist/_chunks/index-CTFz5sSR.js.map +0 -1
- package/dist/_chunks/index-Dfhqe6__.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getTrad-BIFypGyq.mjs","sources":["../../admin/src/utils/getTrad.ts"],"sourcesContent":["import { pluginId } from '../pluginId';\n\nexport const getTrad = (id: string) => `${pluginId}.${id}`;\n"],"names":[],"mappings":";AAEO,MAAM,UAAU,CAAC,OAAe,GAAG,QAAQ,IAAI,EAAE;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getTrad-X8N4GzO0.js","sources":["../../admin/src/utils/getTrad.ts"],"sourcesContent":["import { pluginId } from '../pluginId';\n\nexport const getTrad = (id: string) => `${pluginId}.${id}`;\n"],"names":["pluginId"],"mappings":";;AAEO,MAAM,UAAU,CAAC,OAAe,GAAGA,MAAAA,QAAQ,IAAI,EAAE;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-CTFz5sSR.js","sources":["../../admin/src/constants.ts","../../admin/src/pluginId.ts","../../admin/src/utils/baseQuery.ts","../../admin/src/services/api.ts","../../admin/src/utils/prefixPluginTranslations.ts","../../admin/src/index.ts"],"sourcesContent":["export const PERMISSIONS = {\n // This permission regards the main component (App) and is used to tell\n // If the plugin link should be displayed in the menu\n // And also if the plugin is accessible. This use case is found when a user types the url of the\n // plugin directly in the browser\n main: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n { action: 'plugin::documentation.settings.update', subject: null },\n ],\n open: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n ],\n regenerate: [{ action: 'plugin::documentation.settings.regenerate', subject: null }],\n update: [{ action: 'plugin::documentation.settings.update', subject: null }],\n};\n","export const pluginId = 'documentation';\n","import { SerializedError } from '@reduxjs/toolkit';\nimport { BaseQueryFn } from '@reduxjs/toolkit/query';\nimport {\n getFetchClient,\n isFetchError,\n type ApiError,\n type FetchOptions,\n} from '@strapi/strapi/admin';\n\nexport interface QueryArguments {\n url: string;\n method?: string;\n data?: unknown;\n config?: FetchOptions;\n}\n\nexport interface UnknownApiError {\n name: 'UnknownError';\n message: string;\n details?: unknown;\n status?: number;\n}\n\nexport type BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst baseQuery =\n (): BaseQueryFn<string | QueryArguments, unknown, BaseQueryError> =>\n async (query, { signal }) => {\n try {\n const { get, post, del, put } = getFetchClient();\n\n if (typeof query === 'string') {\n const result = await get(query, { signal });\n return { data: result.data };\n } else {\n const { url, method = 'GET', data, config } = query;\n\n if (method === 'POST') {\n const result = await post(url, data, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n\n if (method === 'DELETE') {\n const result = await del(url, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n\n if (method === 'PUT') {\n const result = await put(url, data, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n\n /**\n * Default is GET.\n */\n const result = await get(url, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n } catch (err) {\n /**\n * Handle error of type FetchError\n *\n * This format mimics what we want from an FetchError which is what the\n * rest of the app works with, except this format is \"serializable\" since\n * it goes into the redux store.\n *\n * NOTE – passing the whole response will highlight this \"serializability\" issue.\n */\n\n if (isFetchError(err)) {\n if (\n typeof err.response?.data === 'object' &&\n err.response?.data !== null &&\n 'error' in err.response?.data\n ) {\n /**\n * This will most likely be ApiError\n */\n return { data: undefined, error: err.response?.data.error };\n } else {\n return {\n data: undefined,\n error: {\n name: 'UnknownError',\n message: 'There was an unknown error response from the API',\n details: err.response?.data,\n status: err.status,\n } as UnknownApiError,\n };\n }\n }\n\n const error = err as Error;\n return {\n data: undefined,\n error: {\n name: error.name,\n message: error.message,\n stack: error.stack,\n } satisfies SerializedError,\n };\n }\n };\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { baseQuery, isBaseQueryError };\n","import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { DocumentInfos } from '../types';\nimport { baseQuery } from '../utils/baseQuery';\n\ntype SettingsInput = {\n restrictedAccess: boolean;\n password: string;\n};\n\nconst api = createApi({\n reducerPath: 'plugin::documentation',\n baseQuery: baseQuery(),\n tagTypes: ['DocumentInfo'],\n endpoints: (builder) => {\n return {\n getInfo: builder.query<DocumentInfos, void>({\n query: () => '/documentation/getInfos',\n providesTags: ['DocumentInfo'],\n }),\n\n deleteVersion: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/documentation/deleteDoc/${version}`,\n method: 'DELETE',\n }),\n invalidatesTags: ['DocumentInfo'],\n }),\n\n updateSettings: builder.mutation<void, { body: SettingsInput }>({\n query: ({ body }) => ({\n url: `/documentation/updateSettings`,\n method: 'PUT',\n data: body,\n }),\n invalidatesTags: ['DocumentInfo'],\n }),\n\n regenerateDoc: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/documentation/regenerateDoc`,\n method: 'POST',\n data: { version },\n }),\n }),\n };\n },\n});\n\nexport { api };\n\nexport const {\n useGetInfoQuery,\n useDeleteVersionMutation,\n useUpdateSettingsMutation,\n useRegenerateDocMutation,\n} = api;\n","const prefixPluginTranslations = (trad: Record<string, string>, pluginId?: string) => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n\n return Object.keys(trad).reduce(\n (acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n\n return acc;\n },\n {} as Record<string, string>\n );\n};\n\nexport { prefixPluginTranslations };\n","import { Information } from '@strapi/icons';\n\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { api } from './services/api';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: any) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Information,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n permissions: PERMISSIONS.main,\n Component: async () => {\n const { App } = await import('./pages/App');\n return App;\n },\n });\n\n app.addMiddlewares([() => api.middleware]);\n\n app.addReducers({\n [api.reducerPath]: api.reducer,\n });\n\n app.registerPlugin({\n id: pluginId,\n name: pluginId,\n });\n },\n bootstrap(app: any) {\n app.addSettingsLink('global', {\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n id: 'documentation',\n to: pluginId,\n Component: async () => {\n const { SettingsPage } = await import('./pages/Settings');\n return SettingsPage;\n },\n permissions: PERMISSIONS.main,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["getFetchClient","result","isFetchError","createApi","pluginId","Information"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-Dfhqe6__.mjs","sources":["../../admin/src/constants.ts","../../admin/src/pluginId.ts","../../admin/src/utils/baseQuery.ts","../../admin/src/services/api.ts","../../admin/src/utils/prefixPluginTranslations.ts","../../admin/src/index.ts"],"sourcesContent":["export const PERMISSIONS = {\n // This permission regards the main component (App) and is used to tell\n // If the plugin link should be displayed in the menu\n // And also if the plugin is accessible. This use case is found when a user types the url of the\n // plugin directly in the browser\n main: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n { action: 'plugin::documentation.settings.update', subject: null },\n ],\n open: [\n { action: 'plugin::documentation.read', subject: null },\n { action: 'plugin::documentation.settings.regenerate', subject: null },\n ],\n regenerate: [{ action: 'plugin::documentation.settings.regenerate', subject: null }],\n update: [{ action: 'plugin::documentation.settings.update', subject: null }],\n};\n","export const pluginId = 'documentation';\n","import { SerializedError } from '@reduxjs/toolkit';\nimport { BaseQueryFn } from '@reduxjs/toolkit/query';\nimport {\n getFetchClient,\n isFetchError,\n type ApiError,\n type FetchOptions,\n} from '@strapi/strapi/admin';\n\nexport interface QueryArguments {\n url: string;\n method?: string;\n data?: unknown;\n config?: FetchOptions;\n}\n\nexport interface UnknownApiError {\n name: 'UnknownError';\n message: string;\n details?: unknown;\n status?: number;\n}\n\nexport type BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst baseQuery =\n (): BaseQueryFn<string | QueryArguments, unknown, BaseQueryError> =>\n async (query, { signal }) => {\n try {\n const { get, post, del, put } = getFetchClient();\n\n if (typeof query === 'string') {\n const result = await get(query, { signal });\n return { data: result.data };\n } else {\n const { url, method = 'GET', data, config } = query;\n\n if (method === 'POST') {\n const result = await post(url, data, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n\n if (method === 'DELETE') {\n const result = await del(url, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n\n if (method === 'PUT') {\n const result = await put(url, data, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n\n /**\n * Default is GET.\n */\n const result = await get(url, {\n ...config,\n signal,\n });\n return { data: result.data };\n }\n } catch (err) {\n /**\n * Handle error of type FetchError\n *\n * This format mimics what we want from an FetchError which is what the\n * rest of the app works with, except this format is \"serializable\" since\n * it goes into the redux store.\n *\n * NOTE – passing the whole response will highlight this \"serializability\" issue.\n */\n\n if (isFetchError(err)) {\n if (\n typeof err.response?.data === 'object' &&\n err.response?.data !== null &&\n 'error' in err.response?.data\n ) {\n /**\n * This will most likely be ApiError\n */\n return { data: undefined, error: err.response?.data.error };\n } else {\n return {\n data: undefined,\n error: {\n name: 'UnknownError',\n message: 'There was an unknown error response from the API',\n details: err.response?.data,\n status: err.status,\n } as UnknownApiError,\n };\n }\n }\n\n const error = err as Error;\n return {\n data: undefined,\n error: {\n name: error.name,\n message: error.message,\n stack: error.stack,\n } satisfies SerializedError,\n };\n }\n };\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { baseQuery, isBaseQueryError };\n","import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { DocumentInfos } from '../types';\nimport { baseQuery } from '../utils/baseQuery';\n\ntype SettingsInput = {\n restrictedAccess: boolean;\n password: string;\n};\n\nconst api = createApi({\n reducerPath: 'plugin::documentation',\n baseQuery: baseQuery(),\n tagTypes: ['DocumentInfo'],\n endpoints: (builder) => {\n return {\n getInfo: builder.query<DocumentInfos, void>({\n query: () => '/documentation/getInfos',\n providesTags: ['DocumentInfo'],\n }),\n\n deleteVersion: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/documentation/deleteDoc/${version}`,\n method: 'DELETE',\n }),\n invalidatesTags: ['DocumentInfo'],\n }),\n\n updateSettings: builder.mutation<void, { body: SettingsInput }>({\n query: ({ body }) => ({\n url: `/documentation/updateSettings`,\n method: 'PUT',\n data: body,\n }),\n invalidatesTags: ['DocumentInfo'],\n }),\n\n regenerateDoc: builder.mutation<void, { version: string }>({\n query: ({ version }) => ({\n url: `/documentation/regenerateDoc`,\n method: 'POST',\n data: { version },\n }),\n }),\n };\n },\n});\n\nexport { api };\n\nexport const {\n useGetInfoQuery,\n useDeleteVersionMutation,\n useUpdateSettingsMutation,\n useRegenerateDocMutation,\n} = api;\n","const prefixPluginTranslations = (trad: Record<string, string>, pluginId?: string) => {\n if (!pluginId) {\n throw new TypeError(\"pluginId can't be empty\");\n }\n\n return Object.keys(trad).reduce(\n (acc, current) => {\n acc[`${pluginId}.${current}`] = trad[current];\n\n return acc;\n },\n {} as Record<string, string>\n );\n};\n\nexport { prefixPluginTranslations };\n","import { Information } from '@strapi/icons';\n\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { api } from './services/api';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n register(app: any) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Information,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n permissions: PERMISSIONS.main,\n Component: async () => {\n const { App } = await import('./pages/App');\n return App;\n },\n });\n\n app.addMiddlewares([() => api.middleware]);\n\n app.addReducers({\n [api.reducerPath]: api.reducer,\n });\n\n app.registerPlugin({\n id: pluginId,\n name: pluginId,\n });\n },\n bootstrap(app: any) {\n app.addSettingsLink('global', {\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Documentation',\n },\n id: 'documentation',\n to: pluginId,\n Component: async () => {\n const { SettingsPage } = await import('./pages/Settings');\n return SettingsPage;\n },\n permissions: PERMISSIONS.main,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n"],"names":["result","pluginId"],"mappings":"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"}
|