@ui5/mcp-server 0.1.2 → 0.1.4

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 (62) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +25 -20
  3. package/lib/registerTools.d.ts +2 -2
  4. package/lib/registerTools.js +4 -0
  5. package/lib/registerTools.js.map +1 -1
  6. package/lib/resources/documentation/getDocumentation.d.ts +1 -1
  7. package/lib/resources/documentation/getDocumentation.js +2 -2
  8. package/lib/resources/documentation/getDocumentation.js.map +1 -1
  9. package/lib/tools/create_integration_card/create_integration_card.d.ts +8 -0
  10. package/lib/tools/create_integration_card/create_integration_card.js +74 -0
  11. package/lib/tools/create_integration_card/create_integration_card.js.map +1 -0
  12. package/lib/tools/create_integration_card/index.d.ts +3 -0
  13. package/lib/tools/create_integration_card/index.js +42 -0
  14. package/lib/tools/create_integration_card/index.js.map +1 -0
  15. package/lib/tools/create_integration_card/schema.d.ts +8 -0
  16. package/lib/tools/create_integration_card/schema.js +20 -0
  17. package/lib/tools/create_integration_card/schema.js.map +1 -0
  18. package/lib/tools/create_ui5_app/create_ui5_app.js +2 -0
  19. package/lib/tools/create_ui5_app/create_ui5_app.js.map +1 -1
  20. package/lib/tools/create_ui5_app/templateProcessor.d.ts +2 -0
  21. package/lib/tools/create_ui5_app/templateProcessor.js.map +1 -1
  22. package/lib/tools/get_integration_cards_guidelines/guidelines.d.ts +1 -0
  23. package/lib/tools/get_integration_cards_guidelines/guidelines.js +6 -0
  24. package/lib/tools/get_integration_cards_guidelines/guidelines.js.map +1 -0
  25. package/lib/tools/get_integration_cards_guidelines/index.d.ts +3 -0
  26. package/lib/tools/get_integration_cards_guidelines/index.js +31 -0
  27. package/lib/tools/get_integration_cards_guidelines/index.js.map +1 -0
  28. package/lib/tools/run_ui5_linter/resultContext.js +1 -1
  29. package/lib/tools/run_ui5_linter/resultContext.js.map +1 -1
  30. package/lib/utils/ui5Manifest.d.ts +1 -0
  31. package/lib/utils/ui5Manifest.js +14 -0
  32. package/lib/utils/ui5Manifest.js.map +1 -0
  33. package/npm-shrinkwrap.json +381 -313
  34. package/package.json +20 -19
  35. package/resources/docs/1.136.11/22f50c0f0b104bf3ba84620880793d3f.md +131 -0
  36. package/resources/docs/1.136.11/738ed025b36e484fa99046d0f80552fd.md +173 -0
  37. package/resources/docs/{1.136.7 → 1.136.11}/index.json +14 -0
  38. package/resources/guidelines.md +6 -0
  39. package/resources/integration_cards_guidelines.md +1679 -0
  40. package/resources/template-card/package.json +12 -0
  41. package/resources/template-card/src/analytical.ejs +157 -0
  42. package/resources/template-card/src/calendar.ejs +90 -0
  43. package/resources/template-card/src/dt/Configuration.js +43 -0
  44. package/resources/template-card/src/i18n/i18n.properties +2 -0
  45. package/resources/template-card/src/list.ejs +27 -0
  46. package/resources/template-card/src/manifest.json +38 -0
  47. package/resources/template-card/src/object.ejs +44 -0
  48. package/resources/template-card/src/table.ejs +36 -0
  49. package/resources/template-card/src/timeline.ejs +42 -0
  50. package/resources/template-card/test/App.js +50 -0
  51. package/resources/template-card/test/index.css +57 -0
  52. package/resources/template-card/test/index.html +45 -0
  53. package/resources/template-js/webapp/manifest.json +2 -2
  54. package/resources/template-ts/webapp/manifest.json +2 -2
  55. /package/resources/docs/{1.136.7 → 1.136.11}/00737d6c1b864dc3ab72ef56611491c4.md +0 -0
  56. /package/resources/docs/{1.136.7 → 1.136.11}/0187ea5e2eff4166b0453b9dcc8fc64f.md +0 -0
  57. /package/resources/docs/{1.136.7 → 1.136.11}/032be2cb2e1d4115af20862673bedcdb.md +0 -0
  58. /package/resources/docs/{1.136.7 → 1.136.11}/28fcd55b04654977b63dacbee0552712.md +0 -0
  59. /package/resources/docs/{1.136.7 → 1.136.11}/676b636446c94eada183b1218a824717.md +0 -0
  60. /package/resources/docs/{1.136.7 → 1.136.11}/a87ca843bcee469f82a9072927a7dcdb.md +0 -0
  61. /package/resources/docs/{1.136.7 → 1.136.11}/b0fb4de7364f4bcbb053a99aa645affe.md +0 -0
  62. /package/resources/docs/{1.136.7 → 1.136.11}/fe1a6dba940e479fb7c3bc753f92b28c.md +0 -0
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "template-card",
3
+ "version": "1.0.0",
4
+ "description": "A basic template card project",
5
+ "scripts": {
6
+ "start": "http-server ./ -c-1 -o test/index.html",
7
+ "test": "echo \"No tests specified\" && exit 0"
8
+ },
9
+ "devDependencies": {
10
+ "http-server": "^14.1.1"
11
+ }
12
+ }
@@ -0,0 +1,157 @@
1
+ "data": {
2
+ "json": {
3
+ "dimensions": {
4
+ "weekLabel": "Weeks"
5
+ },
6
+ "measures": {
7
+ "revenueLabel": "Revenue",
8
+ "costLabel": "Costs"
9
+ },
10
+ "legend": {
11
+ "visible": true,
12
+ "position": "bottom",
13
+ "alignment": "topLeft"
14
+ },
15
+ "list": [
16
+ {
17
+ "Week": "CW14",
18
+ "Revenue": 431000.22,
19
+ "Cost": 230000,
20
+ "Cost1": 24800.63,
21
+ "Cost2": 205199.37,
22
+ "Cost3": 199999.37,
23
+ "Target": 500000,
24
+ "Budget": 210000
25
+ },
26
+ {
27
+ "Week": "CW15",
28
+ "Revenue": 494000.3,
29
+ "Cost": 238000,
30
+ "Cost1": 99200.39,
31
+ "Cost2": 138799.61,
32
+ "Cost3": 200199.37,
33
+ "Target": 500000,
34
+ "Budget": 224000
35
+ },
36
+ {
37
+ "Week": "CW16",
38
+ "Revenue": 491000.17,
39
+ "Cost": 221000,
40
+ "Cost1": 70200.54,
41
+ "Cost2": 150799.46,
42
+ "Cost3": 80799.46,
43
+ "Target": 500000,
44
+ "Budget": 238000
45
+ }
46
+ ],
47
+ "header": {
48
+ "number": "65.34",
49
+ "unit": "K",
50
+ "trend": "Down",
51
+ "state": "Error",
52
+ "target": {
53
+ "number": 100,
54
+ "unit": "K"
55
+ },
56
+ "deviation": {
57
+ "number": 34.7,
58
+ "unit": "%"
59
+ },
60
+ "details": "Q1, 2018"
61
+ }
62
+ }
63
+ },
64
+ "header": {
65
+ "type": "Numeric",
66
+ "title": "{i18n>title}",
67
+ "subtitle": "{i18n>subtitle}",
68
+ "mainIndicator": {
69
+ "number": "{header/number}",
70
+ "unit": "{header/unit}",
71
+ "trend": "{header/trend}",
72
+ "state": "{header/state}"
73
+ },
74
+ "details": "{header/details}",
75
+ "sideIndicators": [
76
+ {
77
+ "title": "Target",
78
+ "number": "{header/target/number}",
79
+ "unit": "{header/target/unit}"
80
+ },
81
+ {
82
+ "title": "Deviation",
83
+ "number": "{header/deviation/number}",
84
+ "unit": "{header/deviation/unit}"
85
+ }
86
+ ]
87
+ },
88
+ "content": {
89
+ "data": {
90
+ "path": "/list"
91
+ },
92
+ "chartType": "line",
93
+ "chartProperties": {
94
+ "title": {
95
+ "text": "Line chart",
96
+ "visible": true,
97
+ "alignment": "left"
98
+ },
99
+ "legend": {
100
+ "visible": "{legend/visible}"
101
+ },
102
+ "legendGroup": {
103
+ "layout": {
104
+ "position": "{legend/position}",
105
+ "alignment": "{legend/alignment}"
106
+ }
107
+ },
108
+ "plotArea": {
109
+ "dataLabel": {
110
+ "visible": true
111
+ }
112
+ },
113
+ "categoryAxis": {
114
+ "title": {
115
+ "visible": false
116
+ }
117
+ },
118
+ "valueAxis": {
119
+ "title": {
120
+ "visible": false
121
+ }
122
+ }
123
+ },
124
+ "dimensions": [
125
+ {
126
+ "name": "{dimensions/weekLabel}",
127
+ "value": "{Week}"
128
+ }
129
+ ],
130
+ "measures": [
131
+ {
132
+ "name": "{measures/revenueLabel}",
133
+ "value": "{Revenue}"
134
+ },
135
+ {
136
+ "name": "{measures/costLabel}",
137
+ "value": "{Cost}"
138
+ }
139
+ ],
140
+ "feeds": [
141
+ {
142
+ "uid": "valueAxis",
143
+ "type": "Measure",
144
+ "values": [
145
+ "{measures/revenueLabel}",
146
+ "{measures/costLabel}"
147
+ ]
148
+ },
149
+ {
150
+ "uid": "categoryAxis",
151
+ "type": "Dimension",
152
+ "values": [
153
+ "{dimensions/weekLabel}"
154
+ ]
155
+ }
156
+ ]
157
+ }
@@ -0,0 +1,90 @@
1
+ "data": {
2
+ "json": {
3
+ "item": [
4
+ {
5
+ "start": "2020-09-18T09:00",
6
+ "end": "2020-09-18T10:00",
7
+ "title": "Payment reminder",
8
+ "icon": "sap-icon://desktop-mobile",
9
+ "type": "Type06",
10
+ "url": "http://sap.com"
11
+ },
12
+ {
13
+ "start": "2020-09-18T17:00",
14
+ "end": "2020-09-18T17:30",
15
+ "title": "Private appointment",
16
+ "icon": "sap-icon://desktop-mobile",
17
+ "type": "Type07"
18
+ }
19
+ ],
20
+ "specialDate": [
21
+ {
22
+ "start": "2020-09-13",
23
+ "end": "2020-09-14",
24
+ "type": "Type08"
25
+ },
26
+ {
27
+ "start": "2020-09-24",
28
+ "end": "2020-09-24",
29
+ "type": "Type13"
30
+ }
31
+ ],
32
+ "legendItem": [
33
+ {
34
+ "category": "calendar",
35
+ "text": "Team building",
36
+ "type": "Type08"
37
+ },
38
+ {
39
+ "category": "calendar",
40
+ "text": "Public holiday",
41
+ "type": "Type13"
42
+ }
43
+ ]
44
+ }
45
+ },
46
+ "header": {
47
+ "title": "{i18n>title}",
48
+ "subtitle": "{i18n>subtitle}"
49
+ },
50
+ "content": {
51
+ "item": {
52
+ "template": {
53
+ "startDate": "{start}",
54
+ "endDate": "{end}",
55
+ "title": "{title}",
56
+ "text": "{text}",
57
+ "icon": {
58
+ "src": "{icon}",
59
+ "visible": true
60
+ },
61
+ "type": "{type}",
62
+ "actions": [
63
+ {
64
+ "type": "Navigation",
65
+ "enabled": "{= ${url}}",
66
+ "parameters": {
67
+ "url": "{url}"
68
+ }
69
+ }
70
+ ]
71
+ },
72
+ "path": "/item"
73
+ },
74
+ "specialDate": {
75
+ "template": {
76
+ "startDate": "{start}",
77
+ "endDate": "{end}",
78
+ "type": "{type}"
79
+ },
80
+ "path": "/specialDate"
81
+ },
82
+ "legendItem": {
83
+ "template": {
84
+ "category": "{category}",
85
+ "text": "{text}",
86
+ "type": "{type}"
87
+ },
88
+ "path": "/legendItem"
89
+ }
90
+ }
@@ -0,0 +1,43 @@
1
+ sap.ui.define([
2
+ "sap/ui/integration/Designtime",
3
+ ],
4
+ function (
5
+ Designtime
6
+ ) {
7
+ "use strict";
8
+
9
+ return function () {
10
+ return new Designtime({
11
+ form: {
12
+ items: {
13
+ groupheader1: {
14
+ label: "General Settings",
15
+ type: "group",
16
+ },
17
+ separator1: {
18
+ type: "separator",
19
+ },
20
+ title: {
21
+ manifestpath: "/sap.card/header/title",
22
+ type: "string",
23
+ translatable: true,
24
+ label: "Card Title",
25
+ cols: 1,
26
+ allowDynamicValues: true,
27
+ },
28
+ subtitle: {
29
+ manifestpath: "/sap.card/header/subtitle",
30
+ type: "string",
31
+ translatable: true,
32
+ label: "Card Subtitle",
33
+ cols: 1,
34
+ allowDynamicValues: true,
35
+ },
36
+ },
37
+ },
38
+ preview: {
39
+ modes: "None",
40
+ },
41
+ });
42
+ };
43
+ });
@@ -0,0 +1,2 @@
1
+ title=Sample Integration Card
2
+ subtitle=Subtitle
@@ -0,0 +1,27 @@
1
+ "data": {
2
+ "json": {
3
+ "items": [
4
+ {
5
+ "title": "Item 1",
6
+ "description": "Description for Item 1"
7
+ },
8
+ {
9
+ "title": "Item 2",
10
+ "description": "Description for Item 2"
11
+ }
12
+ ]
13
+ }
14
+ },
15
+ "header": {
16
+ "title": "{i18n>title}",
17
+ "subtitle": "{i18n>subtitle}"
18
+ },
19
+ "content": {
20
+ "data": {
21
+ "path": "/items"
22
+ },
23
+ "item": {
24
+ "title": "{title}",
25
+ "description": "{description}"
26
+ }
27
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "_version": "<%= manifestVersion %>",
3
+ "sap.app": {
4
+ "id": "sample.integration.card",
5
+ "type": "card",
6
+ "title": "Sample Integration Card",
7
+ "applicationVersion": {
8
+ "version": "1.0.0"
9
+ }
10
+ },
11
+ "sap.ui": {
12
+ "technology": "UI5",
13
+ "deviceTypes": {
14
+ "desktop": true,
15
+ "tablet": true,
16
+ "phone": true
17
+ }
18
+ },
19
+ "sap.card": {
20
+ "type": "<%= cardType %>",
21
+ "configuration": {
22
+ "editor": "./dt/Configuration"
23
+ },
24
+ <% if (cardType === "Analytical") { %>
25
+ <%- include('analytical.ejs') %>
26
+ <% } else if (cardType === "Calendar") { %>
27
+ <%- include('calendar.ejs') %>
28
+ <% } else if (cardType === "List") { %>
29
+ <%- include('list.ejs') %>
30
+ <% } else if (cardType === "Object") { %>
31
+ <%- include('object.ejs') %>
32
+ <% } else if (cardType === "Table") { %>
33
+ <%- include('table.ejs') %>
34
+ <% } else if (cardType === "Timeline") { %>
35
+ <%- include('timeline.ejs') %>
36
+ <% } %>
37
+ }
38
+ }
@@ -0,0 +1,44 @@
1
+ "data": {
2
+ "json": {
3
+ "firstName": "John",
4
+ "lastName": "Doe",
5
+ "company": {
6
+ "name": "Some Corp",
7
+ "address": "123 Main St, Anytown"
8
+ }
9
+ }
10
+ },
11
+ "header": {
12
+ "title": "{i18n>title}",
13
+ "subtitle": "{i18n>subtitle}"
14
+ },
15
+ "content": {
16
+ "groups": [
17
+ {
18
+ "title": "Contact Details",
19
+ "items": [
20
+ {
21
+ "label": "First Name",
22
+ "value": "{firstName}"
23
+ },
24
+ {
25
+ "label": "Last Name",
26
+ "value": "{lastName}"
27
+ }
28
+ ]
29
+ },
30
+ {
31
+ "title": "Company Details",
32
+ "items": [
33
+ {
34
+ "label": "Company Name",
35
+ "value": "{company/name}"
36
+ },
37
+ {
38
+ "label": "Address",
39
+ "value": "{company/address}"
40
+ }
41
+ ]
42
+ }
43
+ ]
44
+ }
@@ -0,0 +1,36 @@
1
+
2
+ "data": {
3
+ "json": {
4
+ "items": [
5
+ {
6
+ "title": "Item 1",
7
+ "description": "Description for Item 1"
8
+ },
9
+ {
10
+ "title": "Item 2",
11
+ "description": "Description for Item 2"
12
+ }
13
+ ]
14
+ }
15
+ },
16
+ "header": {
17
+ "title": "{i18n>title}",
18
+ "subtitle": "{i18n>subtitle}"
19
+ },
20
+ "content": {
21
+ "data": {
22
+ "path": "/items"
23
+ },
24
+ "row": {
25
+ "columns": [
26
+ {
27
+ "title": "Title",
28
+ "value": "{title}"
29
+ },
30
+ {
31
+ "title": "Description",
32
+ "value": "{description}"
33
+ }
34
+ ]
35
+ }
36
+ }
@@ -0,0 +1,42 @@
1
+ "data": {
2
+ "json": {
3
+ "items": [
4
+ {
5
+ "Title": "Weekly sync: Marketplace / Design Stream",
6
+ "Description": "MRR WDF18 C3.2(GLASSBOX)",
7
+ "Icon": "sap-icon://appointment-2",
8
+ "Time": "2021-10-25T10:00:00.000Z",
9
+ "Url": "/activity1"
10
+ },
11
+ {
12
+ "Title": "Video Conference for FLP@SF, S4,Hybris",
13
+ "Icon": "sap-icon://my-view",
14
+ "Time": "2021-10-25T14:00:00.000Z",
15
+ "Url": "/activity2"
16
+ }
17
+ ]
18
+ }
19
+ },
20
+ "header": {
21
+ "title": "{i18n>title}",
22
+ "subtitle": "{i18n>subtitle}"
23
+ },
24
+ "content": {
25
+ "data": {
26
+ "path": "/items"
27
+ },
28
+ "item": {
29
+ "dateTime": {
30
+ "value": "{Time}"
31
+ },
32
+ "description": {
33
+ "value": "{Description}"
34
+ },
35
+ "title": {
36
+ "value": "{Title}"
37
+ },
38
+ "icon": {
39
+ "src": "{Icon}"
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,50 @@
1
+ sap.ui.define(["sap/ui/integration/Host"], async (Host) => {
2
+ "use strict";
3
+ await customElements.whenDefined("ui-integration-card");
4
+ await customElements.whenDefined("ui-integration-card-editor");
5
+
6
+ const editor = document.getElementById("editor");
7
+ const card = document.getElementById("card");
8
+ const applyChangesBtn = document.getElementById("applyChangesBtn");
9
+ const resetBtn = document.getElementById("resetBtn");
10
+ const host = new Host({
11
+ resolveDestination: function(sDestinationName) {
12
+ if (sDestinationName === "Northwind") {
13
+ return "https://services.odata.org/V4/Northwind/Northwind.svc/";
14
+ }
15
+
16
+ throw new Error("Destination " + sDestinationName + " not found!");
17
+ },
18
+ actions: [
19
+ {
20
+ type: "Custom",
21
+ text: "Configure",
22
+ icon: "sap-icon://action-settings",
23
+ action: () => {
24
+ document.getElementById("editorSection").classList.remove("hidden");
25
+ }
26
+ }
27
+ ]
28
+ });
29
+
30
+ card.host = host.getId();
31
+ card.manifest = "../src/manifest.json";
32
+
33
+ editor.host = host.getId();
34
+ editor.card = "card";
35
+
36
+ let initialSettings;
37
+
38
+ // UI5 CustomElementBase doesn't expose the "ready" event, so use timeout
39
+ setTimeout(() => {
40
+ initialSettings = editor.getCurrentSettings();
41
+ }, 3000);
42
+
43
+ applyChangesBtn.addEventListener("click", () => {
44
+ card.manifestChanges = [editor.getCurrentSettings()];
45
+ });
46
+
47
+ resetBtn.addEventListener("click", () => {
48
+ card.manifestChanges = [initialSettings];
49
+ });
50
+ });
@@ -0,0 +1,57 @@
1
+ body {
2
+ margin: 2rem;
3
+ }
4
+
5
+ .container {
6
+ display: flex;
7
+ gap: 2rem;
8
+ align-items: flex-start;
9
+ flex-wrap: wrap;
10
+ }
11
+
12
+ .card-section {
13
+ flex: 1;
14
+ min-width: 300px;
15
+ max-width: 600px;
16
+ display: block;
17
+ flex-direction: column;
18
+ }
19
+
20
+ .button-container {
21
+ display: flex;
22
+ justify-content: flex-end;
23
+ gap: 0.5rem;
24
+ margin-top: 1rem;
25
+ }
26
+
27
+ .config-button {
28
+ padding: 0.25rem 0.5rem;
29
+ border: none;
30
+ border-radius: 0.25rem;
31
+ cursor: pointer;
32
+ font-size: 14px;
33
+ transition: background-color 0.2s ease;
34
+ }
35
+
36
+ .config-button.primary {
37
+ background-color: #0070f3;
38
+ color: white;
39
+ }
40
+
41
+ .config-button.primary:hover {
42
+ background-color: #0051cc;
43
+ }
44
+
45
+ .config-button.secondary {
46
+ background-color: #f5f5f5;
47
+ color: #333;
48
+ border: 1px solid #ddd;
49
+ }
50
+
51
+ .config-button.secondary:hover {
52
+ background-color: #e5e5e5;
53
+ }
54
+
55
+ .hidden {
56
+ display: none;
57
+ }
@@ -0,0 +1,45 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Integration Card Preview</title>
8
+ <link rel="stylesheet" href="./index.css">
9
+ <script
10
+ src="https://ui5.sap.com/resources/sap-ui-integration.js"
11
+ id="sap-ui-bootstrap"
12
+ data-sap-ui-compat-version="edge"
13
+ data-sap-ui-resource-roots='{"preview": "./"}'
14
+ data-sap-ui-on-init="module:preview/App"
15
+ data-sap-ui-theme="sap_horizon">
16
+ </script>
17
+ <script src="https://ui5.sap.com/resources/sap-ui-integration-card-editor.js"></script>
18
+ </head>
19
+
20
+ <body>
21
+ <h1>Preview</h1>
22
+ <div class="container">
23
+ <div class="card-section">
24
+ <h2>Integration Card</h2>
25
+ <ui-integration-card
26
+ id="card"
27
+ width="300px"
28
+ height="400px">
29
+ </ui-integration-card>
30
+ </div>
31
+ <div id="editorSection"
32
+ class="card-section hidden">
33
+ <h2>Configuration Editor</h2>
34
+ <ui-integration-card-editor
35
+ id="editor">
36
+ </ui-integration-card-editor>
37
+ <div class="button-container">
38
+ <button id="applyChangesBtn" class="config-button primary">Apply Changes</button>
39
+ <button id="resetBtn" class="config-button secondary">Reset</button>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </body>
44
+
45
+ </html>
@@ -1,5 +1,5 @@
1
1
  {
2
- "_version": "1.21.0",
2
+ "_version": <% if (gte1_136_0) { %>"2.0.0"<% } else { %>"1.37.0"<% } %>,
3
3
 
4
4
  "sap.app": {
5
5
  "id": "<%= appId %>",
@@ -68,7 +68,7 @@
68
68
  "dataSource": "default",
69
69
  "preload": true,
70
70
  "settings": {
71
- "autoExpandSelect": true,<% if (serverRequiresXCSRF) { %>
71
+ "autoExpandSelect": true,<% if (serverRequiresXCSRF || gte1_141_0) { %>
72
72
  "earlyRequests": true,<% } %>
73
73
  "operationMode": "Server"<% if (lt1_110_0) { %>,
74
74
  "synchronizationMode": "None"<% } %>
@@ -1,5 +1,5 @@
1
1
  {
2
- "_version": "1.21.0",
2
+ "_version": <% if (gte1_136_0) { %>"2.0.0"<% } else { %>"1.37.0"<% } %>,
3
3
 
4
4
  "sap.app": {
5
5
  "id": "<%= appId %>",
@@ -70,7 +70,7 @@
70
70
  "dataSource": "default",
71
71
  "preload": true,
72
72
  "settings": {
73
- "autoExpandSelect": true,<% if (serverRequiresXCSRF) { %>
73
+ "autoExpandSelect": true,<% if (serverRequiresXCSRF || gte1_141_0) { %>
74
74
  "earlyRequests": true,<% } %>
75
75
  "operationMode": "Server"<% if (lt1_110_0) { %>,
76
76
  "synchronizationMode": "None"<% } %>