@kywi-software/mcp 0.1.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 (119) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +77 -0
  3. package/dist/__tests__/auto-detect.test.d.ts +2 -0
  4. package/dist/__tests__/auto-detect.test.d.ts.map +1 -0
  5. package/dist/__tests__/auto-detect.test.js +134 -0
  6. package/dist/__tests__/auto-detect.test.js.map +1 -0
  7. package/dist/__tests__/config.test.d.ts +2 -0
  8. package/dist/__tests__/config.test.d.ts.map +1 -0
  9. package/dist/__tests__/config.test.js +72 -0
  10. package/dist/__tests__/config.test.js.map +1 -0
  11. package/dist/__tests__/developer-mutation.test.d.ts +2 -0
  12. package/dist/__tests__/developer-mutation.test.d.ts.map +1 -0
  13. package/dist/__tests__/developer-mutation.test.js +511 -0
  14. package/dist/__tests__/developer-mutation.test.js.map +1 -0
  15. package/dist/__tests__/developer-read-only.test.d.ts +2 -0
  16. package/dist/__tests__/developer-read-only.test.d.ts.map +1 -0
  17. package/dist/__tests__/developer-read-only.test.js +192 -0
  18. package/dist/__tests__/developer-read-only.test.js.map +1 -0
  19. package/dist/__tests__/site-content-tools.test.d.ts +2 -0
  20. package/dist/__tests__/site-content-tools.test.d.ts.map +1 -0
  21. package/dist/__tests__/site-content-tools.test.js +446 -0
  22. package/dist/__tests__/site-content-tools.test.js.map +1 -0
  23. package/dist/__tests__/site-layout-tools.test.d.ts +2 -0
  24. package/dist/__tests__/site-layout-tools.test.d.ts.map +1 -0
  25. package/dist/__tests__/site-layout-tools.test.js +316 -0
  26. package/dist/__tests__/site-layout-tools.test.js.map +1 -0
  27. package/dist/__tests__/site-other-tools.test.d.ts +2 -0
  28. package/dist/__tests__/site-other-tools.test.d.ts.map +1 -0
  29. package/dist/__tests__/site-other-tools.test.js +318 -0
  30. package/dist/__tests__/site-other-tools.test.js.map +1 -0
  31. package/dist/config.d.ts +31 -0
  32. package/dist/config.d.ts.map +1 -0
  33. package/dist/config.js +4 -0
  34. package/dist/config.js.map +1 -0
  35. package/dist/developer/auto-detect.d.ts +17 -0
  36. package/dist/developer/auto-detect.d.ts.map +1 -0
  37. package/dist/developer/auto-detect.js +54 -0
  38. package/dist/developer/auto-detect.js.map +1 -0
  39. package/dist/developer/cli.d.ts +3 -0
  40. package/dist/developer/cli.d.ts.map +1 -0
  41. package/dist/developer/cli.js +14 -0
  42. package/dist/developer/cli.js.map +1 -0
  43. package/dist/developer/index.d.ts +4 -0
  44. package/dist/developer/index.d.ts.map +1 -0
  45. package/dist/developer/index.js +9 -0
  46. package/dist/developer/index.js.map +1 -0
  47. package/dist/developer/server.d.ts +4 -0
  48. package/dist/developer/server.d.ts.map +1 -0
  49. package/dist/developer/server.js +29 -0
  50. package/dist/developer/server.js.map +1 -0
  51. package/dist/developer/tools/api-keys.d.ts +48 -0
  52. package/dist/developer/tools/api-keys.d.ts.map +1 -0
  53. package/dist/developer/tools/api-keys.js +51 -0
  54. package/dist/developer/tools/api-keys.js.map +1 -0
  55. package/dist/developer/tools/config-mutation.d.ts +139 -0
  56. package/dist/developer/tools/config-mutation.d.ts.map +1 -0
  57. package/dist/developer/tools/config-mutation.js +277 -0
  58. package/dist/developer/tools/config-mutation.js.map +1 -0
  59. package/dist/developer/tools/content-type-tools.d.ts +32 -0
  60. package/dist/developer/tools/content-type-tools.d.ts.map +1 -0
  61. package/dist/developer/tools/content-type-tools.js +92 -0
  62. package/dist/developer/tools/content-type-tools.js.map +1 -0
  63. package/dist/developer/tools/read-only.d.ts +86 -0
  64. package/dist/developer/tools/read-only.d.ts.map +1 -0
  65. package/dist/developer/tools/read-only.js +235 -0
  66. package/dist/developer/tools/read-only.js.map +1 -0
  67. package/dist/developer/tools/scaffolding.d.ts +67 -0
  68. package/dist/developer/tools/scaffolding.d.ts.map +1 -0
  69. package/dist/developer/tools/scaffolding.js +207 -0
  70. package/dist/developer/tools/scaffolding.js.map +1 -0
  71. package/dist/index.d.ts +7 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +6 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/shared.d.ts +15 -0
  76. package/dist/shared.d.ts.map +1 -0
  77. package/dist/shared.js +7 -0
  78. package/dist/shared.js.map +1 -0
  79. package/dist/site/cli.d.ts +3 -0
  80. package/dist/site/cli.d.ts.map +1 -0
  81. package/dist/site/cli.js +12 -0
  82. package/dist/site/cli.js.map +1 -0
  83. package/dist/site/index.d.ts +4 -0
  84. package/dist/site/index.d.ts.map +1 -0
  85. package/dist/site/index.js +9 -0
  86. package/dist/site/index.js.map +1 -0
  87. package/dist/site/server.d.ts +10 -0
  88. package/dist/site/server.d.ts.map +1 -0
  89. package/dist/site/server.js +73 -0
  90. package/dist/site/server.js.map +1 -0
  91. package/dist/site/tools/content.d.ts +250 -0
  92. package/dist/site/tools/content.d.ts.map +1 -0
  93. package/dist/site/tools/content.js +329 -0
  94. package/dist/site/tools/content.js.map +1 -0
  95. package/dist/site/tools/feeds.d.ts +62 -0
  96. package/dist/site/tools/feeds.d.ts.map +1 -0
  97. package/dist/site/tools/feeds.js +97 -0
  98. package/dist/site/tools/feeds.js.map +1 -0
  99. package/dist/site/tools/layout.d.ts +163 -0
  100. package/dist/site/tools/layout.d.ts.map +1 -0
  101. package/dist/site/tools/layout.js +226 -0
  102. package/dist/site/tools/layout.js.map +1 -0
  103. package/dist/site/tools/media.d.ts +38 -0
  104. package/dist/site/tools/media.d.ts.map +1 -0
  105. package/dist/site/tools/media.js +52 -0
  106. package/dist/site/tools/media.js.map +1 -0
  107. package/dist/site/tools/search.d.ts +40 -0
  108. package/dist/site/tools/search.d.ts.map +1 -0
  109. package/dist/site/tools/search.js +60 -0
  110. package/dist/site/tools/search.js.map +1 -0
  111. package/dist/site/tools/users.d.ts +60 -0
  112. package/dist/site/tools/users.d.ts.map +1 -0
  113. package/dist/site/tools/users.js +71 -0
  114. package/dist/site/tools/users.js.map +1 -0
  115. package/dist/site/tools/webhooks.d.ts +34 -0
  116. package/dist/site/tools/webhooks.d.ts.map +1 -0
  117. package/dist/site/tools/webhooks.js +44 -0
  118. package/dist/site/tools/webhooks.js.map +1 -0
  119. package/package.json +61 -0
