@appaflytech/zeyrek-ai-mcp 0.0.20 → 0.0.21

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 (65) hide show
  1. package/README.md +14 -13
  2. package/dist/config.js +0 -2
  3. package/dist/knowledge/componentCatalog.js +940 -215
  4. package/dist/knowledge/componentEvents.js +368 -75
  5. package/dist/knowledge/normalize.js +66 -63
  6. package/dist/knowledge/rules.js +29 -6
  7. package/dist/knowledge/styleResolve.js +1 -1
  8. package/dist/knowledge/themeResolve.js +3 -3
  9. package/dist/platform/diagnostics.js +85 -0
  10. package/dist/platform/domSummary.js +1 -1
  11. package/dist/platform/ifExists.js +129 -0
  12. package/dist/platform/responses.js +2 -1
  13. package/dist/platform/{capture/capture.js → screenshot.js} +509 -23
  14. package/dist/platform/strictArguments.js +22 -2
  15. package/dist/platform/writeDiff.js +58 -31
  16. package/dist/platform/writeView.js +17 -0
  17. package/dist/resources/guides/component.md +9 -6
  18. package/dist/resources/guides/functions.md +32 -3
  19. package/dist/resources/guides/getting-started.md +35 -0
  20. package/dist/resources/guides/layout.md +7 -11
  21. package/dist/resources/guides/page.md +49 -71
  22. package/dist/resources/guides/translation.md +5 -6
  23. package/dist/resources/schema-fingerprint.json +2 -2
  24. package/dist/resources/schemas/GlobalFunctionUpdateResultDto.json +18 -0
  25. package/dist/server.js +0 -2
  26. package/dist/tools/applications.js +3 -60
  27. package/dist/tools/components.js +10 -50
  28. package/dist/tools/designSchemaPatch.js +13 -18
  29. package/dist/tools/externalComponents.js +4 -25
  30. package/dist/tools/flows.js +38 -51
  31. package/dist/tools/functions.js +20 -10
  32. package/dist/tools/layouts.js +9 -41
  33. package/dist/tools/microservices.js +39 -11
  34. package/dist/tools/pages.js +95 -127
  35. package/dist/tools/platformInfo.js +1 -2
  36. package/dist/tools/schemaOps.js +2 -2
  37. package/dist/tools/screenWrite.js +2 -2
  38. package/dist/tools/screens.js +3 -9
  39. package/dist/tools/workflows.js +39 -12
  40. package/package.json +7 -2
  41. package/dist/knowledge/mobileComponentCatalog.js +0 -331
  42. package/dist/knowledge/mobileComponentEvents.js +0 -50
  43. package/dist/knowledge/platform/lint.js +0 -205
  44. package/dist/knowledge/platform/mobile.js +0 -78
  45. package/dist/knowledge/platform/mobileRules.js +0 -121
  46. package/dist/knowledge/platform/mobileTabs.js +0 -108
  47. package/dist/knowledge/platform/profile.js +0 -20
  48. package/dist/knowledge/platform/resolve.js +0 -122
  49. package/dist/knowledge/platform/web.js +0 -38
  50. package/dist/knowledge/styleResolveNative.js +0 -410
  51. package/dist/platform/capture/actions.js +0 -333
  52. package/dist/platform/capture/browser.js +0 -1
  53. package/dist/platform/capture/index.js +0 -10
  54. package/dist/platform/capture/readiness.js +0 -103
  55. package/dist/platform/capture/summary.js +0 -77
  56. package/dist/platform/capture/target.js +0 -5
  57. package/dist/platform/capture/targets/studio-mobile.js +0 -15
  58. package/dist/platform/capture/targets/studio-web.js +0 -5
  59. package/dist/resources/examples/mobile-app-shell-drawer.json +0 -209
  60. package/dist/resources/examples/mobile-app-shell-stack.json +0 -123
  61. package/dist/resources/examples/mobile-app-shell-tab.json +0 -174
  62. package/dist/resources/examples/mobile-list-detail-form.json +0 -656
  63. package/dist/resources/guides/mobile.md +0 -215
  64. package/dist/tools/mobile.js +0 -203
  65. package/dist/tools/profileWrite.js +0 -45
