@mcp-abap-adt/calm-server 0.2.1 → 0.4.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 (59) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/README.md +45 -0
  3. package/dist/server/auth/buildBroker.d.ts +22 -0
  4. package/dist/server/auth/buildBroker.d.ts.map +1 -0
  5. package/dist/server/auth/buildBroker.js +55 -0
  6. package/dist/server/auth/buildBroker.js.map +1 -0
  7. package/dist/server/auth/legacyEnvShim.d.ts +10 -0
  8. package/dist/server/auth/legacyEnvShim.d.ts.map +1 -0
  9. package/dist/server/auth/legacyEnvShim.js +23 -0
  10. package/dist/server/auth/legacyEnvShim.js.map +1 -0
  11. package/dist/server/buildClient.d.ts +17 -5
  12. package/dist/server/buildClient.d.ts.map +1 -1
  13. package/dist/server/buildClient.js +22 -64
  14. package/dist/server/buildClient.js.map +1 -1
  15. package/dist/server/config.d.ts +3 -0
  16. package/dist/server/config.d.ts.map +1 -1
  17. package/dist/server/config.js +19 -3
  18. package/dist/server/config.js.map +1 -1
  19. package/dist/server/connection/AbstractCalmConnection.d.ts +43 -0
  20. package/dist/server/connection/AbstractCalmConnection.d.ts.map +1 -0
  21. package/dist/server/connection/AbstractCalmConnection.js +155 -0
  22. package/dist/server/connection/AbstractCalmConnection.js.map +1 -0
  23. package/dist/server/connection/OAuth2CalmConnection.d.ts +13 -0
  24. package/dist/server/connection/OAuth2CalmConnection.d.ts.map +1 -0
  25. package/dist/server/connection/OAuth2CalmConnection.js +27 -0
  26. package/dist/server/connection/OAuth2CalmConnection.js.map +1 -0
  27. package/dist/server/connection/SandboxCalmConnection.d.ts +10 -0
  28. package/dist/server/connection/SandboxCalmConnection.d.ts.map +1 -0
  29. package/dist/server/connection/SandboxCalmConnection.js +16 -0
  30. package/dist/server/connection/SandboxCalmConnection.js.map +1 -0
  31. package/dist/server/connection/XsuaaRefresher.d.ts +18 -0
  32. package/dist/server/connection/XsuaaRefresher.d.ts.map +1 -0
  33. package/dist/server/connection/XsuaaRefresher.js +51 -0
  34. package/dist/server/connection/XsuaaRefresher.js.map +1 -0
  35. package/dist/server/connection/createCalmConnection.d.ts +13 -0
  36. package/dist/server/connection/createCalmConnection.d.ts.map +1 -0
  37. package/dist/server/connection/createCalmConnection.js +28 -0
  38. package/dist/server/connection/createCalmConnection.js.map +1 -0
  39. package/dist/server/connection/index.d.ts +10 -0
  40. package/dist/server/connection/index.d.ts.map +1 -0
  41. package/dist/server/connection/index.js +16 -0
  42. package/dist/server/connection/index.js.map +1 -0
  43. package/dist/server/connection/serviceRoutes.d.ts +16 -0
  44. package/dist/server/connection/serviceRoutes.d.ts.map +1 -0
  45. package/dist/server/connection/serviceRoutes.js +27 -0
  46. package/dist/server/connection/serviceRoutes.js.map +1 -0
  47. package/dist/server/runStdio.js +2 -2
  48. package/dist/server/runStdio.js.map +1 -1
  49. package/dist/tools/features/getFeatureByDisplayId.d.ts +1 -0
  50. package/dist/tools/features/getFeatureByDisplayId.d.ts.map +1 -1
  51. package/dist/tools/features/getFeatureByDisplayId.js +11 -5
  52. package/dist/tools/features/getFeatureByDisplayId.js.map +1 -1
  53. package/dist/tools/features/listFeatures.d.ts.map +1 -1
  54. package/dist/tools/features/listFeatures.js +5 -2
  55. package/dist/tools/features/listFeatures.js.map +1 -1
  56. package/dist/tools/tasks/listTasks.d.ts.map +1 -1
  57. package/dist/tools/tasks/listTasks.js +19 -15
  58. package/dist/tools/tasks/listTasks.js.map +1 -1
  59. package/package.json +13 -3
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listTasksTool = void 0;
4
- const calm_client_1 = require("@mcp-abap-adt/calm-client");
5
4
  const utils_1 = require("../../utils");
