@smartbear/mcp 0.12.0 → 0.13.1

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 (89) hide show
  1. package/README.md +30 -6
  2. package/dist/bugsnag/client/api/CurrentUser.js +50 -26
  3. package/dist/bugsnag/client/api/Error.js +158 -57
  4. package/dist/bugsnag/client/api/Project.js +398 -243
  5. package/dist/bugsnag/client/api/api.js +4087 -3837
  6. package/dist/bugsnag/client/api/base.js +155 -173
  7. package/dist/bugsnag/client/api/configuration.js +28 -25
  8. package/dist/bugsnag/client/filters.js +11 -20
  9. package/dist/bugsnag/client.js +1398 -1277
  10. package/dist/bugsnag/input-schemas.js +39 -57
  11. package/dist/collaborator/client.js +335 -371
  12. package/dist/common/bugsnag.js +5 -3
  13. package/dist/common/cache.js +50 -57
  14. package/dist/common/client-registry.js +106 -119
  15. package/dist/common/info.js +7 -3
  16. package/dist/common/register-clients.js +0 -16
  17. package/dist/common/server.js +270 -228
  18. package/dist/common/tools.js +19 -0
  19. package/dist/common/transport-http.js +252 -343
  20. package/dist/common/transport-stdio.js +40 -37
  21. package/dist/common/zod-utils.js +20 -0
  22. package/dist/index.js +18 -23
  23. package/dist/package.json.js +11 -0
  24. package/dist/pactflow/client/ai.js +142 -169
  25. package/dist/pactflow/client/base.js +41 -51
  26. package/dist/pactflow/client/prompt-utils.js +93 -84
  27. package/dist/pactflow/client/prompts.js +95 -92
  28. package/dist/pactflow/client/tools.js +94 -83
  29. package/dist/pactflow/client/utils.js +60 -64
  30. package/dist/pactflow/client.js +399 -320
  31. package/dist/qmetry/client/api/client-api.js +43 -41
  32. package/dist/qmetry/client/api/error-handler.js +264 -310
  33. package/dist/qmetry/client/auto-resolve.js +78 -99
  34. package/dist/qmetry/client/automation.js +139 -162
  35. package/dist/qmetry/client/handlers.js +49 -46
  36. package/dist/qmetry/client/issues.js +133 -115
  37. package/dist/qmetry/client/project.js +153 -174
  38. package/dist/qmetry/client/requirement.js +82 -70
  39. package/dist/qmetry/client/testcase.js +240 -208
  40. package/dist/qmetry/client/testsuite.js +332 -293
  41. package/dist/qmetry/client/tools/automation-tools.js +291 -288
  42. package/dist/qmetry/client/tools/index.js +16 -13
  43. package/dist/qmetry/client/tools/issue-tools.js +534 -543
  44. package/dist/qmetry/client/tools/project-tools.js +635 -656
  45. package/dist/qmetry/client/tools/requirement-tools.js +525 -528
  46. package/dist/qmetry/client/tools/testcase-tools.js +773 -786
  47. package/dist/qmetry/client/tools/testsuite-tools.js +1069 -1083
  48. package/dist/qmetry/client/utils.js +8 -14
  49. package/dist/qmetry/client.js +111 -109
  50. package/dist/qmetry/config/constants.js +48 -44
  51. package/dist/qmetry/config/rest-endpoints.js +51 -48
  52. package/dist/qmetry/types/automation.js +7 -7
  53. package/dist/qmetry/types/common.js +763 -1049
  54. package/dist/qmetry/types/issues.js +26 -19
  55. package/dist/qmetry/types/project.js +32 -25
  56. package/dist/qmetry/types/requirements.js +26 -21
  57. package/dist/qmetry/types/testcase.js +55 -44
  58. package/dist/qmetry/types/testsuite.js +66 -52
  59. package/dist/reflect/client.js +284 -226
  60. package/dist/swagger/client/api.js +645 -662
  61. package/dist/swagger/client/configuration.js +31 -33
  62. package/dist/swagger/client/portal-types.js +204 -244
  63. package/dist/swagger/client/registry-types.js +62 -96
  64. package/dist/swagger/client/tools.js +148 -158
  65. package/dist/swagger/client/user-management-types.js +11 -22
  66. package/dist/swagger/client.js +143 -135
  67. package/dist/swagger/config-utils.js +10 -16
  68. package/dist/zephyr/client.js +43 -42
  69. package/dist/zephyr/common/api-client.js +35 -30
  70. package/dist/zephyr/common/auth-service.js +16 -13
  71. package/dist/zephyr/common/rest-api-schemas.js +3173 -5146
  72. package/dist/zephyr/tool/environment/get-environments.js +66 -66
  73. package/dist/zephyr/tool/priority/get-priorities.js +41 -41
  74. package/dist/zephyr/tool/project/get-project.js +37 -37
  75. package/dist/zephyr/tool/project/get-projects.js +46 -46
  76. package/dist/zephyr/tool/status/get-statuses.js +47 -47
  77. package/dist/zephyr/tool/test-case/get-test-case.js +37 -37
  78. package/dist/zephyr/tool/test-case/get-test-cases.js +62 -62
  79. package/dist/zephyr/tool/test-cycle/get-test-cycle.js +37 -37
  80. package/dist/zephyr/tool/test-cycle/get-test-cycles.js +70 -70
  81. package/dist/zephyr/tool/test-execution/get-test-execution.js +37 -37
  82. package/dist/zephyr/tool/test-execution/get-test-executions.js +43 -43
  83. package/package.json +5 -5
  84. package/dist/bugsnag/client/api/index.js +0 -6
  85. package/dist/common/types.js +0 -6
  86. package/dist/qmetry/client/tools/types.js +0 -1
  87. package/dist/swagger/client/index.js +0 -6
  88. package/dist/tests/unit/bugsnag/utils/factories.js +0 -86
  89. package/dist/zephyr/tool/zephyr-tool.js +0 -1
