@ui5/mcp-server 0.2.6 → 0.2.7
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.
- package/CHANGELOG.md +23 -0
- package/icon.png +0 -0
- package/lib/tools/create_integration_card/create_integration_card.d.ts +3 -2
- package/lib/tools/create_integration_card/create_integration_card.js +24 -1
- package/lib/tools/create_integration_card/create_integration_card.js.map +1 -1
- package/lib/tools/create_integration_card/index.js +1 -0
- package/lib/tools/create_integration_card/index.js.map +1 -1
- package/lib/tools/create_integration_card/schema.d.ts +10 -0
- package/lib/tools/create_integration_card/schema.js +9 -0
- package/lib/tools/create_integration_card/schema.js.map +1 -1
- package/lib/tools/create_ui5_app/create_ui5_app.js +2 -32
- package/lib/tools/create_ui5_app/create_ui5_app.js.map +1 -1
- package/lib/utils/getAllowedDomains.d.ts +1 -0
- package/lib/utils/getAllowedDomains.js +35 -0
- package/lib/utils/getAllowedDomains.js.map +1 -0
- package/lib/{tools/create_ui5_app → utils}/isValidUrl.js +1 -1
- package/lib/utils/isValidUrl.js.map +1 -0
- package/npm-shrinkwrap.json +1041 -738
- package/package.json +17 -16
- package/resources/integration_cards_guidelines.md +260 -2
- package/resources/template-card/card/manifest.json +10 -0
- package/resources/template-card/test/App.js +20 -4
- package/resources/template-card/test/index.css +4 -0
- package/resources/template-card/test/index.html +1 -3
- package/lib/tools/create_ui5_app/isValidUrl.js.map +0 -1
- /package/lib/{tools/create_ui5_app → utils}/isValidUrl.d.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.2.7](https://github.com/UI5/mcp-server/compare/v0.2.6...v0.2.7) (2026-02-27)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **Integration Cards:** Improve generation of Configuration Editor ([#230](https://github.com/UI5/mcp-server/issues/230)) ([5f67820](https://github.com/UI5/mcp-server/commit/5f678208e3c03f35eaee57c1c6cccfe6ce26c22d))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* Add UI5 icon ([c6c7980](https://github.com/UI5/mcp-server/commit/c6c7980b04e2fa7590a50163c484a8e0dcd0d264))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Dependencies
|
|
17
|
+
|
|
18
|
+
* Bump @modelcontextprotocol/sdk from 1.26.0 to 1.27.0 ([8388270](https://github.com/UI5/mcp-server/commit/8388270369041f6f4b14d3e9f181eed931f3e60e))
|
|
19
|
+
* Bump @modelcontextprotocol/sdk from 1.27.0 to 1.27.1 ([cc1fc8a](https://github.com/UI5/mcp-server/commit/cc1fc8a6343945c1a939c5412eec8b2662390882))
|
|
20
|
+
* Bump @ui5/project from 4.0.10 to 4.0.11 ([32ae81d](https://github.com/UI5/mcp-server/commit/32ae81d94d0f66fabdebf67155d08a606e0c8f80))
|
|
21
|
+
* Bump fast-xml-parser from 5.3.6 to 5.3.7 ([4ac6a44](https://github.com/UI5/mcp-server/commit/4ac6a440709fc699d5cc6bc8b3709caf41390796))
|
|
22
|
+
* Bump fast-xml-parser from 5.3.7 to 5.4.1 ([c8d1bd3](https://github.com/UI5/mcp-server/commit/c8d1bd38fbef03c11e3bc60aa9174aa7bb7faa19))
|
|
23
|
+
* Bump globby from 16.1.0 to 16.1.1 ([e6eb79e](https://github.com/UI5/mcp-server/commit/e6eb79e0efd9898e58f11aa086cd1cdd85fd80fb))
|
|
24
|
+
* Bump make-fetch-happen from 15.0.3 to 15.0.4 ([962b6f7](https://github.com/UI5/mcp-server/commit/962b6f7972520c66e5bc8e43c3edff12838c8f1d))
|
|
25
|
+
|
|
3
26
|
## [0.2.6](https://github.com/UI5/mcp-server/compare/v0.2.5...v0.2.6) (2026-02-17)
|
|
4
27
|
|
|
5
28
|
|
package/icon.png
ADDED
|
Binary file
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { SupportedCardType } from "./schema.js";
|
|
1
|
+
import { Destination, SupportedCardType } from "./schema.js";
|
|
2
2
|
interface CreateIntegrationCardParams {
|
|
3
3
|
folderPath: string;
|
|
4
4
|
cardType: SupportedCardType;
|
|
5
5
|
manifestVersion: string;
|
|
6
|
+
destinations?: Destination[];
|
|
6
7
|
}
|
|
7
|
-
export declare function createIntegrationCard({ folderPath, cardType, manifestVersion }: CreateIntegrationCardParams): Promise<string[]>;
|
|
8
|
+
export declare function createIntegrationCard({ folderPath, cardType, manifestVersion, destinations, }: CreateIntegrationCardParams): Promise<string[]>;
|
|
8
9
|
export {};
|
|
@@ -6,10 +6,12 @@ import { fileURLToPath } from "url";
|
|
|
6
6
|
import ejs from "ejs";
|
|
7
7
|
import { getLogger } from "@ui5/logger";
|
|
8
8
|
import semver from "semver";
|
|
9
|
+
import getAllowedDomains from "../../utils/getAllowedDomains.js";
|
|
10
|
+
import isValidUrl from "../../utils/isValidUrl.js";
|
|
9
11
|
const log = getLogger("tools:create_integration_card:create_integration_card");
|
|
10
12
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
11
13
|
;
|
|
12
|
-
export async function createIntegrationCard({ folderPath, cardType, manifestVersion }) {
|
|
14
|
+
export async function createIntegrationCard({ folderPath, cardType, manifestVersion, destinations, }) {
|
|
13
15
|
if (!isAbsolute(folderPath)) {
|
|
14
16
|
throw new InvalidInputError("The provided folder path is not valid! Please provide an absolute path to the target directory.");
|
|
15
17
|
}
|
|
@@ -20,6 +22,26 @@ export async function createIntegrationCard({ folderPath, cardType, manifestVers
|
|
|
20
22
|
if (!semver.valid(manifestVersion)) {
|
|
21
23
|
throw new InvalidInputError("The provided manifest version is not valid!");
|
|
22
24
|
}
|
|
25
|
+
if (destinations?.length) {
|
|
26
|
+
const allowedDomains = getAllowedDomains();
|
|
27
|
+
for (const destination of destinations) {
|
|
28
|
+
if (!isValidUrl(destination.defaultUrl, allowedDomains)) {
|
|
29
|
+
let allowedDomainsNote = "";
|
|
30
|
+
if (allowedDomains.length) {
|
|
31
|
+
allowedDomainsNote =
|
|
32
|
+
`As per the MCP server configuration, only the following domains are currently allowed: ` +
|
|
33
|
+
`'${allowedDomains.join("', '")}'. See https://github.com/UI5/mcp-server#configuration ` +
|
|
34
|
+
`for information on how to configure the allow list.`;
|
|
35
|
+
}
|
|
36
|
+
throw new InvalidInputError(`The provided destination 'defaultUrl' service URL is not valid.` +
|
|
37
|
+
`It must be either an absolute URL` +
|
|
38
|
+
`starting with http:// or https:// or pathname like '/api/v1/serviceName' in case ` +
|
|
39
|
+
`the service is exposed on the same server as the application. In this case, ` +
|
|
40
|
+
`the protocol and host 'http://localhost:4004' will be assumed and used by this tool for inquiries ` +
|
|
41
|
+
`about the service. ${allowedDomainsNote}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
23
45
|
try {
|
|
24
46
|
// create target directory
|
|
25
47
|
await mkdir(folderPath, { recursive: true });
|
|
@@ -51,6 +73,7 @@ export async function createIntegrationCard({ folderPath, cardType, manifestVers
|
|
|
51
73
|
const templateVars = {
|
|
52
74
|
cardType,
|
|
53
75
|
manifestVersion,
|
|
76
|
+
destinations,
|
|
54
77
|
};
|
|
55
78
|
let processedContent = ejs.render(templateContent, templateVars, { filename: sourcePath });
|
|
56
79
|
// format JSON files
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_integration_card.js","sourceRoot":"","sources":["../../../src/tools/create_integration_card/create_integration_card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AACvD,OAAO,EAAC,SAAS,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,OAAO,IAAI,EAAE,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AACtC,OAAO,EAAC,aAAa,EAAC,MAAM,KAAK,CAAC;AAClC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAEtC,OAAO,MAAM,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"create_integration_card.js","sourceRoot":"","sources":["../../../src/tools/create_integration_card/create_integration_card.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ export default function registerTool(registerTool, context) {
|
|
|
28
28
|
folderPath: normalizedCardFolderName,
|
|
29
29
|
cardType: params.cardType,
|
|
30
30
|
manifestVersion: latestManifestVersion,
|
|
31
|
+
destinations: params.destinations,
|
|
31
32
|
});
|
|
32
33
|
const message = `Successfully created Integration Card ${params.cardFolderName} at ${normalizedBasePath}\n` +
|
|
33
34
|
`The generated files inside ${normalizedCardFolderName} are:\n${generatedFiles.join("\n")}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/create_integration_card/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAC,qBAAqB,EAAC,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AAEpE,MAAM,GAAG,GAAG,SAAS,CAAC,+BAA+B,CAAC,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,YAA0B,EAAE,OAAgB;IAChF,OAAO,YAAY,CAAC,yBAAyB,EAAE;QAC9C,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,6EAA6E;QAC1F,WAAW,EAAE;YACZ,KAAK,EAAE,yBAAyB;YAChC,YAAY,EAAE,KAAK;SACnB;QACD,WAAW;KACX,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACnB,MAAM,qBAAqB,GAAG,MAAM,wBAAwB,EAAE,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,sCAAsC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,GAAG,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,2BAA2B,qBAAqB,EAAE,CAAC,CAAC;QAE7D,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxE,MAAM,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QAEtF,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CACd,oBAAoB,wBAAwB,4BAA4B,kBAAkB,EAAE,CAC5F,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC;YAClD,UAAU,EAAE,wBAAwB;YACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,eAAe,EAAE,qBAAqB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/create_integration_card/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAC,qBAAqB,EAAC,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AAEpE,MAAM,GAAG,GAAG,SAAS,CAAC,+BAA+B,CAAC,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,YAA0B,EAAE,OAAgB;IAChF,OAAO,YAAY,CAAC,yBAAyB,EAAE;QAC9C,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,6EAA6E;QAC1F,WAAW,EAAE;YACZ,KAAK,EAAE,yBAAyB;YAChC,YAAY,EAAE,KAAK;SACnB;QACD,WAAW;KACX,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACnB,MAAM,qBAAqB,GAAG,MAAM,wBAAwB,EAAE,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,sCAAsC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,GAAG,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,2BAA2B,qBAAqB,EAAE,CAAC,CAAC;QAE7D,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxE,MAAM,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QAEtF,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CACd,oBAAoB,wBAAwB,4BAA4B,kBAAkB,EAAE,CAC5F,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC;YAClD,UAAU,EAAE,wBAAwB;YACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,eAAe,EAAE,qBAAqB;YACtC,YAAY,EAAE,MAAM,CAAC,YAAY;SACjC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,yCAAyC,MAAM,CAAC,cAAc,OAAO,kBAAkB,IAAI;YAC1G,8BAA8B,wBAAwB,UAAU,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAE7F,OAAO;YACN,OAAO,EAAE,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO;iBACb,CAAC;SACF,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import z from "zod";
|
|
2
2
|
export declare const supportedCardTypes: readonly ["Analytical", "Calendar", "List", "Object", "Table", "Timeline"];
|
|
3
3
|
export type SupportedCardType = typeof supportedCardTypes[number];
|
|
4
|
+
declare const destinationSchema: z.ZodObject<{
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
defaultUrl: z.ZodString;
|
|
7
|
+
}, z.z.core.$strip>;
|
|
8
|
+
export type Destination = z.infer<typeof destinationSchema>;
|
|
4
9
|
export declare const inputSchema: {
|
|
5
10
|
basePath: z.ZodString;
|
|
6
11
|
cardFolderName: z.ZodDefault<z.ZodString>;
|
|
@@ -12,4 +17,9 @@ export declare const inputSchema: {
|
|
|
12
17
|
Table: "Table";
|
|
13
18
|
Timeline: "Timeline";
|
|
14
19
|
}>>;
|
|
20
|
+
destinations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
21
|
+
name: z.ZodString;
|
|
22
|
+
defaultUrl: z.ZodString;
|
|
23
|
+
}, z.z.core.$strip>>>;
|
|
15
24
|
};
|
|
25
|
+
export {};
|
|
@@ -7,6 +7,12 @@ export const supportedCardTypes = [
|
|
|
7
7
|
"Table",
|
|
8
8
|
"Timeline",
|
|
9
9
|
];
|
|
10
|
+
const destinationSchema = z.object({
|
|
11
|
+
name: z.string()
|
|
12
|
+
.regex(/^[a-zA-Z0-9 .,'@_-]+$/, { message: "Only alphanumeric characters, space, and .,'-@_ are allowed." })
|
|
13
|
+
.describe("Name of the destination."),
|
|
14
|
+
defaultUrl: z.string().describe("Default URL of the destination."),
|
|
15
|
+
});
|
|
10
16
|
export const inputSchema = {
|
|
11
17
|
basePath: z.string()
|
|
12
18
|
.describe("Absolute base path for the creation."),
|
|
@@ -16,5 +22,8 @@ export const inputSchema = {
|
|
|
16
22
|
cardType: z.enum(supportedCardTypes)
|
|
17
23
|
.describe("Type of the Integration Card to create.")
|
|
18
24
|
.default("List"),
|
|
25
|
+
destinations: z.array(destinationSchema)
|
|
26
|
+
.describe("List of destinations to be included in the card configuration.")
|
|
27
|
+
.optional(),
|
|
19
28
|
};
|
|
20
29
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/tools/create_integration_card/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,YAAY;IACZ,UAAU;IACV,MAAM;IACN,QAAQ;IACR,OAAO;IACP,UAAU;CACD,CAAC;AAIX,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;SAClB,QAAQ,CAAC,sCAAsC,CAAC;IAClD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;SACxB,QAAQ,CAAC,iEAAiE,CAAC;SAC3E,OAAO,CAAC,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;SAClC,QAAQ,CAAC,yCAAyC,CAAC;SACnD,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/tools/create_integration_card/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,YAAY;IACZ,UAAU;IACV,MAAM;IACN,QAAQ;IACR,OAAO;IACP,UAAU;CACD,CAAC;AAIX,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACd,KAAK,CAAC,uBAAuB,EAAE,EAAC,OAAO,EAAE,8DAA8D,EAAC,CAAC;SACzG,QAAQ,CAAC,0BAA0B,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CAClE,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;SAClB,QAAQ,CAAC,sCAAsC,CAAC;IAClD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;SACxB,QAAQ,CAAC,iEAAiE,CAAC;SAC3E,OAAO,CAAC,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;SAClC,QAAQ,CAAC,yCAAyC,CAAC;SACnD,OAAO,CAAC,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;SACtC,QAAQ,CAAC,gEAAgE,CAAC;SAC1E,QAAQ,EAAE;CACZ,CAAC"}
|
|
@@ -10,7 +10,8 @@ import ODataMetadata from "./ODataMetadata.js";
|
|
|
10
10
|
import { getLogger } from "@ui5/logger";
|
|
11
11
|
import { isUi5Framework } from "../../utils/ui5Framework.js";
|
|
12
12
|
import { dirExists, InvalidInputError, PKG_VERSION } from "../../utils.js";
|
|
13
|
-
import
|
|
13
|
+
import getAllowedDomains from "../../utils/getAllowedDomains.js";
|
|
14
|
+
import isValidUrl from "../../utils/isValidUrl.js";
|
|
14
15
|
const log = getLogger("tools:create_ui5_app:create_ui5_app");
|
|
15
16
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
16
17
|
const minFwkVersion = {
|
|
@@ -244,35 +245,4 @@ The minimum version for ${framework} is ${minFwkVersionToUse}.`);
|
|
|
244
245
|
},
|
|
245
246
|
};
|
|
246
247
|
}
|
|
247
|
-
function getAllowedDomains() {
|
|
248
|
-
if ("UI5_MCP_SERVER_ALLOWED_DOMAINS" in process.env || "UI5_MCP_SERVER_ALLOWED_ODATA_DOMAINS" in process.env) {
|
|
249
|
-
const inputDomainList = process.env.UI5_MCP_SERVER_ALLOWED_DOMAINS ??
|
|
250
|
-
process.env.UI5_MCP_SERVER_ALLOWED_ODATA_DOMAINS;
|
|
251
|
-
if (!inputDomainList?.trim()) {
|
|
252
|
-
// Empty list allows all domains
|
|
253
|
-
log.verbose("Empty value for UI5_MCP_SERVER_ALLOWED_DOMAINS, allowing all domains");
|
|
254
|
-
return [];
|
|
255
|
-
}
|
|
256
|
-
// Use the environment variable if set
|
|
257
|
-
const domainList = inputDomainList.split(",").map((d) => d.trim());
|
|
258
|
-
// Validate domains to catch user errors
|
|
259
|
-
for (const domain of domainList) {
|
|
260
|
-
try {
|
|
261
|
-
// Note that the dot prefix (which we use for wildcards) is valid in a domain
|
|
262
|
-
new URL(`https://${domain}`);
|
|
263
|
-
}
|
|
264
|
-
catch (err) {
|
|
265
|
-
throw new InvalidInputError(`Invalid domain '${domain}' in UI5_MCP_SERVER_ALLOWED_DOMAINS: ` +
|
|
266
|
-
(err instanceof Error ? err.message : String(err)));
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
log.verbose(`${domainList.length} allowed OData V4 domains configured: ${domainList.join(", ")}`);
|
|
270
|
-
return domainList;
|
|
271
|
-
}
|
|
272
|
-
return [
|
|
273
|
-
// Default allowed domains for OData V4 services
|
|
274
|
-
"localhost",
|
|
275
|
-
"services.odata.org",
|
|
276
|
-
];
|
|
277
|
-
}
|
|
278
248
|
//# sourceMappingURL=create_ui5_app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_ui5_app.js","sourceRoot":"","sources":["../../../src/tools/create_ui5_app/create_ui5_app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,EAAE,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AACtC,OAAO,EAAC,aAAa,EAAC,MAAM,KAAK,CAAC;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAClC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACxD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,cAAc,EAAe,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAC,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAC,MAAM,gBAAgB,CAAC;AACzE,OAAO,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"create_ui5_app.js","sourceRoot":"","sources":["../../../src/tools/create_ui5_app/create_ui5_app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function getAllowedDomains(): string[];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { getLogger } from "@ui5/logger";
|
|
2
|
+
import { InvalidInputError } from "../utils.js";
|
|
3
|
+
const log = getLogger("utils:getAllowedDomains");
|
|
4
|
+
export default function getAllowedDomains() {
|
|
5
|
+
if ("UI5_MCP_SERVER_ALLOWED_DOMAINS" in process.env || "UI5_MCP_SERVER_ALLOWED_ODATA_DOMAINS" in process.env) {
|
|
6
|
+
const inputDomainList = process.env.UI5_MCP_SERVER_ALLOWED_DOMAINS ??
|
|
7
|
+
process.env.UI5_MCP_SERVER_ALLOWED_ODATA_DOMAINS;
|
|
8
|
+
if (!inputDomainList?.trim()) {
|
|
9
|
+
// Empty list allows all domains
|
|
10
|
+
log.verbose("Empty value for UI5_MCP_SERVER_ALLOWED_DOMAINS, allowing all domains");
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
// Use the environment variable if set
|
|
14
|
+
const domainList = inputDomainList.split(",").map((d) => d.trim());
|
|
15
|
+
// Validate domains to catch user errors
|
|
16
|
+
for (const domain of domainList) {
|
|
17
|
+
try {
|
|
18
|
+
// Note that the dot prefix (which we use for wildcards) is valid in a domain
|
|
19
|
+
new URL(`https://${domain}`);
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
throw new InvalidInputError(`Invalid domain '${domain}' in UI5_MCP_SERVER_ALLOWED_DOMAINS: ` +
|
|
23
|
+
(err instanceof Error ? err.message : String(err)));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
log.verbose(`${domainList.length} allowed domains configured: ${domainList.join(", ")}`);
|
|
27
|
+
return domainList;
|
|
28
|
+
}
|
|
29
|
+
return [
|
|
30
|
+
// Default allowed domains for services
|
|
31
|
+
"localhost",
|
|
32
|
+
"services.odata.org",
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=getAllowedDomains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAllowedDomains.js","sourceRoot":"","sources":["../../src/utils/getAllowedDomains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAE9C,MAAM,GAAG,GAAG,SAAS,CAAC,yBAAyB,CAAC,CAAC;AAEjD,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACxC,IAAI,gCAAgC,IAAI,OAAO,CAAC,GAAG,IAAI,sCAAsC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9G,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B;YACjE,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC;QAClD,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;YAC9B,gCAAgC;YAChC,GAAG,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC;YACpF,OAAO,EAAE,CAAC;QACX,CAAC;QACD,sCAAsC;QACtC,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,wCAAwC;QACxC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC;gBACJ,6EAA6E;gBAC7E,IAAI,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,MAAM,IAAI,iBAAiB,CAC1B,mBAAmB,MAAM,uCAAuC;oBAChE,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAClD,CAAC;YACH,CAAC;QACF,CAAC;QACD,GAAG,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,gCAAgC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzF,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,OAAO;QACN,uCAAuC;QACvC,WAAW;QACX,oBAAoB;KACpB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isValidUrl.js","sourceRoot":"","sources":["../../src/utils/isValidUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CACjC,SAAiB,EACjB,kBAA4B,EAAE,EAC9B,oBAA8B,CAAC,MAAM,EAAE,OAAO,CAAC;IAE/C,IAAI,GAAQ,CAAC;IAEb,sDAAsD;IACtD,IAAI,CAAC;QACJ,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACf,gEAAgE;QAChE,OAAO,KAAK,CAAC;IACd,CAAC;IAED,4BAA4B;IAC5B,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,+DAA+D;QAC/D,uCAAuC;QACvC,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,mCAAmC;IACnC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE9B,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE;YAC9D,+CAA+C;YAC/C,IAAI,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,2DAA2D;gBAC3D,mDAAmD;gBACnD,uDAAuD;gBACvD,OAAO,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACzC,CAAC;YAED,qBAAqB;YACrB,OAAO,QAAQ,KAAK,aAAa,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,MAAM,IAAI,iBAAiB,CAC1B,WAAW,QAAQ,0CAA0C,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC/F,qGAAqG,CAAC,CAAC;QACzG,CAAC;IACF,CAAC;IAED,wCAAwC;IACxC,OAAO,IAAI,CAAC;AACb,CAAC;AAAA,CAAC"}
|