6
5
  const DEFAULT_FIELDS = [
7
6
  'id',
@@ -62,21 +61,26 @@ const handler = async (ctx, args) => {
62
61
  }
63
62
  const limit = (0, utils_1.clampListLimit)(args.limit);
64
63
  const offset = args.offset && args.offset > 0 ? Math.floor(args.offset) : 0;
65
- const filter = (0, utils_1.joinAndFilters)(`projectId eq '${(0, utils_1.escapeODataString)(args.projectId)}'`, args.status ? `status eq '${(0, utils_1.escapeODataString)(args.status)}'` : undefined, args.assigneeId
66
- ? `assigneeId eq '${(0, utils_1.escapeODataString)(args.assigneeId)}'`
67
- : undefined);
68
- const fields = args.fields && args.fields.length > 0 ? args.fields : DEFAULT_FIELDS;
69
- let query = calm_client_1.ODataQuery.new()
70
- .select([...fields])
71
- .top(limit)
72
- .skip(offset);
73
- if (filter)
74
- query = query.filter(filter);
75
- if (args.withCount)
76
- query = query.count();
64
+ // The Tasks service controller does NOT accept OData query
65
+ // semantics `$select`, `$top`, and likely `$filter` all return
66
+ // 400 ("not supported yet"). It only honours `?projectId=<uuid>`
67
+ // on the URL. The full row set comes back; status/assignee
68
+ // filtering and pagination/limit happen client-side here.
69
+ const remoteFilters = {
70
+ status: args.status,
71
+ assigneeId: args.assigneeId,
72
+ };
77
73
  try {
78
- const collection = await ctx.calm.getTasks().list(query);
79
- return (0, utils_1.toListResponse)(collection, { limit, offset });
74
+ const collection = await ctx.calm.getTasks().list(args.projectId);
75
+ let all = (collection.value ?? []);
76
+ if (remoteFilters.status !== undefined) {
77
+ all = all.filter((t) => t.status === remoteFilters.status);
78
+ }
79
+ if (remoteFilters.assigneeId !== undefined) {
80
+ all = all.filter((t) => t.assigneeId === remoteFilters.assigneeId);
81
+ }
82
+ const paged = all.slice(offset, offset + limit);
83
+ return (0, utils_1.toListResponse)({ value: paged, '@odata.count': args.withCount ? all.length : undefined }, { limit, offset });
80
84
  }
81
85
  catch (err) {
82
86
  throw (0, utils_1.mapCalmErrorForTool)(err);
@@ -1 +1 @@
1
- {"version":3,"file":"listTasks.js","sourceRoot":"","sources":["../../../src/tools/tasks/listTasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listTasks.js","sourceRoot":"","sources":["../../../src/tools/tasks/listTasks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/calm-server",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "description": "MCP server + reusable tool primitives for SAP Cloud ALM, backed by @mcp-abap-adt/calm-client.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,6 +19,10 @@
19
19
  "./registry": {
20
20
  "types": "./dist/registry/index.d.ts",
21
21
  "default": "./dist/registry/index.js"
22
+ },
23
+ "./connection": {
24
+ "types": "./dist/server/connection/index.d.ts",
25
+ "default": "./dist/server/connection/index.js"
22
26
  }
23
27
  },
24
28
  "files": [
@@ -63,16 +67,22 @@
63
67
  "tools"
64
68
  ],
65
69
  "peerDependencies": {
66
- "@mcp-abap-adt/calm-client": "^0.2.0",
70
+ "@mcp-abap-adt/auth-broker": "^1.0.5",
71
+ "@mcp-abap-adt/auth-providers": "^1.0.5",
72
+ "@mcp-abap-adt/auth-stores": "^1.0.4",
73
+ "@mcp-abap-adt/calm-client": "^0.4.0",
67
74
  "@mcp-abap-adt/interfaces": "^7.1.0",
68
75
  "@modelcontextprotocol/sdk": "^1.0.0"
69
76
  },
77
+ "dependencies": {
78
+ "dotenv": "^17.3.1"
79
+ },
70
80
  "devDependencies": {
71
81
  "@biomejs/biome": "^2.4.4",
72
82
  "@mcp-abap-adt/auth-broker": "^1.0.5",
73
83
  "@mcp-abap-adt/auth-providers": "^1.0.5",
74
84
  "@mcp-abap-adt/auth-stores": "^1.0.4",
75
- "@mcp-abap-adt/calm-client": "^0.2.0",
85
+ "@mcp-abap-adt/calm-client": "^0.4.0",
76
86
  "@mcp-abap-adt/interfaces": "^7.1.0",
77
87
  "@mcp-abap-adt/logger": "^0.1.4",
78
88
  "@modelcontextprotocol/sdk": "^1.0.0",