payload-mcp-toolkit 0.3.3 → 0.7.0

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 (144) hide show
  1. package/README.md +232 -150
  2. package/dist/__tests__/api-keys.test.js +292 -0
  3. package/dist/__tests__/api-keys.test.js.map +1 -0
  4. package/dist/__tests__/auth-strategy.test.js +681 -0
  5. package/dist/__tests__/auth-strategy.test.js.map +1 -0
  6. package/dist/__tests__/conflict-detection.test.js +69 -0
  7. package/dist/__tests__/conflict-detection.test.js.map +1 -0
  8. package/dist/__tests__/delete-document.test.js +70 -0
  9. package/dist/__tests__/delete-document.test.js.map +1 -0
  10. package/dist/__tests__/endpoint.test.js +143 -0
  11. package/dist/__tests__/endpoint.test.js.map +1 -0
  12. package/dist/__tests__/find-document.test.js +178 -0
  13. package/dist/__tests__/find-document.test.js.map +1 -0
  14. package/dist/__tests__/find-global.test.js +173 -0
  15. package/dist/__tests__/find-global.test.js.map +1 -0
  16. package/dist/__tests__/global-versions.test.js +183 -0
  17. package/dist/__tests__/global-versions.test.js.map +1 -0
  18. package/dist/__tests__/hash.test.js +58 -0
  19. package/dist/__tests__/hash.test.js.map +1 -0
  20. package/dist/__tests__/index-integration.test.js +191 -0
  21. package/dist/__tests__/index-integration.test.js.map +1 -0
  22. package/dist/__tests__/introspection.test.js +201 -1
  23. package/dist/__tests__/introspection.test.js.map +1 -1
  24. package/dist/__tests__/patch-global-layout.test.js +474 -0
  25. package/dist/__tests__/patch-global-layout.test.js.map +1 -0
  26. package/dist/__tests__/patch-layout.test.js +171 -0
  27. package/dist/__tests__/patch-layout.test.js.map +1 -0
  28. package/dist/__tests__/registry.test.js +795 -0
  29. package/dist/__tests__/registry.test.js.map +1 -0
  30. package/dist/__tests__/resources.test.js +139 -0
  31. package/dist/__tests__/resources.test.js.map +1 -0
  32. package/dist/__tests__/update-global.test.js +157 -0
  33. package/dist/__tests__/update-global.test.js.map +1 -0
  34. package/dist/api-keys.d.ts +46 -0
  35. package/dist/api-keys.js +272 -0
  36. package/dist/api-keys.js.map +1 -0
  37. package/dist/auth-strategy.d.ts +85 -0
  38. package/dist/auth-strategy.js +219 -0
  39. package/dist/auth-strategy.js.map +1 -0
  40. package/dist/components/CollectionScopesMatrix.d.ts +8 -0
  41. package/dist/components/CollectionScopesMatrix.js +32 -0
  42. package/dist/components/CollectionScopesMatrix.js.map +1 -0
  43. package/dist/components/GlobalScopesMatrix.d.ts +8 -0
  44. package/dist/components/GlobalScopesMatrix.js +28 -0
  45. package/dist/components/GlobalScopesMatrix.js.map +1 -0
  46. package/dist/components/ScopesTable.d.ts +19 -0
  47. package/dist/components/ScopesTable.js +285 -0
  48. package/dist/components/ScopesTable.js.map +1 -0
  49. package/dist/components/index.d.ts +2 -0
  50. package/dist/components/index.js +4 -0
  51. package/dist/components/index.js.map +1 -0
  52. package/dist/conflict-detection.d.ts +13 -0
  53. package/dist/conflict-detection.js +41 -0
  54. package/dist/conflict-detection.js.map +1 -0
  55. package/dist/draft-workflow.d.ts +46 -47
  56. package/dist/draft-workflow.js +53 -130
  57. package/dist/draft-workflow.js.map +1 -1
  58. package/dist/endpoint.d.ts +35 -0
  59. package/dist/endpoint.js +105 -0
  60. package/dist/endpoint.js.map +1 -0
  61. package/dist/hash.d.ts +21 -0
  62. package/dist/hash.js +36 -0
  63. package/dist/hash.js.map +1 -0
  64. package/dist/index.d.ts +9 -9
  65. package/dist/index.js +168 -68
  66. package/dist/index.js.map +1 -1
  67. package/dist/introspection.d.ts +17 -3
  68. package/dist/introspection.js +95 -36
  69. package/dist/introspection.js.map +1 -1
  70. package/dist/prompts.js +5 -5
  71. package/dist/prompts.js.map +1 -1
  72. package/dist/registry.d.ts +50 -0
  73. package/dist/registry.js +169 -0
  74. package/dist/registry.js.map +1 -0
  75. package/dist/resources.d.ts +5 -3
  76. package/dist/resources.js +23 -11
  77. package/dist/resources.js.map +1 -1
  78. package/dist/scope/audit-log.d.ts +18 -0
  79. package/dist/scope/audit-log.js +50 -0
  80. package/dist/scope/audit-log.js.map +1 -0
  81. package/dist/scope/policy.d.ts +73 -0
  82. package/dist/scope/policy.js +218 -0
  83. package/dist/scope/policy.js.map +1 -0
  84. package/dist/tools/_helpers.d.ts +28 -1
  85. package/dist/tools/_helpers.js +83 -0
  86. package/dist/tools/_helpers.js.map +1 -1
  87. package/dist/tools/_layout-helpers.d.ts +43 -0
  88. package/dist/tools/_layout-helpers.js +159 -0
  89. package/dist/tools/_layout-helpers.js.map +1 -0
  90. package/dist/tools/create-document.d.ts +36 -0
  91. package/dist/tools/create-document.js +83 -0
  92. package/dist/tools/create-document.js.map +1 -0
  93. package/dist/tools/delete-document.d.ts +25 -0
  94. package/dist/tools/delete-document.js +49 -0
  95. package/dist/tools/delete-document.js.map +1 -0
  96. package/dist/tools/find-document.d.ts +33 -0
  97. package/dist/tools/find-document.js +97 -0
  98. package/dist/tools/find-document.js.map +1 -0
  99. package/dist/tools/find-global.d.ts +26 -0
  100. package/dist/tools/find-global.js +122 -0
  101. package/dist/tools/find-global.js.map +1 -0
  102. package/dist/tools/global-versions.d.ts +39 -0
  103. package/dist/tools/global-versions.js +132 -0
  104. package/dist/tools/global-versions.js.map +1 -0
  105. package/dist/tools/patch-global-layout.d.ts +31 -0
  106. package/dist/tools/patch-global-layout.js +127 -0
  107. package/dist/tools/patch-global-layout.js.map +1 -0
  108. package/dist/tools/patch-layout.d.ts +5 -8
  109. package/dist/tools/patch-layout.js +18 -100
  110. package/dist/tools/patch-layout.js.map +1 -1
  111. package/dist/tools/publish-draft.d.ts +5 -4
  112. package/dist/tools/publish-draft.js +6 -1
  113. package/dist/tools/publish-draft.js.map +1 -1
  114. package/dist/tools/publish-global-draft.d.ts +20 -0
  115. package/dist/tools/publish-global-draft.js +50 -0
  116. package/dist/tools/publish-global-draft.js.map +1 -0
  117. package/dist/tools/resolve-reference.d.ts +5 -4
  118. package/dist/tools/resolve-reference.js +4 -0
  119. package/dist/tools/resolve-reference.js.map +1 -1
  120. package/dist/tools/safe-delete.d.ts +5 -5
  121. package/dist/tools/safe-delete.js +20 -15
  122. package/dist/tools/safe-delete.js.map +1 -1
  123. package/dist/tools/schedule-publish.d.ts +5 -5
  124. package/dist/tools/schedule-publish.js +23 -19
  125. package/dist/tools/schedule-publish.js.map +1 -1
  126. package/dist/tools/search-content.d.ts +5 -9
  127. package/dist/tools/search-content.js +16 -12
  128. package/dist/tools/search-content.js.map +1 -1
  129. package/dist/tools/update-document.d.ts +5 -5
  130. package/dist/tools/update-document.js +10 -5
  131. package/dist/tools/update-document.js.map +1 -1
  132. package/dist/tools/update-global.d.ts +27 -0
  133. package/dist/tools/update-global.js +72 -0
  134. package/dist/tools/update-global.js.map +1 -0
  135. package/dist/tools/upload-media.d.ts +5 -4
  136. package/dist/tools/upload-media.js +6 -1
  137. package/dist/tools/upload-media.js.map +1 -1
  138. package/dist/tools/versions.d.ts +10 -9
  139. package/dist/tools/versions.js +15 -7
  140. package/dist/tools/versions.js.map +1 -1
  141. package/dist/types.d.ts +56 -3
  142. package/dist/types.js +13 -6
  143. package/dist/types.js.map +1 -1
  144. package/package.json +11 -4
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/__tests__/patch-layout.test.ts"],"sourcesContent":["import { describe, it, expect, vi } from 'vitest'\r\nimport type { Block, CollectionConfig } from 'payload'\r\nimport { introspectBlocks, buildBlockNestingMap } from '../introspection'\r\nimport { createPatchLayoutTool } from '../tools/patch-layout'\r\n\r\nconst Heading: Block = { slug: 'heading', fields: [{ name: 'text', type: 'text' }] }\r\nconst CtaBanner: Block = { slug: 'ctaBanner', fields: [{ name: 'label', type: 'text' }] }\r\n\r\nconst Pages: CollectionConfig = {\r\n slug: 'pages',\r\n versions: { drafts: true },\r\n fields: [\r\n {\r\n name: 'layout',\r\n type: 'blocks',\r\n blocks: [Heading, CtaBanner],\r\n },\r\n ],\r\n}\r\n\r\nfunction buildReq() {\r\n return {\r\n payload: {\r\n findByID: vi.fn(),\r\n update: vi.fn(),\r\n logger: { info: vi.fn(), warn: vi.fn(), error: vi.fn() },\r\n },\r\n context: {},\r\n user: null,\r\n }\r\n}\r\n\r\nconst allBlocks = [Heading, CtaBanner]\r\nconst catalog = introspectBlocks(allBlocks)\r\nconst nesting = buildBlockNestingMap([Pages], [], allBlocks)\r\nconst drafts = new Set(['pages'])\r\n\r\ndescribe('patchLayout', () => {\r\n it('flat layoutField writes {[layoutField]: finalLayout} — no regression from shared writePath', async () => {\r\n // After extracting writePath into _layout-helpers, the collection tool\r\n // doesn't itself use writePath, but this is the canonical regression\r\n // check that the flat-path shape stays a single top-level key so\r\n // Payload's `update` merges normally.\r\n const tool = createPatchLayoutTool(catalog, nesting, drafts)\r\n const req = buildReq()\r\n req.payload.findByID.mockResolvedValue({\r\n id: '1',\r\n layout: [{ blockType: 'heading', text: 'a' }],\r\n })\r\n req.payload.update.mockResolvedValue({ id: '1', title: 'p' })\r\n\r\n await tool.handler(\r\n {\r\n collection: 'pages',\r\n documentId: '1',\r\n layoutField: 'layout',\r\n blocks: [{ blockType: 'ctaBanner', label: 'Buy' }],\r\n operation: 'append',\r\n },\r\n req as never,\r\n {},\r\n )\r\n\r\n expect(req.payload.update).toHaveBeenCalledWith(\r\n expect.objectContaining({\r\n collection: 'pages',\r\n id: '1',\r\n data: {\r\n layout: [\r\n { blockType: 'heading', text: 'a' },\r\n { blockType: 'ctaBanner', label: 'Buy' },\r\n ],\r\n },\r\n }),\r\n )\r\n })\r\n\r\n it('full operation replaces the array wholesale', async () => {\r\n const tool = createPatchLayoutTool(catalog, nesting, drafts)\r\n const req = buildReq()\r\n req.payload.findByID.mockResolvedValue({\r\n id: '1',\r\n layout: [{ blockType: 'heading', text: 'old' }],\r\n })\r\n req.payload.update.mockResolvedValue({ id: '1' })\r\n\r\n await tool.handler(\r\n {\r\n collection: 'pages',\r\n documentId: '1',\r\n layoutField: 'layout',\r\n blocks: [{ blockType: 'heading', text: 'new' }],\r\n operation: 'full',\r\n },\r\n req as never,\r\n {},\r\n )\r\n\r\n expect(req.payload.update).toHaveBeenCalledWith(\r\n expect.objectContaining({\r\n data: { layout: [{ blockType: 'heading', text: 'new' }] },\r\n }),\r\n )\r\n })\r\n\r\n it('rejects unknown blockType with validation error', async () => {\r\n const tool = createPatchLayoutTool(catalog, nesting, drafts)\r\n const req = buildReq()\r\n const result = await tool.handler(\r\n {\r\n collection: 'pages',\r\n documentId: '1',\r\n layoutField: 'layout',\r\n blocks: [{ blockType: 'mystery' }],\r\n operation: 'full',\r\n },\r\n req as never,\r\n {},\r\n )\r\n expect(result.content[0]!.text).toMatch(/unknown blockType/i)\r\n expect(req.payload.update).not.toHaveBeenCalled()\r\n })\r\n})\r\n"],"names":["describe","it","expect","vi","introspectBlocks","buildBlockNestingMap","createPatchLayoutTool","Heading","slug","fields","name","type","CtaBanner","Pages","versions","drafts","blocks","buildReq","payload","findByID","fn","update","logger","info","warn","error","context","user","allBlocks","catalog","nesting","Set","tool","req","mockResolvedValue","id","layout","blockType","text","title","handler","collection","documentId","layoutField","label","operation","toHaveBeenCalledWith","objectContaining","data","result","content","toMatch","not","toHaveBeenCalled"],"mappings":"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"}