@payloadcms/plugin-mcp 3.91.0-internal.c1569dc → 4.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +2 -2
  3. package/bin.js +39 -0
  4. package/dist/defaultAccess.d.ts +3 -0
  5. package/dist/defaultAccess.d.ts.map +1 -0
  6. package/dist/defaultAccess.js +3 -0
  7. package/dist/defaultAccess.js.map +1 -0
  8. package/dist/defineTool.d.ts +26 -0
  9. package/dist/defineTool.d.ts.map +1 -0
  10. package/dist/defineTool.js +37 -0
  11. package/dist/defineTool.js.map +1 -0
  12. package/dist/endpoint/access.d.ts +17 -0
  13. package/dist/endpoint/access.d.ts.map +1 -0
  14. package/dist/endpoint/access.js +93 -0
  15. package/dist/endpoint/access.js.map +1 -0
  16. package/dist/endpoint/index.d.ts +3 -0
  17. package/dist/endpoint/index.d.ts.map +1 -0
  18. package/dist/endpoint/index.js +116 -0
  19. package/dist/endpoint/index.js.map +1 -0
  20. package/dist/exports/client.d.ts +2 -0
  21. package/dist/exports/client.d.ts.map +1 -0
  22. package/dist/exports/client.js +4 -0
  23. package/dist/exports/client.js.map +1 -0
  24. package/dist/exports/internal.d.ts +2 -0
  25. package/dist/exports/internal.d.ts.map +1 -0
  26. package/dist/exports/internal.js +3 -0
  27. package/dist/exports/internal.js.map +1 -0
  28. package/dist/index.d.ts +6 -9
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +39 -67
  31. package/dist/index.js.map +1 -1
  32. package/dist/mcp/buildMcpServer.d.ts +19 -0
  33. package/dist/mcp/buildMcpServer.d.ts.map +1 -0
  34. package/dist/mcp/buildMcpServer.js +235 -0
  35. package/dist/mcp/buildMcpServer.js.map +1 -0
  36. package/dist/mcp/builtin/collections/authTools.d.ts +7 -0
  37. package/dist/mcp/builtin/collections/authTools.d.ts.map +1 -0
  38. package/dist/mcp/builtin/collections/authTools.js +312 -0
  39. package/dist/mcp/builtin/collections/authTools.js.map +1 -0
  40. package/dist/mcp/builtin/collections/countTool.d.ts +2 -0
  41. package/dist/mcp/builtin/collections/countTool.d.ts.map +1 -0
  42. package/dist/mcp/builtin/collections/countTool.js +63 -0
  43. package/dist/mcp/builtin/collections/countTool.js.map +1 -0
  44. package/dist/mcp/builtin/collections/countVersionsTool.d.ts +2 -0
  45. package/dist/mcp/builtin/collections/countVersionsTool.d.ts.map +1 -0
  46. package/dist/mcp/builtin/collections/countVersionsTool.js +60 -0
  47. package/dist/mcp/builtin/collections/countVersionsTool.js.map +1 -0
  48. package/dist/mcp/builtin/collections/createTool.d.ts +2 -0
  49. package/dist/mcp/builtin/collections/createTool.d.ts.map +1 -0
  50. package/dist/mcp/builtin/collections/createTool.js +137 -0
  51. package/dist/mcp/builtin/collections/createTool.js.map +1 -0
  52. package/dist/mcp/builtin/collections/deleteTool.d.ts +2 -0
  53. package/dist/mcp/builtin/collections/deleteTool.d.ts.map +1 -0
  54. package/dist/mcp/builtin/collections/deleteTool.js +111 -0
  55. package/dist/mcp/builtin/collections/deleteTool.js.map +1 -0
  56. package/dist/mcp/builtin/collections/duplicateTool.d.ts +2 -0
  57. package/dist/mcp/builtin/collections/duplicateTool.d.ts.map +1 -0
  58. package/dist/mcp/builtin/collections/duplicateTool.js +90 -0
  59. package/dist/mcp/builtin/collections/duplicateTool.js.map +1 -0
  60. package/dist/mcp/builtin/collections/fileInput.d.ts +28 -0
  61. package/dist/mcp/builtin/collections/fileInput.d.ts.map +1 -0
  62. package/dist/mcp/builtin/collections/fileInput.js +88 -0
  63. package/dist/mcp/builtin/collections/fileInput.js.map +1 -0
  64. package/dist/mcp/builtin/collections/findDistinctTool.d.ts +2 -0
  65. package/dist/mcp/builtin/collections/findDistinctTool.d.ts.map +1 -0
  66. package/dist/mcp/builtin/collections/findDistinctTool.js +77 -0
  67. package/dist/mcp/builtin/collections/findDistinctTool.js.map +1 -0
  68. package/dist/mcp/builtin/collections/findTool.d.ts +2 -0
  69. package/dist/mcp/builtin/collections/findTool.d.ts.map +1 -0
  70. package/dist/mcp/builtin/collections/findTool.js +146 -0
  71. package/dist/mcp/builtin/collections/findTool.js.map +1 -0
  72. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts +2 -0
  73. package/dist/mcp/builtin/collections/findVersionByIDTool.d.ts.map +1 -0
  74. package/dist/mcp/builtin/collections/findVersionByIDTool.js +74 -0
  75. package/dist/mcp/builtin/collections/findVersionByIDTool.js.map +1 -0
  76. package/dist/mcp/builtin/collections/findVersionsTool.d.ts +2 -0
  77. package/dist/mcp/builtin/collections/findVersionsTool.d.ts.map +1 -0
  78. package/dist/mcp/builtin/collections/findVersionsTool.js +84 -0
  79. package/dist/mcp/builtin/collections/findVersionsTool.js.map +1 -0
  80. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts +2 -0
  81. package/dist/mcp/builtin/collections/getCollectionSchemaTool.d.ts.map +1 -0
  82. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js +103 -0
  83. package/dist/mcp/builtin/collections/getCollectionSchemaTool.js.map +1 -0
  84. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts +2 -0
  85. package/dist/mcp/builtin/collections/restoreVersionTool.d.ts.map +1 -0
  86. package/dist/mcp/builtin/collections/restoreVersionTool.js +69 -0
  87. package/dist/mcp/builtin/collections/restoreVersionTool.js.map +1 -0
  88. package/dist/mcp/builtin/collections/updateTool.d.ts +2 -0
  89. package/dist/mcp/builtin/collections/updateTool.d.ts.map +1 -0
  90. package/dist/mcp/builtin/collections/updateTool.js +172 -0
  91. package/dist/mcp/builtin/collections/updateTool.js.map +1 -0
  92. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts +2 -0
  93. package/dist/mcp/builtin/collections/uploadInstructionsTool.d.ts.map +1 -0
  94. package/dist/mcp/builtin/collections/uploadInstructionsTool.js +55 -0
  95. package/dist/mcp/builtin/collections/uploadInstructionsTool.js.map +1 -0
  96. package/dist/mcp/builtin/formatEntityError.d.ts +16 -0
  97. package/dist/mcp/builtin/formatEntityError.d.ts.map +1 -0
  98. package/dist/mcp/builtin/formatEntityError.js +55 -0
  99. package/dist/mcp/builtin/formatEntityError.js.map +1 -0
  100. package/dist/mcp/builtin/getConfigInfoTool.d.ts +2 -0
  101. package/dist/mcp/builtin/getConfigInfoTool.d.ts.map +1 -0
  102. package/dist/mcp/builtin/getConfigInfoTool.js +69 -0
  103. package/dist/mcp/builtin/getConfigInfoTool.js.map +1 -0
  104. package/dist/mcp/builtin/globals/countVersionsTool.d.ts +2 -0
  105. package/dist/mcp/builtin/globals/countVersionsTool.d.ts.map +1 -0
  106. package/dist/mcp/builtin/globals/countVersionsTool.js +60 -0
  107. package/dist/mcp/builtin/globals/countVersionsTool.js.map +1 -0
  108. package/dist/mcp/builtin/globals/findTool.d.ts +2 -0
  109. package/dist/mcp/builtin/globals/findTool.d.ts.map +1 -0
  110. package/dist/mcp/builtin/globals/findTool.js +67 -0
  111. package/dist/mcp/builtin/globals/findTool.js.map +1 -0
  112. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts +2 -0
  113. package/dist/mcp/builtin/globals/findVersionByIDTool.d.ts.map +1 -0
  114. package/dist/mcp/builtin/globals/findVersionByIDTool.js +68 -0
  115. package/dist/mcp/builtin/globals/findVersionByIDTool.js.map +1 -0
  116. package/dist/mcp/builtin/globals/findVersionsTool.d.ts +2 -0
  117. package/dist/mcp/builtin/globals/findVersionsTool.d.ts.map +1 -0
  118. package/dist/mcp/builtin/globals/findVersionsTool.js +78 -0
  119. package/dist/mcp/builtin/globals/findVersionsTool.js.map +1 -0
  120. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts +2 -0
  121. package/dist/mcp/builtin/globals/getGlobalSchemaTool.d.ts.map +1 -0
  122. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js +81 -0
  123. package/dist/mcp/builtin/globals/getGlobalSchemaTool.js.map +1 -0
  124. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts +2 -0
  125. package/dist/mcp/builtin/globals/restoreVersionTool.d.ts.map +1 -0
  126. package/dist/mcp/builtin/globals/restoreVersionTool.js +70 -0
  127. package/dist/mcp/builtin/globals/restoreVersionTool.js.map +1 -0
  128. package/dist/mcp/builtin/globals/updateTool.d.ts +2 -0
  129. package/dist/mcp/builtin/globals/updateTool.d.ts.map +1 -0
  130. package/dist/mcp/builtin/globals/updateTool.js +78 -0
  131. package/dist/mcp/builtin/globals/updateTool.js.map +1 -0
  132. package/dist/mcp/builtinTools.d.ts +168 -0
  133. package/dist/mcp/builtinTools.d.ts.map +1 -0
  134. package/dist/mcp/builtinTools.js +169 -0
  135. package/dist/mcp/builtinTools.js.map +1 -0
  136. package/dist/mcp/sanitizeMCPConfig.d.ts +16 -0
  137. package/dist/mcp/sanitizeMCPConfig.d.ts.map +1 -0
  138. package/dist/mcp/sanitizeMCPConfig.js +233 -0
  139. package/dist/mcp/sanitizeMCPConfig.js.map +1 -0
  140. package/dist/stdio.d.ts +8 -0
  141. package/dist/stdio.d.ts.map +1 -0
  142. package/dist/stdio.js +128 -0
  143. package/dist/stdio.js.map +1 -0
  144. package/dist/types.d.ts +263 -447
  145. package/dist/types.d.ts.map +1 -1
  146. package/dist/types.js +4 -1
  147. package/dist/types.js.map +1 -1
  148. package/dist/utils/getLogger.d.ts +10 -0
  149. package/dist/utils/getLogger.d.ts.map +1 -0
  150. package/dist/utils/getLogger.js +22 -0
  151. package/dist/utils/getLogger.js.map +1 -0
  152. package/dist/utils/getPluginConfig.d.ts +12 -0
  153. package/dist/utils/getPluginConfig.d.ts.map +1 -0
  154. package/dist/utils/getPluginConfig.js +15 -0
  155. package/dist/utils/getPluginConfig.js.map +1 -0
  156. package/dist/utils/resolveProjectRoot.d.ts +7 -0
  157. package/dist/utils/resolveProjectRoot.d.ts.map +1 -0
  158. package/dist/utils/resolveProjectRoot.js +15 -0
  159. package/dist/utils/resolveProjectRoot.js.map +1 -0
  160. package/dist/utils/toStandardSchema.d.ts +5 -0
  161. package/dist/utils/toStandardSchema.d.ts.map +1 -0
  162. package/dist/utils/toStandardSchema.js +4 -0
  163. package/dist/utils/toStandardSchema.js.map +1 -0
  164. package/package.json +29 -11
  165. package/src/defaultAccess.ts +3 -0
  166. package/src/defineTool.ts +44 -0
  167. package/src/endpoint/access.ts +111 -0
  168. package/src/endpoint/index.ts +107 -0
  169. package/src/exports/client.ts +3 -0
  170. package/src/exports/internal.ts +1 -0
  171. package/src/index.ts +31 -89
  172. package/src/mcp/buildMcpServer.ts +294 -0
  173. package/src/mcp/builtin/collections/authTools.ts +280 -0
  174. package/src/mcp/builtin/collections/countTool.ts +61 -0
  175. package/src/mcp/builtin/collections/countVersionsTool.ts +60 -0
  176. package/src/mcp/builtin/collections/createTool.ts +145 -0
  177. package/src/mcp/builtin/collections/deleteTool.ts +97 -0
  178. package/src/mcp/builtin/collections/duplicateTool.ts +84 -0
  179. package/src/mcp/builtin/collections/fileInput.spec.ts +93 -0
  180. package/src/mcp/builtin/collections/fileInput.ts +127 -0
  181. package/src/mcp/builtin/collections/findDistinctTool.ts +67 -0
  182. package/src/mcp/builtin/collections/findTool.ts +134 -0
  183. package/src/mcp/builtin/collections/findVersionByIDTool.ts +66 -0
  184. package/src/mcp/builtin/collections/findVersionsTool.ts +83 -0
  185. package/src/mcp/builtin/collections/getCollectionSchemaTool.ts +91 -0
  186. package/src/mcp/builtin/collections/restoreVersionTool.ts +65 -0
  187. package/src/mcp/builtin/collections/updateTool.ts +173 -0
  188. package/src/mcp/builtin/collections/uploadInstructionsTool.ts +64 -0
  189. package/src/mcp/builtin/formatEntityError.ts +77 -0
  190. package/src/mcp/builtin/getConfigInfoTool.ts +68 -0
  191. package/src/mcp/builtin/globals/countVersionsTool.ts +60 -0
  192. package/src/mcp/builtin/globals/findTool.ts +66 -0
  193. package/src/mcp/builtin/globals/findVersionByIDTool.ts +64 -0
  194. package/src/mcp/builtin/globals/findVersionsTool.ts +69 -0
  195. package/src/mcp/builtin/globals/getGlobalSchemaTool.ts +73 -0
  196. package/src/mcp/builtin/globals/restoreVersionTool.ts +68 -0
  197. package/src/mcp/builtin/globals/updateTool.ts +92 -0
  198. package/src/mcp/builtinTools.ts +161 -0
  199. package/src/mcp/sanitizeMCPConfig.ts +281 -0
  200. package/src/stdio.ts +131 -0
  201. package/src/types.ts +312 -486
  202. package/src/utils/getLogger.ts +22 -0
  203. package/src/utils/getPluginConfig.ts +24 -0
  204. package/src/utils/resolveProjectRoot.ts +17 -0
  205. package/src/utils/toStandardSchema.ts +9 -0
  206. package/dist/collections/createApiKeysCollection.d.ts +0 -7
  207. package/dist/collections/createApiKeysCollection.d.ts.map +0 -1
  208. package/dist/collections/createApiKeysCollection.js +0 -342
  209. package/dist/collections/createApiKeysCollection.js.map +0 -1
  210. package/dist/defaults.d.ts +0 -4
  211. package/dist/defaults.d.ts.map +0 -1
  212. package/dist/defaults.js +0 -5
  213. package/dist/defaults.js.map +0 -1
  214. package/dist/endpoints/mcp.d.ts +0 -4
  215. package/dist/endpoints/mcp.d.ts.map +0 -1
  216. package/dist/endpoints/mcp.js +0 -24
  217. package/dist/endpoints/mcp.js.map +0 -1
  218. package/dist/endpoints/resolveAccessSettings.d.ts +0 -10
  219. package/dist/endpoints/resolveAccessSettings.d.ts.map +0 -1
  220. package/dist/endpoints/resolveAccessSettings.js +0 -44
  221. package/dist/endpoints/resolveAccessSettings.js.map +0 -1
  222. package/dist/endpoints/withRestoredWebGlobals.d.ts +0 -5
  223. package/dist/endpoints/withRestoredWebGlobals.d.ts.map +0 -1
  224. package/dist/endpoints/withRestoredWebGlobals.js +0 -23
  225. package/dist/endpoints/withRestoredWebGlobals.js.map +0 -1
  226. package/dist/mcp/createRequest.d.ts +0 -3
  227. package/dist/mcp/createRequest.d.ts.map +0 -1
  228. package/dist/mcp/createRequest.js +0 -14
  229. package/dist/mcp/createRequest.js.map +0 -1
  230. package/dist/mcp/getMcpHandler.d.ts +0 -4
  231. package/dist/mcp/getMcpHandler.d.ts.map +0 -1
  232. package/dist/mcp/getMcpHandler.js +0 -231
  233. package/dist/mcp/getMcpHandler.js.map +0 -1
  234. package/dist/mcp/helpers/config.d.ts +0 -22
  235. package/dist/mcp/helpers/config.d.ts.map +0 -1
  236. package/dist/mcp/helpers/config.js +0 -153
  237. package/dist/mcp/helpers/config.js.map +0 -1
  238. package/dist/mcp/helpers/fields.d.ts +0 -19
  239. package/dist/mcp/helpers/fields.d.ts.map +0 -1
  240. package/dist/mcp/helpers/fields.js +0 -102
  241. package/dist/mcp/helpers/fields.js.map +0 -1
  242. package/dist/mcp/helpers/fileValidation.d.ts +0 -67
  243. package/dist/mcp/helpers/fileValidation.d.ts.map +0 -1
  244. package/dist/mcp/helpers/fileValidation.js +0 -267
  245. package/dist/mcp/helpers/fileValidation.js.map +0 -1
  246. package/dist/mcp/registerTool.d.ts +0 -6
  247. package/dist/mcp/registerTool.d.ts.map +0 -1
  248. package/dist/mcp/registerTool.js +0 -18
  249. package/dist/mcp/registerTool.js.map +0 -1
  250. package/dist/mcp/tools/auth/auth.d.ts +0 -4
  251. package/dist/mcp/tools/auth/auth.d.ts.map +0 -1
  252. package/dist/mcp/tools/auth/auth.js +0 -79
  253. package/dist/mcp/tools/auth/auth.js.map +0 -1
  254. package/dist/mcp/tools/auth/auth.spec.js +0 -83
  255. package/dist/mcp/tools/auth/auth.spec.js.map +0 -1
  256. package/dist/mcp/tools/auth/forgotPassword.d.ts +0 -4
  257. package/dist/mcp/tools/auth/forgotPassword.d.ts.map +0 -1
  258. package/dist/mcp/tools/auth/forgotPassword.js +0 -50
  259. package/dist/mcp/tools/auth/forgotPassword.js.map +0 -1
  260. package/dist/mcp/tools/auth/login.d.ts +0 -4
  261. package/dist/mcp/tools/auth/login.d.ts.map +0 -1
  262. package/dist/mcp/tools/auth/login.js +0 -50
  263. package/dist/mcp/tools/auth/login.js.map +0 -1
  264. package/dist/mcp/tools/auth/resetPassword.d.ts +0 -4
  265. package/dist/mcp/tools/auth/resetPassword.d.ts.map +0 -1
  266. package/dist/mcp/tools/auth/resetPassword.js +0 -49
  267. package/dist/mcp/tools/auth/resetPassword.js.map +0 -1
  268. package/dist/mcp/tools/auth/unlock.d.ts +0 -4
  269. package/dist/mcp/tools/auth/unlock.d.ts.map +0 -1
  270. package/dist/mcp/tools/auth/unlock.js +0 -49
  271. package/dist/mcp/tools/auth/unlock.js.map +0 -1
  272. package/dist/mcp/tools/auth/verify.d.ts +0 -4
  273. package/dist/mcp/tools/auth/verify.d.ts.map +0 -1
  274. package/dist/mcp/tools/auth/verify.js +0 -45
  275. package/dist/mcp/tools/auth/verify.js.map +0 -1
  276. package/dist/mcp/tools/collection/create.d.ts +0 -10
  277. package/dist/mcp/tools/collection/create.d.ts.map +0 -1
  278. package/dist/mcp/tools/collection/create.js +0 -139
  279. package/dist/mcp/tools/collection/create.js.map +0 -1
  280. package/dist/mcp/tools/collection/delete.d.ts +0 -10
  281. package/dist/mcp/tools/collection/delete.d.ts.map +0 -1
  282. package/dist/mcp/tools/collection/delete.js +0 -154
  283. package/dist/mcp/tools/collection/delete.js.map +0 -1
  284. package/dist/mcp/tools/collection/find.d.ts +0 -10
  285. package/dist/mcp/tools/collection/find.d.ts.map +0 -1
  286. package/dist/mcp/tools/collection/find.js +0 -165
  287. package/dist/mcp/tools/collection/find.js.map +0 -1
  288. package/dist/mcp/tools/collection/update.d.ts +0 -10
  289. package/dist/mcp/tools/collection/update.d.ts.map +0 -1
  290. package/dist/mcp/tools/collection/update.js +0 -209
  291. package/dist/mcp/tools/collection/update.js.map +0 -1
  292. package/dist/mcp/tools/config/find.d.ts +0 -10
  293. package/dist/mcp/tools/config/find.d.ts.map +0 -1
  294. package/dist/mcp/tools/config/find.js +0 -97
  295. package/dist/mcp/tools/config/find.js.map +0 -1
  296. package/dist/mcp/tools/config/update.d.ts +0 -10
  297. package/dist/mcp/tools/config/update.d.ts.map +0 -1
  298. package/dist/mcp/tools/config/update.js +0 -215
  299. package/dist/mcp/tools/config/update.js.map +0 -1
  300. package/dist/mcp/tools/global/find.d.ts +0 -5
  301. package/dist/mcp/tools/global/find.d.ts.map +0 -1
  302. package/dist/mcp/tools/global/find.js +0 -84
  303. package/dist/mcp/tools/global/find.js.map +0 -1
  304. package/dist/mcp/tools/global/update.d.ts +0 -6
  305. package/dist/mcp/tools/global/update.d.ts.map +0 -1
  306. package/dist/mcp/tools/global/update.js +0 -126
  307. package/dist/mcp/tools/global/update.js.map +0 -1
  308. package/dist/mcp/tools/job/create.d.ts +0 -10
  309. package/dist/mcp/tools/job/create.d.ts.map +0 -1
  310. package/dist/mcp/tools/job/create.js +0 -293
  311. package/dist/mcp/tools/job/create.js.map +0 -1
  312. package/dist/mcp/tools/job/run.d.ts +0 -10
  313. package/dist/mcp/tools/job/run.d.ts.map +0 -1
  314. package/dist/mcp/tools/job/run.js +0 -131
  315. package/dist/mcp/tools/job/run.js.map +0 -1
  316. package/dist/mcp/tools/job/update.d.ts +0 -11
  317. package/dist/mcp/tools/job/update.d.ts.map +0 -1
  318. package/dist/mcp/tools/job/update.js +0 -186
  319. package/dist/mcp/tools/job/update.js.map +0 -1
  320. package/dist/mcp/tools/resource/create.d.ts +0 -6
  321. package/dist/mcp/tools/resource/create.d.ts.map +0 -1
  322. package/dist/mcp/tools/resource/create.js +0 -124
  323. package/dist/mcp/tools/resource/create.js.map +0 -1
  324. package/dist/mcp/tools/resource/delete.d.ts +0 -5
  325. package/dist/mcp/tools/resource/delete.d.ts.map +0 -1
  326. package/dist/mcp/tools/resource/delete.js +0 -151
  327. package/dist/mcp/tools/resource/delete.js.map +0 -1
  328. package/dist/mcp/tools/resource/find.d.ts +0 -5
  329. package/dist/mcp/tools/resource/find.d.ts.map +0 -1
  330. package/dist/mcp/tools/resource/find.js +0 -170
  331. package/dist/mcp/tools/resource/find.js.map +0 -1
  332. package/dist/mcp/tools/resource/update.d.ts +0 -6
  333. package/dist/mcp/tools/resource/update.d.ts.map +0 -1
  334. package/dist/mcp/tools/resource/update.js +0 -242
  335. package/dist/mcp/tools/resource/update.js.map +0 -1
  336. package/dist/mcp/tools/schemas.d.ts +0 -442
  337. package/dist/mcp/tools/schemas.d.ts.map +0 -1
  338. package/dist/mcp/tools/schemas.js +0 -238
  339. package/dist/mcp/tools/schemas.js.map +0 -1
  340. package/dist/utils/adminEntitySettings.d.ts +0 -17
  341. package/dist/utils/adminEntitySettings.d.ts.map +0 -1
  342. package/dist/utils/adminEntitySettings.js +0 -41
  343. package/dist/utils/adminEntitySettings.js.map +0 -1
  344. package/dist/utils/createApiKeyFields.d.ts +0 -15
  345. package/dist/utils/createApiKeyFields.d.ts.map +0 -1
  346. package/dist/utils/createApiKeyFields.js +0 -57
  347. package/dist/utils/createApiKeyFields.js.map +0 -1
  348. package/dist/utils/getEnabledSlugs.d.ts +0 -13
  349. package/dist/utils/getEnabledSlugs.d.ts.map +0 -1
  350. package/dist/utils/getEnabledSlugs.js +0 -32
  351. package/dist/utils/getEnabledSlugs.js.map +0 -1
  352. package/dist/utils/getVirtualFieldNames.d.ts +0 -14
  353. package/dist/utils/getVirtualFieldNames.d.ts.map +0 -1
  354. package/dist/utils/getVirtualFieldNames.js +0 -35
  355. package/dist/utils/getVirtualFieldNames.js.map +0 -1
  356. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts +0 -4
  357. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.d.ts.map +0 -1
  358. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js +0 -61
  359. package/dist/utils/schemaConversion/convertCollectionSchemaToZod.js.map +0 -1
  360. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts +0 -7
  361. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.d.ts.map +0 -1
  362. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js +0 -20
  363. package/dist/utils/schemaConversion/removeVirtualFieldsFromSchema.js.map +0 -1
  364. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts +0 -13
  365. package/dist/utils/schemaConversion/sanitizeJsonSchema.d.ts.map +0 -1
  366. package/dist/utils/schemaConversion/sanitizeJsonSchema.js +0 -56
  367. package/dist/utils/schemaConversion/sanitizeJsonSchema.js.map +0 -1
  368. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts +0 -20
  369. package/dist/utils/schemaConversion/simplifyRelationshipFields.d.ts.map +0 -1
  370. package/dist/utils/schemaConversion/simplifyRelationshipFields.js +0 -53
  371. package/dist/utils/schemaConversion/simplifyRelationshipFields.js.map +0 -1
  372. package/dist/utils/schemaConversion/transformPointFields.d.ts +0 -3
  373. package/dist/utils/schemaConversion/transformPointFields.d.ts.map +0 -1
  374. package/dist/utils/schemaConversion/transformPointFields.js +0 -51
  375. package/dist/utils/schemaConversion/transformPointFields.js.map +0 -1
  376. package/dist/utils/transformPointDataToPayload.d.ts +0 -7
  377. package/dist/utils/transformPointDataToPayload.d.ts.map +0 -1
  378. package/dist/utils/transformPointDataToPayload.js +0 -28
  379. package/dist/utils/transformPointDataToPayload.js.map +0 -1
  380. package/src/collections/createApiKeysCollection.ts +0 -399
  381. package/src/defaults.ts +0 -3
  382. package/src/endpoints/mcp.ts +0 -26
  383. package/src/endpoints/resolveAccessSettings.ts +0 -74
  384. package/src/endpoints/withRestoredWebGlobals.ts +0 -19
  385. package/src/mcp/createRequest.ts +0 -13
  386. package/src/mcp/getMcpHandler.ts +0 -546
  387. package/src/mcp/helpers/config.ts +0 -213
  388. package/src/mcp/helpers/fields.ts +0 -154
  389. package/src/mcp/helpers/fileValidation.ts +0 -362
  390. package/src/mcp/registerTool.ts +0 -22
  391. package/src/mcp/tools/auth/auth.spec.ts +0 -98
  392. package/src/mcp/tools/auth/auth.ts +0 -89
  393. package/src/mcp/tools/auth/forgotPassword.ts +0 -72
  394. package/src/mcp/tools/auth/login.ts +0 -64
  395. package/src/mcp/tools/auth/resetPassword.ts +0 -61
  396. package/src/mcp/tools/auth/unlock.ts +0 -65
  397. package/src/mcp/tools/auth/verify.ts +0 -57
  398. package/src/mcp/tools/collection/create.ts +0 -210
  399. package/src/mcp/tools/collection/delete.ts +0 -211
  400. package/src/mcp/tools/collection/find.ts +0 -224
  401. package/src/mcp/tools/collection/update.ts +0 -290
  402. package/src/mcp/tools/config/find.ts +0 -128
  403. package/src/mcp/tools/config/update.ts +0 -280
  404. package/src/mcp/tools/global/find.ts +0 -130
  405. package/src/mcp/tools/global/update.ts +0 -209
  406. package/src/mcp/tools/job/create.ts +0 -416
  407. package/src/mcp/tools/job/run.ts +0 -169
  408. package/src/mcp/tools/job/update.ts +0 -274
  409. package/src/mcp/tools/resource/create.ts +0 -211
  410. package/src/mcp/tools/resource/delete.ts +0 -218
  411. package/src/mcp/tools/resource/find.ts +0 -246
  412. package/src/mcp/tools/resource/update.ts +0 -367
  413. package/src/mcp/tools/schemas.ts +0 -499
  414. package/src/utils/adminEntitySettings.ts +0 -40
  415. package/src/utils/createApiKeyFields.ts +0 -72
  416. package/src/utils/getEnabledSlugs.ts +0 -42
  417. package/src/utils/getVirtualFieldNames.ts +0 -53
  418. package/src/utils/schemaConversion/convertCollectionSchemaToZod.ts +0 -72
  419. package/src/utils/schemaConversion/removeVirtualFieldsFromSchema.ts +0 -27
  420. package/src/utils/schemaConversion/sanitizeJsonSchema.ts +0 -62
  421. package/src/utils/schemaConversion/simplifyRelationshipFields.ts +0 -65
  422. package/src/utils/schemaConversion/transformPointFields.ts +0 -55
  423. package/src/utils/transformPointDataToPayload.ts +0 -40
