@ui5/mcp-server 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 (221) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/LICENSE +201 -0
  3. package/LICENSES/Apache-2.0.txt +73 -0
  4. package/README.md +131 -0
  5. package/bin/ui5mcp.js +2 -0
  6. package/lib/Context.d.ts +28 -0
  7. package/lib/Context.js +71 -0
  8. package/lib/Context.js.map +1 -0
  9. package/lib/api.d.ts +3 -0
  10. package/lib/api.js +3 -0
  11. package/lib/api.js.map +1 -0
  12. package/lib/cli.d.ts +1 -0
  13. package/lib/cli.js +12 -0
  14. package/lib/cli.js.map +1 -0
  15. package/lib/registerTools.d.ts +133 -0
  16. package/lib/registerTools.js +59 -0
  17. package/lib/registerTools.js.map +1 -0
  18. package/lib/resources/documentation/getDocumentation.d.ts +18 -0
  19. package/lib/resources/documentation/getDocumentation.js +70 -0
  20. package/lib/resources/documentation/getDocumentation.js.map +1 -0
  21. package/lib/server.d.ts +10 -0
  22. package/lib/server.js +113 -0
  23. package/lib/server.js.map +1 -0
  24. package/lib/tools/create_ui5_app/ODataMetadata.d.ts +55 -0
  25. package/lib/tools/create_ui5_app/ODataMetadata.js +99 -0
  26. package/lib/tools/create_ui5_app/ODataMetadata.js.map +1 -0
  27. package/lib/tools/create_ui5_app/createSuccessMessage.d.ts +13 -0
  28. package/lib/tools/create_ui5_app/createSuccessMessage.js +45 -0
  29. package/lib/tools/create_ui5_app/createSuccessMessage.js.map +1 -0
  30. package/lib/tools/create_ui5_app/create_ui5_app.d.ts +8 -0
  31. package/lib/tools/create_ui5_app/create_ui5_app.js +273 -0
  32. package/lib/tools/create_ui5_app/create_ui5_app.js.map +1 -0
  33. package/lib/tools/create_ui5_app/index.d.ts +3 -0
  34. package/lib/tools/create_ui5_app/index.js +58 -0
  35. package/lib/tools/create_ui5_app/index.js.map +1 -0
  36. package/lib/tools/create_ui5_app/isValidUrl.d.ts +16 -0
  37. package/lib/tools/create_ui5_app/isValidUrl.js +59 -0
  38. package/lib/tools/create_ui5_app/isValidUrl.js.map +1 -0
  39. package/lib/tools/create_ui5_app/schema.d.ts +135 -0
  40. package/lib/tools/create_ui5_app/schema.js +67 -0
  41. package/lib/tools/create_ui5_app/schema.js.map +1 -0
  42. package/lib/tools/create_ui5_app/templateProcessor.d.ts +67 -0
  43. package/lib/tools/create_ui5_app/templateProcessor.js +59 -0
  44. package/lib/tools/create_ui5_app/templateProcessor.js.map +1 -0
  45. package/lib/tools/create_ui5_app/ui5Version.d.ts +2 -0
  46. package/lib/tools/create_ui5_app/ui5Version.js +6 -0
  47. package/lib/tools/create_ui5_app/ui5Version.js.map +1 -0
  48. package/lib/tools/get_api_reference/createUriForSymbol.d.ts +2 -0
  49. package/lib/tools/get_api_reference/createUriForSymbol.js +49 -0
  50. package/lib/tools/get_api_reference/createUriForSymbol.js.map +1 -0
  51. package/lib/tools/get_api_reference/getApiReference.d.ts +10 -0
  52. package/lib/tools/get_api_reference/getApiReference.js +51 -0
  53. package/lib/tools/get_api_reference/getApiReference.js.map +1 -0
  54. package/lib/tools/get_api_reference/index.d.ts +3 -0
  55. package/lib/tools/get_api_reference/index.js +38 -0
  56. package/lib/tools/get_api_reference/index.js.map +1 -0
  57. package/lib/tools/get_api_reference/lib/ApiReferenceProvider.d.ts +85 -0
  58. package/lib/tools/get_api_reference/lib/ApiReferenceProvider.js +452 -0
  59. package/lib/tools/get_api_reference/lib/ApiReferenceProvider.js.map +1 -0
  60. package/lib/tools/get_api_reference/lib/apiReferenceResources.d.ts +18 -0
  61. package/lib/tools/get_api_reference/lib/apiReferenceResources.js +138 -0
  62. package/lib/tools/get_api_reference/lib/apiReferenceResources.js.map +1 -0
  63. package/lib/tools/get_api_reference/lib/formatSymbol.d.ts +24 -0
  64. package/lib/tools/get_api_reference/lib/formatSymbol.js +109 -0
  65. package/lib/tools/get_api_reference/lib/formatSymbol.js.map +1 -0
  66. package/lib/tools/get_api_reference/schema.d.ts +16 -0
  67. package/lib/tools/get_api_reference/schema.js +12 -0
  68. package/lib/tools/get_api_reference/schema.js.map +1 -0
  69. package/lib/tools/get_guidelines/guidelines.d.ts +1 -0
  70. package/lib/tools/get_guidelines/guidelines.js +6 -0
  71. package/lib/tools/get_guidelines/guidelines.js.map +1 -0
  72. package/lib/tools/get_guidelines/index.d.ts +3 -0
  73. package/lib/tools/get_guidelines/index.js +30 -0
  74. package/lib/tools/get_guidelines/index.js.map +1 -0
  75. package/lib/tools/get_project_info/getProjectInfo.d.ts +2 -0
  76. package/lib/tools/get_project_info/getProjectInfo.js +205 -0
  77. package/lib/tools/get_project_info/getProjectInfo.js.map +1 -0
  78. package/lib/tools/get_project_info/index.d.ts +3 -0
  79. package/lib/tools/get_project_info/index.js +28 -0
  80. package/lib/tools/get_project_info/index.js.map +1 -0
  81. package/lib/tools/get_project_info/schema.d.ts +87 -0
  82. package/lib/tools/get_project_info/schema.js +28 -0
  83. package/lib/tools/get_project_info/schema.js.map +1 -0
  84. package/lib/tools/get_version_info/getVersionInfo.d.ts +8 -0
  85. package/lib/tools/get_version_info/getVersionInfo.js +41 -0
  86. package/lib/tools/get_version_info/getVersionInfo.js.map +1 -0
  87. package/lib/tools/get_version_info/index.d.ts +9 -0
  88. package/lib/tools/get_version_info/index.js +33 -0
  89. package/lib/tools/get_version_info/index.js.map +1 -0
  90. package/lib/tools/get_version_info/schema.d.ts +66 -0
  91. package/lib/tools/get_version_info/schema.js +16 -0
  92. package/lib/tools/get_version_info/schema.js.map +1 -0
  93. package/lib/tools/get_version_info/types.d.ts +5 -0
  94. package/lib/tools/get_version_info/types.js +2 -0
  95. package/lib/tools/get_version_info/types.js.map +1 -0
  96. package/lib/tools/run_ui5_linter/index.d.ts +3 -0
  97. package/lib/tools/run_ui5_linter/index.js +86 -0
  98. package/lib/tools/run_ui5_linter/index.js.map +1 -0
  99. package/lib/tools/run_ui5_linter/migrationGuides.d.ts +6 -0
  100. package/lib/tools/run_ui5_linter/migrationGuides.js +88 -0
  101. package/lib/tools/run_ui5_linter/migrationGuides.js.map +1 -0
  102. package/lib/tools/run_ui5_linter/resultContext.d.ts +3 -0
  103. package/lib/tools/run_ui5_linter/resultContext.js +236 -0
  104. package/lib/tools/run_ui5_linter/resultContext.js.map +1 -0
  105. package/lib/tools/run_ui5_linter/runUi5Linter.d.ts +2 -0
  106. package/lib/tools/run_ui5_linter/runUi5Linter.js +72 -0
  107. package/lib/tools/run_ui5_linter/runUi5Linter.js.map +1 -0
  108. package/lib/tools/run_ui5_linter/schema.d.ts +340 -0
  109. package/lib/tools/run_ui5_linter/schema.js +55 -0
  110. package/lib/tools/run_ui5_linter/schema.js.map +1 -0
  111. package/lib/utils/cdnHelper.d.ts +9 -0
  112. package/lib/utils/cdnHelper.js +50 -0
  113. package/lib/utils/cdnHelper.js.map +1 -0
  114. package/lib/utils/dataStorageHelper.d.ts +2 -0
  115. package/lib/utils/dataStorageHelper.js +65 -0
  116. package/lib/utils/dataStorageHelper.js.map +1 -0
  117. package/lib/utils/ui5Framework.d.ts +4 -0
  118. package/lib/utils/ui5Framework.js +6 -0
  119. package/lib/utils/ui5Framework.js.map +1 -0
  120. package/lib/utils.d.ts +10 -0
  121. package/lib/utils.js +87 -0
  122. package/lib/utils.js.map +1 -0
  123. package/npm-shrinkwrap.json +7880 -0
  124. package/package.json +121 -0
  125. package/resources/docs/1.136.7/00737d6c1b864dc3ab72ef56611491c4.md +155 -0
  126. package/resources/docs/1.136.7/0187ea5e2eff4166b0453b9dcc8fc64f.md +164 -0
  127. package/resources/docs/1.136.7/032be2cb2e1d4115af20862673bedcdb.md +12 -0
  128. package/resources/docs/1.136.7/28fcd55b04654977b63dacbee0552712.md +317 -0
  129. package/resources/docs/1.136.7/676b636446c94eada183b1218a824717.md +135 -0
  130. package/resources/docs/1.136.7/a87ca843bcee469f82a9072927a7dcdb.md +355 -0
  131. package/resources/docs/1.136.7/b0fb4de7364f4bcbb053a99aa645affe.md +126 -0
  132. package/resources/docs/1.136.7/fe1a6dba940e479fb7c3bc753f92b28c.md +670 -0
  133. package/resources/docs/1.136.7/index.json +58 -0
  134. package/resources/guidelines.md +104 -0
  135. package/resources/migrationGuides/deprecated-controller-factory.md +116 -0
  136. package/resources/migrationGuides/deprecated-getLibraryResourceBundle.md +62 -0
  137. package/resources/migrationGuides/deprecated-jquery-sap-require.md +141 -0
  138. package/resources/migrationGuides/deprecated-messagePage.md +162 -0
  139. package/resources/migrationGuides/deprecated-table-table-property.md +154 -0
  140. package/resources/template-js/LICENSE +201 -0
  141. package/resources/template-js/README.md +87 -0
  142. package/resources/template-js/_.editorconfig +22 -0
  143. package/resources/template-js/_.gitignore +17 -0
  144. package/resources/template-js/eslint.config.js +68 -0
  145. package/resources/template-js/karma-ci-cov.conf.js +20 -0
  146. package/resources/template-js/karma-ci.conf.js +9 -0
  147. package/resources/template-js/karma.conf.js +9 -0
  148. package/resources/template-js/package.json +34 -0
  149. package/resources/template-js/ui5-dist.yaml +18 -0
  150. package/resources/template-js/ui5.yaml +24 -0
  151. package/resources/template-js/webapp/Component.js +41 -0
  152. package/resources/template-js/webapp/controller/App.controller.js +10 -0
  153. package/resources/template-js/webapp/controller/BaseController.js +67 -0
  154. package/resources/template-js/webapp/controller/Main.controller.js +14 -0
  155. package/resources/template-js/webapp/i18n/i18n.properties +3 -0
  156. package/resources/template-js/webapp/i18n/i18n_en.properties +3 -0
  157. package/resources/template-js/webapp/index-cdn.html +34 -0
  158. package/resources/template-js/webapp/index.html +34 -0
  159. package/resources/template-js/webapp/manifest.json +103 -0
  160. package/resources/template-js/webapp/model/formatter.js +9 -0
  161. package/resources/template-js/webapp/model/models.js +11 -0
  162. package/resources/template-js/webapp/test/Test.qunit.html +16 -0
  163. package/resources/template-js/webapp/test/integration/HelloJourney.js +85 -0
  164. package/resources/template-js/webapp/test/integration/opaTests.qunit.js +1 -0
  165. package/resources/template-js/webapp/test/integration/pages/Main.js +112 -0
  166. package/resources/template-js/webapp/test/testsuite.qunit.html +18 -0
  167. package/resources/template-js/webapp/test/testsuite.qunit.js +37 -0
  168. package/resources/template-js/webapp/test/unit/controller/Main.qunit.js +11 -0
  169. package/resources/template-js/webapp/test/unit/unitTests.qunit.js +1 -0
  170. package/resources/template-js/webapp/test-lt1_124/integration/HelloJourney.js +85 -0
  171. package/resources/template-js/webapp/test-lt1_124/integration/opaTests.qunit.html +31 -0
  172. package/resources/template-js/webapp/test-lt1_124/integration/opaTests.qunit.js +11 -0
  173. package/resources/template-js/webapp/test-lt1_124/integration/pages/Main.js +112 -0
  174. package/resources/template-js/webapp/test-lt1_124/testsuite.qunit.html +13 -0
  175. package/resources/template-js/webapp/test-lt1_124/testsuite.qunit.js +9 -0
  176. package/resources/template-js/webapp/test-lt1_124/unit/controller/Main.qunit.js +11 -0
  177. package/resources/template-js/webapp/test-lt1_124/unit/unitTests.qunit.html +30 -0
  178. package/resources/template-js/webapp/test-lt1_124/unit/unitTests.qunit.js +12 -0
  179. package/resources/template-js/webapp/view/App.view.xml +9 -0
  180. package/resources/template-js/webapp/view/Main.view.xml +90 -0
  181. package/resources/template-ts/LICENSE +201 -0
  182. package/resources/template-ts/README.md +101 -0
  183. package/resources/template-ts/_.editorconfig +23 -0
  184. package/resources/template-ts/_.gitignore +18 -0
  185. package/resources/template-ts/_.nycrc.json +7 -0
  186. package/resources/template-ts/_tsconfig.json +21 -0
  187. package/resources/template-ts/eslint.config.mjs +27 -0
  188. package/resources/template-ts/package.json +40 -0
  189. package/resources/template-ts/ui5-coverage.yaml +40 -0
  190. package/resources/template-ts/ui5-dist.yaml +18 -0
  191. package/resources/template-ts/ui5.yaml +27 -0
  192. package/resources/template-ts/webapp/Component.ts +49 -0
  193. package/resources/template-ts/webapp/controller/App.controller.ts +11 -0
  194. package/resources/template-ts/webapp/controller/BaseController.ts +83 -0
  195. package/resources/template-ts/webapp/controller/Main.controller.ts +19 -0
  196. package/resources/template-ts/webapp/i18n/i18n.properties +3 -0
  197. package/resources/template-ts/webapp/i18n/i18n_en.properties +3 -0
  198. package/resources/template-ts/webapp/index-cdn.html +35 -0
  199. package/resources/template-ts/webapp/index.html +35 -0
  200. package/resources/template-ts/webapp/manifest.json +105 -0
  201. package/resources/template-ts/webapp/model/formatter.ts +5 -0
  202. package/resources/template-ts/webapp/model/models.ts +15 -0
  203. package/resources/template-ts/webapp/test/Test.qunit.html +16 -0
  204. package/resources/template-ts/webapp/test/integration/HelloJourney.ts +84 -0
  205. package/resources/template-ts/webapp/test/integration/opaTests.qunit.ts +2 -0
  206. package/resources/template-ts/webapp/test/integration/pages/MainPage.ts +112 -0
  207. package/resources/template-ts/webapp/test/testsuite.qunit.html +18 -0
  208. package/resources/template-ts/webapp/test/testsuite.qunit.ts +33 -0
  209. package/resources/template-ts/webapp/test/unit/controller/Main.qunit.ts +8 -0
  210. package/resources/template-ts/webapp/test/unit/unitTests.qunit.ts +2 -0
  211. package/resources/template-ts/webapp/test-lt1_124/integration/HelloJourney.ts +86 -0
  212. package/resources/template-ts/webapp/test-lt1_124/integration/opaTests.qunit.html +34 -0
  213. package/resources/template-ts/webapp/test-lt1_124/integration/opaTests.qunit.ts +8 -0
  214. package/resources/template-ts/webapp/test-lt1_124/integration/pages/MainPage.ts +112 -0
  215. package/resources/template-ts/webapp/test-lt1_124/testsuite.qunit.html +13 -0
  216. package/resources/template-ts/webapp/test-lt1_124/testsuite.qunit.ts +9 -0
  217. package/resources/template-ts/webapp/test-lt1_124/unit/controller/Main.qunit.ts +8 -0
  218. package/resources/template-ts/webapp/test-lt1_124/unit/unitTests.qunit.html +37 -0
  219. package/resources/template-ts/webapp/test-lt1_124/unit/unitTests.qunit.ts +8 -0
  220. package/resources/template-ts/webapp/view/App.view.xml +9 -0
  221. package/resources/template-ts/webapp/view/Main.view.xml +90 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resultContext.js","sourceRoot":"","sources":["../../../src/tools/run_ui5_linter/resultContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { RunUi5LinterParams, RunUi5LinterResult } from "./schema.js";
