@syn7xx/testops-mcp-server 0.1.2 → 0.1.5

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 (93) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +147 -89
  3. package/dist/args.d.ts +2 -3
  4. package/dist/args.d.ts.map +1 -1
  5. package/dist/args.js +57 -19
  6. package/dist/args.js.map +1 -1
  7. package/dist/domain/project/service.d.ts.map +1 -1
  8. package/dist/domain/project/service.js +1 -1
  9. package/dist/domain/project/service.js.map +1 -1
  10. package/dist/domain/project/types.d.ts.map +1 -1
  11. package/dist/domain/test-case/service.d.ts +13 -1
  12. package/dist/domain/test-case/service.d.ts.map +1 -1
  13. package/dist/domain/test-case/service.js +22 -6
  14. package/dist/domain/test-case/service.js.map +1 -1
  15. package/dist/domain/test-case/types.d.ts +17 -0
  16. package/dist/domain/test-case/types.d.ts.map +1 -1
  17. package/dist/domain/test-plan/service.d.ts.map +1 -1
  18. package/dist/domain/test-plan/service.js +1 -1
  19. package/dist/domain/test-plan/service.js.map +1 -1
  20. package/dist/domain/test-plan/types.d.ts.map +1 -1
  21. package/dist/presentation/project/tools.d.ts +2 -1
  22. package/dist/presentation/project/tools.d.ts.map +1 -1
  23. package/dist/presentation/project/tools.js +30 -8
  24. package/dist/presentation/project/tools.js.map +1 -1
  25. package/dist/presentation/test-case/tools.d.ts +2 -1
  26. package/dist/presentation/test-case/tools.d.ts.map +1 -1
  27. package/dist/presentation/test-case/tools.js +138 -32
  28. package/dist/presentation/test-case/tools.js.map +1 -1
  29. package/dist/presentation/test-plan/tools.d.ts +2 -1
  30. package/dist/presentation/test-plan/tools.d.ts.map +1 -1
  31. package/dist/presentation/test-plan/tools.js +17 -5
  32. package/dist/presentation/test-plan/tools.js.map +1 -1
  33. package/dist/server.d.ts.map +1 -1
  34. package/dist/server.js +8 -5
  35. package/dist/server.js.map +1 -1
  36. package/dist/shared/api.d.ts +2 -4
  37. package/dist/shared/api.d.ts.map +1 -1
  38. package/dist/shared/api.js +34 -31
  39. package/dist/shared/api.js.map +1 -1
  40. package/dist/shared/pagination.d.ts.map +1 -1
  41. package/dist/shared/pagination.js.map +1 -1
  42. package/dist/shared/result.d.ts.map +1 -1
  43. package/dist/shared/result.js +7 -4
  44. package/dist/shared/result.js.map +1 -1
  45. package/package.json +18 -4
  46. package/dist/services/config.d.ts +0 -43
  47. package/dist/services/config.d.ts.map +0 -1
  48. package/dist/services/config.js +0 -99
  49. package/dist/services/config.js.map +0 -1
  50. package/dist/services/index.d.ts +0 -8
  51. package/dist/services/index.d.ts.map +0 -1
  52. package/dist/services/index.js +0 -8
  53. package/dist/services/index.js.map +0 -1
  54. package/dist/services/project.d.ts +0 -17
  55. package/dist/services/project.d.ts.map +0 -1
  56. package/dist/services/project.js +0 -27
  57. package/dist/services/project.js.map +0 -1
  58. package/dist/services/test-case.d.ts +0 -59
  59. package/dist/services/test-case.d.ts.map +0 -1
  60. package/dist/services/test-case.js +0 -138
  61. package/dist/services/test-case.js.map +0 -1
  62. package/dist/services/test-plan.d.ts +0 -20
  63. package/dist/services/test-plan.d.ts.map +0 -1
  64. package/dist/services/test-plan.js +0 -18
  65. package/dist/services/test-plan.js.map +0 -1
  66. package/dist/services/testops-client.d.ts +0 -96
  67. package/dist/services/testops-client.d.ts.map +0 -1
  68. package/dist/services/testops-client.js +0 -392
  69. package/dist/services/testops-client.js.map +0 -1
  70. package/dist/services/testops-types.d.ts +0 -62
  71. package/dist/services/testops-types.d.ts.map +0 -1
  72. package/dist/services/testops-types.js +0 -3
  73. package/dist/services/testops-types.js.map +0 -1
  74. package/dist/tools/index.d.ts +0 -8
  75. package/dist/tools/index.d.ts.map +0 -1
  76. package/dist/tools/index.js +0 -8
  77. package/dist/tools/index.js.map +0 -1
  78. package/dist/tools/project.d.ts +0 -5
  79. package/dist/tools/project.d.ts.map +0 -1
  80. package/dist/tools/project.js +0 -62
  81. package/dist/tools/project.js.map +0 -1
  82. package/dist/tools/test-case.d.ts +0 -5
  83. package/dist/tools/test-case.d.ts.map +0 -1
  84. package/dist/tools/test-case.js +0 -185
  85. package/dist/tools/test-case.js.map +0 -1
  86. package/dist/tools/test-plan.d.ts +0 -5
  87. package/dist/tools/test-plan.d.ts.map +0 -1
  88. package/dist/tools/test-plan.js +0 -57
  89. package/dist/tools/test-plan.js.map +0 -1
  90. package/dist/tools/testops.d.ts +0 -6
  91. package/dist/tools/testops.d.ts.map +0 -1
  92. package/dist/tools/testops.js +0 -302
  93. package/dist/tools/testops.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/shared/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,+CAA+C;AAC/C,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7D,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAKD;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,IAG1D,CAAC;AAWF,4DAA4D;AAC5D,eAAO,MAAM,aAAa,QAAO,IAEhC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM,QAAa,OAAO,CAAC,MAAM,CA2B7C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAU,CAAC,GAAG,OAAO,EACtC,UAAU,MAAM,EAChB,QAAQ,aAAa,KACtB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CA+B1B,CAAC;AAEF,yBAAyB;AACzB,eAAO,MAAM,MAAM,GAAI,CAAC,GAAG,OAAO,EAC9B,UAAU,MAAM,EAChB,cAAc,aAAa,CAAC,aAAa,CAAC,KAC3C,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAA0D,CAAC;AAEtF,0BAA0B;AAC1B,eAAO,MAAM,OAAO,GAAI,CAAC,GAAG,OAAO,EAC/B,UAAU,MAAM,EAChB,OAAO,OAAO,EACd,cAAc,aAAa,CAAC,aAAa,CAAC,KAC3C,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAiE,CAAC;AAE7F,2BAA2B;AAC3B,eAAO,MAAM,QAAQ,GAAI,CAAC,GAAG,OAAO,EAChC,UAAU,MAAM,EAChB,OAAO,OAAO,EACd,cAAc,aAAa,CAAC,aAAa,CAAC,KAC3C,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAkE,CAAC;AAE9F,4BAA4B;AAC5B,eAAO,MAAM,SAAS,GAAI,CAAC,GAAG,OAAO,EACjC,UAAU,MAAM,EAChB,cAAc,aAAa,CAAC,aAAa,CAAC,KAC3C,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAA6D,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/shared/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,+CAA+C;AAC/C,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7D,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAKD;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,IAG1D,CAAC;AAWF,4DAA4D;AAC5D,eAAO,MAAM,aAAa,QAAO,IAEhC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM,QAAa,OAAO,CAAC,MAAM,CA2B7C,CAAC;AA4CF;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAU,CAAC,GAAG,OAAO,EACxC,UAAU,MAAM,EAChB,QAAQ,aAAa,KACpB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAE1B,CAAC;AAEF,yBAAyB;AACzB,eAAO,MAAM,MAAM,GAAI,CAAC,GAAG,OAAO,EAChC,UAAU,MAAM,EAChB,cAAc,aAAa,CAAC,aAAa,CAAC,KACzC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAC4B,CAAC;AAExD,0BAA0B;AAC1B,eAAO,MAAM,OAAO,GAAI,CAAC,GAAG,OAAO,EACjC,UAAU,MAAM,EAChB,OAAO,OAAO,EACd,cAAc,aAAa,CAAC,aAAa,CAAC,KACzC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CACmC,CAAC;AAE/D,2BAA2B;AAC3B,eAAO,MAAM,QAAQ,GAAI,CAAC,GAAG,OAAO,EAClC,UAAU,MAAM,EAChB,OAAO,OAAO,EACd,cAAc,aAAa,CAAC,aAAa,CAAC,KACzC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CACoC,CAAC;AAEhE,4BAA4B;AAC5B,eAAO,MAAM,SAAS,GAAI,CAAC,GAAG,OAAO,EACnC,UAAU,MAAM,EAChB,cAAc,aAAa,CAAC,aAAa,CAAC,KACzC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAC+B,CAAC"}