@@ -0,0 +1,22 @@
1
+ import type { Payload } from 'payload'
2
+
3
+ import { getPluginConfig } from './getPluginConfig.js'
4
+
5
+ /**
6
+ * Get the logger for the MCP plugin. Child of the main Payload logger, prefixed with `[plugin-mcp]`
7
+ * and tagged with a structured `plugin: 'mcp'` field. When `verboseLogs` is off, info/debug calls
8
+ * are silenced; warn/error still surface so operators don't lose error signal.
9
+ */
10
+ export const getLogger: (args: { payload: Payload }) => Payload['logger'] = ({ payload }) => {
11
+ const pluginConfig = getPluginConfig({ config: payload.config })
12
+
13
+ const useVerboseLogs = pluginConfig?.mcp?.verboseLogs ?? false
14
+
15
+ const logger = payload.logger.child({ plugin: 'mcp' }, { msgPrefix: '[plugin-mcp] ' })
16
+
17
+ if (!useVerboseLogs) {
18
+ logger.level = 'warn'
19
+ }
20
+
21
+ return logger
22
+ }
@@ -0,0 +1,24 @@
1
+ import type { PluginsMap, SanitizedConfig } from 'payload'
2
+
3
+ import type { SanitizedMCPPluginConfig } from '../types.js'
4
+
5
+ /**
6
+ * Returns the sanitized plugin config — the form produced by
7
+ * `sanitizeMCPConfig` and stashed back on the plugin's `options` during init.
8
+ * Callers downstream of plugin init can rely on `items` and other defaults
9
+ * being fully resolved.
10
+ */
11
+ export const getPluginConfig: (args: { config: SanitizedConfig }) => SanitizedMCPPluginConfig = ({
12
+ config,
13
+ }) => {
14
+ const plugin = config.plugins?.find(
15
+ (plugin) => plugin.slug === '@payloadcms/plugin-mcp',
16
+ ) as PluginsMap['@payloadcms/plugin-mcp']
17
+
18
+ if (!plugin) {
19
+ throw new Error('MCP Plugin not found in config.plugins.')
20
+ }
21
+
22
+ // @ts-expect-error
23
+ return plugin.sanitizedOptions
24
+ }
@@ -0,0 +1,17 @@
1
+ import path from 'path'
2
+
3
+ /**
4
+ * Returns the project root: the parent of the outermost `node_modules` segment in
5
+ * `fromPath`. Returns `null` when the path has no `node_modules` (e.g. running from
6
+ * source inside the Payload monorepo).
7
+ */
8
+ export const resolveProjectRoot = (fromPath: string): null | string => {
9
+ const segments = fromPath.split(path.sep)
10
+ const nodeModulesIndex = segments.indexOf('node_modules')
11
+
12
+ if (nodeModulesIndex <= 0) {
13
+ return null
14
+ }
15
+
16
+ return segments.slice(0, nodeModulesIndex).join(path.sep) || null
17
+ }
@@ -0,0 +1,9 @@
1
+ import { fromJsonSchema, type StandardSchemaWithJSON } from '@modelcontextprotocol/server'
2
+
3
+ import type { ToolInputSchema } from '../types.js'
4
+
5
+ /** Normalize a tool/prompt input to a Standard Schema. Raw JSON Schema gets wrapped; Standard Schema instances pass through. */
6
+ export const toStandardSchema = (schema: ToolInputSchema): StandardSchemaWithJSON =>
7
+ typeof schema === 'object' && schema !== null && '~standard' in schema
8
+ ? (schema as StandardSchemaWithJSON)
9
+ : fromJsonSchema(schema)
@@ -1,7 +0,0 @@
1
- import type { CollectionConfig } from 'payload';
2
- import type { MCPPluginConfig } from '../types.js';
3
- export declare const createAPIKeysCollection: (collections: MCPPluginConfig["collections"], globals: MCPPluginConfig["globals"], customTools: Array<{
4
- description: string;
5
- name: string;
6
- }> | undefined, experimentalTools: NonNullable<MCPPluginConfig["experimental"]>["tools"] | undefined, pluginOptions: MCPPluginConfig) => CollectionConfig;
7
- //# sourceMappingURL=createApiKeysCollection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createApiKeysCollection.d.ts","sourceRoot":"","sources":["../../src/collections/createApiKeysCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAyC,MAAM,SAAS,CAAA;AAEtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAKlD,eAAO,MAAM,uBAAuB,gBACrB,eAAe,CAAC,aAAa,CAAC,WAClC,eAAe,CAAC,SAAS,CAAC,eACtB,KAAK,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,iCACtC,WAAW,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,6BACzD,eAAe,KAC7B,gBAiYF,CAAA"}
@@ -1,342 +0,0 @@
1
- import { toCamelCase } from '../utils/camelCase.js';
2
- import { createApiKeyFields } from '../utils/createApiKeyFields.js';
3
- export const createAPIKeysCollection = (collections, globals, customTools = [], experimentalTools = {}, pluginOptions)=>{
4
- const customToolsFields = customTools.map((tool)=>{
5
- const camelCasedName = toCamelCase(tool.name);
6
- return {
7
- name: camelCasedName,
8
- type: 'checkbox',
9
- admin: {
10
- description: tool.description
11
- },
12
- defaultValue: true,
13
- label: camelCasedName
14
- };
15
- });
16
- const customResourceFields = pluginOptions.mcp?.resources?.map((resource)=>{
17
- const camelCasedName = toCamelCase(resource.name);
18
- return {
19
- name: camelCasedName,
20
- type: 'checkbox',
21
- admin: {
22
- description: resource.description
23
- },
24
- defaultValue: true,
25
- label: camelCasedName
26
- };
27
- }) || [];
28
- const customPromptFields = pluginOptions.mcp?.prompts?.map((prompt)=>{
29
- const camelCasedName = toCamelCase(prompt.name);
30
- return {
31
- name: camelCasedName,
32
- type: 'checkbox',
33
- admin: {
34
- description: prompt.description
35
- },
36
- defaultValue: true,
37
- label: camelCasedName
38
- };
39
- }) || [];
40
- const userCollection = pluginOptions.userCollection;
41
- const isAuthenticated = ({ req })=>Boolean(req.user && req.user.collection === userCollection);
42
- const restrictToOwnKeys = ({ req })=>req.user && req.user.collection === userCollection ? {
43
- user: {
44
- equals: req.user.id
45
- }
46
- } : false;
47
- return {
48
- slug: 'payload-mcp-api-keys',
49
- access: {
50
- // Fail-safe default: any authenticated user may manage only their OWN keys.
51
- // Cross-user key issuance is disabled by default (see the `user` field below)
52
- // and must be granted explicitly via `overrideApiKeyCollection`.
53
- create: isAuthenticated,
54
- delete: restrictToOwnKeys,
55
- read: restrictToOwnKeys,
56
- unlock: restrictToOwnKeys,
57
- update: restrictToOwnKeys
58
- },
59
- admin: {
60
- description: 'API keys control which collections, resources, tools, and prompts MCP clients can access',
61
- group: 'MCP',
62
- useAsTitle: 'label'
63
- },
64
- auth: {
65
- disableLocalStrategy: true,
66
- useAPIKey: true
67
- },
68
- fields: [
69
- {
70
- name: 'user',
71
- type: 'relationship',
72
- access: {
73
- // Bind new keys to the creating user and prevent re-binding on update.
74
- // A key acts as its associated user, so allowing arbitrary assignment lets
75
- // any key manager impersonate anyone. Grant these via `overrideApiKeyCollection`
76
- // to let trusted administrators issue keys on behalf of other users.
77
- create: ()=>false,
78
- update: ()=>false
79
- },
80
- admin: {
81
- description: 'The user that the API key is associated with.'
82
- },
83
- defaultValue: ({ req })=>req.user && req.user.collection === userCollection ? req.user.id : undefined,
84
- relationTo: userCollection,
85
- required: true
86
- },
87
- {
88
- name: 'label',
89
- type: 'text',
90
- admin: {
91
- description: 'A useful label for the API key.'
92
- }
93
- },
94
- {
95
- name: 'description',
96
- type: 'text',
97
- admin: {
98
- description: 'The purpose of the API key.'
99
- }
100
- },
101
- ...createApiKeyFields({
102
- config: collections,
103
- configType: 'collection'
104
- }),
105
- ...createApiKeyFields({
106
- config: globals,
107
- configType: 'global'
108
- }),
109
- ...customTools.length > 0 ? [
110
- {
111
- type: 'collapsible',
112
- admin: {
113
- description: 'Manage client access to tools',
114
- position: 'sidebar'
115
- },
116
- fields: [
117
- {
118
- name: 'payload-mcp-tool',
119
- type: 'group',
120
- fields: customToolsFields,
121
- label: false
122
- }
123
- ],
124
- label: 'Tools'
125
- }
126
- ] : [],
127
- ...pluginOptions.mcp?.resources && pluginOptions.mcp?.resources.length > 0 ? [
128
- {
129
- type: 'collapsible',
130
- admin: {
131
- description: 'Manage client access to resources',
132
- position: 'sidebar'
133
- },
134
- fields: [
135
- {
136
- name: 'payload-mcp-resource',
137
- type: 'group',
138
- fields: customResourceFields,
139
- label: false
140
- }
141
- ],
142
- label: 'Resources'
143
- }
144
- ] : [],
145
- ...pluginOptions.mcp?.prompts && pluginOptions.mcp?.prompts.length > 0 ? [
146
- {
147
- type: 'collapsible',
148
- admin: {
149
- description: 'Manage client access to prompts',
150
- position: 'sidebar'
151
- },
152
- fields: [
153
- {
154
- name: 'payload-mcp-prompt',
155
- type: 'group',
156
- fields: customPromptFields,
157
- label: false
158
- }
159
- ],
160
- label: 'Prompts'
161
- }
162
- ] : [],
163
- // Experimental Tools
164
- ...process.env.NODE_ENV === 'development' && (experimentalTools?.collections?.enabled || experimentalTools?.jobs?.enabled || experimentalTools?.config?.enabled || experimentalTools?.auth?.enabled) ? [
165
- {
166
- type: 'collapsible',
167
- admin: {
168
- description: 'Manage client access to experimental tools',
169
- position: 'sidebar'
170
- },
171
- fields: [
172
- ...experimentalTools?.collections?.enabled ? [
173
- {
174
- name: 'collections',
175
- type: 'group',
176
- fields: [
177
- {
178
- name: 'find',
179
- type: 'checkbox',
180
- admin: {
181
- description: 'Allow LLMs to find and list Payload collections with optional content and document counts.'
182
- },
183
- defaultValue: false
184
- },
185
- {
186
- name: 'create',
187
- type: 'checkbox',
188
- admin: {
189
- description: 'Allow LLMs to create new Payload collections with specified fields and configuration.'
190
- },
191
- defaultValue: false
192
- },
193
- {
194
- name: 'update',
195
- type: 'checkbox',
196
- admin: {
197
- description: 'Allow LLMs to update existing Payload collections with new fields, modifications, or configuration changes.'
198
- },
199
- defaultValue: false
200
- },
201
- {
202
- name: 'delete',
203
- type: 'checkbox',
204
- admin: {
205
- description: 'Allow LLMs to delete Payload collections and optionally update the configuration.'
206
- },
207
- defaultValue: false
208
- }
209
- ]
210
- }
211
- ] : [],
212
- ...experimentalTools?.jobs?.enabled ? [
213
- {
214
- name: 'jobs',
215
- type: 'group',
216
- fields: [
217
- {
218
- name: 'create',
219
- type: 'checkbox',
220
- admin: {
221
- description: 'Allow LLMs to create new Payload jobs (tasks and workflows) with custom schemas and configuration.'
222
- },
223
- defaultValue: false
224
- },
225
- {
226
- name: 'run',
227
- type: 'checkbox',
228
- admin: {
229
- description: 'Allow LLMs to execute Payload jobs with custom input data and queue options.'
230
- },
231
- defaultValue: false
232
- },
233
- {
234
- name: 'update',
235
- type: 'checkbox',
236
- admin: {
237
- description: 'Allow LLMs to update existing Payload jobs with new schemas, configuration, or handler code.'
238
- },
239
- defaultValue: false
240
- }
241
- ]
242
- }
243
- ] : [],
244
- ...experimentalTools?.config?.enabled ? [
245
- {
246
- name: 'config',
247
- type: 'group',
248
- fields: [
249
- {
250
- name: 'find',
251
- type: 'checkbox',
252
- admin: {
253
- description: 'Allow LLMs to read and display a Payload configuration file.'
254
- },
255
- defaultValue: false
256
- },
257
- {
258
- name: 'update',
259
- type: 'checkbox',
260
- admin: {
261
- description: 'Allow LLMs to update a Payload configuration file with various modifications.'
262
- },
263
- defaultValue: false
264
- }
265
- ]
266
- }
267
- ] : [],
268
- ...experimentalTools?.auth?.enabled ? [
269
- {
270
- name: 'auth',
271
- type: 'group',
272
- fields: [
273
- {
274
- name: 'auth',
275
- type: 'checkbox',
276
- admin: {
277
- description: 'Allow LLMs to check authentication status for a user by setting custom headers. (e.g. {"Authorization": "Bearer <token>"})'
278
- },
279
- defaultValue: false,
280
- label: 'Check Auth Status'
281
- },
282
- {
283
- name: 'login',
284
- type: 'checkbox',
285
- admin: {
286
- description: 'Allow LLMs to authenticate a user with email and password.'
287
- },
288
- defaultValue: false,
289
- label: 'User Login'
290
- },
291
- {
292
- name: 'verify',
293
- type: 'checkbox',
294
- admin: {
295
- description: 'Allow LLMs to verify a user email with a verification token.'
296
- },
297
- defaultValue: false,
298
- label: 'Email Verification'
299
- },
300
- {
301
- name: 'resetPassword',
302
- type: 'checkbox',
303
- admin: {
304
- description: 'Allow LLMs to reset a user password with a reset token.'
305
- },
306
- defaultValue: false,
307
- label: 'Reset Password'
308
- },
309
- {
310
- name: 'forgotPassword',
311
- type: 'checkbox',
312
- admin: {
313
- description: 'Allow LLMs to send a password reset email to a user.'
314
- },
315
- defaultValue: false,
316
- label: 'Forgot Password'
317
- },
318
- {
319
- name: 'unlock',
320
- type: 'checkbox',
321
- admin: {
322
- description: 'Allow LLMs to unlock a user account that has been locked due to failed login attempts.'
323
- },
324
- defaultValue: false,
325
- label: 'Unlock Account'
326
- }
327
- ]
328
- }
329
- ] : []
330
- ],
331
- label: 'Experimental Tools'
332
- }
333
- ] : []
334
- ],
335
- labels: {
336
- plural: 'API Keys',
337
- singular: 'API Key'
338
- }
339
- };
340
- };
341
-
342
- //# sourceMappingURL=createApiKeysCollection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/collections/createApiKeysCollection.ts"],"sourcesContent":["import type { CollectionConfig, CollectionSlug, PayloadRequest, Where } from 'payload'\n\nimport type { MCPPluginConfig } from '../types.js'\n\nimport { toCamelCase } from '../utils/camelCase.js'\nimport { createApiKeyFields } from '../utils/createApiKeyFields.js'\n\nexport const createAPIKeysCollection = (\n collections: MCPPluginConfig['collections'],\n globals: MCPPluginConfig['globals'],\n customTools: Array<{ description: string; name: string }> = [],\n experimentalTools: NonNullable<MCPPluginConfig['experimental']>['tools'] = {},\n pluginOptions: MCPPluginConfig,\n): CollectionConfig => {\n const customToolsFields = customTools.map((tool) => {\n const camelCasedName = toCamelCase(tool.name)\n return {\n name: camelCasedName,\n type: 'checkbox' as const,\n admin: {\n description: tool.description,\n },\n defaultValue: true,\n label: camelCasedName,\n }\n })\n\n const customResourceFields =\n pluginOptions.mcp?.resources?.map((resource) => {\n const camelCasedName = toCamelCase(resource.name)\n return {\n name: camelCasedName,\n type: 'checkbox' as const,\n admin: {\n description: resource.description,\n },\n defaultValue: true,\n label: camelCasedName,\n }\n }) || []\n\n const customPromptFields =\n pluginOptions.mcp?.prompts?.map((prompt) => {\n const camelCasedName = toCamelCase(prompt.name)\n return {\n name: camelCasedName,\n type: 'checkbox' as const,\n admin: {\n description: prompt.description,\n },\n defaultValue: true,\n label: camelCasedName,\n }\n }) || []\n\n const userCollection = pluginOptions.userCollection\n\n const isAuthenticated = ({ req }: { req: PayloadRequest }): boolean =>\n Boolean(req.user && req.user.collection === userCollection)\n\n const restrictToOwnKeys = ({ req }: { req: PayloadRequest }): boolean | Where =>\n req.user && req.user.collection === userCollection ? { user: { equals: req.user.id } } : false\n\n return {\n slug: 'payload-mcp-api-keys',\n access: {\n // Fail-safe default: any authenticated user may manage only their OWN keys.\n // Cross-user key issuance is disabled by default (see the `user` field below)\n // and must be granted explicitly via `overrideApiKeyCollection`.\n create: isAuthenticated,\n delete: restrictToOwnKeys,\n read: restrictToOwnKeys,\n unlock: restrictToOwnKeys,\n update: restrictToOwnKeys,\n },\n admin: {\n description:\n 'API keys control which collections, resources, tools, and prompts MCP clients can access',\n group: 'MCP',\n useAsTitle: 'label',\n },\n auth: {\n disableLocalStrategy: true,\n useAPIKey: true,\n },\n fields: [\n {\n name: 'user',\n type: 'relationship',\n access: {\n // Bind new keys to the creating user and prevent re-binding on update.\n // A key acts as its associated user, so allowing arbitrary assignment lets\n // any key manager impersonate anyone. Grant these via `overrideApiKeyCollection`\n // to let trusted administrators issue keys on behalf of other users.\n create: () => false,\n update: () => false,\n },\n admin: {\n description: 'The user that the API key is associated with.',\n },\n defaultValue: ({ req }: { req: PayloadRequest }) =>\n req.user && req.user.collection === userCollection ? req.user.id : undefined,\n relationTo: userCollection as CollectionSlug,\n required: true,\n },\n {\n name: 'label',\n type: 'text',\n admin: {\n description: 'A useful label for the API key.',\n },\n },\n {\n name: 'description',\n type: 'text',\n admin: {\n description: 'The purpose of the API key.',\n },\n },\n\n ...createApiKeyFields({\n config: collections,\n configType: 'collection',\n }),\n\n ...createApiKeyFields({\n config: globals,\n configType: 'global',\n }),\n\n ...(customTools.length > 0\n ? [\n {\n type: 'collapsible' as const,\n admin: {\n description: 'Manage client access to tools',\n position: 'sidebar' as const,\n },\n fields: [\n {\n name: 'payload-mcp-tool',\n type: 'group' as const,\n fields: customToolsFields,\n label: false as const,\n },\n ],\n label: 'Tools',\n },\n ]\n : []),\n\n ...(pluginOptions.mcp?.resources && pluginOptions.mcp?.resources.length > 0\n ? [\n {\n type: 'collapsible' as const,\n admin: {\n description: 'Manage client access to resources',\n position: 'sidebar' as const,\n },\n fields: [\n {\n name: 'payload-mcp-resource',\n type: 'group' as const,\n fields: customResourceFields,\n label: false as const,\n },\n ],\n label: 'Resources',\n },\n ]\n : []),\n\n ...(pluginOptions.mcp?.prompts && pluginOptions.mcp?.prompts.length > 0\n ? [\n {\n type: 'collapsible' as const,\n admin: {\n description: 'Manage client access to prompts',\n position: 'sidebar' as const,\n },\n fields: [\n {\n name: 'payload-mcp-prompt',\n type: 'group' as const,\n fields: customPromptFields,\n label: false as const,\n },\n ],\n label: 'Prompts',\n },\n ]\n : []),\n\n // Experimental Tools\n ...(process.env.NODE_ENV === 'development' &&\n (experimentalTools?.collections?.enabled ||\n experimentalTools?.jobs?.enabled ||\n experimentalTools?.config?.enabled ||\n experimentalTools?.auth?.enabled)\n ? [\n {\n type: 'collapsible' as const,\n admin: {\n description: 'Manage client access to experimental tools',\n position: 'sidebar' as const,\n },\n fields: [\n ...(experimentalTools?.collections?.enabled\n ? [\n {\n name: 'collections',\n type: 'group' as const,\n fields: [\n {\n name: 'find',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to find and list Payload collections with optional content and document counts.',\n },\n defaultValue: false,\n },\n {\n name: 'create',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to create new Payload collections with specified fields and configuration.',\n },\n defaultValue: false,\n },\n {\n name: 'update',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to update existing Payload collections with new fields, modifications, or configuration changes.',\n },\n defaultValue: false,\n },\n {\n name: 'delete',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to delete Payload collections and optionally update the configuration.',\n },\n defaultValue: false,\n },\n ],\n },\n ]\n : []),\n ...(experimentalTools?.jobs?.enabled\n ? [\n {\n name: 'jobs',\n type: 'group' as const,\n fields: [\n {\n name: 'create',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to create new Payload jobs (tasks and workflows) with custom schemas and configuration.',\n },\n defaultValue: false,\n },\n {\n name: 'run',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to execute Payload jobs with custom input data and queue options.',\n },\n defaultValue: false,\n },\n {\n name: 'update',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to update existing Payload jobs with new schemas, configuration, or handler code.',\n },\n defaultValue: false,\n },\n ],\n },\n ]\n : []),\n ...(experimentalTools?.config?.enabled\n ? [\n {\n name: 'config',\n type: 'group' as const,\n fields: [\n {\n name: 'find',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to read and display a Payload configuration file.',\n },\n defaultValue: false,\n },\n {\n name: 'update',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to update a Payload configuration file with various modifications.',\n },\n defaultValue: false,\n },\n ],\n },\n ]\n : []),\n ...(experimentalTools?.auth?.enabled\n ? [\n {\n name: 'auth',\n type: 'group' as const,\n fields: [\n {\n name: 'auth',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to check authentication status for a user by setting custom headers. (e.g. {\"Authorization\": \"Bearer <token>\"})',\n },\n defaultValue: false,\n label: 'Check Auth Status',\n },\n {\n name: 'login',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to authenticate a user with email and password.',\n },\n defaultValue: false,\n label: 'User Login',\n },\n {\n name: 'verify',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to verify a user email with a verification token.',\n },\n defaultValue: false,\n label: 'Email Verification',\n },\n {\n name: 'resetPassword',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to reset a user password with a reset token.',\n },\n defaultValue: false,\n label: 'Reset Password',\n },\n {\n name: 'forgotPassword',\n type: 'checkbox' as const,\n admin: {\n description: 'Allow LLMs to send a password reset email to a user.',\n },\n defaultValue: false,\n label: 'Forgot Password',\n },\n {\n name: 'unlock',\n type: 'checkbox' as const,\n admin: {\n description:\n 'Allow LLMs to unlock a user account that has been locked due to failed login attempts.',\n },\n defaultValue: false,\n label: 'Unlock Account',\n },\n ],\n },\n ]\n : []),\n ],\n label: 'Experimental Tools',\n },\n ]\n : []),\n ],\n labels: {\n plural: 'API Keys',\n singular: 'API Key',\n },\n }\n}\n"],"names":["toCamelCase","createApiKeyFields","createAPIKeysCollection","collections","globals","customTools","experimentalTools","pluginOptions","customToolsFields","map","tool","camelCasedName","name","type","admin","description","defaultValue","label","customResourceFields","mcp","resources","resource","customPromptFields","prompts","prompt","userCollection","isAuthenticated","req","Boolean","user","collection","restrictToOwnKeys","equals","id","slug","access","create","delete","read","unlock","update","group","useAsTitle","auth","disableLocalStrategy","useAPIKey","fields","undefined","relationTo","required","config","configType","length","position","process","env","NODE_ENV","enabled","jobs","labels","plural","singular"],"mappings":"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NC,MAAM;wCACNC,OAAO;4CACLC,aACE;wCACJ;wCACAC,cAAc;oCAChB;oCACA;wCACEJ,MAAM;wCACNC,MAAM;wCACNC,OAAO;4CACLC,aACE;wCACJ;wCACAC,cAAc;oCAChB;iCACD;4BACH;yBACD,GACD,EAAE;2BACFV,mBAAmBqC,MAAMc,UACzB;4BACE;gCACE7C,MAAM;gCACNC,MAAM;gCACNiC,QAAQ;oCACN;wCACElC,MAAM;wCACNC,MAAM;wCACNC,OAAO;4CACLC,aACE;wCACJ;wCACAC,cAAc;wCACdC,OAAO;oCACT;oCACA;wCACEL,MAAM;wCACNC,MAAM;wCACNC,OAAO;4CACLC,aACE;wCACJ;wCACAC,cAAc;wCACdC,OAAO;oCACT;oCACA;wCACEL,MAAM;wCACNC,MAAM;wCACNC,OAAO;4CACLC,aACE;wCACJ;wCACAC,cAAc;wCACdC,OAAO;oCACT;oCACA;wCACEL,MAAM;wCACNC,MAAM;wCACNC,OAAO;4CACLC,aACE;wCACJ;wCACAC,cAAc;wCACdC,OAAO;oCACT;oCACA;wCACEL,MAAM;wCACNC,MAAM;wCACNC,OAAO;4CACLC,aAAa;wCACf;wCACAC,cAAc;wCACdC,OAAO;oCACT;oCACA;wCACEL,MAAM;wCACNC,MAAM;wCACNC,OAAO;4CACLC,aACE;wCACJ;wCACAC,cAAc;wCACdC,OAAO;oCACT;iCACD;4BACH;yBACD,GACD,EAAE;qBACP;oBACDA,OAAO;gBACT;aACD,GACD,EAAE;SACP;QACD0C,QAAQ;YACNC,QAAQ;YACRC,UAAU;QACZ;IACF;AACF,EAAC"}
@@ -1,4 +0,0 @@
1
- export declare const defaults: {
2
- userCollection: string;
3
- };
4
- //# sourceMappingURL=defaults.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;CAEpB,CAAA"}
package/dist/defaults.js DELETED
@@ -1,5 +0,0 @@
1
- export const defaults = {
2
- userCollection: 'users'
3
- };
4
-
5
- //# sourceMappingURL=defaults.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/defaults.ts"],"sourcesContent":["export const defaults = {\n userCollection: 'users',\n}\n"],"names":["defaults","userCollection"],"mappings":"AAAA,OAAO,MAAMA,WAAW;IACtBC,gBAAgB;AAClB,EAAC"}
@@ -1,4 +0,0 @@
1
- import type { PayloadHandler } from 'payload';
2
- import type { MCPPluginConfig } from '../types.js';
3
- export declare const initializeMCPHandler: (pluginOptions: MCPPluginConfig) => PayloadHandler;
4
- //# sourceMappingURL=mcp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/endpoints/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAOlD,eAAO,MAAM,oBAAoB,kBAAmB,eAAe,mBAgBlE,CAAA"}
@@ -1,24 +0,0 @@
1
- import { createRequestFromPayloadRequest } from '../mcp/createRequest.js';
2
- import { getMcpHandler } from '../mcp/getMcpHandler.js';
3
- import { resolveAccessSettings } from './resolveAccessSettings.js';
4
- import { withRestoredWebGlobals } from './withRestoredWebGlobals.js';
5
- export const initializeMCPHandler = (pluginOptions)=>{
6
- const mcpHandler = async (req)=>{
7
- const useVerboseLogs = pluginOptions.mcp?.handlerOptions?.verboseLogs ?? false;
8
- req.payloadAPI = 'MCP';
9
- const mcpAccessSettings = await resolveAccessSettings({
10
- pluginOptions,
11
- req,
12
- useVerboseLogs
13
- });
14
- req.user = mcpAccessSettings.user;
15
- return await withRestoredWebGlobals(async ()=>{
16
- const handler = getMcpHandler(pluginOptions, mcpAccessSettings, req);
17
- const request = createRequestFromPayloadRequest(req);
18
- return await handler(request);
19
- });
20
- };
21
- return mcpHandler;
22
- };
23
-
24
- //# sourceMappingURL=mcp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/endpoints/mcp.ts"],"sourcesContent":["import type { PayloadHandler } from 'payload'\n\nimport type { MCPPluginConfig } from '../types.js'\n\nimport { createRequestFromPayloadRequest } from '../mcp/createRequest.js'\nimport { getMcpHandler } from '../mcp/getMcpHandler.js'\nimport { resolveAccessSettings } from './resolveAccessSettings.js'\nimport { withRestoredWebGlobals } from './withRestoredWebGlobals.js'\n\nexport const initializeMCPHandler = (pluginOptions: MCPPluginConfig) => {\n const mcpHandler: PayloadHandler = async (req) => {\n const useVerboseLogs = pluginOptions.mcp?.handlerOptions?.verboseLogs ?? false\n\n req.payloadAPI = 'MCP' as const\n\n const mcpAccessSettings = await resolveAccessSettings({ pluginOptions, req, useVerboseLogs })\n req.user = mcpAccessSettings.user\n\n return await withRestoredWebGlobals(async () => {\n const handler = getMcpHandler(pluginOptions, mcpAccessSettings, req)\n const request = createRequestFromPayloadRequest(req)\n return await handler(request)\n })\n }\n return mcpHandler\n}\n"],"names":["createRequestFromPayloadRequest","getMcpHandler","resolveAccessSettings","withRestoredWebGlobals","initializeMCPHandler","pluginOptions","mcpHandler","req","useVerboseLogs","mcp","handlerOptions","verboseLogs","payloadAPI","mcpAccessSettings","user","handler","request"],"mappings":"AAIA,SAASA,+BAA+B,QAAQ,0BAAyB;AACzE,SAASC,aAAa,QAAQ,0BAAyB;AACvD,SAASC,qBAAqB,QAAQ,6BAA4B;AAClE,SAASC,sBAAsB,QAAQ,8BAA6B;AAEpE,OAAO,MAAMC,uBAAuB,CAACC;IACnC,MAAMC,aAA6B,OAAOC;QACxC,MAAMC,iBAAiBH,cAAcI,GAAG,EAAEC,gBAAgBC,eAAe;QAEzEJ,IAAIK,UAAU,GAAG;QAEjB,MAAMC,oBAAoB,MAAMX,sBAAsB;YAAEG;YAAeE;YAAKC;QAAe;QAC3FD,IAAIO,IAAI,GAAGD,kBAAkBC,IAAI;QAEjC,OAAO,MAAMX,uBAAuB;YAClC,MAAMY,UAAUd,cAAcI,eAAeQ,mBAAmBN;YAChE,MAAMS,UAAUhB,gCAAgCO;YAChD,OAAO,MAAMQ,QAAQC;QACvB;IACF;IACA,OAAOV;AACT,EAAC"}
@@ -1,10 +0,0 @@
1
- import { type PayloadRequest } from 'payload';
2
- import type { MCPAccessSettings, MCPPluginConfig } from '../types.js';
3
- type ResolveAccessSettingsArgs = {
4
- pluginOptions: MCPPluginConfig;
5
- req: PayloadRequest;
6
- useVerboseLogs: boolean;
7
- };
8
- export declare const resolveAccessSettings: (args: ResolveAccessSettingsArgs) => Promise<MCPAccessSettings>;
9
- export {};
10
- //# sourceMappingURL=resolveAccessSettings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolveAccessSettings.d.ts","sourceRoot":"","sources":["../../src/endpoints/resolveAccessSettings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAiD,MAAM,SAAS,CAAA;AAE5F,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAErE,KAAK,yBAAyB,GAAG;IAC/B,aAAa,EAAE,eAAe,CAAA;IAC9B,GAAG,EAAE,cAAc,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;CACxB,CAAA;AAwDD,eAAO,MAAM,qBAAqB,SAC1B,yBAAyB,KAC9B,OAAO,CAAC,iBAAiB,CAM3B,CAAA"}
@@ -1,44 +0,0 @@
1
- import crypto from 'crypto';
2
- import { UnauthorizedError } from 'payload';
3
- const createDefaultAccessSettingsResolver = ({ pluginOptions, req, useVerboseLogs })=>{
4
- return async (overrideApiKey)=>{
5
- const authorization = req.headers.get('Authorization');
6
- const apiKey = overrideApiKey ?? (authorization?.startsWith('Bearer ') ? authorization.replace('Bearer ', '').trim() : null);
7
- if (apiKey === null) {
8
- throw new UnauthorizedError();
9
- }
10
- const sha256APIKeyIndex = crypto.createHmac('sha256', req.payload.secret).update(apiKey || '').digest('hex');
11
- const where = {
12
- apiKeyIndex: {
13
- equals: sha256APIKeyIndex
14
- }
15
- };
16
- const { docs } = await req.payload.find({
17
- collection: 'payload-mcp-api-keys',
18
- depth: 1,
19
- limit: 1,
20
- pagination: false,
21
- where
22
- });
23
- const apiKeyDoc = docs[0];
24
- if (!apiKeyDoc) {
25
- throw new UnauthorizedError();
26
- }
27
- if (useVerboseLogs) {
28
- req.payload.logger.info('[payload-mcp] API Key is valid');
29
- }
30
- const user = apiKeyDoc.user;
31
- if (!user || typeof user !== 'object' || !('id' in user)) {
32
- throw new UnauthorizedError();
33
- }
34
- user.collection = pluginOptions.userCollection;
35
- user._strategy = 'mcp-api-key';
36
- return apiKeyDoc;
37
- };
38
- };
39
- export const resolveAccessSettings = async (args)=>{
40
- const getDefaultMcpAccessSettings = createDefaultAccessSettingsResolver(args);
41
- return args.pluginOptions.overrideAuth ? await args.pluginOptions.overrideAuth(args.req, getDefaultMcpAccessSettings) : await getDefaultMcpAccessSettings();
42
- };
43
-
44
- //# sourceMappingURL=resolveAccessSettings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/endpoints/resolveAccessSettings.ts"],"sourcesContent":["import crypto from 'crypto'\nimport { type PayloadRequest, type TypedUser, UnauthorizedError, type Where } from 'payload'\n\nimport type { MCPAccessSettings, MCPPluginConfig } from '../types.js'\n\ntype ResolveAccessSettingsArgs = {\n pluginOptions: MCPPluginConfig\n req: PayloadRequest\n useVerboseLogs: boolean\n}\n\nconst createDefaultAccessSettingsResolver = ({\n pluginOptions,\n req,\n useVerboseLogs,\n}: ResolveAccessSettingsArgs) => {\n return async (overrideApiKey?: null | string): Promise<MCPAccessSettings> => {\n const authorization = req.headers.get('Authorization')\n const apiKey =\n overrideApiKey ??\n (authorization?.startsWith('Bearer ') ? authorization.replace('Bearer ', '').trim() : null)\n\n if (apiKey === null) {\n throw new UnauthorizedError()\n }\n\n const sha256APIKeyIndex = crypto\n .createHmac('sha256', req.payload.secret)\n .update(apiKey || '')\n .digest('hex')\n const where: Where = {\n apiKeyIndex: {\n equals: sha256APIKeyIndex,\n },\n }\n const { docs } = await req.payload.find({\n collection: 'payload-mcp-api-keys',\n depth: 1,\n limit: 1,\n pagination: false,\n where,\n })\n const apiKeyDoc = docs[0]\n\n if (!apiKeyDoc) {\n throw new UnauthorizedError()\n }\n\n if (useVerboseLogs) {\n req.payload.logger.info('[payload-mcp] API Key is valid')\n }\n\n const user = apiKeyDoc.user as TypedUser\n\n if (!user || typeof user !== 'object' || !('id' in user)) {\n throw new UnauthorizedError()\n }\n\n user.collection = pluginOptions.userCollection as string\n user._strategy = 'mcp-api-key' as const\n\n return apiKeyDoc as unknown as MCPAccessSettings\n }\n}\n\nexport const resolveAccessSettings = async (\n args: ResolveAccessSettingsArgs,\n): Promise<MCPAccessSettings> => {\n const getDefaultMcpAccessSettings = createDefaultAccessSettingsResolver(args)\n\n return args.pluginOptions.overrideAuth\n ? await args.pluginOptions.overrideAuth(args.req, getDefaultMcpAccessSettings)\n : await getDefaultMcpAccessSettings()\n}\n"],"names":["crypto","UnauthorizedError","createDefaultAccessSettingsResolver","pluginOptions","req","useVerboseLogs","overrideApiKey","authorization","headers","get","apiKey","startsWith","replace","trim","sha256APIKeyIndex","createHmac","payload","secret","update","digest","where","apiKeyIndex","equals","docs","find","collection","depth","limit","pagination","apiKeyDoc","logger","info","user","userCollection","_strategy","resolveAccessSettings","args","getDefaultMcpAccessSettings","overrideAuth"],"mappings":"AAAA,OAAOA,YAAY,SAAQ;AAC3B,SAA8CC,iBAAiB,QAAoB,UAAS;AAU5F,MAAMC,sCAAsC,CAAC,EAC3CC,aAAa,EACbC,GAAG,EACHC,cAAc,EACY;IAC1B,OAAO,OAAOC;QACZ,MAAMC,gBAAgBH,IAAII,OAAO,CAACC,GAAG,CAAC;QACtC,MAAMC,SACJJ,kBACCC,CAAAA,eAAeI,WAAW,aAAaJ,cAAcK,OAAO,CAAC,WAAW,IAAIC,IAAI,KAAK,IAAG;QAE3F,IAAIH,WAAW,MAAM;YACnB,MAAM,IAAIT;QACZ;QAEA,MAAMa,oBAAoBd,OACvBe,UAAU,CAAC,UAAUX,IAAIY,OAAO,CAACC,MAAM,EACvCC,MAAM,CAACR,UAAU,IACjBS,MAAM,CAAC;QACV,MAAMC,QAAe;YACnBC,aAAa;gBACXC,QAAQR;YACV;QACF;QACA,MAAM,EAAES,IAAI,EAAE,GAAG,MAAMnB,IAAIY,OAAO,CAACQ,IAAI,CAAC;YACtCC,YAAY;YACZC,OAAO;YACPC,OAAO;YACPC,YAAY;YACZR;QACF;QACA,MAAMS,YAAYN,IAAI,CAAC,EAAE;QAEzB,IAAI,CAACM,WAAW;YACd,MAAM,IAAI5B;QACZ;QAEA,IAAII,gBAAgB;YAClBD,IAAIY,OAAO,CAACc,MAAM,CAACC,IAAI,CAAC;QAC1B;QAEA,MAAMC,OAAOH,UAAUG,IAAI;QAE3B,IAAI,CAACA,QAAQ,OAAOA,SAAS,YAAY,CAAE,CAAA,QAAQA,IAAG,GAAI;YACxD,MAAM,IAAI/B;QACZ;QAEA+B,KAAKP,UAAU,GAAGtB,cAAc8B,cAAc;QAC9CD,KAAKE,SAAS,GAAG;QAEjB,OAAOL;IACT;AACF;AAEA,OAAO,MAAMM,wBAAwB,OACnCC;IAEA,MAAMC,8BAA8BnC,oCAAoCkC;IAExE,OAAOA,KAAKjC,aAAa,CAACmC,YAAY,GAClC,MAAMF,KAAKjC,aAAa,CAACmC,YAAY,CAACF,KAAKhC,GAAG,EAAEiC,+BAChD,MAAMA;AACZ,EAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Restores globals replaced by @hono/node-server while handling an MCP request.
3
- */
4
- export declare const withRestoredWebGlobals: <T>(handler: () => Promise<T>) => Promise<T>;
5
- //# sourceMappingURL=withRestoredWebGlobals.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withRestoredWebGlobals.d.ts","sourceRoot":"","sources":["../../src/endpoints/withRestoredWebGlobals.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAU,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAepF,CAAA"}