@appaflytech/wappa-mcp 0.0.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 (68) hide show
  1. package/.env.example +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +200 -0
  4. package/dist/auth.d.ts +20 -0
  5. package/dist/auth.d.ts.map +1 -0
  6. package/dist/auth.js +58 -0
  7. package/dist/auth.js.map +1 -0
  8. package/dist/base-components.d.ts +52 -0
  9. package/dist/base-components.d.ts.map +1 -0
  10. package/dist/base-components.js +552 -0
  11. package/dist/base-components.js.map +1 -0
  12. package/dist/client.d.ts +141 -0
  13. package/dist/client.d.ts.map +1 -0
  14. package/dist/client.js +341 -0
  15. package/dist/client.js.map +1 -0
  16. package/dist/index.d.ts +10 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +287 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/tools/components.d.ts +217 -0
  21. package/dist/tools/components.d.ts.map +1 -0
  22. package/dist/tools/components.js +258 -0
  23. package/dist/tools/components.js.map +1 -0
  24. package/dist/tools/dynamic-entities.d.ts +308 -0
  25. package/dist/tools/dynamic-entities.d.ts.map +1 -0
  26. package/dist/tools/dynamic-entities.js +278 -0
  27. package/dist/tools/dynamic-entities.js.map +1 -0
  28. package/dist/tools/entities.d.ts +212 -0
  29. package/dist/tools/entities.d.ts.map +1 -0
  30. package/dist/tools/entities.js +223 -0
  31. package/dist/tools/entities.js.map +1 -0
  32. package/dist/tools/general.d.ts +93 -0
  33. package/dist/tools/general.d.ts.map +1 -0
  34. package/dist/tools/general.js +218 -0
  35. package/dist/tools/general.js.map +1 -0
  36. package/dist/tools/languages.d.ts +157 -0
  37. package/dist/tools/languages.d.ts.map +1 -0
  38. package/dist/tools/languages.js +142 -0
  39. package/dist/tools/languages.js.map +1 -0
  40. package/dist/tools/layouts.d.ts +244 -0
  41. package/dist/tools/layouts.d.ts.map +1 -0
  42. package/dist/tools/layouts.js +218 -0
  43. package/dist/tools/layouts.js.map +1 -0
  44. package/dist/tools/menus.d.ts +154 -0
  45. package/dist/tools/menus.d.ts.map +1 -0
  46. package/dist/tools/menus.js +173 -0
  47. package/dist/tools/menus.js.map +1 -0
  48. package/dist/tools/pages.d.ts +472 -0
  49. package/dist/tools/pages.d.ts.map +1 -0
  50. package/dist/tools/pages.js +465 -0
  51. package/dist/tools/pages.js.map +1 -0
  52. package/dist/tools/queries.d.ts +221 -0
  53. package/dist/tools/queries.d.ts.map +1 -0
  54. package/dist/tools/queries.js +210 -0
  55. package/dist/tools/queries.js.map +1 -0
  56. package/dist/tools/sites.d.ts +187 -0
  57. package/dist/tools/sites.d.ts.map +1 -0
  58. package/dist/tools/sites.js +167 -0
  59. package/dist/tools/sites.js.map +1 -0
  60. package/dist/tools/themes.d.ts +182 -0
  61. package/dist/tools/themes.d.ts.map +1 -0
  62. package/dist/tools/themes.js +175 -0
  63. package/dist/tools/themes.js.map +1 -0
  64. package/dist/tools/widgets.d.ts +216 -0
  65. package/dist/tools/widgets.d.ts.map +1 -0
  66. package/dist/tools/widgets.js +182 -0
  67. package/dist/tools/widgets.js.map +1 -0
  68. package/package.json +50 -0