@@ -0,0 +1,316 @@
1
+ import { describe, it, expect, vi } from 'vitest';
2
+ import { handleGetLayout, handleUpdateLayout, handleAddModule, handleRemoveModule, handleUpdateModuleProps, handleAddRow, handleRemoveRow, findSection, findColumn, findModule, parseLayout, } from '../site/tools/layout.js';
3
+ // ─── Test fixtures ──────────────────────────────────────────────────────────
4
+ function makeLayout() {
5
+ return {
6
+ regions: {
7
+ main: [
8
+ {
9
+ id: 'row-1',
10
+ type: 'section',
11
+ style: {},
12
+ columns: [
13
+ {
14
+ id: 'col-1',
15
+ width: 8,
16
+ nodes: [
17
+ {
18
+ id: 'mod-id-1',
19
+ type: 'text',
20
+ instanceId: 'inst-1',
21
+ props: { content: 'Hello' },
22
+ style: {},
23
+ },
24
+ ],
25
+ },
26
+ {
27
+ id: 'col-2',
28
+ width: 4,
29
+ nodes: [],
30
+ },
31
+ ],
32
+ },
33
+ ],
34
+ },
35
+ };
36
+ }
37
+ function createMockSdk(layoutJson) {
38
+ const contentItem = { id: '1', title: 'Test' };
39
+ if (layoutJson !== undefined) {
40
+ contentItem.layoutJson = layoutJson;
41
+ }
42
+ return {
43
+ content: {
44
+ getBySlug: vi.fn().mockResolvedValue(contentItem),
45
+ getById: vi.fn().mockResolvedValue(contentItem),
46
+ getChildren: vi.fn().mockResolvedValue([]),
47
+ list: vi.fn().mockResolvedValue({ rows: [], total: 0 }),
48
+ create: vi.fn().mockResolvedValue({ id: 'new' }),
49
+ update: vi.fn().mockResolvedValue({ id: '1', title: 'Updated' }),
50
+ delete: vi.fn().mockResolvedValue(true),
51
+ publish: vi.fn().mockResolvedValue({ id: '1' }),
52
+ unpublish: vi.fn().mockResolvedValue({ id: '1' }),
53
+ },
54
+ nav: { getTree: vi.fn(), getBreadcrumbs: vi.fn(), getChildren: vi.fn() },
55
+ site: { getConfig: vi.fn(), list: vi.fn() },
56
+ user: { getCurrent: vi.fn(), getById: vi.fn() },
57
+ feeds: { query: vi.fn(), get: vi.fn() },
58
+ };
59
+ }
60
+ // ─── Pure helper tests ──────────────────────────────────────────────────────
61
+ describe('Layout pure helpers', () => {
62
+ it('parseLayout parses JSON string', () => {
63
+ const layout = makeLayout();
64
+ const result = parseLayout({ layoutJson: JSON.stringify(layout) });
65
+ expect(result).toEqual(layout);
66
+ });
67
+ it('parseLayout returns object directly', () => {
68
+ const layout = makeLayout();
69
+ const result = parseLayout({ layoutJson: layout });
70
+ expect(result).toBe(layout);
71
+ });
72
+ it('parseLayout returns null for missing field', () => {
73
+ expect(parseLayout({})).toBeNull();
74
+ });
75
+ it('parseLayout returns null for invalid JSON string', () => {
76
+ expect(parseLayout({ layoutJson: 'not json' })).toBeNull();
77
+ });
78
+ it('findSection finds by id', () => {
79
+ const layout = makeLayout();
80
+ const section = findSection(layout, 'main', 'row-1');
81
+ expect(section).toBeDefined();
82
+ expect(section.id).toBe('row-1');
83
+ });
84
+ it('findSection returns undefined for missing region', () => {
85
+ const layout = makeLayout();
86
+ expect(findSection(layout, 'sidebar', 'row-1')).toBeUndefined();
87
+ });
88
+ it('findSection returns undefined for missing row', () => {
89
+ const layout = makeLayout();
90
+ expect(findSection(layout, 'main', 'row-999')).toBeUndefined();
91
+ });
92
+ it('findColumn finds by id', () => {
93
+ const layout = makeLayout();
94
+ const section = layout.regions.main[0];
95
+ expect(findColumn(section, 'col-1').id).toBe('col-1');
96
+ });
97
+ it('findColumn returns undefined for missing col', () => {
98
+ const layout = makeLayout();
99
+ const section = layout.regions.main[0];
100
+ expect(findColumn(section, 'col-999')).toBeUndefined();
101
+ });
102
+ it('findModule finds by instanceId', () => {
103
+ const layout = makeLayout();
104
+ const col = layout.regions.main[0].columns[0];
105
+ expect(findModule(col, 'inst-1').instanceId).toBe('inst-1');
106
+ });
107
+ it('findModule returns undefined for missing instanceId', () => {
108
+ const layout = makeLayout();
109
+ const col = layout.regions.main[0].columns[0];
110
+ expect(findModule(col, 'inst-999')).toBeUndefined();
111
+ });
112
+ });
113
+ // ─── Handler tests ──────────────────────────────────────────────────────────
114
+ describe('get_layout', () => {
115
+ it('returns layout from content item', async () => {
116
+ const layout = makeLayout();
117
+ const sdk = createMockSdk(JSON.stringify(layout));
118
+ const result = await handleGetLayout(sdk, { type: 'page', id: '1' });
119
+ const data = JSON.parse(result.content[0].text);
120
+ expect(data.regions.main).toHaveLength(1);
121
+ });
122
+ it('returns empty regions when no layoutJson', async () => {
123
+ const sdk = createMockSdk();
124
+ const result = await handleGetLayout(sdk, { type: 'page', id: '1' });
125
+ const data = JSON.parse(result.content[0].text);
126
+ expect(data.regions).toEqual({});
127
+ });
128
+ it('returns error when content not found', async () => {
129
+ const sdk = createMockSdk();
130
+ vi.mocked(sdk.content.getById).mockResolvedValue(null);
131
+ const result = await handleGetLayout(sdk, { type: 'page', id: 'missing' });
132
+ expect(result).toHaveProperty('isError', true);
133
+ });
134
+ });
135
+ describe('update_layout', () => {
136
+ it('saves layout via sdk.content.update', async () => {
137
+ const sdk = createMockSdk();
138
+ const newLayout = { regions: { main: [] } };
139
+ const result = await handleUpdateLayout(sdk, { type: 'page', id: '1', layout: newLayout });
140
+ expect(sdk.content.update).toHaveBeenCalledWith('page', '1', {
141
+ layoutJson: JSON.stringify(newLayout),
142
+ });
143
+ expect(result).not.toHaveProperty('isError');
144
+ });
145
+ it('returns error when content not found', async () => {
146
+ const sdk = createMockSdk();
147
+ vi.mocked(sdk.content.update).mockResolvedValue(null);
148
+ const result = await handleUpdateLayout(sdk, { type: 'page', id: 'missing', layout: {} });
149
+ expect(result).toHaveProperty('isError', true);
150
+ });
151
+ });
152
+ describe('add_module', () => {
153
+ it('adds module to specified column', async () => {
154
+ const layout = makeLayout();
155
+ const sdk = createMockSdk(JSON.stringify(layout));
156
+ const result = await handleAddModule(sdk, {
157
+ type: 'page',
158
+ id: '1',
159
+ region: 'main',
160
+ rowId: 'row-1',
161
+ colId: 'col-2',
162
+ module: 'image',
163
+ props: { src: '/photo.jpg' },
164
+ });
165
+ expect(result).not.toHaveProperty('isError');
166
+ const data = JSON.parse(result.content[0].text);
167
+ expect(data.module.type).toBe('image');
168
+ expect(data.module.props.src).toBe('/photo.jpg');
169
+ expect(data.module.instanceId).toBeTruthy();
170
+ // Verify the layout was saved
171
+ expect(sdk.content.update).toHaveBeenCalled();
172
+ const savedLayout = JSON.parse(vi.mocked(sdk.content.update).mock.calls[0][2].layoutJson);
173
+ const col2 = savedLayout.regions.main[0].columns[1];
174
+ expect(col2.nodes).toHaveLength(1);
175
+ expect(col2.nodes[0].type).toBe('image');
176
+ });
177
+ it('returns error for missing row', async () => {
178
+ const layout = makeLayout();
179
+ const sdk = createMockSdk(JSON.stringify(layout));
180
+ const result = await handleAddModule(sdk, {
181
+ type: 'page', id: '1', region: 'main', rowId: 'bad-row', colId: 'col-1', module: 'text',
182
+ });
183
+ expect(result).toHaveProperty('isError', true);
184
+ expect(result.content[0].text).toContain('bad-row');
185
+ });
186
+ it('returns error for missing column', async () => {
187
+ const layout = makeLayout();
188
+ const sdk = createMockSdk(JSON.stringify(layout));
189
+ const result = await handleAddModule(sdk, {
190
+ type: 'page', id: '1', region: 'main', rowId: 'row-1', colId: 'bad-col', module: 'text',
191
+ });
192
+ expect(result).toHaveProperty('isError', true);
193
+ expect(result.content[0].text).toContain('bad-col');
194
+ });
195
+ it('returns error when content not found', async () => {
196
+ const sdk = createMockSdk();
197
+ vi.mocked(sdk.content.getById).mockResolvedValue(null);
198
+ const result = await handleAddModule(sdk, {
199
+ type: 'page', id: 'x', region: 'main', rowId: 'r', colId: 'c', module: 'text',
200
+ });
201
+ expect(result).toHaveProperty('isError', true);
202
+ });
203
+ });
204
+ describe('remove_module', () => {
205
+ it('removes module by instanceId', async () => {
206
+ const layout = makeLayout();
207
+ const sdk = createMockSdk(JSON.stringify(layout));
208
+ const result = await handleRemoveModule(sdk, {
209
+ type: 'page', id: '1', region: 'main', rowId: 'row-1', colId: 'col-1', instanceId: 'inst-1',
210
+ });
211
+ expect(result).not.toHaveProperty('isError');
212
+ const data = JSON.parse(result.content[0].text);
213
+ expect(data.removed).toBe('inst-1');
214
+ const savedLayout = JSON.parse(vi.mocked(sdk.content.update).mock.calls[0][2].layoutJson);
215
+ expect(savedLayout.regions.main[0].columns[0].nodes).toHaveLength(0);
216
+ });
217
+ it('returns error for missing module', async () => {
218
+ const layout = makeLayout();
219
+ const sdk = createMockSdk(JSON.stringify(layout));
220
+ const result = await handleRemoveModule(sdk, {
221
+ type: 'page', id: '1', region: 'main', rowId: 'row-1', colId: 'col-1', instanceId: 'bad-inst',
222
+ });
223
+ expect(result).toHaveProperty('isError', true);
224
+ expect(result.content[0].text).toContain('bad-inst');
225
+ });
226
+ });
227
+ describe('update_module_props', () => {
228
+ it('merges props into existing module', async () => {
229
+ const layout = makeLayout();
230
+ const sdk = createMockSdk(JSON.stringify(layout));
231
+ const result = await handleUpdateModuleProps(sdk, {
232
+ type: 'page', id: '1', region: 'main', rowId: 'row-1', colId: 'col-1',
233
+ instanceId: 'inst-1', props: { color: 'red' },
234
+ });
235
+ expect(result).not.toHaveProperty('isError');
236
+ const data = JSON.parse(result.content[0].text);
237
+ expect(data.module.props.content).toBe('Hello');
238
+ expect(data.module.props.color).toBe('red');
239
+ });
240
+ it('returns error for missing module', async () => {
241
+ const layout = makeLayout();
242
+ const sdk = createMockSdk(JSON.stringify(layout));
243
+ const result = await handleUpdateModuleProps(sdk, {
244
+ type: 'page', id: '1', region: 'main', rowId: 'row-1', colId: 'col-1',
245
+ instanceId: 'bad', props: {},
246
+ });
247
+ expect(result).toHaveProperty('isError', true);
248
+ });
249
+ });
250
+ describe('add_row', () => {
251
+ it('adds a new section to existing region', async () => {
252
+ const layout = makeLayout();
253
+ const sdk = createMockSdk(JSON.stringify(layout));
254
+ const result = await handleAddRow(sdk, {
255
+ type: 'page', id: '1', region: 'main',
256
+ columns: [{ width: 6 }, { width: 6 }],
257
+ });
258
+ expect(result).not.toHaveProperty('isError');
259
+ const data = JSON.parse(result.content[0].text);
260
+ expect(data.section.type).toBe('section');
261
+ expect(data.section.columns).toHaveLength(2);
262
+ expect(data.section.columns[0].width).toBe(6);
263
+ expect(data.layout.regions.main).toHaveLength(2);
264
+ });
265
+ it('creates region if it does not exist', async () => {
266
+ const layout = makeLayout();
267
+ const sdk = createMockSdk(JSON.stringify(layout));
268
+ const result = await handleAddRow(sdk, {
269
+ type: 'page', id: '1', region: 'sidebar',
270
+ columns: [{ width: 12 }],
271
+ });
272
+ expect(result).not.toHaveProperty('isError');
273
+ const data = JSON.parse(result.content[0].text);
274
+ expect(data.layout.regions.sidebar).toHaveLength(1);
275
+ });
276
+ it('returns error when content not found', async () => {
277
+ const sdk = createMockSdk();
278
+ vi.mocked(sdk.content.getById).mockResolvedValue(null);
279
+ const result = await handleAddRow(sdk, {
280
+ type: 'page', id: 'x', region: 'main', columns: [{ width: 12 }],
281
+ });
282
+ expect(result).toHaveProperty('isError', true);
283
+ });
284
+ });
285
+ describe('remove_row', () => {
286
+ it('removes section by rowId', async () => {
287
+ const layout = makeLayout();
288
+ const sdk = createMockSdk(JSON.stringify(layout));
289
+ const result = await handleRemoveRow(sdk, {
290
+ type: 'page', id: '1', region: 'main', rowId: 'row-1',
291
+ });
292
+ expect(result).not.toHaveProperty('isError');
293
+ const data = JSON.parse(result.content[0].text);
294
+ expect(data.removed).toBe('row-1');
295
+ expect(data.layout.regions.main).toHaveLength(0);
296
+ });
297
+ it('returns error for missing region', async () => {
298
+ const layout = makeLayout();
299
+ const sdk = createMockSdk(JSON.stringify(layout));
300
+ const result = await handleRemoveRow(sdk, {
301
+ type: 'page', id: '1', region: 'nonexistent', rowId: 'row-1',
302
+ });
303
+ expect(result).toHaveProperty('isError', true);
304
+ expect(result.content[0].text).toContain('nonexistent');
305
+ });
306
+ it('returns error for missing row', async () => {
307
+ const layout = makeLayout();
308
+ const sdk = createMockSdk(JSON.stringify(layout));
309
+ const result = await handleRemoveRow(sdk, {
310
+ type: 'page', id: '1', region: 'main', rowId: 'bad-row',
311
+ });
312
+ expect(result).toHaveProperty('isError', true);
313
+ expect(result.content[0].text).toContain('bad-row');
314
+ });
315
+ });
316
+ //# sourceMappingURL=site-layout-tools.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-layout-tools.test.js","sourceRoot":"","sources":["../../src/__tests__/site-layout-tools.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=site-other-tools.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-other-tools.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/site-other-tools.test.ts"],"names":[],"mappings":""}