@@ -1,656 +0,0 @@
1
- {
2
- "_meta": {
3
- "synthetic": true,
4
- "note": "Mobil uygulamada üç sayfalık liste → detay → form akışı (G6 koşusunun girdisi): 'gorevler' mount'ta görevleri yükleyip repeater'a yazar, satıra dokunmak 'detay'ı id ile açar, 'yeni' formu kaydedip toast gösterir ve listeye döner. Yerleşim flex (blocks yok), görünüm tipli gruplarla.",
5
- "pairsWith": "mobile-app-shell-stack ya da mobile-app-shell-tab (kabuk), microservice-table-list (liste ucu), page-form-upsert (web'deki form ikizi)",
6
- "sourceRef": "platform_guide('mobile') §Kurulum sırası, §Akış adımları; ngapps://examples/flow-list-to-form (redirect query sözleşmesi)"
7
- },
8
- "_rules": {
9
- "order": "Önce kabuk ve sayfalar (mobile_app_create), sonra microservice'ler, sonra her sayfanın schemaPatchOps'u, en son akışlar (flow_create) ve bağları (set_event).",
10
- "flexOnly": "Mobil çizer blocks okumaz: add_component'e blocks yazma, sıra index'tir (MOB-001). Genişlik appearance.widthType ile.",
11
- "repeaterRows": "repeater'ın satır şablonu çocuklarıdır ve satırlar `rows` prop'una yazılır; satır verisi item.<alan> ile okunur. `card` çocuk almaz: satır kartının alanları `title`/`description` bağıyla verilir. Satıra dokunuş MOBİLDE repeater'ın kendi `itemPress` olayıdır (`itemPressable: true`) — kartın `click`'i değil; payload `{ index, row }` taşır. Satır iç rolü <elementId>__row-<i> page_screenshot'ta tıklanabilir.",
12
- "queryIsExpression": "redirect.args.query ifadedir: `id=${lst_tasks.selectedItem.id}`; hedef sayfa Page.queryParams.id ile okur (flow-list-to-form ile aynı sözleşme). Satır çocuğunun AKIŞINDA `item`/`Row` tıklanan satır DEĞİLDİR (yalnız prop bağlarında satır bağlamıdır): dokunuş önce tekrarlayıcının `selectedIndex`'ini yazar, akış satırı `<tekrarlayıcı>.selectedItem` olarak okur.",
13
- "toastDoesNotWait": "alert.alertType 'success' toast'tur ve beklemez; ardından gelen redirect hemen koşar. Onay beklemek için alertType verme.",
14
- "catalog": "repeater, form, textinput, textarea, card ve text mobil kataloğun Dalga 1 bileşenleridir; component_list mobil uygulamada döndürmüyorsa yazım MOB-003 alır.",
15
- "verify": "page_screenshot({ applicationSlug: 'saha', pageSlug: 'yeni', actions: [{ action: 'set', target: 'in_title', value: 'Sayaç okuma' }, { action: 'submit', target: 'frm_task' }] }) → submitVia 'bridge', flowRuns ≥ 1, son kare 'gorevler'.",
16
- "propNames": "Prop adları mobil kataloğun adlarıdır (component_get): metin `text.content`, satırlar `repeater.rows`. Mobilde istemci tarafı form doğrulaması yok (`isRequired` prop'u yok) — zorunlu alanı kayıt akışı denetler. Kod bağı ifadeyi `ref`'te taşır: `{ type: 'code', ref: '{{ item.title }}' }` — `data`'ya yazılan ifade çizilmez (boş metin).",
17
- "detailFromSteps": "Detay alanları uçtan gelen veriyi SETTER adımıyla alır (`fill_detail`, `value.type: 'storage'`): `{{ Steps.… }}` kod bağı ilk çizimde okunur ve `Steps`'e yazmak düğümü yeniden okutmaz — sayfa boş kalırdı (web `page-detail-profile` ile aynı desen).",
18
- "mobileBehavior": "Çekerek yenile listenin değil onu saran `scroll-view`'ın işidir (`refreshable: true` + `refresh` olayı). `redirect.presentation` push | modal | replace alır; küme dışı değer MOB-008 uyarısı ve backend 422'sidir. Sekme hedefine giden redirect'te modal `navigate`'e düşer."
19
- },
20
- "pages": [
21
- {
22
- "pageCreateArgs": {
23
- "name": "Görevler",
24
- "slug": "gorevler"
25
- },
26
- "schemaPatchOps": [
27
- {
28
- "op": "add_component",
29
- "parent": "page_container",
30
- "component": {
31
- "elementId": "scr_tasks",
32
- "name": "scr_tasks",
33
- "type": "scroll-view",
34
- "kind": "component",
35
- "props": {
36
- "refreshable": {
37
- "type": "static",
38
- "ref": null,
39
- "data": true
40
- }
41
- },
42
- "appearance": {
43
- "widthType": "fill",
44
- "heightType": "fill"
45
- },
46
- "blocks": [],
47
- "events": [],
48
- "validations": [],
49
- "stateBindings": [],
50
- "children": []
51
- }
52
- },
53
- {
54
- "op": "add_component",
55
- "parent": "scr_tasks",
56
- "component": {
57
- "elementId": "lst_tasks",
58
- "name": "lst_tasks",
59
- "type": "repeater",
60
- "kind": "component",
61
- "props": {
62
- "rows": {
63
- "type": "static",
64
- "ref": null,
65
- "data": []
66
- },
67
- "itemPressable": {
68
- "type": "static",
69
- "ref": null,
70
- "data": true
71
- }
72
- },
73
- "appearance": {
74
- "widthType": "fill"
75
- },
76
- "blocks": [],
77
- "events": [],
78
- "validations": [],
79
- "stateBindings": [],
80
- "children": [
81
- {
82
- "elementId": "row_card",
83
- "name": "row_card",
84
- "type": "card",
85
- "kind": "component",
86
- "props": {
87
- "title": {
88
- "type": "code",
89
- "ref": "{{ item.title }}"
90
- },
91
- "description": {
92
- "type": "code",
93
- "ref": "{{ item.status }}"
94
- }
95
- },
96
- "appearance": {
97
- "widthType": "fill"
98
- },
99
- "blocks": [],
100
- "events": [],
101
- "validations": [],
102
- "stateBindings": [],
103
- "children": []
104
- }
105
- ]
106
- }
107
- },
108
- {
109
- "op": "add_component",
110
- "parent": "page_container",
111
- "component": {
112
- "elementId": "btn_new",
113
- "name": "btn_new",
114
- "type": "button",
115
- "kind": "component",
116
- "props": {
117
- "text": {
118
- "type": "static",
119
- "ref": null,
120
- "data": "Yeni görev"
121
- }
122
- },
123
- "appearance": {
124
- "widthType": "fill"
125
- },
126
- "blocks": [],
127
- "events": [],
128
- "validations": [],
129
- "stateBindings": [],
130
- "children": []
131
- }
132
- }
133
- ],
134
- "mountFlowCreateArgs": {
135
- "host": "page",
136
- "hostId": "<gorevler sayfa id>",
137
- "name": "gorevler mount",
138
- "slug": "gorevler-mount",
139
- "steps": [
140
- {
141
- "stepId": "start",
142
- "name": "start",
143
- "type": "start",
144
- "kind": "normal",
145
- "args": {},
146
- "branches": [
147
- {
148
- "id": "<GUID>",
149
- "name": "always",
150
- "nextStepId": "load_tasks"
151
- }
152
- ]
153
- },
154
- {
155
- "stepId": "load_tasks",
156
- "name": "load_tasks",
157
- "type": "microservice",
158
- "kind": "normal",
159
- "args": {
160
- "microserviceId": "<görev listesi microservice id>",
161
- "isRaw": false,
162
- "parameters": []
163
- },
164
- "branches": [
165
- {
166
- "id": "<GUID>",
167
- "name": "success",
168
- "nextStepId": "apply_rows"
169
- },
170
- {
171
- "id": "<GUID>",
172
- "name": "always",
173
- "nextStepId": null
174
- }
175
- ]
176
- },
177
- {
178
- "stepId": "apply_rows",
179
- "name": "apply_rows",
180
- "type": "setter",
181
- "kind": "normal",
182
- "args": {
183
- "iteratees": [
184
- {
185
- "id": "<GUID>",
186
- "type": "change",
187
- "element": "lst_tasks",
188
- "property": "rows",
189
- "source": "component",
190
- "mapping": {
191
- "source": "",
192
- "mappings": {}
193
- },
194
- "value": {
195
- "type": "code",
196
- "ref": "Steps.load_tasks.data"
197
- }
198
- }
199
- ]
200
- },
201
- "branches": [
202
- {
203
- "id": "<GUID>",
204
- "name": "always",
205
- "nextStepId": null
206
- }
207
- ]
208
- }
209
- ]
210
- },
211
- "rowFlowCreateArgs": {
212
- "host": "page",
213
- "hostId": "<gorevler sayfa id>",
214
- "name": "satırı aç",
215
- "slug": "gorev-ac",
216
- "steps": [
217
- {
218
- "stepId": "start",
219
- "name": "start",
220
- "type": "start",
221
- "kind": "normal",
222
- "args": {},
223
- "branches": [
224
- {
225
- "id": "<GUID>",
226
- "name": "always",
227
- "nextStepId": "go_detail"
228
- }
229
- ]
230
- },
231
- {
232
- "stepId": "go_detail",
233
- "name": "go_detail",
234
- "type": "redirect",
235
- "kind": "normal",
236
- "args": {
237
- "pageId": "<detay sayfa id>",
238
- "path": "detay",
239
- "query": "`id=${lst_tasks.selectedItem.id}`",
240
- "presentation": "modal"
241
- },
242
- "branches": [
243
- {
244
- "id": "<GUID>",
245
- "name": "always",
246
- "nextStepId": null
247
- }
248
- ]
249
- }
250
- ]
251
- },
252
- "bindOps": [
253
- {
254
- "op": "set_event",
255
- "target": "page_container",
256
- "event": "mount",
257
- "eventValue": "<mount akış id>"
258
- },
259
- {
260
- "op": "set_event",
261
- "target": "btn_new",
262
- "event": "click",
263
- "eventValue": "<yeni sayfaya redirect akış id>"
264
- },
265
- {
266
- "op": "set_event",
267
- "target": "lst_tasks",
268
- "event": "itemPress",
269
- "eventValue": "<satırı aç akış id>"
270
- },
271
- {
272
- "op": "set_event",
273
- "target": "scr_tasks",
274
- "event": "refresh",
275
- "eventValue": "<mount akış id>"
276
- }
277
- ]
278
- },
279
- {
280
- "pageCreateArgs": {
281
- "name": "Görev detayı",
282
- "slug": "detay"
283
- },
284
- "schemaPatchOps": [
285
- {
286
- "op": "add_component",
287
- "parent": "page_container",
288
- "component": {
289
- "elementId": "txt_title",
290
- "name": "txt_title",
291
- "type": "text",
292
- "kind": "component",
293
- "props": {
294
- "content": {
295
- "type": "static",
296
- "ref": null,
297
- "data": ""
298
- },
299
- "typographyStyle": {
300
- "type": "static",
301
- "ref": null,
302
- "data": {
303
- "fontSize": "20px",
304
- "fontWeight": "600"
305
- }
306
- }
307
- },
308
- "appearance": {},
309
- "blocks": [],
310
- "events": [],
311
- "validations": [],
312
- "stateBindings": [],
313
- "children": []
314
- }
315
- },
316
- {
317
- "op": "add_component",
318
- "parent": "page_container",
319
- "component": {
320
- "elementId": "txt_status",
321
- "name": "txt_status",
322
- "type": "text",
323
- "kind": "component",
324
- "props": {
325
- "content": {
326
- "type": "static",
327
- "ref": null,
328
- "data": ""
329
- }
330
- },
331
- "appearance": {},
332
- "blocks": [],
333
- "events": [],
334
- "validations": [],
335
- "stateBindings": [],
336
- "children": []
337
- }
338
- }
339
- ],
340
- "mountFlowCreateArgs": {
341
- "host": "page",
342
- "hostId": "<detay sayfa id>",
343
- "name": "detay mount",
344
- "slug": "detay-mount",
345
- "steps": [
346
- {
347
- "stepId": "start",
348
- "name": "start",
349
- "type": "start",
350
- "kind": "normal",
351
- "args": {},
352
- "branches": [
353
- {
354
- "id": "<GUID>",
355
- "name": "always",
356
- "nextStepId": "load_task"
357
- }
358
- ]
359
- },
360
- {
361
- "stepId": "load_task",
362
- "name": "load_task",
363
- "type": "microservice",
364
- "kind": "normal",
365
- "args": {
366
- "microserviceId": "<görev getir microservice id>",
367
- "isRaw": false,
368
- "parameters": [
369
- {
370
- "name": "id",
371
- "type": "text",
372
- "source": "query-string",
373
- "value": {
374
- "type": "code",
375
- "ref": "Page.queryParams.id"
376
- }
377
- }
378
- ]
379
- },
380
- "branches": [
381
- {
382
- "id": "<GUID>",
383
- "name": "always",
384
- "nextStepId": "fill_detail"
385
- }
386
- ]
387
- },
388
- {
389
- "stepId": "fill_detail",
390
- "name": "fill_detail",
391
- "type": "setter",
392
- "kind": "normal",
393
- "args": {
394
- "iteratees": [
395
- {
396
- "id": "<GUID>",
397
- "type": "change",
398
- "source": "component",
399
- "element": "txt_title",
400
- "property": "content",
401
- "mapping": {
402
- "source": "",
403
- "mappings": {}
404
- },
405
- "value": {
406
- "type": "storage",
407
- "ref": "load_task.data.title"
408
- }
409
- },
410
- {
411
- "id": "<GUID>",
412
- "type": "change",
413
- "source": "component",
414
- "element": "txt_status",
415
- "property": "content",
416
- "mapping": {
417
- "source": "",
418
- "mappings": {}
419
- },
420
- "value": {
421
- "type": "storage",
422
- "ref": "load_task.data.status"
423
- }
424
- }
425
- ]
426
- },
427
- "branches": [
428
- {
429
- "id": "<GUID>",
430
- "name": "always",
431
- "nextStepId": null
432
- }
433
- ]
434
- }
435
- ]
436
- },
437
- "bindOps": [
438
- {
439
- "op": "set_event",
440
- "target": "page_container",
441
- "event": "mount",
442
- "eventValue": "<detay mount akış id>"
443
- }
444
- ]
445
- },
446
- {
447
- "pageCreateArgs": {
448
- "name": "Yeni görev",
449
- "slug": "yeni"
450
- },
451
- "schemaPatchOps": [
452
- {
453
- "op": "add_component",
454
- "parent": "page_container",
455
- "component": {
456
- "elementId": "frm_task",
457
- "name": "frm_task",
458
- "type": "form",
459
- "kind": "component",
460
- "props": {},
461
- "appearance": {
462
- "widthType": "fill"
463
- },
464
- "blocks": [],
465
- "events": [],
466
- "validations": [],
467
- "stateBindings": [],
468
- "children": [
469
- {
470
- "elementId": "in_title",
471
- "name": "in_title",
472
- "type": "textinput",
473
- "kind": "component",
474
- "props": {
475
- "label": {
476
- "type": "static",
477
- "ref": null,
478
- "data": "Başlık"
479
- }
480
- },
481
- "appearance": {
482
- "widthType": "fill"
483
- },
484
- "blocks": [],
485
- "events": [],
486
- "validations": [],
487
- "stateBindings": [],
488
- "children": []
489
- },
490
- {
491
- "elementId": "in_note",
492
- "name": "in_note",
493
- "type": "textarea",
494
- "kind": "component",
495
- "props": {
496
- "label": {
497
- "type": "static",
498
- "ref": null,
499
- "data": "Not"
500
- }
501
- },
502
- "appearance": {
503
- "widthType": "fill"
504
- },
505
- "blocks": [],
506
- "events": [],
507
- "validations": [],
508
- "stateBindings": [],
509
- "children": []
510
- },
511
- {
512
- "elementId": "btn_save",
513
- "name": "btn_save",
514
- "type": "button",
515
- "kind": "component",
516
- "props": {
517
- "text": {
518
- "type": "static",
519
- "ref": null,
520
- "data": "Kaydet"
521
- },
522
- "type": {
523
- "type": "static",
524
- "ref": null,
525
- "data": "submit"
526
- }
527
- },
528
- "appearance": {
529
- "widthType": "fill"
530
- },
531
- "blocks": [],
532
- "events": [],
533
- "validations": [],
534
- "stateBindings": [],
535
- "children": []
536
- }
537
- ]
538
- }
539
- }
540
- ],
541
- "submitFlowCreateArgs": {
542
- "host": "page",
543
- "hostId": "<yeni sayfa id>",
544
- "name": "görev kaydet",
545
- "slug": "gorev-kaydet",
546
- "steps": [
547
- {
548
- "stepId": "start",
549
- "name": "start",
550
- "type": "start",
551
- "kind": "normal",
552
- "args": {},
553
- "branches": [
554
- {
555
- "id": "<GUID>",
556
- "name": "always",
557
- "nextStepId": "save_task"
558
- }
559
- ]
560
- },
561
- {
562
- "stepId": "save_task",
563
- "name": "save_task",
564
- "type": "microservice",
565
- "kind": "normal",
566
- "args": {
567
- "microserviceId": "<görev oluştur microservice id>",
568
- "isRaw": false,
569
- "parameters": [
570
- {
571
- "name": "title",
572
- "type": "text",
573
- "source": "body",
574
- "value": {
575
- "type": "property",
576
- "ref": {
577
- "element": "in_title",
578
- "property": "value"
579
- }
580
- }
581
- },
582
- {
583
- "name": "note",
584
- "type": "text",
585
- "source": "body",
586
- "value": {
587
- "type": "property",
588
- "ref": {
589
- "element": "in_note",
590
- "property": "value"
591
- }
592
- }
593
- }
594
- ]
595
- },
596
- "branches": [
597
- {
598
- "id": "<GUID>",
599
- "name": "success",
600
- "nextStepId": "notify"
601
- },
602
- {
603
- "id": "<GUID>",
604
- "name": "always",
605
- "nextStepId": null
606
- }
607
- ]
608
- },
609
- {
610
- "stepId": "notify",
611
- "name": "notify",
612
- "type": "alert",
613
- "kind": "normal",
614
- "args": {
615
- "message": "Görev kaydedildi",
616
- "alertType": "success"
617
- },
618
- "branches": [
619
- {
620
- "id": "<GUID>",
621
- "name": "always",
622
- "nextStepId": "go_list"
623
- }
624
- ]
625
- },
626
- {
627
- "stepId": "go_list",
628
- "name": "go_list",
629
- "type": "redirect",
630
- "kind": "normal",
631
- "args": {
632
- "pageId": "<gorevler sayfa id>",
633
- "path": "gorevler",
634
- "query": ""
635
- },
636
- "branches": [
637
- {
638
- "id": "<GUID>",
639
- "name": "always",
640
- "nextStepId": null
641
- }
642
- ]
643
- }
644
- ]
645
- },
646
- "bindOps": [
647
- {
648
- "op": "set_event",
649
- "target": "frm_task",
650
- "event": "submit",
651
- "eventValue": "<görev kaydet akış id>"
652
- }
653
- ]
654
- }
655
- ]
656
- }