@@ -0,0 +1,218 @@
1
+ /**
2
+ * MCP Tools for WAP Layout CRUD operations
3
+ * Layouts = page wrapper templates containing header/footer/navigation
4
+ * They define the outer shell; Pages define the inner content area.
5
+ */
6
+ export function getLayoutTools(client) {
7
+ return {
8
+ // ─── List Layouts ─────────────────────────────────────
9
+ list_layouts: {
10
+ description: "WAP layout'larını listeler. Layout'lar sayfa dış kabuğunu (header, footer, nav) tanımlar.",
11
+ inputSchema: {
12
+ type: "object",
13
+ properties: {
14
+ title: { type: "string", description: "Başlık ile filtrele" },
15
+ status: {
16
+ type: "string",
17
+ description: "Durum: Published | Draft",
18
+ enum: ["Published", "Draft"],
19
+ },
20
+ pageIndex: {
21
+ type: "number",
22
+ description: "Sayfa numarası (0-based)",
23
+ },
24
+ pageLength: { type: "number", description: "Sayfa boyutu" },
25
+ },
26
+ },
27
+ handler: async (args) => {
28
+ const params = {};
29
+ if (args.title)
30
+ params.title = args.title;
31
+ if (args.status)
32
+ params.status = args.status;
33
+ if (args.pageIndex !== undefined)
34
+ params.pageIndex = String(args.pageIndex);
35
+ if (args.pageLength !== undefined)
36
+ params.pageLength = String(args.pageLength);
37
+ const result = await client.getLayouts(params);
38
+ return {
39
+ content: [
40
+ { type: "text", text: JSON.stringify(result, null, 2) },
41
+ ],
42
+ };
43
+ },
44
+ },
45
+ // ─── Get Layout ───────────────────────────────────────
46
+ get_layout: {
47
+ description: "Belirli bir layout'un tüm detaylarını getirir (schema, refs, theme bilgisi dahil).",
48
+ inputSchema: {
49
+ type: "object",
50
+ properties: {
51
+ id: { type: "string", description: "Layout ID (GUID)" },
52
+ },
53
+ required: ["id"],
54
+ },
55
+ handler: async (args) => {
56
+ const result = await client.getLayout(args.id);
57
+ return {
58
+ content: [
59
+ { type: "text", text: JSON.stringify(result, null, 2) },
60
+ ],
61
+ };
62
+ },
63
+ },
64
+ // ─── Create Layout ────────────────────────────────────
65
+ create_layout: {
66
+ description: `Yeni bir layout oluşturur.
67
+ 'schema': Desktop görünüm için component ağacı (PageComponent[] JSON). Header, footer, nav bileşenlerini içerir.
68
+ 'mobileSchema': Mobil görünüm için ayrı component ağacı (opsiyonel).
69
+ 'refs': Schema'da kullanılan component referansları: [{ key: "refKey", componentId: "GUID" }].
70
+ 'themeId': Bu layout'ta kullanılacak theme ID (opsiyonel).`,
71
+ inputSchema: {
72
+ type: "object",
73
+ properties: {
74
+ title: { type: "string", description: "Layout başlığı" },
75
+ description: { type: "string", description: "Layout açıklaması" },
76
+ schema: {
77
+ type: "object",
78
+ description: "Desktop component ağacı (PageComponent[] JSON yapısı)",
79
+ },
80
+ refs: {
81
+ type: "array",
82
+ description: "Component referansları: [{ key: string, componentId: GUID }]",
83
+ },
84
+ mobileSchema: {
85
+ type: "object",
86
+ description: "Mobil component ağacı (opsiyonel)",
87
+ },
88
+ mobileRefs: {
89
+ type: "array",
90
+ description: "Mobil component referansları (opsiyonel)",
91
+ },
92
+ themeId: {
93
+ type: "string",
94
+ description: "Theme ID (GUID, opsiyonel)",
95
+ },
96
+ accessType: {
97
+ type: "number",
98
+ description: "Erişim tipi: 0=public, 1=private",
99
+ },
100
+ selectedSiteIds: {
101
+ type: "array",
102
+ description: "Erişilebilecek site ID'leri",
103
+ },
104
+ },
105
+ required: ["title"],
106
+ },
107
+ handler: async (args) => {
108
+ const result = await client.createLayout(args);
109
+ return {
110
+ content: [
111
+ { type: "text", text: JSON.stringify(result, null, 2) },
112
+ ],
113
+ };
114
+ },
115
+ },
116
+ // ─── Update Layout ────────────────────────────────────
117
+ update_layout: {
118
+ description: "Mevcut bir layout'u günceller.",
119
+ inputSchema: {
120
+ type: "object",
121
+ properties: {
122
+ id: { type: "string", description: "Güncellenecek layout ID" },
123
+ title: { type: "string", description: "Yeni başlık" },
124
+ description: { type: "string", description: "Yeni açıklama" },
125
+ schema: {
126
+ type: "object",
127
+ description: "Güncellenmiş component ağacı",
128
+ },
129
+ refs: { type: "array", description: "Güncellenmiş referanslar" },
130
+ mobileSchema: {
131
+ type: "object",
132
+ description: "Güncellenmiş mobil schema",
133
+ },
134
+ mobileRefs: {
135
+ type: "array",
136
+ description: "Güncellenmiş mobil referanslar",
137
+ },
138
+ themeId: { type: "string", description: "Theme ID" },
139
+ accessType: {
140
+ type: "number",
141
+ description: "Erişim tipi: 0=public, 1=private",
142
+ },
143
+ selectedSiteIds: { type: "array", description: "Site ID'leri" },
144
+ status: { type: "string", description: "Durum: Published | Draft" },
145
+ },
146
+ required: ["id"],
147
+ },
148
+ handler: async (args) => {
149
+ const { id, ...data } = args;
150
+ const result = await client.updateLayout(id, data);
151
+ return {
152
+ content: [
153
+ { type: "text", text: JSON.stringify(result, null, 2) },
154
+ ],
155
+ };
156
+ },
157
+ },
158
+ // ─── Delete Layout ────────────────────────────────────
159
+ delete_layout: {
160
+ description: "Bir layout'u siler. Bu layout'u kullanan sayfalar etkilenebilir.",
161
+ inputSchema: {
162
+ type: "object",
163
+ properties: {
164
+ id: { type: "string", description: "Silinecek layout ID" },
165
+ },
166
+ required: ["id"],
167
+ },
168
+ handler: async (args) => {
169
+ const result = await client.deleteLayout(args.id);
170
+ return {
171
+ content: [
172
+ { type: "text", text: JSON.stringify(result, null, 2) },
173
+ ],
174
+ };
175
+ },
176
+ },
177
+ // ─── Clone Layout ─────────────────────────────────────
178
+ clone_layout: {
179
+ description: "Mevcut bir layout'u kopyalar. Yeni bir taslak layout oluşturur.",
180
+ inputSchema: {
181
+ type: "object",
182
+ properties: {
183
+ id: { type: "string", description: "Kopyalanacak layout ID" },
184
+ },
185
+ required: ["id"],
186
+ },
187
+ handler: async (args) => {
188
+ const result = await client.cloneLayout(args.id);
189
+ return {
190
+ content: [
191
+ { type: "text", text: JSON.stringify(result, null, 2) },
192
+ ],
193
+ };
194
+ },
195
+ },
196
+ // ─── Clone Layout to Site ─────────────────────────────
197
+ clone_layout_to_site: {
198
+ description: "Bir layout'u başka bir siteye kopyalar.",
199
+ inputSchema: {
200
+ type: "object",
201
+ properties: {
202
+ id: { type: "string", description: "Kopyalanacak layout ID" },
203
+ targetSiteId: { type: "string", description: "Hedef site ID (GUID)" },
204
+ },
205
+ required: ["id", "targetSiteId"],
206
+ },
207
+ handler: async (args) => {
208
+ const result = await client.cloneLayoutToSite(args.id, args.targetSiteId);
209
+ return {
210
+ content: [
211
+ { type: "text", text: JSON.stringify(result, null, 2) },
212
+ ],
213
+ };
214
+ },
215
+ },
216
+ };
217
+ }
218
+ //# sourceMappingURL=layouts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layouts.js","sourceRoot":"","sources":["../../src/tools/layouts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * MCP Tools for WAP Menu CRUD operations
3
+ * Menus = hierarchical navigation menu definitions (recursive tree structure)
4
+ */
5
+ import { WapClient } from "../client.js";
6
+ export declare function getMenuTools(client: WapClient): {
7
+ list_menus: {
8
+ description: string;
9
+ inputSchema: {
10
+ type: "object";
11
+ properties: {
12
+ title: {
13
+ type: string;
14
+ description: string;
15
+ };
16
+ pageIndex: {
17
+ type: string;
18
+ description: string;
19
+ };
20
+ pageLength: {
21
+ type: string;
22
+ description: string;
23
+ };
24
+ };
25
+ };
26
+ handler: (args: {
27
+ title?: string;
28
+ pageIndex?: number;
29
+ pageLength?: number;
30
+ }) => Promise<{
31
+ content: {
32
+ type: "text";
33
+ text: string;
34
+ }[];
35
+ }>;
36
+ };
37
+ get_menu: {
38
+ description: string;
39
+ inputSchema: {
40
+ type: "object";
41
+ properties: {
42
+ id: {
43
+ type: string;
44
+ description: string;
45
+ };
46
+ };
47
+ required: string[];
48
+ };
49
+ handler: (args: {
50
+ id: string;
51
+ }) => Promise<{
52
+ content: {
53
+ type: "text";
54
+ text: string;
55
+ }[];
56
+ }>;
57
+ };
58
+ create_menu: {
59
+ description: string;
60
+ inputSchema: {
61
+ type: "object";
62
+ properties: {
63
+ title: {
64
+ type: string;
65
+ description: string;
66
+ };
67
+ children: {
68
+ type: string;
69
+ description: string;
70
+ };
71
+ };
72
+ required: string[];
73
+ };
74
+ handler: (args: {
75
+ title: string;
76
+ children?: unknown[];
77
+ }) => Promise<{
78
+ content: {
79
+ type: "text";
80
+ text: string;
81
+ }[];
82
+ }>;
83
+ };
84
+ update_menu: {
85
+ description: string;
86
+ inputSchema: {
87
+ type: "object";
88
+ properties: {
89
+ id: {
90
+ type: string;
91
+ description: string;
92
+ };
93
+ title: {
94
+ type: string;
95
+ description: string;
96
+ };
97
+ children: {
98
+ type: string;
99
+ description: string;
100
+ };
101
+ };
102
+ required: string[];
103
+ };
104
+ handler: (args: Record<string, unknown>) => Promise<{
105
+ content: {
106
+ type: "text";
107
+ text: string;
108
+ }[];
109
+ }>;
110
+ };
111
+ delete_menu: {
112
+ description: string;
113
+ inputSchema: {
114
+ type: "object";
115
+ properties: {
116
+ id: {
117
+ type: string;
118
+ description: string;
119
+ };
120
+ };
121
+ required: string[];
122
+ };
123
+ handler: (args: {
124
+ id: string;
125
+ }) => Promise<{
126
+ content: {
127
+ type: "text";
128
+ text: string;
129
+ }[];
130
+ }>;
131
+ };
132
+ clone_menu: {
133
+ description: string;
134
+ inputSchema: {
135
+ type: "object";
136
+ properties: {
137
+ id: {
138
+ type: string;
139
+ description: string;
140
+ };
141
+ };
142
+ required: string[];
143
+ };
144
+ handler: (args: {
145
+ id: string;
146
+ }) => Promise<{
147
+ content: {
148
+ type: "text";
149
+ text: string;
150
+ }[];
151
+ }>;
152
+ };
153
+ };
154
+ //# sourceMappingURL=menus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menus.d.ts","sourceRoot":"","sources":["../../src/tools/menus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;wBAiBlB;YACpB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB;;;;;;;;;;;;;;;;;;;wBA2BqB;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;wBAqDd;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA0BvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;wBAwBvB;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;wBAoBd;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE;;;;;;;EAUzC"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * MCP Tools for WAP Menu CRUD operations
3
+ * Menus = hierarchical navigation menu definitions (recursive tree structure)
4
+ */
5
+ export function getMenuTools(client) {
6
+ return {
7
+ // ─── List Menus ───────────────────────────────────────
8
+ list_menus: {
9
+ description: "WAP navigasyon menülerini listeler. Menüler hiyerarşik ağaç yapısındadır.",
10
+ inputSchema: {
11
+ type: "object",
12
+ properties: {
13
+ title: { type: "string", description: "Menü başlığı ile filtrele" },
14
+ pageIndex: {
15
+ type: "number",
16
+ description: "Sayfa numarası (0-based)",
17
+ },
18
+ pageLength: { type: "number", description: "Sayfa boyutu" },
19
+ },
20
+ },
21
+ handler: async (args) => {
22
+ const params = {};
23
+ if (args.title)
24
+ params.title = args.title;
25
+ if (args.pageIndex !== undefined)
26
+ params.pageIndex = String(args.pageIndex);
27
+ if (args.pageLength !== undefined)
28
+ params.pageLength = String(args.pageLength);
29
+ const result = await client.getMenus(params);
30
+ return {
31
+ content: [
32
+ { type: "text", text: JSON.stringify(result, null, 2) },
33
+ ],
34
+ };
35
+ },
36
+ },
37
+ // ─── Get Menu ─────────────────────────────────────────
38
+ get_menu: {
39
+ description: "Belirli bir menünün tüm detaylarını getirir (tüm alt menü öğeleri dahil).",
40
+ inputSchema: {
41
+ type: "object",
42
+ properties: {
43
+ id: { type: "string", description: "Menü ID (GUID)" },
44
+ },
45
+ required: ["id"],
46
+ },
47
+ handler: async (args) => {
48
+ const result = await client.getMenu(args.id);
49
+ return {
50
+ content: [
51
+ { type: "text", text: JSON.stringify(result, null, 2) },
52
+ ],
53
+ };
54
+ },
55
+ },
56
+ // ─── Create Menu ──────────────────────────────────────
57
+ create_menu: {
58
+ description: `Yeni bir menü oluşturur.
59
+ 'children': Özyinelemeli alt menü öğeleri.
60
+ Her menü öğesi:
61
+ {
62
+ title: string (zorunlu),
63
+ pageId: GUID (WAP sayfasına link için, opsiyonel),
64
+ staticUrl: string (dış URL, opsiyonel),
65
+ target: "_blank" | "_self" (opsiyonel),
66
+ icon: string (ikon adı, opsiyonel),
67
+ className: string (CSS class, opsiyonel),
68
+ children: [] (alt menü öğeleri)
69
+ }
70
+
71
+ Örnek:
72
+ {
73
+ "title": "Ana Menü",
74
+ "children": [
75
+ { "title": "Anasayfa", "pageId": "abc-guid" },
76
+ { "title": "Hakkımızda", "pageId": "def-guid" },
77
+ {
78
+ "title": "Hizmetler",
79
+ "children": [
80
+ { "title": "Danışmanlık", "pageId": "ghi-guid" }
81
+ ]
82
+ }
83
+ ]
84
+ }`,
85
+ inputSchema: {
86
+ type: "object",
87
+ properties: {
88
+ title: {
89
+ type: "string",
90
+ description: 'Menü başlığı (örn: "Ana Navigasyon")',
91
+ },
92
+ children: {
93
+ type: "array",
94
+ description: "Alt menü öğeleri (özyinelemeli)",
95
+ },
96
+ },
97
+ required: ["title"],
98
+ },
99
+ handler: async (args) => {
100
+ const result = await client.createMenu(args);
101
+ return {
102
+ content: [
103
+ { type: "text", text: JSON.stringify(result, null, 2) },
104
+ ],
105
+ };
106
+ },
107
+ },
108
+ // ─── Update Menu ──────────────────────────────────────
109
+ update_menu: {
110
+ description: "Mevcut bir menüyü günceller. Tüm children ağacını gönderin.",
111
+ inputSchema: {
112
+ type: "object",
113
+ properties: {
114
+ id: { type: "string", description: "Güncellenecek menü ID" },
115
+ title: { type: "string", description: "Menü başlığı" },
116
+ children: {
117
+ type: "array",
118
+ description: "Güncellenmiş menü öğeleri (tüm ağacı gönderin)",
119
+ },
120
+ },
121
+ required: ["id"],
122
+ },
123
+ handler: async (args) => {
124
+ const { id, ...data } = args;
125
+ const result = await client.updateMenu(id, data);
126
+ return {
127
+ content: [
128
+ { type: "text", text: JSON.stringify(result, null, 2) },
129
+ ],
130
+ };
131
+ },
132
+ },
133
+ // ─── Delete Menu ──────────────────────────────────────
134
+ delete_menu: {
135
+ description: "Bir menüyü ve tüm alt öğelerini siler.",
136
+ inputSchema: {
137
+ type: "object",
138
+ properties: {
139
+ id: { type: "string", description: "Silinecek menü ID" },
140
+ },
141
+ required: ["id"],
142
+ },
143
+ handler: async (args) => {
144
+ const result = await client.deleteMenu(args.id);
145
+ return {
146
+ content: [
147
+ { type: "text", text: JSON.stringify(result, null, 2) },
148
+ ],
149
+ };
150
+ },
151
+ },
152
+ // ─── Clone Menu ───────────────────────────────────────
153
+ clone_menu: {
154
+ description: "Mevcut bir menüyü kopyalar.",
155
+ inputSchema: {
156
+ type: "object",
157
+ properties: {
158
+ id: { type: "string", description: "Kopyalanacak menü ID" },
159
+ },
160
+ required: ["id"],
161
+ },
162
+ handler: async (args) => {
163
+ const result = await client.cloneMenu(args.id);
164
+ return {
165
+ content: [
166
+ { type: "text", text: JSON.stringify(result, null, 2) },
167
+ ],
168
+ };
169
+ },
170
+ },
171
+ };
172
+ }
173
+ //# sourceMappingURL=menus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menus.js","sourceRoot":"","sources":["../../src/tools/menus.ts"],"names":[],"mappings":"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"}