@@ -45,43 +45,46 @@ export const getJwt = async () => {
45
45
  if (!response.ok) {
46
46
  throw new Error(`Auth failed: ${response.status} ${response.statusText}`);
47
47
  }
48
- const data = await response.json();
48
+ const data = (await response.json());
49
49
  jwtToken = data.access_token;
50
50
  return jwtToken;
51
51
  };
52
+ async function executeRequest(endpoint, config, retryOnUnauthorized) {
53
+ const { baseUrl: root } = getConfig();
54
+ const jwt = await getJwt();
55
+ const url = new URL(`${root}${endpoint}`);
56
+ if (config.queryParams) {
57
+ Object.entries(config.queryParams).forEach(([key, value]) => {
58
+ if (value !== undefined) {
59
+ url.searchParams.set(key, String(value));
60
+ }
61
+ });
62
+ }
63
+ const response = await fetch(url.toString(), {
64
+ method: config.method,
65
+ headers: {
66
+ Accept: 'application/json',
67
+ 'Content-Type': 'application/json',
68
+ Authorization: `Bearer ${jwt}`,
69
+ ...config.headers,
70
+ },
71
+ body: config.body ? JSON.stringify(config.body) : undefined,
72
+ });
73
+ if (response.status === 401 && retryOnUnauthorized) {
74
+ clearJwtCache();
75
+ return executeRequest(endpoint, config, false);
76
+ }
77
+ if (!response.ok) {
78
+ throw new Error(`${config.method} ${endpoint} failed: ${response.status} ${response.statusText}`);
79
+ }
80
+ return response.json();
81
+ }
52
82
  /**
53
- * Base HTTP client with automatic JWT auth
54
- * @param endpoint - API endpoint path
55
- * @param config - Request configuration
56
- * @returns Result containing response data or error
83
+ * Base HTTP client with automatic JWT auth.
84
+ * On HTTP 401, clears the cached JWT and retries the request once (e.g. expired access token).
57
85
  */
