@payloadcms/plugin-mcp 4.0.0-internal.5b1e7cd → 4.0.0-internal.688c4d0
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/bin.js +39 -0
- package/dist/@types/assets.d.js +2 -0
- package/dist/@types/assets.d.js.map +1 -0
- package/dist/collection/getAccessField.d.ts +12 -0
- package/dist/collection/getAccessField.d.ts.map +1 -0
- package/dist/collection/getAccessField.js +72 -0
- package/dist/collection/getAccessField.js.map +1 -0
- package/dist/collection/index.d.ts +6 -0
- package/dist/collection/index.d.ts.map +1 -0
- package/dist/collection/index.js +105 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/components/APIKeyField/index.client.d.ts +9 -0
- package/dist/components/APIKeyField/index.client.d.ts.map +1 -0
- package/dist/components/APIKeyField/index.client.js +85 -0
- package/dist/components/APIKeyField/index.client.js.map +1 -0
- package/dist/components/APIKeyField/index.css +105 -0
- package/dist/components/APIKeysEmptyState/index.client.d.ts +4 -0
- package/dist/components/APIKeysEmptyState/index.client.d.ts.map +1 -0
- package/dist/components/APIKeysEmptyState/index.client.js +21 -0
- package/dist/components/APIKeysEmptyState/index.client.js.map +1 -0
- package/dist/components/AccessField/index.client.d.ts +10 -0
- package/dist/components/AccessField/index.client.d.ts.map +1 -0
- package/dist/components/AccessField/index.client.js +247 -0
- package/dist/components/AccessField/index.client.js.map +1 -0
- package/dist/components/AccessField/index.css +99 -0
- package/dist/components/SettingsMenu/index.client.d.ts +8 -0
- package/dist/components/SettingsMenu/index.client.d.ts.map +1 -0
- package/dist/components/SettingsMenu/index.client.js +29 -0
- package/dist/components/SettingsMenu/index.client.js.map +1 -0
- package/dist/defineTool.d.ts +26 -0
- package/dist/defineTool.d.ts.map +1 -0
- package/dist/defineTool.js +37 -0
- package/dist/defineTool.js.map +1 -0
- package/dist/endpoint/access.d.ts +10 -0
- package/dist/endpoint/access.d.ts.map +1 -0
- package/dist/endpoint/access.js +122 -0
- package/dist/endpoint/access.js.map +1 -0
- package/dist/endpoint/index.d.ts +3 -0
- package/dist/endpoint/index.d.ts.map +1 -0
- package/dist/endpoint/index.js +36 -0
- package/dist/endpoint/index.js.map +1 -0
- package/dist/exports/client.d.ts +5 -0
- package/dist/exports/client.d.ts.map +1 -0
- package/dist/exports/client.js +7 -0
- package/dist/exports/client.js.map +1 -0
- package/dist/index.d.ts +4 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +87 -67
- package/dist/index.js.map +1 -1
- package/dist/mcp/buildMcpServer.d.ts +19 -0
- package/dist/mcp/buildMcpServer.d.ts.map +1 -0
- package/dist/mcp/buildMcpServer.js +199 -0
- package/dist/mcp/buildMcpServer.js.map +1 -0
- package/dist/mcp/builtin/collections/authTools.d.ts +7 -0
- package/dist/mcp/builtin/collections/authTools.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/authTools.js +250 -0
- package/dist/mcp/builtin/collections/authTools.js.map +1 -0
- package/dist/mcp/builtin/collections/createTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/createTool.js +94 -0
- package/dist/mcp/builtin/collections/createTool.js.map +1 -0
- package/dist/mcp/builtin/collections/deleteTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/deleteTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/deleteTool.js +102 -0
- package/dist/mcp/builtin/collections/deleteTool.js.map +1 -0
- package/dist/mcp/builtin/collections/findTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/findTool.js +144 -0
- package/dist/mcp/builtin/collections/findTool.js.map +1 -0
- package/dist/mcp/builtin/collections/formatCollectionError.d.ts +9 -0
- package/dist/mcp/builtin/collections/formatCollectionError.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/formatCollectionError.js +60 -0
- package/dist/mcp/builtin/collections/formatCollectionError.js.map +1 -0
- package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +35 -0
- package/dist/mcp/builtin/collections/getCollectionSchemaTool.js.map +1 -0
- package/dist/mcp/builtin/collections/updateTool.d.ts +2 -0
- package/dist/mcp/builtin/collections/updateTool.d.ts.map +1 -0
- package/dist/mcp/builtin/collections/updateTool.js +199 -0
- package/dist/mcp/builtin/collections/updateTool.js.map +1 -0
- package/dist/mcp/builtin/getConfigInfoTool.d.ts +2 -0
- package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -0
- package/dist/mcp/builtin/getConfigInfoTool.js +49 -0
- package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -0
- package/dist/mcp/builtin/globals/findTool.d.ts +2 -0
- package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -0
- package/dist/mcp/builtin/globals/findTool.js +76 -0
- package/dist/mcp/builtin/globals/findTool.js.map +1 -0
- package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts +2 -0
- package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -0
- package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +35 -0
- package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -0
- package/dist/mcp/builtin/globals/updateTool.d.ts +2 -0
- package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -0
- package/dist/mcp/builtin/globals/updateTool.js +94 -0
- package/dist/mcp/builtin/globals/updateTool.js.map +1 -0
- package/dist/mcp/builtin/validateEntityData.d.ts +14 -0
- package/dist/mcp/builtin/validateEntityData.d.ts.map +1 -0
- package/dist/mcp/builtin/validateEntityData.js +82 -0
- package/dist/mcp/builtin/validateEntityData.js.map +1 -0
- package/dist/mcp/builtinTools.d.ts +105 -0
- package/dist/mcp/builtinTools.d.ts.map +1 -0
- package/dist/mcp/builtinTools.js +107 -0
- package/dist/mcp/builtinTools.js.map +1 -0
- package/dist/mcp/sanitizeMCPConfig.d.ts +17 -0
- package/dist/mcp/sanitizeMCPConfig.d.ts.map +1 -0
- package/dist/mcp/sanitizeMCPConfig.js +188 -0
- package/dist/mcp/sanitizeMCPConfig.js.map +1 -0
- package/dist/stdio.d.ts +8 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/stdio.js +89 -0
- package/dist/stdio.js.map +1 -0
- package/dist/translations/index.d.ts +11 -0
- package/dist/translations/index.d.ts.map +1 -0
- package/dist/translations/index.js +92 -0
- package/dist/translations/index.js.map +1 -0
- package/dist/translations/languages/ar.d.ts +31 -0
- package/dist/translations/languages/ar.d.ts.map +1 -0
- package/dist/translations/languages/ar.js +34 -0
- package/dist/translations/languages/ar.js.map +1 -0
- package/dist/translations/languages/az.d.ts +31 -0
- package/dist/translations/languages/az.d.ts.map +1 -0
- package/dist/translations/languages/az.js +34 -0
- package/dist/translations/languages/az.js.map +1 -0
- package/dist/translations/languages/bg.d.ts +31 -0
- package/dist/translations/languages/bg.d.ts.map +1 -0
- package/dist/translations/languages/bg.js +34 -0
- package/dist/translations/languages/bg.js.map +1 -0
- package/dist/translations/languages/bnBd.d.ts +31 -0
- package/dist/translations/languages/bnBd.d.ts.map +1 -0
- package/dist/translations/languages/bnBd.js +34 -0
- package/dist/translations/languages/bnBd.js.map +1 -0
- package/dist/translations/languages/bnIn.d.ts +31 -0
- package/dist/translations/languages/bnIn.d.ts.map +1 -0
- package/dist/translations/languages/bnIn.js +34 -0
- package/dist/translations/languages/bnIn.js.map +1 -0
- package/dist/translations/languages/ca.d.ts +31 -0
- package/dist/translations/languages/ca.d.ts.map +1 -0
- package/dist/translations/languages/ca.js +34 -0
- package/dist/translations/languages/ca.js.map +1 -0
- package/dist/translations/languages/cs.d.ts +31 -0
- package/dist/translations/languages/cs.d.ts.map +1 -0
- package/dist/translations/languages/cs.js +34 -0
- package/dist/translations/languages/cs.js.map +1 -0
- package/dist/translations/languages/da.d.ts +31 -0
- package/dist/translations/languages/da.d.ts.map +1 -0
- package/dist/translations/languages/da.js +34 -0
- package/dist/translations/languages/da.js.map +1 -0
- package/dist/translations/languages/de.d.ts +31 -0
- package/dist/translations/languages/de.d.ts.map +1 -0
- package/dist/translations/languages/de.js +34 -0
- package/dist/translations/languages/de.js.map +1 -0
- package/dist/translations/languages/en.d.ts +31 -0
- package/dist/translations/languages/en.d.ts.map +1 -0
- package/dist/translations/languages/en.js +34 -0
- package/dist/translations/languages/en.js.map +1 -0
- package/dist/translations/languages/es.d.ts +31 -0
- package/dist/translations/languages/es.d.ts.map +1 -0
- package/dist/translations/languages/es.js +34 -0
- package/dist/translations/languages/es.js.map +1 -0
- package/dist/translations/languages/et.d.ts +31 -0
- package/dist/translations/languages/et.d.ts.map +1 -0
- package/dist/translations/languages/et.js +34 -0
- package/dist/translations/languages/et.js.map +1 -0
- package/dist/translations/languages/fa.d.ts +31 -0
- package/dist/translations/languages/fa.d.ts.map +1 -0
- package/dist/translations/languages/fa.js +34 -0
- package/dist/translations/languages/fa.js.map +1 -0
- package/dist/translations/languages/fr.d.ts +31 -0
- package/dist/translations/languages/fr.d.ts.map +1 -0
- package/dist/translations/languages/fr.js +34 -0
- package/dist/translations/languages/fr.js.map +1 -0
- package/dist/translations/languages/he.d.ts +31 -0
- package/dist/translations/languages/he.d.ts.map +1 -0
- package/dist/translations/languages/he.js +34 -0
- package/dist/translations/languages/he.js.map +1 -0
- package/dist/translations/languages/hr.d.ts +31 -0
- package/dist/translations/languages/hr.d.ts.map +1 -0
- package/dist/translations/languages/hr.js +34 -0
- package/dist/translations/languages/hr.js.map +1 -0
- package/dist/translations/languages/hu.d.ts +31 -0
- package/dist/translations/languages/hu.d.ts.map +1 -0
- package/dist/translations/languages/hu.js +34 -0
- package/dist/translations/languages/hu.js.map +1 -0
- package/dist/translations/languages/hy.d.ts +31 -0
- package/dist/translations/languages/hy.d.ts.map +1 -0
- package/dist/translations/languages/hy.js +34 -0
- package/dist/translations/languages/hy.js.map +1 -0
- package/dist/translations/languages/id.d.ts +31 -0
- package/dist/translations/languages/id.d.ts.map +1 -0
- package/dist/translations/languages/id.js +34 -0
- package/dist/translations/languages/id.js.map +1 -0
- package/dist/translations/languages/is.d.ts +31 -0
- package/dist/translations/languages/is.d.ts.map +1 -0
- package/dist/translations/languages/is.js +34 -0
- package/dist/translations/languages/is.js.map +1 -0
- package/dist/translations/languages/it.d.ts +31 -0
- package/dist/translations/languages/it.d.ts.map +1 -0
- package/dist/translations/languages/it.js +34 -0
- package/dist/translations/languages/it.js.map +1 -0
- package/dist/translations/languages/ja.d.ts +31 -0
- package/dist/translations/languages/ja.d.ts.map +1 -0
- package/dist/translations/languages/ja.js +34 -0
- package/dist/translations/languages/ja.js.map +1 -0
- package/dist/translations/languages/ko.d.ts +31 -0
- package/dist/translations/languages/ko.d.ts.map +1 -0
- package/dist/translations/languages/ko.js +34 -0
- package/dist/translations/languages/ko.js.map +1 -0
- package/dist/translations/languages/lt.d.ts +31 -0
- package/dist/translations/languages/lt.d.ts.map +1 -0
- package/dist/translations/languages/lt.js +34 -0
- package/dist/translations/languages/lt.js.map +1 -0
- package/dist/translations/languages/lv.d.ts +31 -0
- package/dist/translations/languages/lv.d.ts.map +1 -0
- package/dist/translations/languages/lv.js +34 -0
- package/dist/translations/languages/lv.js.map +1 -0
- package/dist/translations/languages/my.d.ts +31 -0
- package/dist/translations/languages/my.d.ts.map +1 -0
- package/dist/translations/languages/my.js +34 -0
- package/dist/translations/languages/my.js.map +1 -0
- package/dist/translations/languages/nb.d.ts +31 -0
- package/dist/translations/languages/nb.d.ts.map +1 -0
- package/dist/translations/languages/nb.js +34 -0
- package/dist/translations/languages/nb.js.map +1 -0
- package/dist/translations/languages/nl.d.ts +31 -0
- package/dist/translations/languages/nl.d.ts.map +1 -0
- package/dist/translations/languages/nl.js +34 -0
- package/dist/translations/languages/nl.js.map +1 -0
- package/dist/translations/languages/pl.d.ts +31 -0
- package/dist/translations/languages/pl.d.ts.map +1 -0
- package/dist/translations/languages/pl.js +34 -0
- package/dist/translations/languages/pl.js.map +1 -0
- package/dist/translations/languages/pt.d.ts +31 -0
- package/dist/translations/languages/pt.d.ts.map +1 -0
- package/dist/translations/languages/pt.js +34 -0
- package/dist/translations/languages/pt.js.map +1 -0
- package/dist/translations/languages/ro.d.ts +31 -0
- package/dist/translations/languages/ro.d.ts.map +1 -0
- package/dist/translations/languages/ro.js +34 -0
- package/dist/translations/languages/ro.js.map +1 -0
- package/dist/translations/languages/rs.d.ts +31 -0
- package/dist/translations/languages/rs.d.ts.map +1 -0
- package/dist/translations/languages/rs.js +34 -0
- package/dist/translations/languages/rs.js.map +1 -0
- package/dist/translations/languages/rsLatin.d.ts +31 -0
- package/dist/translations/languages/rsLatin.d.ts.map +1 -0
- package/dist/translations/languages/rsLatin.js +34 -0
- package/dist/translations/languages/rsLatin.js.map +1 -0
- package/dist/translations/languages/ru.d.ts +31 -0
- package/dist/translations/languages/ru.d.ts.map +1 -0
- package/dist/translations/languages/ru.js +34 -0
- package/dist/translations/languages/ru.js.map +1 -0
- package/dist/translations/languages/sk.d.ts +31 -0
- package/dist/translations/languages/sk.d.ts.map +1 -0
- package/dist/translations/languages/sk.js +34 -0
- package/dist/translations/languages/sk.js.map +1 -0
- package/dist/translations/languages/sl.d.ts +31 -0
- package/dist/translations/languages/sl.d.ts.map +1 -0
- package/dist/translations/languages/sl.js +34 -0
- package/dist/translations/languages/sl.js.map +1 -0
- package/dist/translations/languages/sv.d.ts +31 -0
- package/dist/translations/languages/sv.d.ts.map +1 -0
- package/dist/translations/languages/sv.js +34 -0
- package/dist/translations/languages/sv.js.map +1 -0
- package/dist/translations/languages/ta.d.ts +31 -0
- package/dist/translations/languages/ta.d.ts.map +1 -0
- package/dist/translations/languages/ta.js +34 -0
- package/dist/translations/languages/ta.js.map +1 -0
- package/dist/translations/languages/th.d.ts +31 -0
- package/dist/translations/languages/th.d.ts.map +1 -0
- package/dist/translations/languages/th.js +34 -0
- package/dist/translations/languages/th.js.map +1 -0
- package/dist/translations/languages/tr.d.ts +31 -0
- package/dist/translations/languages/tr.d.ts.map +1 -0
- package/dist/translations/languages/tr.js +34 -0
- package/dist/translations/languages/tr.js.map +1 -0
- package/dist/translations/languages/uk.d.ts +31 -0
- package/dist/translations/languages/uk.d.ts.map +1 -0
- package/dist/translations/languages/uk.js +34 -0
- package/dist/translations/languages/uk.js.map +1 -0
- package/dist/translations/languages/vi.d.ts +31 -0
- package/dist/translations/languages/vi.d.ts.map +1 -0
- package/dist/translations/languages/vi.js +34 -0
- package/dist/translations/languages/vi.js.map +1 -0
- package/dist/translations/languages/zh.d.ts +31 -0
- package/dist/translations/languages/zh.d.ts.map +1 -0
- package/dist/translations/languages/zh.js +34 -0
- package/dist/translations/languages/zh.js.map +1 -0
- package/dist/translations/languages/zhTw.d.ts +31 -0
- package/dist/translations/languages/zhTw.d.ts.map +1 -0
- package/dist/translations/languages/zhTw.js +34 -0
- package/dist/translations/languages/zhTw.js.map +1 -0
- package/dist/translations/types.d.ts +32 -0
- package/dist/translations/types.d.ts.map +1 -0
- package/dist/translations/types.js +3 -0
- package/dist/translations/types.js.map +1 -0
- package/dist/types.d.ts +255 -454
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/camelCase.d.ts.map +1 -1
- package/dist/utils/getLogger.d.ts +10 -0
- package/dist/utils/getLogger.d.ts.map +1 -0
- package/dist/utils/getLogger.js +22 -0
- package/dist/utils/getLogger.js.map +1 -0
- package/dist/utils/getPluginConfig.d.ts +12 -0
- package/dist/utils/getPluginConfig.d.ts.map +1 -0
- package/dist/utils/getPluginConfig.js +15 -0
- package/dist/utils/getPluginConfig.js.map +1 -0
- package/dist/utils/localAPIDefaults.d.ts +20 -0
- package/dist/utils/localAPIDefaults.d.ts.map +1 -0
- package/dist/utils/localAPIDefaults.js +19 -0
- package/dist/utils/localAPIDefaults.js.map +1 -0
- package/dist/utils/resolveProjectRoot.d.ts +7 -0
- package/dist/utils/resolveProjectRoot.d.ts.map +1 -0
- package/dist/utils/resolveProjectRoot.js +15 -0
- package/dist/utils/resolveProjectRoot.js.map +1 -0
- package/dist/utils/schemaConversion/getEntityInputSchema.d.ts +11 -0
- package/dist/utils/schemaConversion/getEntityInputSchema.d.ts.map +1 -0
- package/dist/utils/schemaConversion/getEntityInputSchema.js +34 -0
- package/dist/utils/schemaConversion/getEntityInputSchema.js.map +1 -0
- package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts +2 -2
- package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts.map +1 -1
- package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js.map +1 -1
- package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts +15 -0
- package/dist/utils/schemaConversion/sanitizeEntitySchema.d.ts.map +1 -0
- package/dist/utils/schemaConversion/sanitizeEntitySchema.js +464 -0
- package/dist/utils/schemaConversion/sanitizeEntitySchema.js.map +1 -0
- package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js +158 -0
- package/dist/utils/schemaConversion/sanitizeEntitySchema.spec.js.map +1 -0
- package/dist/utils/toStandardSchema.d.ts +5 -0
- package/dist/utils/toStandardSchema.d.ts.map +1 -0
- package/dist/utils/toStandardSchema.js +4 -0
- package/dist/utils/toStandardSchema.js.map +1 -0
- package/dist/utils/whereSchema.d.ts +9 -0
- package/dist/utils/whereSchema.d.ts.map +1 -0
- package/dist/utils/whereSchema.js +13 -0
- package/dist/utils/whereSchema.js.map +1 -0
- package/package.json +36 -10
- package/src/@types/assets.d.ts +3 -0
- package/src/collection/getAccessField.ts +84 -0
- package/src/collection/index.ts +105 -0
- package/src/components/APIKeyField/index.client.tsx +73 -0
- package/src/components/APIKeyField/index.css +105 -0
- package/src/components/APIKeysEmptyState/index.client.tsx +36 -0
- package/src/components/AccessField/index.client.tsx +299 -0
- package/src/components/AccessField/index.css +99 -0
- package/src/components/SettingsMenu/index.client.tsx +34 -0
- package/src/defineTool.ts +44 -0
- package/src/endpoint/access.ts +144 -0
- package/src/endpoint/index.ts +35 -0
- package/src/exports/client.ts +5 -0
- package/src/index.ts +82 -86
- package/src/mcp/buildMcpServer.ts +257 -0
- package/src/mcp/builtin/collections/authTools.ts +233 -0
- package/src/mcp/builtin/collections/createTool.ts +112 -0
- package/src/mcp/builtin/collections/deleteTool.ts +116 -0
- package/src/mcp/builtin/collections/findTool.ts +177 -0
- package/src/mcp/builtin/collections/formatCollectionError.ts +84 -0
- package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +28 -0
- package/src/mcp/builtin/collections/updateTool.ts +211 -0
- package/src/mcp/builtin/getConfigInfoTool.ts +44 -0
- package/src/mcp/builtin/globals/findTool.ts +96 -0
- package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +28 -0
- package/src/mcp/builtin/globals/updateTool.ts +115 -0
- package/src/mcp/builtin/validateEntityData.ts +132 -0
- package/src/mcp/builtinTools.ts +98 -0
- package/src/mcp/sanitizeMCPConfig.ts +260 -0
- package/src/stdio.ts +98 -0
- package/src/translations/index.ts +108 -0
- package/src/translations/languages/ar.ts +35 -0
- package/src/translations/languages/az.ts +35 -0
- package/src/translations/languages/bg.ts +35 -0
- package/src/translations/languages/bnBd.ts +35 -0
- package/src/translations/languages/bnIn.ts +35 -0
- package/src/translations/languages/ca.ts +35 -0
- package/src/translations/languages/cs.ts +35 -0
- package/src/translations/languages/da.ts +35 -0
- package/src/translations/languages/de.ts +35 -0
- package/src/translations/languages/en.ts +35 -0
- package/src/translations/languages/es.ts +35 -0
- package/src/translations/languages/et.ts +35 -0
- package/src/translations/languages/fa.ts +35 -0
- package/src/translations/languages/fr.ts +35 -0
- package/src/translations/languages/he.ts +35 -0
- package/src/translations/languages/hr.ts +35 -0
- package/src/translations/languages/hu.ts +35 -0
- package/src/translations/languages/hy.ts +35 -0
- package/src/translations/languages/id.ts +35 -0
- package/src/translations/languages/is.ts +35 -0
- package/src/translations/languages/it.ts +35 -0
- package/src/translations/languages/ja.ts +35 -0
- package/src/translations/languages/ko.ts +35 -0
- package/src/translations/languages/lt.ts +35 -0
- package/src/translations/languages/lv.ts +35 -0
- package/src/translations/languages/my.ts +35 -0
- package/src/translations/languages/nb.ts +35 -0
- package/src/translations/languages/nl.ts +35 -0
- package/src/translations/languages/pl.ts +35 -0
- package/src/translations/languages/pt.ts +35 -0
- package/src/translations/languages/ro.ts +35 -0
- package/src/translations/languages/rs.ts +35 -0
- package/src/translations/languages/rsLatin.ts +35 -0
- package/src/translations/languages/ru.ts +35 -0
- package/src/translations/languages/sk.ts +35 -0
- package/src/translations/languages/sl.ts +35 -0
- package/src/translations/languages/sv.ts +35 -0
- package/src/translations/languages/ta.ts +35 -0
- package/src/translations/languages/th.ts +35 -0
- package/src/translations/languages/tr.ts +35 -0
- package/src/translations/languages/uk.ts +35 -0
- package/src/translations/languages/vi.ts +35 -0
- package/src/translations/languages/zh.ts +35 -0
- package/src/translations/languages/zhTw.ts +35 -0
- package/src/translations/types.ts +34 -0
- package/src/types.ts +295 -490
- package/src/utils/getLogger.ts +22 -0
- package/src/utils/getPluginConfig.ts +24 -0
- package/src/utils/localAPIDefaults.ts +22 -0
- package/src/utils/resolveProjectRoot.ts +17 -0
- package/src/utils/schemaConversion/getEntityInputSchema.ts +78 -0
- package/src/utils/schemaConversion/removeVirtualFieldsFromSchema.ts +3 -3
- package/src/utils/schemaConversion/sanitizeEntitySchema.spec.ts +103 -0
- package/src/utils/schemaConversion/sanitizeEntitySchema.ts +529 -0
- package/src/utils/toStandardSchema.ts +9 -0
- package/src/utils/whereSchema.ts +24 -0
- package/dist/collections/createApiKeysCollection.d.ts +0 -7
- package/dist/collections/createApiKeysCollection.d.ts.map +0 -1
- package/dist/collections/createApiKeysCollection.js +0 -317
- package/dist/collections/createApiKeysCollection.js.map +0 -1
- package/dist/defaults.d.ts +0 -4
- package/dist/defaults.d.ts.map +0 -1
- package/dist/defaults.js +0 -5
- package/dist/defaults.js.map +0 -1
- package/dist/endpoints/mcp.d.ts +0 -4
- package/dist/endpoints/mcp.d.ts.map +0 -1
- package/dist/endpoints/mcp.js +0 -71
- package/dist/endpoints/mcp.js.map +0 -1
- package/dist/mcp/createRequest.d.ts +0 -3
- package/dist/mcp/createRequest.d.ts.map +0 -1
- package/dist/mcp/createRequest.js +0 -14
- package/dist/mcp/createRequest.js.map +0 -1
- package/dist/mcp/getMcpHandler.d.ts +0 -4
- package/dist/mcp/getMcpHandler.d.ts.map +0 -1
- package/dist/mcp/getMcpHandler.js +0 -231
- package/dist/mcp/getMcpHandler.js.map +0 -1
- package/dist/mcp/helpers/config.d.ts +0 -22
- package/dist/mcp/helpers/config.d.ts.map +0 -1
- package/dist/mcp/helpers/config.js +0 -153
- package/dist/mcp/helpers/config.js.map +0 -1
- package/dist/mcp/helpers/fields.d.ts +0 -19
- package/dist/mcp/helpers/fields.d.ts.map +0 -1
- package/dist/mcp/helpers/fields.js +0 -102
- package/dist/mcp/helpers/fields.js.map +0 -1
- package/dist/mcp/helpers/fileValidation.d.ts +0 -67
- package/dist/mcp/helpers/fileValidation.d.ts.map +0 -1
- package/dist/mcp/helpers/fileValidation.js +0 -267
- package/dist/mcp/helpers/fileValidation.js.map +0 -1
- package/dist/mcp/registerTool.d.ts +0 -6
- package/dist/mcp/registerTool.d.ts.map +0 -1
- package/dist/mcp/registerTool.js +0 -18
- package/dist/mcp/registerTool.js.map +0 -1
- package/dist/mcp/tools/auth/auth.d.ts +0 -4
- package/dist/mcp/tools/auth/auth.d.ts.map +0 -1
- package/dist/mcp/tools/auth/auth.js +0 -57
- package/dist/mcp/tools/auth/auth.js.map +0 -1
- package/dist/mcp/tools/auth/forgotPassword.d.ts +0 -4
- package/dist/mcp/tools/auth/forgotPassword.d.ts.map +0 -1
- package/dist/mcp/tools/auth/forgotPassword.js +0 -48
- package/dist/mcp/tools/auth/forgotPassword.js.map +0 -1
- package/dist/mcp/tools/auth/login.d.ts +0 -4
- package/dist/mcp/tools/auth/login.d.ts.map +0 -1
- package/dist/mcp/tools/auth/login.js +0 -51
- package/dist/mcp/tools/auth/login.js.map +0 -1
- package/dist/mcp/tools/auth/resetPassword.d.ts +0 -4
- package/dist/mcp/tools/auth/resetPassword.d.ts.map +0 -1
- package/dist/mcp/tools/auth/resetPassword.js +0 -49
- package/dist/mcp/tools/auth/resetPassword.js.map +0 -1
- package/dist/mcp/tools/auth/unlock.d.ts +0 -4
- package/dist/mcp/tools/auth/unlock.d.ts.map +0 -1
- package/dist/mcp/tools/auth/unlock.js +0 -48
- package/dist/mcp/tools/auth/unlock.js.map +0 -1
- package/dist/mcp/tools/auth/verify.d.ts +0 -4
- package/dist/mcp/tools/auth/verify.d.ts.map +0 -1
- package/dist/mcp/tools/auth/verify.js +0 -45
- package/dist/mcp/tools/auth/verify.js.map +0 -1
- package/dist/mcp/tools/collection/create.d.ts +0 -10
- package/dist/mcp/tools/collection/create.d.ts.map +0 -1
- package/dist/mcp/tools/collection/create.js +0 -139
- package/dist/mcp/tools/collection/create.js.map +0 -1
- package/dist/mcp/tools/collection/delete.d.ts +0 -10
- package/dist/mcp/tools/collection/delete.d.ts.map +0 -1
- package/dist/mcp/tools/collection/delete.js +0 -154
- package/dist/mcp/tools/collection/delete.js.map +0 -1
- package/dist/mcp/tools/collection/find.d.ts +0 -10
- package/dist/mcp/tools/collection/find.d.ts.map +0 -1
- package/dist/mcp/tools/collection/find.js +0 -165
- package/dist/mcp/tools/collection/find.js.map +0 -1
- package/dist/mcp/tools/collection/update.d.ts +0 -10
- package/dist/mcp/tools/collection/update.d.ts.map +0 -1
- package/dist/mcp/tools/collection/update.js +0 -209
- package/dist/mcp/tools/collection/update.js.map +0 -1
- package/dist/mcp/tools/config/find.d.ts +0 -10
- package/dist/mcp/tools/config/find.d.ts.map +0 -1
- package/dist/mcp/tools/config/find.js +0 -97
- package/dist/mcp/tools/config/find.js.map +0 -1
- package/dist/mcp/tools/config/update.d.ts +0 -10
- package/dist/mcp/tools/config/update.d.ts.map +0 -1
- package/dist/mcp/tools/config/update.js +0 -215
- package/dist/mcp/tools/config/update.js.map +0 -1
- package/dist/mcp/tools/global/find.d.ts +0 -5
- package/dist/mcp/tools/global/find.d.ts.map +0 -1
- package/dist/mcp/tools/global/find.js +0 -82
- package/dist/mcp/tools/global/find.js.map +0 -1
- package/dist/mcp/tools/global/update.d.ts +0 -6
- package/dist/mcp/tools/global/update.d.ts.map +0 -1
- package/dist/mcp/tools/global/update.js +0 -124
- package/dist/mcp/tools/global/update.js.map +0 -1
- package/dist/mcp/tools/job/create.d.ts +0 -10
- package/dist/mcp/tools/job/create.d.ts.map +0 -1
- package/dist/mcp/tools/job/create.js +0 -293
- package/dist/mcp/tools/job/create.js.map +0 -1
- package/dist/mcp/tools/job/run.d.ts +0 -10
- package/dist/mcp/tools/job/run.d.ts.map +0 -1
- package/dist/mcp/tools/job/run.js +0 -129
- package/dist/mcp/tools/job/run.js.map +0 -1
- package/dist/mcp/tools/job/update.d.ts +0 -11
- package/dist/mcp/tools/job/update.d.ts.map +0 -1
- package/dist/mcp/tools/job/update.js +0 -186
- package/dist/mcp/tools/job/update.js.map +0 -1
- package/dist/mcp/tools/resource/create.d.ts +0 -6
- package/dist/mcp/tools/resource/create.d.ts.map +0 -1
- package/dist/mcp/tools/resource/create.js +0 -124
- package/dist/mcp/tools/resource/create.js.map +0 -1
- package/dist/mcp/tools/resource/delete.d.ts +0 -5
- package/dist/mcp/tools/resource/delete.d.ts.map +0 -1
- package/dist/mcp/tools/resource/delete.js +0 -151
- package/dist/mcp/tools/resource/delete.js.map +0 -1
- package/dist/mcp/tools/resource/find.d.ts +0 -5
- package/dist/mcp/tools/resource/find.d.ts.map +0 -1
- package/dist/mcp/tools/resource/find.js +0 -170
- package/dist/mcp/tools/resource/find.js.map +0 -1
- package/dist/mcp/tools/resource/update.d.ts +0 -6
- package/dist/mcp/tools/resource/update.d.ts.map +0 -1
- package/dist/mcp/tools/resource/update.js +0 -256
- package/dist/mcp/tools/resource/update.js.map +0 -1
- package/dist/mcp/tools/schemas.d.ts +0 -457
- package/dist/mcp/tools/schemas.d.ts.map +0 -1
- package/dist/mcp/tools/schemas.js +0 -243
- package/dist/mcp/tools/schemas.js.map +0 -1
- package/dist/utils/adminEntitySettings.d.ts +0 -17
- package/dist/utils/adminEntitySettings.d.ts.map +0 -1
- package/dist/utils/adminEntitySettings.js +0 -41
- package/dist/utils/adminEntitySettings.js.map +0 -1
- package/dist/utils/createApiKeyFields.d.ts +0 -15
- package/dist/utils/createApiKeyFields.d.ts.map +0 -1
- package/dist/utils/createApiKeyFields.js +0 -57
- package/dist/utils/createApiKeyFields.js.map +0 -1
- package/dist/utils/getEnabledSlugs.d.ts +0 -13
- package/dist/utils/getEnabledSlugs.d.ts.map +0 -1
- package/dist/utils/getEnabledSlugs.js +0 -32
- package/dist/utils/getEnabledSlugs.js.map +0 -1
- package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts +0 -3
- package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts.map +0 -1
- package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js +0 -43
- package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js.map +0 -1
- package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts +0 -13
- package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts.map +0 -1
- package/dist/utils/schemaConversion/sanitizeJsonSchema.js +0 -56
- package/dist/utils/schemaConversion/sanitizeJsonSchema.js.map +0 -1
- package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts +0 -20
- package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts.map +0 -1
- package/dist/utils/schemaConversion/simplifyRelationshipFields.js +0 -53
- package/dist/utils/schemaConversion/simplifyRelationshipFields.js.map +0 -1
- package/dist/utils/schemaConversion/transformPointFields.d.ts +0 -3
- package/dist/utils/schemaConversion/transformPointFields.d.ts.map +0 -1
- package/dist/utils/schemaConversion/transformPointFields.js +0 -51
- package/dist/utils/schemaConversion/transformPointFields.js.map +0 -1
- package/src/collections/createApiKeysCollection.ts +0 -373
- package/src/defaults.ts +0 -3
- package/src/endpoints/mcp.ts +0 -91
- package/src/mcp/createRequest.ts +0 -13
- package/src/mcp/getMcpHandler.ts +0 -545
- package/src/mcp/helpers/config.ts +0 -213
- package/src/mcp/helpers/fields.ts +0 -154
- package/src/mcp/helpers/fileValidation.ts +0 -362
- package/src/mcp/registerTool.ts +0 -22
- package/src/mcp/tools/auth/auth.ts +0 -71
- package/src/mcp/tools/auth/forgotPassword.ts +0 -70
- package/src/mcp/tools/auth/login.ts +0 -72
- package/src/mcp/tools/auth/resetPassword.ts +0 -61
- package/src/mcp/tools/auth/unlock.ts +0 -64
- package/src/mcp/tools/auth/verify.ts +0 -57
- package/src/mcp/tools/collection/create.ts +0 -210
- package/src/mcp/tools/collection/delete.ts +0 -211
- package/src/mcp/tools/collection/find.ts +0 -224
- package/src/mcp/tools/collection/update.ts +0 -290
- package/src/mcp/tools/config/find.ts +0 -128
- package/src/mcp/tools/config/update.ts +0 -280
- package/src/mcp/tools/global/find.ts +0 -128
- package/src/mcp/tools/global/update.ts +0 -207
- package/src/mcp/tools/job/create.ts +0 -416
- package/src/mcp/tools/job/run.ts +0 -167
- package/src/mcp/tools/job/update.ts +0 -274
- package/src/mcp/tools/resource/create.ts +0 -211
- package/src/mcp/tools/resource/delete.ts +0 -218
- package/src/mcp/tools/resource/find.ts +0 -246
- package/src/mcp/tools/resource/update.ts +0 -383
- package/src/mcp/tools/schemas.ts +0 -520
- package/src/utils/adminEntitySettings.ts +0 -40
- package/src/utils/createApiKeyFields.ts +0 -72
- package/src/utils/getEnabledSlugs.ts +0 -42
- package/src/utils/schemaConversion/convertCollectionSchemaToZod.ts +0 -52
- package/src/utils/schemaConversion/sanitizeJsonSchema.ts +0 -62
- package/src/utils/schemaConversion/simplifyRelationshipFields.ts +0 -65
- package/src/utils/schemaConversion/transformPointFields.ts +0 -55
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { COLLECTION_AUTH_BUILTIN_ENTRIES, COLLECTION_AUTH_BUILTINS, COLLECTION_BUILTIN_ENTRIES, COLLECTION_BUILTINS, GLOBAL_BUILTIN_ENTRIES, GLOBAL_BUILTINS, TOOL_BUILTIN_ENTRIES, TOOL_BUILTINS } from './builtinTools.js';
|
|
2
|
+
/**
|
|
3
|
+
* Converts the user-configured `MCPPluginConfig` into a `SanitizedMCPPluginConfig`:
|
|
4
|
+
* - Flattens `tools` / `prompts` / `resources` / per-collection / per-global
|
|
5
|
+
* tool maps into a single `items` array.
|
|
6
|
+
* - Applies built-in tools for collections and globals, respecting opt-out user overrides.
|
|
7
|
+
* - Applies the `userCollection` default
|
|
8
|
+
*
|
|
9
|
+
* Called once during plugin init. After that, `plugins['@payloadcms/plugin-mcp']
|
|
10
|
+
* ?.options` holds the sanitized result
|
|
11
|
+
*/ export const sanitizeMCPConfig = ({ config, pluginConfig })=>{
|
|
12
|
+
const items = [];
|
|
13
|
+
for (const collection of config.collections ?? []){
|
|
14
|
+
items.push(...sanitizeCollectionConfig({
|
|
15
|
+
collection,
|
|
16
|
+
pluginConfig
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
for (const global of config.globals ?? []){
|
|
20
|
+
items.push(...sanitizeGlobalConfig({
|
|
21
|
+
global,
|
|
22
|
+
pluginConfig
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
for (const [configKey, { label, mcpName, tool }] of TOOL_BUILTIN_ENTRIES){
|
|
26
|
+
items.push({
|
|
27
|
+
type: 'tool',
|
|
28
|
+
configKey,
|
|
29
|
+
label,
|
|
30
|
+
mcpName,
|
|
31
|
+
tool
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
for (const [configKey, tool] of Object.entries(pluginConfig.tools ?? {})){
|
|
35
|
+
if (configKey in TOOL_BUILTINS) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
items.push({
|
|
39
|
+
type: 'tool',
|
|
40
|
+
configKey,
|
|
41
|
+
label: configKey,
|
|
42
|
+
mcpName: configKey,
|
|
43
|
+
tool
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
for (const [configKey, prompt] of Object.entries(pluginConfig.prompts ?? {})){
|
|
47
|
+
items.push({
|
|
48
|
+
type: 'prompt',
|
|
49
|
+
configKey,
|
|
50
|
+
label: prompt.title ?? configKey,
|
|
51
|
+
mcpName: configKey,
|
|
52
|
+
prompt
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
for (const [configKey, resource] of Object.entries(pluginConfig.resources ?? {})){
|
|
56
|
+
items.push({
|
|
57
|
+
type: 'resource',
|
|
58
|
+
configKey,
|
|
59
|
+
label: resource.title ?? configKey,
|
|
60
|
+
mcpName: configKey,
|
|
61
|
+
resource
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// Mirror Payload's own admin.user detection (sanitize.ts) since plugins run first.
|
|
65
|
+
const firstCollectionWithAuth = config.collections.find(({ auth })=>Boolean(auth));
|
|
66
|
+
return {
|
|
67
|
+
disabled: pluginConfig.disabled,
|
|
68
|
+
items,
|
|
69
|
+
mcp: pluginConfig.mcp,
|
|
70
|
+
overrideApiKeyCollection: pluginConfig.overrideApiKeyCollection,
|
|
71
|
+
overrideAuth: pluginConfig.overrideAuth,
|
|
72
|
+
userCollection: pluginConfig.userCollection ?? config.admin?.user ?? firstCollectionWithAuth?.slug ?? 'users'
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
const sanitizeCollectionConfig = ({ collection, pluginConfig })=>{
|
|
76
|
+
if (collection.slug === 'payload-mcp-api-keys') {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
const slug = collection.slug;
|
|
80
|
+
const collectionPluginConfig = pluginConfig.collections?.[slug];
|
|
81
|
+
const items = [];
|
|
82
|
+
for (const [toolKey, { mcpName, tool }] of COLLECTION_BUILTIN_ENTRIES){
|
|
83
|
+
const matchedConfigEntry = collectionPluginConfig?.tools?.[toolKey];
|
|
84
|
+
if (matchedConfigEntry === false) {
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined;
|
|
88
|
+
items.push({
|
|
89
|
+
type: 'collectionTool',
|
|
90
|
+
collectionSlug: slug,
|
|
91
|
+
configKey: toolKey,
|
|
92
|
+
label: capitalize(toolKey),
|
|
93
|
+
mcpName,
|
|
94
|
+
tool: {
|
|
95
|
+
...tool,
|
|
96
|
+
description: override?.description ?? tool.description,
|
|
97
|
+
overrideResponse: override?.overrideResponse ?? collectionPluginConfig?.overrideResponse ?? tool.overrideResponse
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
if (collection.auth) {
|
|
102
|
+
for (const [authToolKey, { label, mcpName, tool }] of COLLECTION_AUTH_BUILTIN_ENTRIES){
|
|
103
|
+
const matchedConfigEntry = collectionPluginConfig?.tools?.[authToolKey];
|
|
104
|
+
if (!matchedConfigEntry) {
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
// `true` means "enable, no override"; only the object form carries fields.
|
|
108
|
+
const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined;
|
|
109
|
+
items.push({
|
|
110
|
+
type: 'collectionTool',
|
|
111
|
+
collectionSlug: slug,
|
|
112
|
+
configKey: authToolKey,
|
|
113
|
+
label,
|
|
114
|
+
mcpName,
|
|
115
|
+
tool: {
|
|
116
|
+
...tool,
|
|
117
|
+
description: override?.description ?? tool.description,
|
|
118
|
+
overrideResponse: override?.overrideResponse ?? collectionPluginConfig?.overrideResponse ?? tool.overrideResponse
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Cast: builtin keys are filtered out below, so the remaining values are
|
|
124
|
+
// always custom tools (`CollectionTool`) or undefined
|
|
125
|
+
const customEntries = Object.entries(collectionPluginConfig?.tools ?? {});
|
|
126
|
+
for (const [configKey, customTool] of customEntries){
|
|
127
|
+
if (configKey in COLLECTION_BUILTINS || configKey in COLLECTION_AUTH_BUILTINS) {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
if (!customTool) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
items.push({
|
|
134
|
+
type: 'collectionTool',
|
|
135
|
+
collectionSlug: slug,
|
|
136
|
+
configKey,
|
|
137
|
+
label: configKey,
|
|
138
|
+
mcpName: configKey,
|
|
139
|
+
tool: customTool
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
return items;
|
|
143
|
+
};
|
|
144
|
+
const sanitizeGlobalConfig = ({ global, pluginConfig })=>{
|
|
145
|
+
const slug = global.slug;
|
|
146
|
+
const globalPluginConfig = pluginConfig.globals?.[slug];
|
|
147
|
+
const items = [];
|
|
148
|
+
for (const [toolKey, { mcpName, tool }] of GLOBAL_BUILTIN_ENTRIES){
|
|
149
|
+
const matchedConfigEntry = globalPluginConfig?.tools?.[toolKey];
|
|
150
|
+
if (matchedConfigEntry === false) {
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined;
|
|
154
|
+
items.push({
|
|
155
|
+
type: 'globalTool',
|
|
156
|
+
configKey: toolKey,
|
|
157
|
+
globalSlug: slug,
|
|
158
|
+
label: capitalize(toolKey),
|
|
159
|
+
mcpName,
|
|
160
|
+
tool: {
|
|
161
|
+
...tool,
|
|
162
|
+
description: override?.description ?? tool.description,
|
|
163
|
+
overrideResponse: override?.overrideResponse ?? globalPluginConfig?.overrideResponse ?? tool.overrideResponse
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
const customEntries = Object.entries(globalPluginConfig?.tools ?? {});
|
|
168
|
+
for (const [configKey, customTool] of customEntries){
|
|
169
|
+
if (configKey in GLOBAL_BUILTINS) {
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
if (!customTool) {
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
items.push({
|
|
176
|
+
type: 'globalTool',
|
|
177
|
+
configKey,
|
|
178
|
+
globalSlug: slug,
|
|
179
|
+
label: configKey,
|
|
180
|
+
mcpName: configKey,
|
|
181
|
+
tool: customTool
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
return items;
|
|
185
|
+
};
|
|
186
|
+
const capitalize = (s)=>s.charAt(0).toUpperCase() + s.slice(1);
|
|
187
|
+
|
|
188
|
+
//# sourceMappingURL=sanitizeMCPConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/mcp/sanitizeMCPConfig.ts"],"sourcesContent":["import type {\n CollectionConfig,\n Config,\n GlobalConfig,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport type {\n CollectionMCPItem,\n CollectionTool,\n GlobalMCPItem,\n GlobalTool,\n MCPItem,\n MCPPluginConfig,\n SanitizedMCPPluginConfig,\n} from '../types.js'\n\nimport {\n COLLECTION_AUTH_BUILTIN_ENTRIES,\n COLLECTION_AUTH_BUILTINS,\n COLLECTION_BUILTIN_ENTRIES,\n COLLECTION_BUILTINS,\n GLOBAL_BUILTIN_ENTRIES,\n GLOBAL_BUILTINS,\n TOOL_BUILTIN_ENTRIES,\n TOOL_BUILTINS,\n} from './builtinTools.js'\n\n/**\n * Converts the user-configured `MCPPluginConfig` into a `SanitizedMCPPluginConfig`:\n * - Flattens `tools` / `prompts` / `resources` / per-collection / per-global\n * tool maps into a single `items` array.\n * - Applies built-in tools for collections and globals, respecting opt-out user overrides.\n * - Applies the `userCollection` default\n *\n * Called once during plugin init. After that, `plugins['@payloadcms/plugin-mcp']\n * ?.options` holds the sanitized result\n */\nexport const sanitizeMCPConfig = ({\n config,\n pluginConfig,\n}: {\n config: Config | SanitizedConfig\n pluginConfig: MCPPluginConfig\n}): SanitizedMCPPluginConfig => {\n const items: MCPItem[] = []\n\n for (const collection of config.collections ?? []) {\n items.push(...sanitizeCollectionConfig({ collection, pluginConfig }))\n }\n\n for (const global of config.globals ?? []) {\n items.push(...sanitizeGlobalConfig({ global, pluginConfig }))\n }\n\n for (const [configKey, { label, mcpName, tool }] of TOOL_BUILTIN_ENTRIES) {\n items.push({\n type: 'tool',\n configKey,\n label,\n mcpName,\n tool,\n })\n }\n\n for (const [configKey, tool] of Object.entries(pluginConfig.tools ?? {})) {\n if (configKey in TOOL_BUILTINS) {\n continue\n }\n items.push({\n type: 'tool',\n configKey,\n label: configKey,\n mcpName: configKey,\n tool,\n })\n }\n\n for (const [configKey, prompt] of Object.entries(pluginConfig.prompts ?? {})) {\n items.push({\n type: 'prompt',\n configKey,\n label: prompt.title ?? configKey,\n mcpName: configKey,\n prompt,\n })\n }\n\n for (const [configKey, resource] of Object.entries(pluginConfig.resources ?? {})) {\n items.push({\n type: 'resource',\n configKey,\n label: resource.title ?? configKey,\n mcpName: configKey,\n resource,\n })\n }\n\n // Mirror Payload's own admin.user detection (sanitize.ts) since plugins run first.\n const firstCollectionWithAuth = config.collections!.find(({ auth }) => Boolean(auth))\n\n return {\n disabled: pluginConfig.disabled,\n items,\n mcp: pluginConfig.mcp,\n overrideApiKeyCollection: pluginConfig.overrideApiKeyCollection,\n overrideAuth: pluginConfig.overrideAuth,\n userCollection:\n pluginConfig.userCollection ?? config.admin?.user ?? firstCollectionWithAuth?.slug ?? 'users',\n }\n}\n\nconst sanitizeCollectionConfig = ({\n collection,\n pluginConfig,\n}: {\n collection: CollectionConfig | SanitizedCollectionConfig\n pluginConfig: MCPPluginConfig\n}): CollectionMCPItem[] => {\n if (collection.slug === 'payload-mcp-api-keys') {\n return []\n }\n const slug = collection.slug\n const collectionPluginConfig = pluginConfig.collections?.[slug]\n const items: CollectionMCPItem[] = []\n\n for (const [toolKey, { mcpName, tool }] of COLLECTION_BUILTIN_ENTRIES) {\n const matchedConfigEntry = collectionPluginConfig?.tools?.[toolKey]\n if (matchedConfigEntry === false) {\n continue\n }\n const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined\n items.push({\n type: 'collectionTool',\n collectionSlug: slug,\n configKey: toolKey,\n label: capitalize(toolKey),\n mcpName,\n tool: {\n ...tool,\n description: override?.description ?? tool.description,\n overrideResponse:\n override?.overrideResponse ??\n collectionPluginConfig?.overrideResponse ??\n tool.overrideResponse,\n },\n })\n }\n\n if (collection.auth) {\n for (const [authToolKey, { label, mcpName, tool }] of COLLECTION_AUTH_BUILTIN_ENTRIES) {\n const matchedConfigEntry = collectionPluginConfig?.tools?.[authToolKey]\n if (!matchedConfigEntry) {\n continue\n }\n // `true` means \"enable, no override\"; only the object form carries fields.\n const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined\n items.push({\n type: 'collectionTool',\n collectionSlug: slug,\n configKey: authToolKey,\n label,\n mcpName,\n tool: {\n ...tool,\n description: override?.description ?? tool.description,\n overrideResponse:\n override?.overrideResponse ??\n collectionPluginConfig?.overrideResponse ??\n tool.overrideResponse,\n },\n })\n }\n }\n\n // Cast: builtin keys are filtered out below, so the remaining values are\n // always custom tools (`CollectionTool`) or undefined\n const customEntries = Object.entries(collectionPluginConfig?.tools ?? {}) as Array<\n [string, CollectionTool | undefined]\n >\n for (const [configKey, customTool] of customEntries) {\n if (configKey in COLLECTION_BUILTINS || configKey in COLLECTION_AUTH_BUILTINS) {\n continue\n }\n if (!customTool) {\n continue\n }\n items.push({\n type: 'collectionTool',\n collectionSlug: slug,\n configKey,\n label: configKey,\n mcpName: configKey,\n tool: customTool,\n })\n }\n\n return items\n}\n\nconst sanitizeGlobalConfig = ({\n global,\n pluginConfig,\n}: {\n global: GlobalConfig | SanitizedGlobalConfig\n pluginConfig: MCPPluginConfig\n}): GlobalMCPItem[] => {\n const slug = global.slug\n const globalPluginConfig = pluginConfig.globals?.[slug]\n const items: GlobalMCPItem[] = []\n\n for (const [toolKey, { mcpName, tool }] of GLOBAL_BUILTIN_ENTRIES) {\n const matchedConfigEntry = globalPluginConfig?.tools?.[toolKey]\n if (matchedConfigEntry === false) {\n continue\n }\n const override = typeof matchedConfigEntry === 'object' ? matchedConfigEntry : undefined\n items.push({\n type: 'globalTool',\n configKey: toolKey,\n globalSlug: slug,\n label: capitalize(toolKey),\n mcpName,\n tool: {\n ...tool,\n description: override?.description ?? tool.description,\n overrideResponse:\n override?.overrideResponse ??\n globalPluginConfig?.overrideResponse ??\n tool.overrideResponse,\n },\n })\n }\n\n const customEntries = Object.entries(globalPluginConfig?.tools ?? {}) as Array<\n [string, GlobalTool | undefined]\n >\n for (const [configKey, customTool] of customEntries) {\n if (configKey in GLOBAL_BUILTINS) {\n continue\n }\n if (!customTool) {\n continue\n }\n items.push({\n type: 'globalTool',\n configKey,\n globalSlug: slug,\n label: configKey,\n mcpName: configKey,\n tool: customTool,\n })\n }\n\n return items\n}\n\nconst capitalize = (s: string): string => s.charAt(0).toUpperCase() + s.slice(1)\n"],"names":["COLLECTION_AUTH_BUILTIN_ENTRIES","COLLECTION_AUTH_BUILTINS","COLLECTION_BUILTIN_ENTRIES","COLLECTION_BUILTINS","GLOBAL_BUILTIN_ENTRIES","GLOBAL_BUILTINS","TOOL_BUILTIN_ENTRIES","TOOL_BUILTINS","sanitizeMCPConfig","config","pluginConfig","items","collection","collections","push","sanitizeCollectionConfig","global","globals","sanitizeGlobalConfig","configKey","label","mcpName","tool","type","Object","entries","tools","prompt","prompts","title","resource","resources","firstCollectionWithAuth","find","auth","Boolean","disabled","mcp","overrideApiKeyCollection","overrideAuth","userCollection","admin","user","slug","collectionPluginConfig","toolKey","matchedConfigEntry","override","undefined","collectionSlug","capitalize","description","overrideResponse","authToolKey","customEntries","customTool","globalPluginConfig","globalSlug","s","charAt","toUpperCase","slice"],"mappings":"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"}
|
package/dist/stdio.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stdio adapter for the Payload MCP server.
|
|
3
|
+
*
|
|
4
|
+
* Do not use in production. There's no auth; whoever can spawn the process gets
|
|
5
|
+
* full access to your local data.
|
|
6
|
+
*/
|
|
7
|
+
export declare const runMcpStdio: () => Promise<void>;
|
|
8
|
+
//# sourceMappingURL=stdio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,IAAI,CA4EhD,CAAA"}
|
package/dist/stdio.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/* eslint-disable no-console */ import { StdioServerTransport } from '@modelcontextprotocol/server';
|
|
2
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
3
|
+
import { createLocalReq, getPayload } from 'payload';
|
|
4
|
+
import { findConfig } from 'payload/node';
|
|
5
|
+
import { buildMcpServer } from './mcp/buildMcpServer.js';
|
|
6
|
+
import { sanitizeMCPConfig } from './mcp/sanitizeMCPConfig.js';
|
|
7
|
+
import { getPluginConfig } from './utils/getPluginConfig.js';
|
|
8
|
+
import { resolveProjectRoot } from './utils/resolveProjectRoot.js';
|
|
9
|
+
/**
|
|
10
|
+
* Stdio adapter for the Payload MCP server.
|
|
11
|
+
*
|
|
12
|
+
* Do not use in production. There's no auth; whoever can spawn the process gets
|
|
13
|
+
* full access to your local data.
|
|
14
|
+
*/ export const runMcpStdio = async ()=>{
|
|
15
|
+
/**
|
|
16
|
+
* If MCP clients spawn stdio servers from an arbitrary working directory,
|
|
17
|
+
* Payload's cwd-anchored `findConfig()` can't locate the project on
|
|
18
|
+
* its own. This module always lives inside the project's `node_modules`, so
|
|
19
|
+
* we derive the project root from its own path and `chdir` into it.
|
|
20
|
+
*
|
|
21
|
+
* An absolute `PAYLOAD_CONFIG_PATH` still overrides everything; unusual
|
|
22
|
+
* layouts (e.g. a monorepo where the package is hoisted above the app) can
|
|
23
|
+
* fall back to it. See the implementation of findConfig for details.
|
|
24
|
+
*/ const projectRoot = resolveProjectRoot(fileURLToPath(import.meta.url));
|
|
25
|
+
if (projectRoot) {
|
|
26
|
+
process.chdir(projectRoot);
|
|
27
|
+
}
|
|
28
|
+
const configPath = findConfig();
|
|
29
|
+
const configModule = await import(pathToFileURL(configPath).toString());
|
|
30
|
+
const config = await (configModule.default ?? configModule);
|
|
31
|
+
const payload = await getPayload({
|
|
32
|
+
config
|
|
33
|
+
});
|
|
34
|
+
/**
|
|
35
|
+
* If the user added `mcpPlugin({...})` to their `plugins` array, read the
|
|
36
|
+
* sanitized config they registered. Otherwise fall back to the defaults. That way,
|
|
37
|
+
* the mcp works on any project that has `@payloadcms/plugin-mcp` installed,
|
|
38
|
+
* even if the plugin is not added to the plugins array.
|
|
39
|
+
*/ let pluginConfig;
|
|
40
|
+
try {
|
|
41
|
+
pluginConfig = getPluginConfig({
|
|
42
|
+
config: payload.config
|
|
43
|
+
});
|
|
44
|
+
} catch {
|
|
45
|
+
pluginConfig = sanitizeMCPConfig({
|
|
46
|
+
config: payload.config,
|
|
47
|
+
pluginConfig: {}
|
|
48
|
+
});
|
|
49
|
+
const fakePluginFn = (config)=>config;
|
|
50
|
+
fakePluginFn.slug = '@payloadcms/plugin-mcp';
|
|
51
|
+
// @ts-expect-error
|
|
52
|
+
fakePluginFn.sanitizedOptions = pluginConfig;
|
|
53
|
+
(payload.config.plugins ??= []).push(fakePluginFn);
|
|
54
|
+
}
|
|
55
|
+
const authorizedMCP = {
|
|
56
|
+
items: pluginConfig.items,
|
|
57
|
+
overrideAccess: true,
|
|
58
|
+
user: null
|
|
59
|
+
};
|
|
60
|
+
const req = await createLocalReq({}, payload);
|
|
61
|
+
req.payloadAPI = 'MCP';
|
|
62
|
+
const server = buildMcpServer({
|
|
63
|
+
authorizedMCP,
|
|
64
|
+
pluginConfig,
|
|
65
|
+
req
|
|
66
|
+
});
|
|
67
|
+
const transport = new StdioServerTransport();
|
|
68
|
+
await server.connect(transport);
|
|
69
|
+
// Process now lives until stdin closes. Wire graceful shutdown so DB
|
|
70
|
+
// connections (and any other Payload-managed resources) get released.
|
|
71
|
+
const shutdown = async (code = 0)=>{
|
|
72
|
+
try {
|
|
73
|
+
await server.close();
|
|
74
|
+
} catch (err) {
|
|
75
|
+
console.error('[payload-mcp] error closing server:', err);
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
await payload.destroy();
|
|
79
|
+
} catch (err) {
|
|
80
|
+
console.error('[payload-mcp] error destroying payload:', err);
|
|
81
|
+
}
|
|
82
|
+
process.exit(code);
|
|
83
|
+
};
|
|
84
|
+
process.on('SIGINT', ()=>void shutdown(0));
|
|
85
|
+
process.on('SIGTERM', ()=>void shutdown(0));
|
|
86
|
+
process.stdin.on('close', ()=>void shutdown(0));
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=stdio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/stdio.ts"],"sourcesContent":["import type { MaybePromise, Plugin, SanitizedConfig } from 'payload'\n\n/* eslint-disable no-console */\nimport { StdioServerTransport } from '@modelcontextprotocol/server'\nimport { fileURLToPath, pathToFileURL } from 'node:url'\nimport { createLocalReq, getPayload } from 'payload'\nimport { findConfig } from 'payload/node'\n\nimport type { AuthorizedMCP, SanitizedMCPPluginConfig } from './types.js'\n\nimport { buildMcpServer } from './mcp/buildMcpServer.js'\nimport { sanitizeMCPConfig } from './mcp/sanitizeMCPConfig.js'\nimport { getPluginConfig } from './utils/getPluginConfig.js'\nimport { resolveProjectRoot } from './utils/resolveProjectRoot.js'\n\n/**\n * Stdio adapter for the Payload MCP server.\n *\n * Do not use in production. There's no auth; whoever can spawn the process gets\n * full access to your local data.\n */\nexport const runMcpStdio = async (): Promise<void> => {\n /**\n * If MCP clients spawn stdio servers from an arbitrary working directory,\n * Payload's cwd-anchored `findConfig()` can't locate the project on\n * its own. This module always lives inside the project's `node_modules`, so\n * we derive the project root from its own path and `chdir` into it.\n *\n * An absolute `PAYLOAD_CONFIG_PATH` still overrides everything; unusual\n * layouts (e.g. a monorepo where the package is hoisted above the app) can\n * fall back to it. See the implementation of findConfig for details.\n */\n const projectRoot = resolveProjectRoot(fileURLToPath(import.meta.url))\n if (projectRoot) {\n process.chdir(projectRoot)\n }\n\n const configPath = findConfig()\n const configModule = await import(pathToFileURL(configPath).toString())\n const config = (await (configModule.default ?? configModule)) as MaybePromise<SanitizedConfig>\n\n const payload = await getPayload({ config })\n\n /**\n * If the user added `mcpPlugin({...})` to their `plugins` array, read the\n * sanitized config they registered. Otherwise fall back to the defaults. That way,\n * the mcp works on any project that has `@payloadcms/plugin-mcp` installed,\n * even if the plugin is not added to the plugins array.\n */\n let pluginConfig: SanitizedMCPPluginConfig\n try {\n pluginConfig = getPluginConfig({ config: payload.config })\n } catch {\n pluginConfig = sanitizeMCPConfig({ config: payload.config, pluginConfig: {} })\n\n const fakePluginFn: Plugin = (config) => config\n fakePluginFn.slug = '@payloadcms/plugin-mcp'\n // @ts-expect-error\n fakePluginFn.sanitizedOptions = pluginConfig\n\n // Push to payload config, to ensure consecutive calls to `getPluginConfig()` work\n ;(payload.config.plugins ??= []).push(fakePluginFn)\n }\n\n const authorizedMCP: AuthorizedMCP = {\n items: pluginConfig.items,\n overrideAccess: true,\n user: null,\n }\n\n const req = await createLocalReq({}, payload)\n req.payloadAPI = 'MCP' as const\n\n const server = buildMcpServer({ authorizedMCP, pluginConfig, req })\n\n const transport = new StdioServerTransport()\n await server.connect(transport)\n\n // Process now lives until stdin closes. Wire graceful shutdown so DB\n // connections (and any other Payload-managed resources) get released.\n const shutdown = async (code = 0) => {\n try {\n await server.close()\n } catch (err) {\n console.error('[payload-mcp] error closing server:', err)\n }\n try {\n await payload.destroy()\n } catch (err) {\n console.error('[payload-mcp] error destroying payload:', err)\n }\n process.exit(code)\n }\n\n process.on('SIGINT', () => void shutdown(0))\n process.on('SIGTERM', () => void shutdown(0))\n process.stdin.on('close', () => void shutdown(0))\n}\n"],"names":["StdioServerTransport","fileURLToPath","pathToFileURL","createLocalReq","getPayload","findConfig","buildMcpServer","sanitizeMCPConfig","getPluginConfig","resolveProjectRoot","runMcpStdio","projectRoot","url","process","chdir","configPath","configModule","toString","config","default","payload","pluginConfig","fakePluginFn","slug","sanitizedOptions","plugins","push","authorizedMCP","items","overrideAccess","user","req","payloadAPI","server","transport","connect","shutdown","code","close","err","console","error","destroy","exit","on","stdin"],"mappings":"AAEA,6BAA6B,GAC7B,SAASA,oBAAoB,QAAQ,+BAA8B;AACnE,SAASC,aAAa,EAAEC,aAAa,QAAQ,WAAU;AACvD,SAASC,cAAc,EAAEC,UAAU,QAAQ,UAAS;AACpD,SAASC,UAAU,QAAQ,eAAc;AAIzC,SAASC,cAAc,QAAQ,0BAAyB;AACxD,SAASC,iBAAiB,QAAQ,6BAA4B;AAC9D,SAASC,eAAe,QAAQ,6BAA4B;AAC5D,SAASC,kBAAkB,QAAQ,gCAA+B;AAElE;;;;;CAKC,GACD,OAAO,MAAMC,cAAc;IACzB;;;;;;;;;GASC,GACD,MAAMC,cAAcF,mBAAmBR,cAAc,YAAYW,GAAG;IACpE,IAAID,aAAa;QACfE,QAAQC,KAAK,CAACH;IAChB;IAEA,MAAMI,aAAaV;IACnB,MAAMW,eAAe,MAAM,MAAM,CAACd,cAAca,YAAYE,QAAQ;IACpE,MAAMC,SAAU,MAAOF,CAAAA,aAAaG,OAAO,IAAIH,YAAW;IAE1D,MAAMI,UAAU,MAAMhB,WAAW;QAAEc;IAAO;IAE1C;;;;;GAKC,GACD,IAAIG;IACJ,IAAI;QACFA,eAAeb,gBAAgB;YAAEU,QAAQE,QAAQF,MAAM;QAAC;IAC1D,EAAE,OAAM;QACNG,eAAed,kBAAkB;YAAEW,QAAQE,QAAQF,MAAM;YAAEG,cAAc,CAAC;QAAE;QAE5E,MAAMC,eAAuB,CAACJ,SAAWA;QACzCI,aAAaC,IAAI,GAAG;QACpB,mBAAmB;QACnBD,aAAaE,gBAAgB,GAAGH;QAG9BD,CAAAA,QAAQF,MAAM,CAACO,OAAO,KAAK,EAAE,AAAD,EAAGC,IAAI,CAACJ;IACxC;IAEA,MAAMK,gBAA+B;QACnCC,OAAOP,aAAaO,KAAK;QACzBC,gBAAgB;QAChBC,MAAM;IACR;IAEA,MAAMC,MAAM,MAAM5B,eAAe,CAAC,GAAGiB;IACrCW,IAAIC,UAAU,GAAG;IAEjB,MAAMC,SAAS3B,eAAe;QAAEqB;QAAeN;QAAcU;IAAI;IAEjE,MAAMG,YAAY,IAAIlC;IACtB,MAAMiC,OAAOE,OAAO,CAACD;IAErB,qEAAqE;IACrE,sEAAsE;IACtE,MAAME,WAAW,OAAOC,OAAO,CAAC;QAC9B,IAAI;YACF,MAAMJ,OAAOK,KAAK;QACpB,EAAE,OAAOC,KAAK;YACZC,QAAQC,KAAK,CAAC,uCAAuCF;QACvD;QACA,IAAI;YACF,MAAMnB,QAAQsB,OAAO;QACvB,EAAE,OAAOH,KAAK;YACZC,QAAQC,KAAK,CAAC,2CAA2CF;QAC3D;QACA1B,QAAQ8B,IAAI,CAACN;IACf;IAEAxB,QAAQ+B,EAAE,CAAC,UAAU,IAAM,KAAKR,SAAS;IACzCvB,QAAQ+B,EAAE,CAAC,WAAW,IAAM,KAAKR,SAAS;IAC1CvB,QAAQgC,KAAK,CAACD,EAAE,CAAC,SAAS,IAAM,KAAKR,SAAS;AAChD,EAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { NestedKeysStripped, SupportedLanguages } from '@payloadcms/translations';
|
|
2
|
+
import type { PluginDefaultTranslationsObject } from './types.js';
|
|
3
|
+
export declare const translations: SupportedLanguages<PluginDefaultTranslationsObject>;
|
|
4
|
+
export type PluginMCPTranslations = PluginDefaultTranslationsObject;
|
|
5
|
+
export type PluginMCPTranslationKeys = NestedKeysStripped<PluginMCPTranslations>;
|
|
6
|
+
declare module '@payloadcms/translations' {
|
|
7
|
+
interface CustomTranslationKeys {
|
|
8
|
+
'plugin-mcp': PluginMCPTranslationKeys;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AA+CjE,eAAO,MAAM,YAAY,EA6CpB,kBAAkB,CAAC,+BAA+B,CAAC,CAAA;AAExD,MAAM,MAAM,qBAAqB,GAAG,+BAA+B,CAAA;AAEnE,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAA;AAEhF,OAAO,QAAQ,0BAA0B,CAAC;IACxC,UAAU,qBAAqB;QAC7B,YAAY,EAAE,wBAAwB,CAAA;KACvC;CACF"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { ar } from './languages/ar.js';
|
|
2
|
+
import { az } from './languages/az.js';
|
|
3
|
+
import { bg } from './languages/bg.js';
|
|
4
|
+
import { bnBd } from './languages/bnBd.js';
|
|
5
|
+
import { bnIn } from './languages/bnIn.js';
|
|
6
|
+
import { ca } from './languages/ca.js';
|
|
7
|
+
import { cs } from './languages/cs.js';
|
|
8
|
+
import { da } from './languages/da.js';
|
|
9
|
+
import { de } from './languages/de.js';
|
|
10
|
+
import { en } from './languages/en.js';
|
|
11
|
+
import { es } from './languages/es.js';
|
|
12
|
+
import { et } from './languages/et.js';
|
|
13
|
+
import { fa } from './languages/fa.js';
|
|
14
|
+
import { fr } from './languages/fr.js';
|
|
15
|
+
import { he } from './languages/he.js';
|
|
16
|
+
import { hr } from './languages/hr.js';
|
|
17
|
+
import { hu } from './languages/hu.js';
|
|
18
|
+
import { hy } from './languages/hy.js';
|
|
19
|
+
import { id } from './languages/id.js';
|
|
20
|
+
import { is } from './languages/is.js';
|
|
21
|
+
import { it } from './languages/it.js';
|
|
22
|
+
import { ja } from './languages/ja.js';
|
|
23
|
+
import { ko } from './languages/ko.js';
|
|
24
|
+
import { lt } from './languages/lt.js';
|
|
25
|
+
import { lv } from './languages/lv.js';
|
|
26
|
+
import { my } from './languages/my.js';
|
|
27
|
+
import { nb } from './languages/nb.js';
|
|
28
|
+
import { nl } from './languages/nl.js';
|
|
29
|
+
import { pl } from './languages/pl.js';
|
|
30
|
+
import { pt } from './languages/pt.js';
|
|
31
|
+
import { ro } from './languages/ro.js';
|
|
32
|
+
import { rs } from './languages/rs.js';
|
|
33
|
+
import { rsLatin } from './languages/rsLatin.js';
|
|
34
|
+
import { ru } from './languages/ru.js';
|
|
35
|
+
import { sk } from './languages/sk.js';
|
|
36
|
+
import { sl } from './languages/sl.js';
|
|
37
|
+
import { sv } from './languages/sv.js';
|
|
38
|
+
import { ta } from './languages/ta.js';
|
|
39
|
+
import { th } from './languages/th.js';
|
|
40
|
+
import { tr } from './languages/tr.js';
|
|
41
|
+
import { uk } from './languages/uk.js';
|
|
42
|
+
import { vi } from './languages/vi.js';
|
|
43
|
+
import { zh } from './languages/zh.js';
|
|
44
|
+
import { zhTw } from './languages/zhTw.js';
|
|
45
|
+
export const translations = {
|
|
46
|
+
id,
|
|
47
|
+
ar,
|
|
48
|
+
az,
|
|
49
|
+
bg,
|
|
50
|
+
'bn-BD': bnBd,
|
|
51
|
+
'bn-IN': bnIn,
|
|
52
|
+
ca,
|
|
53
|
+
cs,
|
|
54
|
+
da,
|
|
55
|
+
de,
|
|
56
|
+
en,
|
|
57
|
+
es,
|
|
58
|
+
et,
|
|
59
|
+
fa,
|
|
60
|
+
fr,
|
|
61
|
+
he,
|
|
62
|
+
hr,
|
|
63
|
+
hu,
|
|
64
|
+
hy,
|
|
65
|
+
is,
|
|
66
|
+
it,
|
|
67
|
+
ja,
|
|
68
|
+
ko,
|
|
69
|
+
lt,
|
|
70
|
+
lv,
|
|
71
|
+
my,
|
|
72
|
+
nb,
|
|
73
|
+
nl,
|
|
74
|
+
pl,
|
|
75
|
+
pt,
|
|
76
|
+
ro,
|
|
77
|
+
rs,
|
|
78
|
+
'rs-latin': rsLatin,
|
|
79
|
+
ru,
|
|
80
|
+
sk,
|
|
81
|
+
sl,
|
|
82
|
+
sv,
|
|
83
|
+
ta,
|
|
84
|
+
th,
|
|
85
|
+
tr,
|
|
86
|
+
uk,
|
|
87
|
+
vi,
|
|
88
|
+
zh,
|
|
89
|
+
'zh-TW': zhTw
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/translations/index.ts"],"sourcesContent":["import type {\n NestedKeysStripped,\n SupportedLanguages,\n} from '@payloadcms/translations'\n\nimport type { PluginDefaultTranslationsObject } from './types.js'\n\nimport { ar } from './languages/ar.js'\nimport { az } from './languages/az.js'\nimport { bg } from './languages/bg.js'\nimport { bnBd } from './languages/bnBd.js'\nimport { bnIn } from './languages/bnIn.js'\nimport { ca } from './languages/ca.js'\nimport { cs } from './languages/cs.js'\nimport { da } from './languages/da.js'\nimport { de } from './languages/de.js'\nimport { en } from './languages/en.js'\nimport { es } from './languages/es.js'\nimport { et } from './languages/et.js'\nimport { fa } from './languages/fa.js'\nimport { fr } from './languages/fr.js'\nimport { he } from './languages/he.js'\nimport { hr } from './languages/hr.js'\nimport { hu } from './languages/hu.js'\nimport { hy } from './languages/hy.js'\nimport { id } from './languages/id.js'\nimport { is } from './languages/is.js'\nimport { it } from './languages/it.js'\nimport { ja } from './languages/ja.js'\nimport { ko } from './languages/ko.js'\nimport { lt } from './languages/lt.js'\nimport { lv } from './languages/lv.js'\nimport { my } from './languages/my.js'\nimport { nb } from './languages/nb.js'\nimport { nl } from './languages/nl.js'\nimport { pl } from './languages/pl.js'\nimport { pt } from './languages/pt.js'\nimport { ro } from './languages/ro.js'\nimport { rs } from './languages/rs.js'\nimport { rsLatin } from './languages/rsLatin.js'\nimport { ru } from './languages/ru.js'\nimport { sk } from './languages/sk.js'\nimport { sl } from './languages/sl.js'\nimport { sv } from './languages/sv.js'\nimport { ta } from './languages/ta.js'\nimport { th } from './languages/th.js'\nimport { tr } from './languages/tr.js'\nimport { uk } from './languages/uk.js'\nimport { vi } from './languages/vi.js'\nimport { zh } from './languages/zh.js'\nimport { zhTw } from './languages/zhTw.js'\n\nexport const translations = {\n id,\n ar,\n az,\n bg,\n 'bn-BD': bnBd,\n 'bn-IN': bnIn,\n ca,\n cs,\n da,\n de,\n en,\n es,\n et,\n fa,\n fr,\n he,\n hr,\n hu,\n hy,\n is,\n it,\n ja,\n ko,\n lt,\n lv,\n my,\n nb,\n nl,\n pl,\n pt,\n ro,\n rs,\n 'rs-latin': rsLatin,\n ru,\n sk,\n sl,\n sv,\n ta,\n th,\n tr,\n uk,\n vi,\n zh,\n 'zh-TW': zhTw,\n} as SupportedLanguages<PluginDefaultTranslationsObject>\n\nexport type PluginMCPTranslations = PluginDefaultTranslationsObject\n\nexport type PluginMCPTranslationKeys = NestedKeysStripped<PluginMCPTranslations>\n\ndeclare module '@payloadcms/translations' {\n interface CustomTranslationKeys {\n 'plugin-mcp': PluginMCPTranslationKeys\n }\n}\n"],"names":["ar","az","bg","bnBd","bnIn","ca","cs","da","de","en","es","et","fa","fr","he","hr","hu","hy","id","is","it","ja","ko","lt","lv","my","nb","nl","pl","pt","ro","rs","rsLatin","ru","sk","sl","sv","ta","th","tr","uk","vi","zh","zhTw","translations"],"mappings":"AAOA,SAASA,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,IAAI,QAAQ,sBAAqB;AAC1C,SAASC,IAAI,QAAQ,sBAAqB;AAC1C,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,OAAO,QAAQ,yBAAwB;AAChD,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,EAAE,QAAQ,oBAAmB;AACtC,SAASC,IAAI,QAAQ,sBAAqB;AAE1C,OAAO,MAAMC,eAAe;IAC1B1B;IACAlB;IACAC;IACAC;IACA,SAASC;IACT,SAASC;IACTC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAE;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACA,YAAYC;IACZC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACA,SAASC;AACX,EAAwD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { PluginLanguage } from '../types.js';
|
|
2
|
+
export declare const arTranslations: {
|
|
3
|
+
'plugin-mcp': {
|
|
4
|
+
apiKeyDescription: string;
|
|
5
|
+
apiKeys: string;
|
|
6
|
+
authentication: string;
|
|
7
|
+
description: string;
|
|
8
|
+
descriptionDescription: string;
|
|
9
|
+
dismiss: string;
|
|
10
|
+
keepKeyPrivate: string;
|
|
11
|
+
keyPrivateDescription: string;
|
|
12
|
+
lastUsed: string;
|
|
13
|
+
manageAPIKeys: string;
|
|
14
|
+
mcp: string;
|
|
15
|
+
noAPIKeys: string;
|
|
16
|
+
operations: string;
|
|
17
|
+
overrideAccess: string;
|
|
18
|
+
overrideAccessDescription: string;
|
|
19
|
+
permissions: string;
|
|
20
|
+
permissionsDescription: string;
|
|
21
|
+
prompts: string;
|
|
22
|
+
resources: string;
|
|
23
|
+
server: string;
|
|
24
|
+
title: string;
|
|
25
|
+
titleDescription: string;
|
|
26
|
+
tools: string;
|
|
27
|
+
userDescription: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export declare const ar: PluginLanguage;
|
|
31
|
+
//# sourceMappingURL=ar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/ar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B1B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export const arTranslations = {
|
|
2
|
+
'plugin-mcp': {
|
|
3
|
+
apiKeyDescription: 'تتحكم مفاتيح API في المجموعات والموارد والأدوات والمطالبات التي يمكن لعملاء MCP الوصول إليها.',
|
|
4
|
+
apiKeys: 'مفاتيح API',
|
|
5
|
+
authentication: 'المصادقة',
|
|
6
|
+
description: 'الوصف',
|
|
7
|
+
descriptionDescription: 'صف الغرض من مفتاح API.',
|
|
8
|
+
dismiss: 'إغلاق',
|
|
9
|
+
keepKeyPrivate: 'حافظ على سرية مفتاحك.',
|
|
10
|
+
keyPrivateDescription: 'هذا المفتاح يمنح MCP إمكانية الوصول إلى محتواك. لا تشاركه مع الآخرين!',
|
|
11
|
+
lastUsed: 'آخر استخدام',
|
|
12
|
+
manageAPIKeys: 'إدارة مفاتيح API',
|
|
13
|
+
mcp: 'MCP',
|
|
14
|
+
noAPIKeys: 'لا توجد مفاتيح API',
|
|
15
|
+
operations: 'العمليات',
|
|
16
|
+
overrideAccess: 'تجاوز التحكم في الوصول',
|
|
17
|
+
overrideAccessDescription: 'عند تفعيله، يتجاوز هذا المفتاح تحكم Payload في الوصول لكل عملية ينفذها. اتركه غير مفعل ما لم يكن لديك سبب محدد.',
|
|
18
|
+
permissions: 'الأذونات',
|
|
19
|
+
permissionsDescription: 'اسمح لعملاء MCP بالوصول إلى المجموعات والأدوات والموارد والمطالبات التالية.',
|
|
20
|
+
prompts: 'المطالبات',
|
|
21
|
+
resources: 'الموارد',
|
|
22
|
+
server: 'الخادم',
|
|
23
|
+
title: 'العنوان',
|
|
24
|
+
titleDescription: 'اسم مستعار مفيد لمفتاح API.',
|
|
25
|
+
tools: 'الأدوات',
|
|
26
|
+
userDescription: 'المستخدم الذي سيعمل MCP بصفته.'
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
export const ar = {
|
|
30
|
+
dateFNSKey: 'ar',
|
|
31
|
+
translations: arTranslations
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=ar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/translations/languages/ar.ts"],"sourcesContent":["import type { PluginLanguage } from '../types.js'\n\nexport const arTranslations = {\n 'plugin-mcp': {\n apiKeyDescription: 'تتحكم مفاتيح API في المجموعات والموارد والأدوات والمطالبات التي يمكن لعملاء MCP الوصول إليها.',\n apiKeys: 'مفاتيح API',\n authentication: 'المصادقة',\n description: 'الوصف',\n descriptionDescription: 'صف الغرض من مفتاح API.',\n dismiss: 'إغلاق',\n keepKeyPrivate: 'حافظ على سرية مفتاحك.',\n keyPrivateDescription: 'هذا المفتاح يمنح MCP إمكانية الوصول إلى محتواك. لا تشاركه مع الآخرين!',\n lastUsed: 'آخر استخدام',\n manageAPIKeys: 'إدارة مفاتيح API',\n mcp: 'MCP',\n noAPIKeys: 'لا توجد مفاتيح API',\n operations: 'العمليات',\n overrideAccess: 'تجاوز التحكم في الوصول',\n overrideAccessDescription: 'عند تفعيله، يتجاوز هذا المفتاح تحكم Payload في الوصول لكل عملية ينفذها. اتركه غير مفعل ما لم يكن لديك سبب محدد.',\n permissions: 'الأذونات',\n permissionsDescription: 'اسمح لعملاء MCP بالوصول إلى المجموعات والأدوات والموارد والمطالبات التالية.',\n prompts: 'المطالبات',\n resources: 'الموارد',\n server: 'الخادم',\n title: 'العنوان',\n titleDescription: 'اسم مستعار مفيد لمفتاح API.',\n tools: 'الأدوات',\n userDescription: 'المستخدم الذي سيعمل MCP بصفته.',\n },\n}\n\nexport const ar: PluginLanguage = {\n dateFNSKey: 'ar',\n translations: arTranslations,\n}\n"],"names":["arTranslations","apiKeyDescription","apiKeys","authentication","description","descriptionDescription","dismiss","keepKeyPrivate","keyPrivateDescription","lastUsed","manageAPIKeys","mcp","noAPIKeys","operations","overrideAccess","overrideAccessDescription","permissions","permissionsDescription","prompts","resources","server","title","titleDescription","tools","userDescription","ar","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAiB;IAC5B,cAAc;QACZC,mBAAmB;QACnBC,SAAS;QACTC,gBAAgB;QAChBC,aAAa;QACbC,wBAAwB;QACxBC,SAAS;QACTC,gBAAgB;QAChBC,uBAAuB;QACvBC,UAAU;QACVC,eAAe;QACfC,KAAK;QACLC,WAAW;QACXC,YAAY;QACZC,gBAAgB;QAChBC,2BAA2B;QAC3BC,aAAa;QACbC,wBAAwB;QACxBC,SAAS;QACTC,WAAW;QACXC,QAAQ;QACRC,OAAO;QACPC,kBAAkB;QAClBC,OAAO;QACPC,iBAAiB;IACnB;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAc3B;AAChB,EAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { PluginLanguage } from '../types.js';
|
|
2
|
+
export declare const azTranslations: {
|
|
3
|
+
'plugin-mcp': {
|
|
4
|
+
apiKeyDescription: string;
|
|
5
|
+
apiKeys: string;
|
|
6
|
+
authentication: string;
|
|
7
|
+
description: string;
|
|
8
|
+
descriptionDescription: string;
|
|
9
|
+
dismiss: string;
|
|
10
|
+
keepKeyPrivate: string;
|
|
11
|
+
keyPrivateDescription: string;
|
|
12
|
+
lastUsed: string;
|
|
13
|
+
manageAPIKeys: string;
|
|
14
|
+
mcp: string;
|
|
15
|
+
noAPIKeys: string;
|
|
16
|
+
operations: string;
|
|
17
|
+
overrideAccess: string;
|
|
18
|
+
overrideAccessDescription: string;
|
|
19
|
+
permissions: string;
|
|
20
|
+
permissionsDescription: string;
|
|
21
|
+
prompts: string;
|
|
22
|
+
resources: string;
|
|
23
|
+
server: string;
|
|
24
|
+
title: string;
|
|
25
|
+
titleDescription: string;
|
|
26
|
+
tools: string;
|
|
27
|
+
userDescription: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export declare const az: PluginLanguage;
|
|
31
|
+
//# sourceMappingURL=az.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"az.d.ts","sourceRoot":"","sources":["../../../src/translations/languages/az.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B1B,CAAA;AAED,eAAO,MAAM,EAAE,EAAE,cAGhB,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export const azTranslations = {
|
|
2
|
+
'plugin-mcp': {
|
|
3
|
+
apiKeyDescription: 'API açarları MCP müştərilərinin hansı kolleksiyalara, resurslara, alətlərə və promptlara daxil ola biləcəyini idarə edir.',
|
|
4
|
+
apiKeys: 'API açarları',
|
|
5
|
+
authentication: 'Autentifikasiya',
|
|
6
|
+
description: 'Təsvir',
|
|
7
|
+
descriptionDescription: 'API açarının məqsədini təsvir edin.',
|
|
8
|
+
dismiss: 'Bağla',
|
|
9
|
+
keepKeyPrivate: 'Açarınızı məxfi saxlayın.',
|
|
10
|
+
keyPrivateDescription: 'Bu açar MCP-yə məzmununuza giriş verir. Onu başqaları ilə paylaşmayın!',
|
|
11
|
+
lastUsed: 'Son istifadə',
|
|
12
|
+
manageAPIKeys: 'API açarlarını idarə et',
|
|
13
|
+
mcp: 'MCP',
|
|
14
|
+
noAPIKeys: 'API açarı yoxdur',
|
|
15
|
+
operations: 'Əməliyyatlar',
|
|
16
|
+
overrideAccess: 'Giriş nəzarətini keç',
|
|
17
|
+
overrideAccessDescription: 'İşarələndikdə bu açar icra etdiyi hər əməliyyatda Payload giriş qaydalarını keçir. Xüsusi səbəbiniz yoxdursa işarələməyin.',
|
|
18
|
+
permissions: 'İcazələr',
|
|
19
|
+
permissionsDescription: 'MCP müştərilərinə aşağıdakı kolleksiyalara, alətlərə, resurslara və promptlara giriş icazəsi verin.',
|
|
20
|
+
prompts: 'Promptlar',
|
|
21
|
+
resources: 'Resurslar',
|
|
22
|
+
server: 'Server',
|
|
23
|
+
title: 'Başlıq',
|
|
24
|
+
titleDescription: 'API açarı üçün faydalı qısa ad.',
|
|
25
|
+
tools: 'Alətlər',
|
|
26
|
+
userDescription: 'MCP-nin adından işləyəcəyi istifadəçi.'
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
export const az = {
|
|
30
|
+
dateFNSKey: 'az',
|
|
31
|
+
translations: azTranslations
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=az.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/translations/languages/az.ts"],"sourcesContent":["import type { PluginLanguage } from '../types.js'\n\nexport const azTranslations = {\n 'plugin-mcp': {\n apiKeyDescription: 'API açarları MCP müştərilərinin hansı kolleksiyalara, resurslara, alətlərə və promptlara daxil ola biləcəyini idarə edir.',\n apiKeys: 'API açarları',\n authentication: 'Autentifikasiya',\n description: 'Təsvir',\n descriptionDescription: 'API açarının məqsədini təsvir edin.',\n dismiss: 'Bağla',\n keepKeyPrivate: 'Açarınızı məxfi saxlayın.',\n keyPrivateDescription: 'Bu açar MCP-yə məzmununuza giriş verir. Onu başqaları ilə paylaşmayın!',\n lastUsed: 'Son istifadə',\n manageAPIKeys: 'API açarlarını idarə et',\n mcp: 'MCP',\n noAPIKeys: 'API açarı yoxdur',\n operations: 'Əməliyyatlar',\n overrideAccess: 'Giriş nəzarətini keç',\n overrideAccessDescription: 'İşarələndikdə bu açar icra etdiyi hər əməliyyatda Payload giriş qaydalarını keçir. Xüsusi səbəbiniz yoxdursa işarələməyin.',\n permissions: 'İcazələr',\n permissionsDescription: 'MCP müştərilərinə aşağıdakı kolleksiyalara, alətlərə, resurslara və promptlara giriş icazəsi verin.',\n prompts: 'Promptlar',\n resources: 'Resurslar',\n server: 'Server',\n title: 'Başlıq',\n titleDescription: 'API açarı üçün faydalı qısa ad.',\n tools: 'Alətlər',\n userDescription: 'MCP-nin adından işləyəcəyi istifadəçi.',\n },\n}\n\nexport const az: PluginLanguage = {\n dateFNSKey: 'az',\n translations: azTranslations,\n}\n"],"names":["azTranslations","apiKeyDescription","apiKeys","authentication","description","descriptionDescription","dismiss","keepKeyPrivate","keyPrivateDescription","lastUsed","manageAPIKeys","mcp","noAPIKeys","operations","overrideAccess","overrideAccessDescription","permissions","permissionsDescription","prompts","resources","server","title","titleDescription","tools","userDescription","az","dateFNSKey","translations"],"mappings":"AAEA,OAAO,MAAMA,iBAAiB;IAC5B,cAAc;QACZC,mBAAmB;QACnBC,SAAS;QACTC,gBAAgB;QAChBC,aAAa;QACbC,wBAAwB;QACxBC,SAAS;QACTC,gBAAgB;QAChBC,uBAAuB;QACvBC,UAAU;QACVC,eAAe;QACfC,KAAK;QACLC,WAAW;QACXC,YAAY;QACZC,gBAAgB;QAChBC,2BAA2B;QAC3BC,aAAa;QACbC,wBAAwB;QACxBC,SAAS;QACTC,WAAW;QACXC,QAAQ;QACRC,OAAO;QACPC,kBAAkB;QAClBC,OAAO;QACPC,iBAAiB;IACnB;AACF,EAAC;AAED,OAAO,MAAMC,KAAqB;IAChCC,YAAY;IACZC,cAAc3B;AAChB,EAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { PluginLanguage } from '../types.js';
|
|
2
|
+
export declare const bgTranslations: {
|
|
3
|
+
'plugin-mcp': {
|
|
4
|
+
apiKeyDescription: string;
|
|
5
|
+
apiKeys: string;
|
|
6
|
+
authentication: string;
|
|
7
|
+
description: string;
|
|
8
|
+
descriptionDescription: string;
|
|
9
|
+
dismiss: string;
|
|
10
|
+
keepKeyPrivate: string;
|
|
11
|
+
keyPrivateDescription: string;
|
|
12
|
+
lastUsed: string;
|
|
13
|
+
manageAPIKeys: string;
|
|
14
|
+
mcp: string;
|
|
15
|
+
noAPIKeys: string;
|
|
16
|
+
operations: string;
|
|
17
|
+
overrideAccess: string;
|
|
18
|
+
overrideAccessDescription: string;
|
|
19
|
+
permissions: string;
|
|
20
|
+
permissionsDescription: string;
|
|
21
|
+
prompts: string;
|
|
22
|
+
resources: string;
|
|
23
|
+
server: string;
|
|
24
|
+
title: string;
|
|
25
|
+
titleDescription: string;
|
|
26
|
+
tools: string;
|
|
27
|
+
userDescription: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export declare const bg: PluginLanguage;
|
|
31
|
+
//# sourceMappingURL=bg.d.ts.map
|