@@ -1,71 +1,67 @@
1
1
  import yaml from "js-yaml";
2
- // @ts-expect-error missing type declarations
3
2
  import Swagger from "swagger-client";
4
- import { ToolError } from "../../common/types.js";
5
- import { RemoteOpenAPIDocumentSchema, } from "./ai.js";
6
- /**
7
- * Resolve the OpenAPI specification from the provided input.
8
- *
9
- * @param remoteOpenAPIDocument The remote OpenAPI document to resolve.
10
- * @returns The resolved OpenAPI document.
11
- * @throws Error if the resolution fails.
12
- */
13
- export async function resolveOpenAPISpec(remoteOpenAPIDocument) {
14
- const openAPISchema = RemoteOpenAPIDocumentSchema.safeParse(remoteOpenAPIDocument);
15
- if (openAPISchema.error || !remoteOpenAPIDocument) {
16
- throw new ToolError(`Invalid RemoteOpenAPIDocument: ${JSON.stringify(openAPISchema.error?.issues)}`);
17
- }
18
- const unresolvedSpec = await getRemoteSpecContents(openAPISchema.data);
19
- const resolvedSpec = await Swagger.resolve({ spec: unresolvedSpec });
20
- if (resolvedSpec.errors?.length) {
21
- throw new ToolError(`Failed to resolve OpenAPI document: ${resolvedSpec.errors?.join(", ")}`);
22
- }
23
- return resolvedSpec.spec;
3
+ import { ToolError } from "../../common/tools.js";
4
+ import { RemoteOpenAPIDocumentSchema } from "./ai.js";
5
+ async function resolveOpenAPISpec(remoteOpenAPIDocument) {
6
+ const openAPISchema = RemoteOpenAPIDocumentSchema.safeParse(
7
+ remoteOpenAPIDocument
8
+ );
9
+ if (openAPISchema.error || !remoteOpenAPIDocument) {
10
+ throw new ToolError(
11
+ `Invalid RemoteOpenAPIDocument: ${JSON.stringify(
12
+ openAPISchema.error?.issues
13
+ )}`
14
+ );
15
+ }
16
+ const unresolvedSpec = await getRemoteSpecContents(openAPISchema.data);
17
+ const resolvedSpec = await Swagger.resolve({ spec: unresolvedSpec });
18
+ if (resolvedSpec.errors?.length) {
19
+ throw new ToolError(
20
+ `Failed to resolve OpenAPI document: ${resolvedSpec.errors?.join(", ")}`
21
+ );
22
+ }
23
+ return resolvedSpec.spec;
24
24
  }
25
- /**
26
- * Fetch the contents of a remote OpenAPI document.
27
- *
28
- * @param openAPISchema The schema for the remote OpenAPI document.
29
- * @returns A promise that resolves to a map of the OpenAPI document contents.
30
- * @throws Error if the URL is not provided or the fetch fails.
31
- */
32
- export async function getRemoteSpecContents(openAPISchema) {
33
- if (!openAPISchema.url) {
34
- throw new ToolError("'url' must be provided.");
35
- }
36
- let headers = {};
37
- if (openAPISchema.authToken) {
38
- headers = {
39
- Authorization: `${openAPISchema.authScheme ?? "Bearer"} ${openAPISchema.authToken}`,
40
- };
41
- }
42
- const remoteSpec = await fetch(openAPISchema.url, {
43
- headers,
44
- method: "GET",
45
- });
46
- const specRawBody = await remoteSpec.text();
25
+ async function getRemoteSpecContents(openAPISchema) {
26
+ if (!openAPISchema.url) {
27
+ throw new ToolError("'url' must be provided.");
28
+ }
29
+ let headers = {};
30
+ if (openAPISchema.authToken) {
31
+ headers = {
32
+ Authorization: `${openAPISchema.authScheme ?? "Bearer"} ${openAPISchema.authToken}`
33
+ };
34
+ }
35
+ const remoteSpec = await fetch(openAPISchema.url, {
36
+ headers,
37
+ method: "GET"
38
+ });
39
+ const specRawBody = await remoteSpec.text();
40
+ try {
41
+ return JSON.parse(specRawBody);
42
+ } catch (jsonError) {
47
43
  try {
48
- return JSON.parse(specRawBody);
49
- }
50
- catch (jsonError) {
51
- try {
52
- return yaml.load(specRawBody);
53
- }
54
- catch (yamlError) {
55
- throw new ToolError(`Unsupported Content-Type: ${remoteSpec.headers.get("Content-Type")} for remote OpenAPI document. Found following parse errors:-\nJSON parse error: ${jsonError}\nYAML parse error: ${yamlError}`);
56
- }
44
+ return yaml.load(specRawBody);
45
+ } catch (yamlError) {
46
+ throw new ToolError(
47
+ `Unsupported Content-Type: ${remoteSpec.headers.get(
48
+ "Content-Type"
49
+ )} for remote OpenAPI document. Found following parse errors:-
50
+ JSON parse error: ${jsonError}
51
+ YAML parse error: ${yamlError}`
52
+ );
57
53
  }
54
+ }
58
55
  }
59
- /**
60
- * Adds the OpenAPI specification to the input schema if a remote document is provided.
61
- *
62
- * @param inputSchema The input schema to modify.
63
- * @returns The modified input schema with the OpenAPI specification added.
64
- */
65
- export async function addOpenAPISpecToSchema(inputSchema) {
66
- if (inputSchema.remoteDocument) {
67
- const resolvedSpec = await resolveOpenAPISpec(inputSchema.remoteDocument);
68
- inputSchema.document = resolvedSpec;
69
- }
70
- return inputSchema;
56
+ async function addOpenAPISpecToSchema(inputSchema) {
57
+ if (inputSchema.remoteDocument) {
58
+ const resolvedSpec = await resolveOpenAPISpec(inputSchema.remoteDocument);
59
+ inputSchema.document = resolvedSpec;
60
+ }
61
+ return inputSchema;
71
62
  }
63
+ export {
64
+ addOpenAPISpecToSchema,
65
+ getRemoteSpecContents,
66
+ resolveOpenAPISpec
67
+ };