2
+ export default function runUi5Linter({ projectDir, filePatterns, fix, provideContextInformation, }: RunUi5LinterParams): Promise<RunUi5LinterResult>;
@@ -0,0 +1,72 @@
1
+ import path from "node:path";
2
+ import { UI5LinterEngine } from "@ui5/linter";
3
+ import { Mutex } from "async-mutex";
4
+ import { outputSchema } from "./schema.js";
5
+ import { createResultContext } from "./resultContext.js";
6
+ import getProjectInfo from "../get_project_info/getProjectInfo.js";
7
+ const linterEngine = new UI5LinterEngine();
8
+ // The TypeScript compiler used within UI5 linter requires us to only run one linter instance per Node process
9
+ const linterMutex = new Mutex();
10
+ const projectInfoCache = new Map();
11
+ export default async function runUi5Linter({ projectDir, filePatterns, fix, provideContextInformation, }) {
12
+ const projectInfo = await getProjectInfoCached(projectDir);
13
+ if (filePatterns?.length) {
14
+ // Make file patterns relative to root dir in case they are absolute
15
+ filePatterns = filePatterns.map((pattern) => {
16
+ return path.isAbsolute(pattern) ? path.relative(projectInfo.projectDir, pattern) : pattern;
17
+ });
18
+ }
19
+ const release = await linterMutex.acquire();
20
+ try {
21
+ const results = await linterEngine.lint({
22
+ rootDir: projectInfo.projectDir,
23
+ filePatterns,
24
+ fix,
25
+ details: true,
26
+ });
27
+ let contextInformation;
28
+ if (provideContextInformation) {
29
+ contextInformation = await createResultContext(results);
30
+ }
31
+ formatLintResults(results);
32
+ return {
33
+ results,
34
+ projectDir: projectInfo.projectDir,
35
+ frameworkVersion: projectInfo.frameworkVersion,
36
+ contextInformation,
37
+ };
38
+ }
39
+ finally {
40
+ release();
41
+ }
42
+ }
43
+ async function getProjectInfoCached(fsPath) {
44
+ if (projectInfoCache.has(fsPath)) {
45
+ return projectInfoCache.get(fsPath);
46
+ }
47
+ // Resolve rootDir using UI5 Project API
48
+ // This is required if the provided directory is not the root directory but a sub-directory of the project
49
+ const projectInfo = await getProjectInfo(fsPath);
50
+ projectInfoCache.set(fsPath, projectInfo);
51
+ projectInfoCache.set(projectInfo.projectDir, projectInfo);
52
+ return projectInfo;
53
+ }
54
+ const RESULT_PROPS_TO_KEEP = Object.keys(outputSchema.results.element.shape);
55
+ const MESSAGE_PROPS_TO_KEEP = Object.keys(outputSchema.results.element.shape.messages.element.shape);
56
+ function formatLintResults(results) {
57
+ for (const result of results) {
58
+ filterProperties(result, RESULT_PROPS_TO_KEEP);
59
+ result.messages = result.messages.map((msg) => {
60
+ filterProperties(msg, MESSAGE_PROPS_TO_KEEP);
61
+ return msg;
62
+ });
63
+ }
64
+ }
65
+ function filterProperties(obj, allowedProps) {
66
+ for (const prop of Object.keys(obj)) {
67
+ if (!allowedProps.includes(prop)) {
68
+ delete obj[prop];
69
+ }
70
+ }
71
+ }
72
+ //# sourceMappingURL=runUi5Linter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runUi5Linter.js","sourceRoot":"","sources":["../../../src/tools/run_ui5_linter/runUi5Linter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,340 @@
1
+ import { z } from "zod";
2
+ export declare const inputSchema: {
3
+ projectDir: z.ZodString;
4
+ fix: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
5
+ filePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6
+ provideContextInformation: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
7
+ };
8
+ export declare const inputSchemaObject: z.ZodObject<{
9
+ projectDir: z.ZodString;
10
+ fix: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
11
+ filePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
12
+ provideContextInformation: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ projectDir: string;
15
+ fix: boolean;
16
+ provideContextInformation: boolean;
17
+ filePatterns?: string[] | undefined;
18
+ }, {
19
+ projectDir: string;
20
+ fix?: boolean | undefined;
21
+ filePatterns?: string[] | undefined;
22
+ provideContextInformation?: boolean | undefined;
23
+ }>;
24
+ export declare const outputSchema: {
25
+ projectDir: z.ZodString;
26
+ frameworkVersion: z.ZodOptional<z.ZodString>;
27
+ results: z.ZodArray<z.ZodObject<{
28
+ filePath: z.ZodString;
29
+ messages: z.ZodArray<z.ZodObject<{
30
+ ruleId: z.ZodString;
31
+ severity: z.ZodNumber;
32
+ line: z.ZodOptional<z.ZodNumber>;
33
+ column: z.ZodOptional<z.ZodNumber>;
34
+ fatal: z.ZodOptional<z.ZodBoolean>;
35
+ message: z.ZodString;
36
+ messageDetails: z.ZodOptional<z.ZodString>;
37
+ }, "strip", z.ZodTypeAny, {
38
+ message: string;
39
+ severity: number;
40
+ ruleId: string;
41
+ line?: number | undefined;
42
+ messageDetails?: string | undefined;
43
+ fatal?: boolean | undefined;
44
+ column?: number | undefined;
45
+ }, {
46
+ message: string;
47
+ severity: number;
48
+ ruleId: string;
49
+ line?: number | undefined;
50
+ messageDetails?: string | undefined;
51
+ fatal?: boolean | undefined;
52
+ column?: number | undefined;
53
+ }>, "many">;
54
+ }, "strip", z.ZodTypeAny, {
55
+ messages: {
56
+ message: string;
57
+ severity: number;
58
+ ruleId: string;
59
+ line?: number | undefined;
60
+ messageDetails?: string | undefined;
61
+ fatal?: boolean | undefined;
62
+ column?: number | undefined;
63
+ }[];
64
+ filePath: string;
65
+ }, {
66
+ messages: {
67
+ message: string;
68
+ severity: number;
69
+ ruleId: string;
70
+ line?: number | undefined;
71
+ messageDetails?: string | undefined;
72
+ fatal?: boolean | undefined;
73
+ column?: number | undefined;
74
+ }[];
75
+ filePath: string;
76
+ }>, "many">;
77
+ contextInformation: z.ZodOptional<z.ZodObject<{
78
+ ruleDescriptions: z.ZodArray<z.ZodObject<{
79
+ ruleId: z.ZodString;
80
+ description: z.ZodString;
81
+ }, "strip", z.ZodTypeAny, {
82
+ description: string;
83
+ ruleId: string;
84
+ }, {
85
+ description: string;
86
+ ruleId: string;
87
+ }>, "many">;
88
+ migrationGuides: z.ZodArray<z.ZodObject<{
89
+ title: z.ZodString;
90
+ text: z.ZodString;
91
+ uri: z.ZodString;
92
+ }, "strip", z.ZodTypeAny, {
93
+ title: string;
94
+ text: string;
95
+ uri: string;
96
+ }, {
97
+ title: string;
98
+ text: string;
99
+ uri: string;
100
+ }>, "many">;
101
+ apiReferences: z.ZodArray<z.ZodAny, "many">;
102
+ documentationResources: z.ZodArray<z.ZodObject<{
103
+ title: z.ZodString;
104
+ text: z.ZodString;
105
+ uri: z.ZodString;
106
+ }, "strip", z.ZodTypeAny, {
107
+ title: string;
108
+ text: string;
109
+ uri: string;
110
+ }, {
111
+ title: string;
112
+ text: string;
113
+ uri: string;
114
+ }>, "many">;
115
+ }, "strip", z.ZodTypeAny, {
116
+ ruleDescriptions: {
117
+ description: string;
118
+ ruleId: string;
119
+ }[];
120
+ migrationGuides: {
121
+ title: string;
122
+ text: string;
123
+ uri: string;
124
+ }[];
125
+ apiReferences: any[];
126
+ documentationResources: {
127
+ title: string;
128
+ text: string;
129
+ uri: string;
130
+ }[];
131
+ }, {
132
+ ruleDescriptions: {
133
+ description: string;
134
+ ruleId: string;
135
+ }[];
136
+ migrationGuides: {
137
+ title: string;
138
+ text: string;
139
+ uri: string;
140
+ }[];
141
+ apiReferences: any[];
142
+ documentationResources: {
143
+ title: string;
144
+ text: string;
145
+ uri: string;
146
+ }[];
147
+ }>>;
148
+ };
149
+ export declare const outputSchemaObject: z.ZodObject<{
150
+ projectDir: z.ZodString;
151
+ frameworkVersion: z.ZodOptional<z.ZodString>;
152
+ results: z.ZodArray<z.ZodObject<{
153
+ filePath: z.ZodString;
154
+ messages: z.ZodArray<z.ZodObject<{
155
+ ruleId: z.ZodString;
156
+ severity: z.ZodNumber;
157
+ line: z.ZodOptional<z.ZodNumber>;
158
+ column: z.ZodOptional<z.ZodNumber>;
159
+ fatal: z.ZodOptional<z.ZodBoolean>;
160
+ message: z.ZodString;
161
+ messageDetails: z.ZodOptional<z.ZodString>;
162
+ }, "strip", z.ZodTypeAny, {
163
+ message: string;
164
+ severity: number;
165
+ ruleId: string;
166
+ line?: number | undefined;
167
+ messageDetails?: string | undefined;
168
+ fatal?: boolean | undefined;
169
+ column?: number | undefined;
170
+ }, {
171
+ message: string;
172
+ severity: number;
173
+ ruleId: string;
174
+ line?: number | undefined;
175
+ messageDetails?: string | undefined;
176
+ fatal?: boolean | undefined;
177
+ column?: number | undefined;
178
+ }>, "many">;
179
+ }, "strip", z.ZodTypeAny, {
180
+ messages: {
181
+ message: string;
182
+ severity: number;
183
+ ruleId: string;
184
+ line?: number | undefined;
185
+ messageDetails?: string | undefined;
186
+ fatal?: boolean | undefined;
187
+ column?: number | undefined;
188
+ }[];
189
+ filePath: string;
190
+ }, {
191
+ messages: {
192
+ message: string;
193
+ severity: number;
194
+ ruleId: string;
195
+ line?: number | undefined;
196
+ messageDetails?: string | undefined;
197
+ fatal?: boolean | undefined;
198
+ column?: number | undefined;
199
+ }[];
200
+ filePath: string;
201
+ }>, "many">;
202
+ contextInformation: z.ZodOptional<z.ZodObject<{
203
+ ruleDescriptions: z.ZodArray<z.ZodObject<{
204
+ ruleId: z.ZodString;
205
+ description: z.ZodString;
206
+ }, "strip", z.ZodTypeAny, {
207
+ description: string;
208
+ ruleId: string;
209
+ }, {
210
+ description: string;
211
+ ruleId: string;
212
+ }>, "many">;
213
+ migrationGuides: z.ZodArray<z.ZodObject<{
214
+ title: z.ZodString;
215
+ text: z.ZodString;
216
+ uri: z.ZodString;
217
+ }, "strip", z.ZodTypeAny, {
218
+ title: string;
219
+ text: string;
220
+ uri: string;
221
+ }, {
222
+ title: string;
223
+ text: string;
224
+ uri: string;
225
+ }>, "many">;
226
+ apiReferences: z.ZodArray<z.ZodAny, "many">;
227
+ documentationResources: z.ZodArray<z.ZodObject<{
228
+ title: z.ZodString;
229
+ text: z.ZodString;
230
+ uri: z.ZodString;
231
+ }, "strip", z.ZodTypeAny, {
232
+ title: string;
233
+ text: string;
234
+ uri: string;
235
+ }, {
236
+ title: string;
237
+ text: string;
238
+ uri: string;
239
+ }>, "many">;
240
+ }, "strip", z.ZodTypeAny, {
241
+ ruleDescriptions: {
242
+ description: string;
243
+ ruleId: string;
244
+ }[];
245
+ migrationGuides: {
246
+ title: string;
247
+ text: string;
248
+ uri: string;
249
+ }[];
250
+ apiReferences: any[];
251
+ documentationResources: {
252
+ title: string;
253
+ text: string;
254
+ uri: string;
255
+ }[];
256
+ }, {
257
+ ruleDescriptions: {
258
+ description: string;
259
+ ruleId: string;
260
+ }[];
261
+ migrationGuides: {
262
+ title: string;
263
+ text: string;
264
+ uri: string;
265
+ }[];
266
+ apiReferences: any[];
267
+ documentationResources: {
268
+ title: string;
269
+ text: string;
270
+ uri: string;
271
+ }[];
272
+ }>>;
273
+ }, "strip", z.ZodTypeAny, {
274
+ projectDir: string;
275
+ results: {
276
+ messages: {
277
+ message: string;
278
+ severity: number;
279
+ ruleId: string;
280
+ line?: number | undefined;
281
+ messageDetails?: string | undefined;
282
+ fatal?: boolean | undefined;
283
+ column?: number | undefined;
284
+ }[];
285
+ filePath: string;
286
+ }[];
287
+ frameworkVersion?: string | undefined;
288
+ contextInformation?: {
289
+ ruleDescriptions: {
290
+ description: string;
291
+ ruleId: string;
292
+ }[];
293
+ migrationGuides: {
294
+ title: string;
295
+ text: string;
296
+ uri: string;
297
+ }[];
298
+ apiReferences: any[];
299
+ documentationResources: {
300
+ title: string;
301
+ text: string;
302
+ uri: string;
303
+ }[];
304
+ } | undefined;
305
+ }, {
306
+ projectDir: string;
307
+ results: {
308
+ messages: {
309
+ message: string;
310
+ severity: number;
311
+ ruleId: string;
312
+ line?: number | undefined;
313
+ messageDetails?: string | undefined;
314
+ fatal?: boolean | undefined;
315
+ column?: number | undefined;
316
+ }[];
317
+ filePath: string;
318
+ }[];
319
+ frameworkVersion?: string | undefined;
320
+ contextInformation?: {
321
+ ruleDescriptions: {
322
+ description: string;
323
+ ruleId: string;
324
+ }[];
325
+ migrationGuides: {
326
+ title: string;
327
+ text: string;
328
+ uri: string;
329
+ }[];
330
+ apiReferences: any[];
331
+ documentationResources: {
332
+ title: string;
333
+ text: string;
334
+ uri: string;
335
+ }[];
336
+ } | undefined;
337
+ }>;
338
+ export type RunUi5LinterParams = z.infer<typeof inputSchemaObject>;
339
+ export type RunUi5LinterResult = z.infer<typeof outputSchemaObject>;
340
+ export type RunUi5LinterResultContext = z.infer<typeof outputSchema.contextInformation>;
@@ -0,0 +1,55 @@
1
+ import { z } from "zod";
2
+ export const inputSchema = {
3
+ projectDir: z.string()
4
+ .describe("Root directory of the UI5 project to analyze. Must be an absolute path. Typically this " +
5
+ "the directory where the 'package.json' and 'ui5.yaml' files are located."),
6
+ fix: z.boolean().optional().default(false)
7
+ .describe("Attempt to automatically correct certain findings in the files. " +
8
+ "Only the remaining findings will be returned."),
9
+ filePatterns: z.array(z.string()).optional()
10
+ .describe("File paths or patterns to lint. If not provided, all files in the project will be linted."),
11
+ provideContextInformation: z.boolean().optional().default(true)
12
+ .describe("Whether to include supplementary information in the output. This includes UI5 API reference and " +
13
+ "documentation resources. " +
14
+ "When calling the tool multiple times for the same file or project, refrain from requesting additional " +
15
+ "context every time."),
16
+ };
17
+ export const inputSchemaObject = z.object(inputSchema);
18
+ export const outputSchema = {
19
+ projectDir: z.string(),
20
+ frameworkVersion: z.string().optional().describe("The version of UI5 used in the project"),
21
+ results: z.array(z.object({
22
+ filePath: z.string(),
23
+ messages: z.array(z.object({
24
+ ruleId: z.string(),
25
+ severity: z.number().describe("2 = error, 1 = warning"),
26
+ line: z.number().optional(),
27
+ column: z.number().optional(),
28
+ fatal: z.boolean().optional(),
29
+ message: z.string(),
30
+ messageDetails: z.string().optional(),
31
+ })),
32
+ }).describe(`Linting results for a single file in the project`)),
33
+ contextInformation: z.object({
34
+ ruleDescriptions: z.array(z.object({
35
+ ruleId: z.string(),
36
+ description: z.string(),
37
+ })).describe(`Brief descriptions of the rules that were found to be violated in the project`),
38
+ migrationGuides: z.array(z.object({
39
+ title: z.string(),
40
+ text: z.string(),
41
+ uri: z.string(),
42
+ })).describe(`For problems the linter can't fix automatically, "fix hint" documents may ` +
43
+ `be provided as guidance for manually resolving them.`),
44
+ apiReferences: z.array(z.any())
45
+ .describe(`Short extracts from the UI5 API reference for the APIs mentioned in the linter report`),
46
+ documentationResources: z.array(z.object({
47
+ title: z.string(),
48
+ text: z.string(),
49
+ uri: z.string(),
50
+ })).describe(`Relevant pages in the UI5 documentation that may help to understand the findings ` +
51
+ `and how to resolve them best.`),
52
+ }).optional(),
53
+ };
54
+ export const outputSchemaObject = z.object(outputSchema);
55
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/tools/run_ui5_linter/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Ui5Framework } from "./ui5Framework.js";
2
+ /**
3
+ * Get the base URL for the UI5 CDN based on the framework
4
+ * @param frameworkName The UI5 framework (OpenUI5 or SAPUI5)
5
+ * @returns The CDN base URL
6
+ */
7
+ export declare function getBaseUrl(frameworkName: Ui5Framework, frameworkVersion?: string): string;
8
+ export declare function fetchCdnRaw(url: string): Promise<import("node-fetch").Response>;
9
+ export declare function fetchCdn(url: string): Promise<object>;
@@ -0,0 +1,50 @@
1
+ import fetch from "make-fetch-happen";
2
+ import { InvalidInputError } from "../utils.js";
3
+ /**
4
+ * Get the base URL for the UI5 CDN based on the framework
5
+ * @param frameworkName The UI5 framework (OpenUI5 or SAPUI5)
6
+ * @returns The CDN base URL
7
+ */
8
+ export function getBaseUrl(frameworkName, frameworkVersion) {
9
+ let baseUrl;
10
+ switch (frameworkName) {
11
+ case "OpenUI5":
12
+ baseUrl = "https://sdk.openui5.org";
13
+ break;
14
+ case "SAPUI5":
15
+ baseUrl = "https://ui5.sap.com";
16
+ break;
17
+ default:
18
+ // This should never happen due to TypeScript's type checking,
19
+ // but we handle it anyway for runtime safety
20
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
21
+ throw new InvalidInputError(`Unknown framework: ${frameworkName}`);
22
+ }
23
+ if (frameworkVersion) {
24
+ baseUrl += `/${frameworkVersion}`;
25
+ }
26
+ return baseUrl;
27
+ }
28
+ export async function fetchCdnRaw(url) {
29
+ try {
30
+ const response = await fetch(url);
31
+ if (!response.ok) {
32
+ if (response.status === 404) {
33
+ throw new Error(`The requested resource does not exist`);
34
+ }
35
+ else {
36
+ throw new Error(`The requested resource returned unexpected status "${response.status} - ${response.statusText}"`);
37
+ }
38
+ }
39
+ return response;
40
+ }
41
+ catch (error) {
42
+ throw new Error(`Failed to fetch resource from CDN. Error: ${error instanceof Error ? error.message : String(error)} ` +
43
+ `for URL: ${url}`, { cause: error });
44
+ }
45
+ }
46
+ export async function fetchCdn(url) {
47
+ const res = await fetchCdnRaw(url);
48
+ return await res.json();
49
+ }
50
+ //# sourceMappingURL=cdnHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdnHelper.js","sourceRoot":"","sources":["../../src/utils/cdnHelper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAG9C;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,aAA2B,EAAE,gBAAyB;IAChF,IAAI,OAAO,CAAC;IACZ,QAAQ,aAAa,EAAE,CAAC;QACvB,KAAK,SAAS;YACb,OAAO,GAAG,yBAAyB,CAAC;YACpC,MAAM;QACP,KAAK,QAAQ;YACZ,OAAO,GAAG,qBAAqB,CAAC;YAChC,MAAM;QACP;YACC,8DAA8D;YAC9D,6CAA6C;YAC7C,4EAA4E;YAC5E,MAAM,IAAI,iBAAiB,CAAC,sBAAsB,aAAa,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,gBAAgB,EAAE,CAAC;QACtB,OAAO,IAAI,IAAI,gBAAgB,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW;IAC5C,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CACd,sDAAsD,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;YACrG,CAAC;QACF,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACd,6CAA6C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;YACtG,YAAY,GAAG,EAAE,EACjB,EAAC,KAAK,EAAE,KAAK,EAAC,CACd,CAAC;IACH,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAW;IACzC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,MAAM,GAAG,CAAC,IAAI,EAAuB,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getDataDir(identifier: string): string;
2
+ export declare function synchronize<T>(lockName: string, callback: () => T): Promise<T>;
@@ -0,0 +1,65 @@
1
+ import path from "node:path";
2
+ import os from "node:os";
3
+ import { getLogger } from "@ui5/logger";
4
+ import { mkdir } from "node:fs/promises";
5
+ import { promisify } from "node:util";
6
+ const log = getLogger("utils:dataStorageHelper");
7
+ let baseDir;
8
+ let lockDir;
9
+ const TOOL_ID = "mcp-server";
10
+ export function getDataDir(identifier) {
11
+ // Validate identifier (only alphanum, dashes, underscores)
12
+ if (!/^[a-zA-Z0-9_-]+$/.test(identifier)) {
13
+ throw new Error(`Invalid identifier: ${identifier}. Only alphanumeric characters, dashes, and underscores are allowed.`);
14
+ }
15
+ if (!baseDir) {
16
+ baseDir = getBaseDir();
17
+ log.verbose(`Using base directory for data storage: ${baseDir}`);
18
+ }
19
+ return path.join(baseDir, TOOL_ID, identifier);
20
+ }
21
+ function getBaseDir() {
22
+ if (process.env.UI5_DATA_DIR) {
23
+ return path.resolve(process.env.UI5_DATA_DIR);
24
+ }
25
+ return path.join(os.homedir(), ".ui5");
26
+ }
27
+ export async function synchronize(lockName, callback) {
28
+ if (!lockDir) {
29
+ lockDir = path.join(getBaseDir(), TOOL_ID, "locks");
30
+ log.verbose(`Using lock directory: ${lockDir}`);
31
+ }
32
+ const lockPath = getLockPath(lockDir, lockName);
33
+ await mkdir(lockDir, { recursive: true });
34
+ log.verbose("Locking " + lockPath);
35
+ const { default: lockfile } = await import("lockfile");
36
+ const lock = promisify(lockfile.lock);
37
+ const unlock = promisify(lockfile.unlock);
38
+ await lock(lockPath, {
39
+ wait: 10000,
40
+ stale: 60000,
41
+ retries: 10,
42
+ });
43
+ try {
44
+ const res = await callback();
45
+ return res;
46
+ }
47
+ finally {
48
+ log.verbose("Unlocking " + lockPath);
49
+ await unlock(lockPath);
50
+ }
51
+ }
52
+ // File name must not start with one or multiple dots and should not contain characters other than:
53
+ // * alphanumeric
54
+ // * Dot, dash, underscore
55
+ const illegalFileNameRegExp = /[^0-9a-zA-Z-._/]/;
56
+ function sanitizeFileName(fileName) {
57
+ if (fileName.startsWith(".") || illegalFileNameRegExp.test(fileName)) {
58
+ throw new Error(`Illegal file name: ${fileName}`);
59
+ }
60
+ return fileName.replace(/\//g, "-");
61
+ }
62
+ function getLockPath(lockDir, lockName) {
63
+ return path.join(lockDir, `${sanitizeFileName(lockName)}.lock`);
64
+ }
65
+ //# sourceMappingURL=dataStorageHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataStorageHelper.js","sourceRoot":"","sources":["../../src/utils/dataStorageHelper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { z } from "zod";
2
+ export declare const Ui5FrameworkSchema: z.ZodEnum<["OpenUI5", "SAPUI5"]>;
3
+ export type Ui5Framework = z.infer<typeof Ui5FrameworkSchema>;
4
+ export declare function isUi5Framework(value: unknown): value is Ui5Framework;
@@ -0,0 +1,6 @@
1
+ import { z } from "zod";
2
+ export const Ui5FrameworkSchema = z.enum(["OpenUI5", "SAPUI5"]);
3
+ export function isUi5Framework(value) {
4
+ return Ui5FrameworkSchema.safeParse(value).success;
5
+ }
6
+ //# sourceMappingURL=ui5Framework.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui5Framework.js","sourceRoot":"","sources":["../../src/utils/ui5Framework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAIhE,MAAM,UAAU,cAAc,CAAC,KAAc;IAC5C,OAAO,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AACpD,CAAC"}
package/lib/utils.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ export declare function dirExists(dirPath: string): Promise<boolean>;
2
+ export declare function fileExists(dirPath: string): Promise<boolean>;
3
+ export declare class InvalidInputError extends Error {
4
+ constructor(message: string, options?: ErrorOptions);
5
+ }
6
+ export declare class NotFoundError extends Error {
7
+ constructor(message: string, options?: ErrorOptions);
8
+ }
9
+ export declare function handleError(error: unknown): never;
10
+ export declare const PKG_VERSION: string;