58
86
  export const apiFetch = async (endpoint, config) => {
59
- return tryCatch(async () => {
60
- const { baseUrl: root } = getConfig();
61
- const token = await getJwt();
62
- const url = new URL(`${root}${endpoint}`);
63
- if (config.queryParams) {
64
- Object.entries(config.queryParams).forEach(([key, value]) => {
65
- if (value !== undefined) {
66
- url.searchParams.set(key, String(value));
67
- }
68
- });
69
- }
70
- const response = await fetch(url.toString(), {
71
- method: config.method,
72
- headers: {
73
- Accept: 'application/json',
74
- 'Content-Type': 'application/json',
75
- Authorization: `Bearer ${token}`,
76
- ...config.headers,
77
- },
78
- body: config.body ? JSON.stringify(config.body) : undefined,
79
- });
80
- if (!response.ok) {
81
- throw new Error(`${config.method} ${endpoint} failed: ${response.status}`);
82
- }
83
- return response.json();
84
- });
87
+ return tryCatch(async () => executeRequest(endpoint, config, true));
85
88
  };
86
89
  /** GET request helper */
87
90
  export const apiGet = (endpoint, queryParams) => apiFetch(endpoint, { method: 'GET', queryParams });
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/shared/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/shared/api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/shared/pagination.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,MAAM,WAAW,UAAU;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS,CAAC,CAAC;IACxB,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,gCAAgC;AAChC,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAE5B;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,UAAU,KAAG,QAAQ,CAAC,UAAU,CAI3E,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAC7B,OAAO,CAAC,EAAE,EACV,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,gBAAgB,MAAM,KACvB,SAAS,CAAC,CAAC,CAab,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,CAAC,EAG1E,CAAC"}
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/shared/pagination.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,gCAAgC;AAChC,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAE5B;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,UAAU,KAClB,QAAQ,CAAC,UAAU,CAIpB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAC/B,OAAO,CAAC,EAAE,EACV,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,gBAAgB,MAAM,KACrB,SAAS,CAAC,CAAC,CAab,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,OAAO,CAAC,EAAE,EACV,MAAM,MAAM,EACZ,MAAM,MAAM,KACX,CAAC,EAGH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/shared/pagination.ts"],"names":[],"mappings":"AAkBA,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAE5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAmB,EAAwB,EAAE,CAAC,CAAC;IAC/E,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,IAAI,YAAY,CAAC;IAC/C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,IAAI,YAAY,CAAC,CAAC;IACnE,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,SAAS;CAClC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,KAAU,EACV,IAAY,EACZ,IAAY,EACZ,aAAsB,EACV,EAAE;IACd,MAAM,KAAK,GAAG,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAE3C,OAAO;QACH,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,aAAa,EAAE,KAAK;QACpB,UAAU;QACV,OAAO,EAAE,IAAI,GAAG,UAAU,GAAG,CAAC;QAC9B,WAAW,EAAE,IAAI,GAAG,CAAC;KACxB,CAAC;AACN,CAAC,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAI,KAAU,EAAE,IAAY,EAAE,IAAY,EAAO,EAAE;IAC5E,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC"}
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/shared/pagination.ts"],"names":[],"mappings":"AAkBA,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAE5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAmB,EACG,EAAE,CAAC,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,IAAI,YAAY,CAAC;IAC/C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,IAAI,YAAY,CAAC,CAAC;IACnE,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,SAAS;CAChC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAAU,EACV,IAAY,EACZ,IAAY,EACZ,aAAsB,EACR,EAAE;IAChB,MAAM,KAAK,GAAG,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAE3C,OAAO;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,aAAa,EAAE,KAAK;QACpB,UAAU;QACV,OAAO,EAAE,IAAI,GAAG,UAAU,GAAG,CAAC;QAC9B,WAAW,EAAE,IAAI,GAAG,CAAC;KACtB,CAAC;AACJ,CAAC,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAAU,EACV,IAAY,EACZ,IAAY,EACP,EAAE;IACP,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/shared/result.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACtB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAE9B,kCAAkC;AAClC,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAA0B,CAAC;AAEhF,8BAA8B;AAC9B,eAAO,MAAM,OAAO,GAAI,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAA2B,CAAC;AAEzF,kDAAkD;AAClD,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,MAAM,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAC/D,CAAC;AAEvB,8CAA8C;AAC9C,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,MAAM,IAAI;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAC/D,CAAC;AAExB,6CAA6C;AAC7C,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CAKnD,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,KAAG,CACrB,CAAC;AAEpD,mCAAmC;AACnC,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAC1B,CAAC;AAE3D,iCAAiC;AACjC,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAC/B,CAAC;AAE3D,0DAA0D;AAC1D,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAClD,CAAC;AAElD,gEAAgE;AAChE,eAAO,MAAM,QAAQ,GAAU,CAAC,EAAE,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAOhF,CAAC"}
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/shared/result.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACtB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAE5B,kCAAkC;AAClC,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAA0B,CAAC;AAEhF,8BAA8B;AAC9B,eAAO,MAAM,OAAO,GAAI,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAG3D,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAC5B,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KACnB,MAAM,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAwB,CAAC;AAE1D,8CAA8C;AAC9C,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAC5B,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KACnB,MAAM,IAAI;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAyB,CAAC;AAE5D,6CAA6C;AAC7C,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CAKnD,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,KAAG,CACvB,CAAC;AAElD,mCAAmC;AACnC,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EACzB,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAClB,MAAM,CAAC,CAAC,EAAE,CAAC,CAA6D,CAAC;AAE5E,iCAAiC;AACjC,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9B,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAClB,MAAM,CAAC,CAAC,EAAE,CAAC,CAA6D,CAAC;AAE5E,0DAA0D;AAC1D,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,QAAQ,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAC7B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAoD,CAAC;AAEnE,gEAAgE;AAChE,eAAO,MAAM,QAAQ,GAAU,CAAC,EAC9B,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAO1B,CAAC"}
@@ -1,7 +1,10 @@
1
1
  /** Creates a successful Result */
2
2
  export const success = (value) => ({ ok: true, value });
3
3
  /** Creates a failed Result */
4
- export const failure = (error) => ({ ok: false, error });
4
+ export const failure = (error) => ({
5
+ ok: false,
6
+ error,
7
+ });
5
8
  /** Type guard to check if Result is successful */
6
9
  export const isSuccess = (result) => result.ok === true;
7
10
  /** Type guard to check if Result is failed */
@@ -16,11 +19,11 @@ export const unwrap = (result) => {
16
19
  /** Returns value if success, otherwise returns defaultValue */
17
20
  export const getOrElse = (result, defaultValue) => isSuccess(result) ? result.value : defaultValue;
18
21
  /** Transforms the success value */
19
- export const map = (result, fn) => isSuccess(result) ? success(fn(result.value)) : result;
22
+ export const map = (result, fn) => (isSuccess(result) ? success(fn(result.value)) : result);
20
23
  /** Transforms the error value */
21
- export const mapError = (result, fn) => isFailure(result) ? failure(fn(result.error)) : result;
24
+ export const mapError = (result, fn) => (isFailure(result) ? failure(fn(result.error)) : result);
22
25
  /** Chains Result-returning functions - flatMap pattern */
23
- export const flatMap = (result, fn) => isSuccess(result) ? fn(result.value) : result;
26
+ export const flatMap = (result, fn) => (isSuccess(result) ? fn(result.value) : result);
24
27
  /** Wraps async function to return Result instead of throwing */
25
28
  export const tryCatch = async (fn) => {
26
29
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/shared/result.ts"],"names":[],"mappings":"AASA,kCAAkC;AAClC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,KAAQ,EAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAEhF,8BAA8B;AAC9B,MAAM,CAAC,MAAM,OAAO,GAAG,CAAY,KAAQ,EAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAEzF,kDAAkD;AAClD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAO,MAAoB,EAAoC,EAAE,CACtF,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;AAEvB,8CAA8C;AAC9C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAO,MAAoB,EAAqC,EAAE,CACvF,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC;AAExB,6CAA6C;AAC7C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAO,MAAoB,EAAK,EAAE;IACpD,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;IACD,MAAM,MAAM,CAAC,KAAK,CAAC;AACvB,CAAC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAO,MAAoB,EAAE,YAAe,EAAK,EAAE,CACxE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AAEpD,mCAAmC;AACnC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAU,MAAoB,EAAE,EAAmB,EAAgB,EAAE,CACpF,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAE3D,iCAAiC;AACjC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAU,MAAoB,EAAE,EAAmB,EAAgB,EAAE,CACzF,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAE3D,0DAA0D;AAC1D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAU,MAAoB,EAAE,EAA8B,EAAgB,EAAE,CACnG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAElD,gEAAgE;AAChE,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAK,EAAoB,EAA6B,EAAE;IACjF,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/shared/result.ts"],"names":[],"mappings":"AASA,kCAAkC;AAClC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,KAAQ,EAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAEhF,8BAA8B;AAC9B,MAAM,CAAC,MAAM,OAAO,GAAG,CAAY,KAAQ,EAAoB,EAAE,CAAC,CAAC;IACjE,EAAE,EAAE,KAAK;IACT,KAAK;CACN,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,MAAoB,EACc,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;AAE1D,8CAA8C;AAC9C,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,MAAoB,EACe,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC;AAE5D,6CAA6C;AAC7C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAO,MAAoB,EAAK,EAAE;IACtD,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,MAAM,MAAM,CAAC,KAAK,CAAC;AACrB,CAAC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAO,MAAoB,EAAE,YAAe,EAAK,EAAE,CAC1E,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AAElD,mCAAmC;AACnC,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,MAAoB,EACpB,EAAmB,EACL,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,iCAAiC;AACjC,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,MAAoB,EACpB,EAAmB,EACL,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAAoB,EACpB,EAA8B,EAChB,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,gEAAgE;AAChE,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,EAAoB,EACO,EAAE;IAC7B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,22 +1,31 @@
1
1
  {
2
2
  "name": "@syn7xx/testops-mcp-server",
3
- "version": "0.1.2",
3
+ "version": "0.1.5",
4
4
  "description": "TestOps MCP Server - Model Context Protocol server for test operations",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "type": "module",
8
8
  "files": [
9
- "dist"
9
+ "dist",
10
+ "CHANGELOG.md"
10
11
  ],
11
12
  "bin": {
12
13
  "testops-mcp-server": "dist/index.js"
13
14
  },
14
15
  "scripts": {
16
+ "prepublishOnly": "npm run build",
15
17
  "build": "tsc --project tsconfig.json",
16
18
  "start": "node dist/index.js",
17
19
  "dev": "tsc --watch",
18
20
  "lint": "eslint 'src/**/*.ts'",
19
- "lint:fix": "eslint 'src/**/*.ts' --fix"
21
+ "lint:fix": "eslint 'src/**/*.ts' --fix",
22
+ "format": "prettier --write \"src/**/*.ts\"",
23
+ "format:check": "prettier --check \"src/**/*.ts\"",
24
+ "release": "release-it",
25
+ "release:dry": "release-it --dry-run",
26
+ "release:patch": "release-it patch",
27
+ "release:minor": "release-it minor",
28
+ "release:major": "release-it major"
20
29
  },
21
30
  "keywords": [
22
31
  "mcp",
@@ -30,6 +39,9 @@
30
39
  "type": "git",
31
40
  "url": "https://github.com/syn7xx/testops-mcp-server.git"
32
41
  },
42
+ "publishConfig": {
43
+ "access": "public"
44
+ },
33
45
  "dependencies": {
34
46
  "@cfworker/json-schema": "^4.1.1",
35
47
  "@modelcontextprotocol/server": "2.0.0-alpha.2",
@@ -41,9 +53,11 @@
41
53
  "eslint": "^9.0.0",
42
54
  "eslint-config-prettier": "^9.1.0",
43
55
  "eslint-plugin-prettier": "^5.1.3",
56
+ "globals": "^17.4.0",
44
57
  "prettier": "^3.2.0",
45
58
  "release-it": "^19.2.4",
46
- "typescript": "^5.3.3"
59
+ "typescript": "^5.3.3",
60
+ "typescript-eslint": "^8.58.0"
47
61
  },
48
62
  "engines": {
49
63
  "node": ">=20.0.0"
@@ -1,43 +0,0 @@
1
- /**
2
- * TestOps Client Configuration
3
- */
4
- /**
5
- * Sets the TestOps base URL and API token (from MCP process args).
6
- */
7
- export declare function configureTestOpsClient(options: {
8
- baseUrl: string;
9
- token: string;
10
- }): void;
11
- export declare function requireClientConfig(): {
12
- baseUrl: string;
13
- token: string;
14
- };
15
- /**
16
- * Clears cached JWT (useful for re-authentication).
17
- */
18
- export declare function clearJwtToken(): void;
19
- /**
20
- * Exchanges the API token for a JWT used on subsequent requests.
21
- */
22
- export declare function getJwtToken(): Promise<string>;
23
- /**
24
- * Simplified HTTP client wrapper around fetch.
25
- */
26
- export declare function testopsFetch<T = any>(endpoint: string, options?: {
27
- method?: 'GET' | 'POST' | 'PATCH' | 'DELETE';
28
- queryParams?: Record<string, string | number | boolean | undefined>;
29
- body?: any;
30
- }): Promise<T>;
31
- /**
32
- * GET request helper.
33
- */
34
- export declare function testopsGet<T = any>(endpoint: string, queryParams?: Record<string, string | number | boolean | undefined>): Promise<T>;
35
- /**
36
- * POST request helper.
37
- */
38
- export declare function testopsPost<T = any>(endpoint: string, body?: any, queryParams?: Record<string, string | number | boolean | undefined>): Promise<T>;
39
- /**
40
- * PATCH request helper.
41
- */
42
- export declare function testopsPatch<T = any>(endpoint: string, body?: any, queryParams?: Record<string, string | number | boolean | undefined>): Promise<T>;
43
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGxF;AAED,wBAAgB,mBAAmB,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAOxE;AAID;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CA2BnD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,GAAG,GAAG,EACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACL,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,GAAG,CAAC;CACT,GACP,OAAO,CAAC,CAAC,CAAC,CA4BZ;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,EACpC,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACpE,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,GAAG,EACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,GAAG,EACV,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACpE,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,GAAG,GAAG,EACtC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,GAAG,EACV,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACpE,OAAO,CAAC,CAAC,CAAC,CAEZ"}
@@ -1,99 +0,0 @@
1
- /**
2
- * TestOps Client Configuration
3
- */
4
- let baseUrl = '';
5
- let apiToken = '';
6
- /**
7
- * Sets the TestOps base URL and API token (from MCP process args).
8
- */
9
- export function configureTestOpsClient(options) {
10
- baseUrl = options.baseUrl.replace(/\/+$/, '');
11
- apiToken = options.token;
12
- }
13
- export function requireClientConfig() {
14
- if (!baseUrl || !apiToken) {
15
- throw new Error('TestOps client is not configured: pass --url and --token when starting the server');
16
- }
17
- return { baseUrl, token: apiToken };
18
- }
19
- let jwtToken = null;
20
- /**
21
- * Clears cached JWT (useful for re-authentication).
22
- */
23
- export function clearJwtToken() {
24
- jwtToken = null;
25
- }
26
- /**
27
- * Exchanges the API token for a JWT used on subsequent requests.
28
- */
29
- export async function getJwtToken() {
30
- if (jwtToken) {
31
- return jwtToken;
32
- }
33
- const { baseUrl: root, token: userToken } = requireClientConfig();
34
- const response = await fetch(`${root}/api/uaa/oauth/token`, {
35
- method: 'POST',
36
- headers: {
37
- Accept: 'application/json',
38
- 'Content-Type': 'application/x-www-form-urlencoded',
39
- },
40
- body: new URLSearchParams({
41
- grant_type: 'apitoken',
42
- scope: 'openid',
43
- token: userToken,
44
- }),
45
- });
46
- if (!response.ok) {
47
- throw new Error(`Failed to obtain JWT: ${response.status} ${response.statusText}`);
48
- }
49
- const data = await response.json();
50
- jwtToken = data.access_token;
51
- return jwtToken;
52
- }
53
- /**
54
- * Simplified HTTP client wrapper around fetch.
55
- */
56
- export async function testopsFetch(endpoint, options = {}) {
57
- const { baseUrl: root } = requireClientConfig();
58
- const token = await getJwtToken();
59
- const url = new URL(`${root}${endpoint}`);
60
- if (options.queryParams) {
61
- Object.entries(options.queryParams).forEach(([key, value]) => {
62
- if (value !== undefined) {
63
- url.searchParams.set(key, String(value));
64
- }
65
- });
66
- }
67
- const response = await fetch(url.toString(), {
68
- method: options.method ?? 'GET',
69
- headers: {
70
- Accept: 'application/json',
71
- 'Content-Type': 'application/json',
72
- Authorization: `Bearer ${token}`,
73
- },
74
- body: options.body ? JSON.stringify(options.body) : undefined,
75
- });
76
- if (!response.ok) {
77
- throw new Error(`${options.method ?? 'GET'} ${endpoint} failed: ${response.status} ${response.statusText}`);
78
- }
79
- return response.json();
80
- }
81
- /**
82
- * GET request helper.
83
- */
84
- export async function testopsGet(endpoint, queryParams) {
85
- return testopsFetch(endpoint, { method: 'GET', queryParams });
86
- }
87
- /**
88
- * POST request helper.
89
- */
90
- export async function testopsPost(endpoint, body, queryParams) {
91
- return testopsFetch(endpoint, { method: 'POST', body, queryParams });
92
- }
93
- /**
94
- * PATCH request helper.
95
- */
96
- export async function testopsPatch(endpoint, body, queryParams) {
97
- return testopsFetch(endpoint, { method: 'PATCH', body, queryParams });
98
- }
99
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * TestOps Services
3
- */
4
- export { configureTestOpsClient, getJwtToken, clearJwtToken, testopsFetch, testopsGet, testopsPost, testopsPatch } from './config.js';
5
- export * from './project.js';
6
- export * from './test-plan.js';
7
- export * from './test-case.js';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtI,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * TestOps Services
3
- */
4
- export { configureTestOpsClient, getJwtToken, clearJwtToken, testopsFetch, testopsGet, testopsPost, testopsPatch } from './config.js';
5
- export * from './project.js';
6
- export * from './test-plan.js';
7
- export * from './test-case.js';
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtI,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * TestOps Project Service
3
- */
4
- import { TestOpsProject } from './testops-types.js';
5
- /**
6
- * Lists projects visible to the authenticated user.
7
- */
8
- export declare function getTestOpsProjects(options?: {
9
- page?: number;
10
- size?: number;
11
- sort?: string;
12
- }): Promise<TestOpsProject[]>;
13
- /**
14
- * Finds a project by name using the suggest endpoint.
15
- */
16
- export declare function getTestOpsProjectByName(projectName: string): Promise<TestOpsProject | null>;
17
- //# sourceMappingURL=project.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/services/project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAC;AAOzE;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAM5B;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAuBjG"}
@@ -1,27 +0,0 @@
1
- /**
2
- * TestOps Project Service
3
- */
4
- import { testopsGet } from './config.js';
5
- /**
6
- * Lists projects visible to the authenticated user.
7
- */
8
- export async function getTestOpsProjects(options) {
9
- const data = await testopsGet('/api/project', { page: options?.page ?? 0, size: options?.size ?? 50, sort: options?.sort ?? 'name,ASC' });
10
- return data.content || [];
11
- }
12
- /**
13
- * Finds a project by name using the suggest endpoint.
14
- */
15
- export async function getTestOpsProjectByName(projectName) {
16
- const data = await testopsGet('/api/project/suggest', { query: projectName, size: 10 });
17
- if (!data.content?.length) {
18
- return null;
19
- }
20
- const exactMatch = data.content.find((p) => p.name.toLowerCase() === projectName.toLowerCase());
21
- if (exactMatch) {
22
- return { id: exactMatch.id, name: exactMatch.name };
23
- }
24
- const partialMatch = data.content.find((p) => p.name.toLowerCase().includes(projectName.toLowerCase()));
25
- return partialMatch ? { id: partialMatch.id, name: partialMatch.name } : null;
26
- }
27
- //# sourceMappingURL=project.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/services/project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQzC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAIxC;IACG,MAAM,IAAI,GAAG,MAAM,UAAU,CACzB,cAAc,EACd,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAC7F,CAAC;IACF,OAAO,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,WAAmB;IAC7D,MAAM,IAAI,GAAG,MAAM,UAAU,CACzB,sBAAsB,EACtB,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CACnC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAChC,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAC/E,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAoB,EAAE,EAAE,CAC5D,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAC3D,CAAC;IAEF,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClF,CAAC"}
@@ -1,59 +0,0 @@
1
- /**
2
- * TestOps Test Case Service
3
- */
4
- import { TestOpsNormalizedScenario, TestOpsCustomFieldWithValues, TestOpsTestCase } from './testops-types.js';
5
- /**
6
- * Returns test case metadata plus flattened steps and custom fields when available.
7
- */
8
- export declare function getTestOpsTestCaseDetail(testCaseId: number): Promise<{
9
- id: any;
10
- name: any;
11
- steps: string[];
12
- customFields: Record<string, string>;
13
- tags: any;
14
- owner: any;
15
- }>;
16
- /**
17
- * Fetches scenario (steps + expected results) for a test case.
18
- */
19
- export declare function getTestOpsTestCaseScenario(testCaseId: number): Promise<TestOpsNormalizedScenario>;
20
- /**
21
- * Updates a step (including expected result) for a test case.
22
- */
23
- export declare function patchTestOpsScenarioStep(testCaseId: number, stepId: number, stepData: {
24
- body?: string;
25
- expectedResult?: string;
26
- }): Promise<TestOpsNormalizedScenario>;
27
- /**
28
- * Sets the entire scenario (all steps) for a test case.
29
- */
30
- export declare function setTestOpsTestCaseScenario(testCaseId: number, steps: Array<{
31
- action: string;
32
- expectedResult?: string;
33
- }>): Promise<TestOpsNormalizedScenario>;
34
- /**
35
- * Fetches custom field values for a test case.
36
- */
37
- export declare function getTestOpsTestCaseCustomFields(testCaseId: number): Promise<TestOpsCustomFieldWithValues[]>;
38
- /**
39
- * Updates custom field values for a test case.
40
- */
41
- export declare function updateTestOpsTestCaseCustomFields(testCaseId: number, customFields: Array<{
42
- customFieldId: number;
43
- valueIds: number[];
44
- }>): Promise<void>;
45
- /**
46
- * Searches test cases using AQL (Advanced Query Language).
47
- */
48
- export declare function searchTestCasesByAQL(projectId: number, rql: string, options?: {
49
- deleted?: boolean;
50
- page?: number;
51
- size?: number;
52
- sort?: string;
53
- }): Promise<{
54
- testCases: TestOpsTestCase[];
55
- total: number;
56
- page: number;
57
- size: number;
58
- }>;
59
- //# sourceMappingURL=test-case.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-case.d.ts","sourceRoot":"","sources":["../../src/services/test-case.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAGH,yBAAyB,EACzB,4BAA4B,EAC5B,eAAe,EAElB,MAAM,oBAAoB,CAAC;AAiD5B;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM;;;;;;;GAuChE;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC5C,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,yBAAyB,CAAC,CAEpC;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC1C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B,GACF,OAAO,CAAC,yBAAyB,CAAC,CAUpC;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC5C,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,KAAK,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC,GACH,OAAO,CAAC,yBAAyB,CAAC,CAYpC;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAChD,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAEzC;AAED;;GAEG;AACH,wBAAsB,iCAAiC,CACnD,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,KAAK,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC,GACH,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IACN,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,GACF,OAAO,CAAC;IAAE,SAAS,EAAE,eAAe,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAmBtF"}