@qase/mcp-server 1.1.8 → 2.0.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.
- package/CHANGELOG.md +25 -0
- package/README.md +75 -542
- package/build/auth/client-context.d.ts +12 -0
- package/build/auth/client-context.d.ts.map +1 -0
- package/build/auth/client-context.js +12 -0
- package/build/auth/client-context.js.map +1 -0
- package/build/auth/jwks-verifier.d.ts +15 -0
- package/build/auth/jwks-verifier.d.ts.map +1 -0
- package/build/auth/jwks-verifier.js +31 -0
- package/build/auth/jwks-verifier.js.map +1 -0
- package/build/auth/mcp-guard.d.ts +15 -0
- package/build/auth/mcp-guard.d.ts.map +1 -0
- package/build/auth/mcp-guard.js +44 -0
- package/build/auth/mcp-guard.js.map +1 -0
- package/build/auth/oauth-config.d.ts +40 -0
- package/build/auth/oauth-config.d.ts.map +1 -0
- package/build/auth/oauth-config.js +34 -0
- package/build/auth/oauth-config.js.map +1 -0
- package/build/auth/proxy-provider.d.ts +31 -0
- package/build/auth/proxy-provider.d.ts.map +1 -0
- package/build/auth/proxy-provider.js +87 -0
- package/build/auth/proxy-provider.js.map +1 -0
- package/build/auth/token-type.d.ts +7 -0
- package/build/auth/token-type.d.ts.map +1 -0
- package/build/auth/token-type.js +10 -0
- package/build/auth/token-type.js.map +1 -0
- package/build/cache/circuit-breaker.d.ts +33 -0
- package/build/cache/circuit-breaker.d.ts.map +1 -0
- package/build/cache/circuit-breaker.js +68 -0
- package/build/cache/circuit-breaker.js.map +1 -0
- package/build/cache/index.d.ts +24 -0
- package/build/cache/index.d.ts.map +1 -0
- package/build/cache/index.js +86 -0
- package/build/cache/index.js.map +1 -0
- package/build/cache/keys.d.ts +25 -0
- package/build/cache/keys.d.ts.map +1 -0
- package/build/cache/keys.js +36 -0
- package/build/cache/keys.js.map +1 -0
- package/build/cache/layered.d.ts +31 -0
- package/build/cache/layered.d.ts.map +1 -0
- package/build/cache/layered.js +88 -0
- package/build/cache/layered.js.map +1 -0
- package/build/cache/memory.d.ts +32 -0
- package/build/cache/memory.d.ts.map +1 -0
- package/build/cache/memory.js +108 -0
- package/build/cache/memory.js.map +1 -0
- package/build/cache/metrics.d.ts +31 -0
- package/build/cache/metrics.d.ts.map +1 -0
- package/build/cache/metrics.js +95 -0
- package/build/cache/metrics.js.map +1 -0
- package/build/cache/prom-format.d.ts +7 -0
- package/build/cache/prom-format.d.ts.map +1 -0
- package/build/cache/prom-format.js +16 -0
- package/build/cache/prom-format.js.map +1 -0
- package/build/cache/redis-bus.d.ts +29 -0
- package/build/cache/redis-bus.d.ts.map +1 -0
- package/build/cache/redis-bus.js +50 -0
- package/build/cache/redis-bus.js.map +1 -0
- package/build/cache/redis.d.ts +32 -0
- package/build/cache/redis.d.ts.map +1 -0
- package/build/cache/redis.js +89 -0
- package/build/cache/redis.js.map +1 -0
- package/build/cache/types.d.ts +38 -0
- package/build/cache/types.d.ts.map +1 -0
- package/build/cache/types.js +2 -0
- package/build/cache/types.js.map +1 -0
- package/build/client/index.d.ts +10 -3
- package/build/client/index.d.ts.map +1 -1
- package/build/client/index.js +75 -50
- package/build/client/index.js.map +1 -1
- package/build/http/agent.d.ts +16 -0
- package/build/http/agent.d.ts.map +1 -0
- package/build/http/agent.js +16 -0
- package/build/http/agent.js.map +1 -0
- package/build/http/dedupe.d.ts +14 -0
- package/build/http/dedupe.d.ts.map +1 -0
- package/build/http/dedupe.js +69 -0
- package/build/http/dedupe.js.map +1 -0
- package/build/http/index.d.ts +6 -0
- package/build/http/index.d.ts.map +1 -0
- package/build/http/index.js +4 -0
- package/build/http/index.js.map +1 -0
- package/build/http/retry.d.ts +18 -0
- package/build/http/retry.d.ts.map +1 -0
- package/build/http/retry.js +52 -0
- package/build/http/retry.js.map +1 -0
- package/build/index.d.ts +1 -18
- package/build/index.d.ts.map +1 -1
- package/build/index.js +95 -63
- package/build/index.js.map +1 -1
- package/build/operations-v2/composites/ci-report.d.ts +2 -0
- package/build/operations-v2/composites/ci-report.d.ts.map +1 -0
- package/build/operations-v2/composites/ci-report.js +99 -0
- package/build/operations-v2/composites/ci-report.js.map +1 -0
- package/build/operations-v2/composites/regression-run.d.ts +2 -0
- package/build/operations-v2/composites/regression-run.d.ts.map +1 -0
- package/build/operations-v2/composites/regression-run.js +81 -0
- package/build/operations-v2/composites/regression-run.js.map +1 -0
- package/build/operations-v2/composites/triage-defect.d.ts +2 -0
- package/build/operations-v2/composites/triage-defect.d.ts.map +1 -0
- package/build/operations-v2/composites/triage-defect.js +67 -0
- package/build/operations-v2/composites/triage-defect.js.map +1 -0
- package/build/operations-v2/escape/api.d.ts +2 -0
- package/build/operations-v2/escape/api.d.ts.map +1 -0
- package/build/operations-v2/escape/api.js +34 -0
- package/build/operations-v2/escape/api.js.map +1 -0
- package/build/operations-v2/index.d.ts +19 -0
- package/build/operations-v2/index.d.ts.map +1 -0
- package/build/operations-v2/index.js +25 -0
- package/build/operations-v2/index.js.map +1 -0
- package/build/operations-v2/meta/discover.d.ts +9 -0
- package/build/operations-v2/meta/discover.d.ts.map +1 -0
- package/build/operations-v2/meta/discover.js +76 -0
- package/build/operations-v2/meta/discover.js.map +1 -0
- package/build/{operations/search.d.ts → operations-v2/qql/index.d.ts} +1 -1
- package/build/operations-v2/qql/index.d.ts.map +1 -0
- package/build/{operations/search.js → operations-v2/qql/index.js} +34 -9
- package/build/operations-v2/qql/index.js.map +1 -0
- package/build/operations-v2/read/get.d.ts +2 -0
- package/build/operations-v2/read/get.d.ts.map +1 -0
- package/build/operations-v2/read/get.js +91 -0
- package/build/operations-v2/read/get.js.map +1 -0
- package/build/operations-v2/read/project-context.d.ts +2 -0
- package/build/operations-v2/read/project-context.d.ts.map +1 -0
- package/build/operations-v2/read/project-context.js +102 -0
- package/build/operations-v2/read/project-context.js.map +1 -0
- package/build/operations-v2/write/attachments.d.ts +2 -0
- package/build/operations-v2/write/attachments.d.ts.map +1 -0
- package/build/operations-v2/write/attachments.js +58 -0
- package/build/operations-v2/write/attachments.js.map +1 -0
- package/build/operations-v2/write/cases.d.ts +2 -0
- package/build/operations-v2/write/cases.d.ts.map +1 -0
- package/build/operations-v2/write/cases.js +121 -0
- package/build/operations-v2/write/cases.js.map +1 -0
- package/build/operations-v2/write/defects.d.ts +2 -0
- package/build/operations-v2/write/defects.d.ts.map +1 -0
- package/build/operations-v2/write/defects.js +81 -0
- package/build/operations-v2/write/defects.js.map +1 -0
- package/build/operations-v2/write/environments.d.ts +2 -0
- package/build/operations-v2/write/environments.d.ts.map +1 -0
- package/build/operations-v2/write/environments.js +56 -0
- package/build/operations-v2/write/environments.js.map +1 -0
- package/build/operations-v2/write/milestones.d.ts +2 -0
- package/build/operations-v2/write/milestones.d.ts.map +1 -0
- package/build/operations-v2/write/milestones.js +56 -0
- package/build/operations-v2/write/milestones.js.map +1 -0
- package/build/operations-v2/write/plans.d.ts +2 -0
- package/build/operations-v2/write/plans.d.ts.map +1 -0
- package/build/operations-v2/write/plans.js +55 -0
- package/build/operations-v2/write/plans.js.map +1 -0
- package/build/operations-v2/write/results.d.ts +2 -0
- package/build/operations-v2/write/results.d.ts.map +1 -0
- package/build/operations-v2/write/results.js +72 -0
- package/build/operations-v2/write/results.js.map +1 -0
- package/build/operations-v2/write/runs.d.ts +2 -0
- package/build/operations-v2/write/runs.d.ts.map +1 -0
- package/build/operations-v2/write/runs.js +84 -0
- package/build/operations-v2/write/runs.js.map +1 -0
- package/build/operations-v2/write/shared-steps.d.ts +2 -0
- package/build/operations-v2/write/shared-steps.d.ts.map +1 -0
- package/build/operations-v2/write/shared-steps.js +60 -0
- package/build/operations-v2/write/shared-steps.js.map +1 -0
- package/build/operations-v2/write/suites.d.ts +2 -0
- package/build/operations-v2/write/suites.d.ts.map +1 -0
- package/build/operations-v2/write/suites.js +63 -0
- package/build/operations-v2/write/suites.js.map +1 -0
- package/build/prompts/index.d.ts +31 -0
- package/build/prompts/index.d.ts.map +1 -0
- package/build/prompts/index.js +229 -0
- package/build/prompts/index.js.map +1 -0
- package/build/transports/sse.d.ts.map +1 -1
- package/build/transports/sse.js +6 -0
- package/build/transports/sse.js.map +1 -1
- package/build/transports/streamableHttp.d.ts +6 -1
- package/build/transports/streamableHttp.d.ts.map +1 -1
- package/build/transports/streamableHttp.js +128 -16
- package/build/transports/streamableHttp.js.map +1 -1
- package/build/utils/auth-context.d.ts +8 -0
- package/build/utils/auth-context.d.ts.map +1 -1
- package/build/utils/auth-context.js +18 -0
- package/build/utils/auth-context.js.map +1 -1
- package/build/utils/case-enums.d.ts +5 -3
- package/build/utils/case-enums.d.ts.map +1 -1
- package/build/utils/case-enums.js +77 -59
- package/build/utils/case-enums.js.map +1 -1
- package/build/utils/output-schemas.d.ts +16 -0
- package/build/utils/output-schemas.d.ts.map +1 -0
- package/build/utils/output-schemas.js +82 -0
- package/build/utils/output-schemas.js.map +1 -0
- package/build/utils/registry.d.ts +42 -9
- package/build/utils/registry.d.ts.map +1 -1
- package/build/utils/registry.js +64 -11
- package/build/utils/registry.js.map +1 -1
- package/build/utils/response-shape.d.ts +23 -0
- package/build/utils/response-shape.d.ts.map +1 -0
- package/build/utils/response-shape.js +73 -0
- package/build/utils/response-shape.js.map +1 -0
- package/build/utils/rich-response.d.ts +58 -0
- package/build/utils/rich-response.d.ts.map +1 -0
- package/build/utils/rich-response.js +93 -0
- package/build/utils/rich-response.js.map +1 -0
- package/build/utils/server-context.d.ts +65 -0
- package/build/utils/server-context.d.ts.map +1 -0
- package/build/utils/server-context.js +67 -0
- package/build/utils/server-context.js.map +1 -0
- package/build/version.d.ts +1 -1
- package/build/version.js +1 -1
- package/docs/connect.md +81 -0
- package/docs/migration.md +351 -0
- package/docs/self-run.md +270 -0
- package/docs/tools.md +109 -0
- package/docs/troubleshooting.md +144 -0
- package/package.json +11 -2
- package/server.json +8 -2
- package/build/operations/attachments.d.ts +0 -8
- package/build/operations/attachments.d.ts.map +0 -1
- package/build/operations/attachments.js +0 -146
- package/build/operations/attachments.js.map +0 -1
- package/build/operations/authors.d.ts +0 -8
- package/build/operations/authors.d.ts.map +0 -1
- package/build/operations/authors.js +0 -70
- package/build/operations/authors.js.map +0 -1
- package/build/operations/cases.d.ts +0 -8
- package/build/operations/cases.d.ts.map +0 -1
- package/build/operations/cases.js +0 -370
- package/build/operations/cases.js.map +0 -1
- package/build/operations/configurations.d.ts +0 -10
- package/build/operations/configurations.d.ts.map +0 -1
- package/build/operations/configurations.js +0 -125
- package/build/operations/configurations.js.map +0 -1
- package/build/operations/custom-fields.d.ts +0 -8
- package/build/operations/custom-fields.d.ts.map +0 -1
- package/build/operations/custom-fields.js +0 -172
- package/build/operations/custom-fields.js.map +0 -1
- package/build/operations/defects.d.ts +0 -8
- package/build/operations/defects.d.ts.map +0 -1
- package/build/operations/defects.js +0 -256
- package/build/operations/defects.js.map +0 -1
- package/build/operations/environments.d.ts +0 -8
- package/build/operations/environments.d.ts.map +0 -1
- package/build/operations/environments.js +0 -154
- package/build/operations/environments.js.map +0 -1
- package/build/operations/milestones.d.ts +0 -8
- package/build/operations/milestones.d.ts.map +0 -1
- package/build/operations/milestones.js +0 -155
- package/build/operations/milestones.js.map +0 -1
- package/build/operations/plans.d.ts +0 -8
- package/build/operations/plans.d.ts.map +0 -1
- package/build/operations/plans.js +0 -158
- package/build/operations/plans.js.map +0 -1
- package/build/operations/projects.d.ts +0 -8
- package/build/operations/projects.d.ts.map +0 -1
- package/build/operations/projects.js +0 -192
- package/build/operations/projects.js.map +0 -1
- package/build/operations/results.d.ts +0 -8
- package/build/operations/results.d.ts.map +0 -1
- package/build/operations/results.js +0 -214
- package/build/operations/results.js.map +0 -1
- package/build/operations/runs.d.ts +0 -8
- package/build/operations/runs.d.ts.map +0 -1
- package/build/operations/runs.js +0 -224
- package/build/operations/runs.js.map +0 -1
- package/build/operations/search.d.ts.map +0 -1
- package/build/operations/search.js.map +0 -1
- package/build/operations/shared-parameters.d.ts +0 -10
- package/build/operations/shared-parameters.d.ts.map +0 -1
- package/build/operations/shared-parameters.js +0 -93
- package/build/operations/shared-parameters.js.map +0 -1
- package/build/operations/shared-steps.d.ts +0 -8
- package/build/operations/shared-steps.d.ts.map +0 -1
- package/build/operations/shared-steps.js +0 -160
- package/build/operations/shared-steps.js.map +0 -1
- package/build/operations/suites.d.ts +0 -8
- package/build/operations/suites.d.ts.map +0 -1
- package/build/operations/suites.js +0 -169
- package/build/operations/suites.js.map +0 -1
- package/build/operations/system-fields.d.ts +0 -10
- package/build/operations/system-fields.d.ts.map +0 -1
- package/build/operations/system-fields.js +0 -47
- package/build/operations/system-fields.js.map +0 -1
- package/build/operations/users.d.ts +0 -10
- package/build/operations/users.d.ts.map +0 -1
- package/build/operations/users.js +0 -78
- package/build/operations/users.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configurations.d.ts","sourceRoot":"","sources":["../../src/operations/configurations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configurations Operations
|
|
3
|
-
*
|
|
4
|
-
* Implements all MCP tools for managing test configurations in Qase.
|
|
5
|
-
* Configurations represent test environment settings (browser, OS, device, etc.).
|
|
6
|
-
*
|
|
7
|
-
* https://developers.qase.io/reference/get-configurations
|
|
8
|
-
*/
|
|
9
|
-
import { z } from 'zod';
|
|
10
|
-
import { getApiClient } from '../client/index.js';
|
|
11
|
-
import { toolRegistry, ReadAnnotation, CreateAnnotation, DeleteAnnotation, } from '../utils/registry.js';
|
|
12
|
-
import { toResultAsync, createToolError } from '../utils/errors.js';
|
|
13
|
-
import { ProjectCodeSchema, IdSchema } from '../utils/validation.js';
|
|
14
|
-
// ============================================================================
|
|
15
|
-
// SCHEMAS
|
|
16
|
-
// ============================================================================
|
|
17
|
-
/**
|
|
18
|
-
* Schema for a single configuration item within a group
|
|
19
|
-
*/
|
|
20
|
-
const ConfigurationItemSchema = z.object({
|
|
21
|
-
title: z.string().min(1).describe('Configuration item title (e.g., "Chrome", "Windows 10")'),
|
|
22
|
-
});
|
|
23
|
-
/**
|
|
24
|
-
* Schema for listing configurations in a project
|
|
25
|
-
* API: GET /v1/configuration/{code}
|
|
26
|
-
* https://developers.qase.io/reference/get-configurations
|
|
27
|
-
*/
|
|
28
|
-
const ListConfigurationsSchema = z.object({
|
|
29
|
-
code: ProjectCodeSchema,
|
|
30
|
-
});
|
|
31
|
-
/**
|
|
32
|
-
* Schema for creating a configuration group
|
|
33
|
-
* API: POST /v1/configuration/{code}/group
|
|
34
|
-
* https://developers.qase.io/reference/create-configuration-group
|
|
35
|
-
*/
|
|
36
|
-
const CreateConfigurationGroupSchema = z.object({
|
|
37
|
-
code: ProjectCodeSchema,
|
|
38
|
-
title: z.string().min(1).max(255).describe('Configuration group title (e.g., "Browser", "OS")'),
|
|
39
|
-
configurations: z
|
|
40
|
-
.array(ConfigurationItemSchema)
|
|
41
|
-
.min(1)
|
|
42
|
-
.describe('Configuration items in the group'),
|
|
43
|
-
});
|
|
44
|
-
/**
|
|
45
|
-
* Schema for deleting a configuration group
|
|
46
|
-
* API: DELETE /v1/configuration/{code}/group/{id}
|
|
47
|
-
* This endpoint is not documented in the official API docs but follows REST conventions.
|
|
48
|
-
*/
|
|
49
|
-
const DeleteConfigurationGroupSchema = z.object({
|
|
50
|
-
code: ProjectCodeSchema,
|
|
51
|
-
id: IdSchema.describe('Configuration group ID'),
|
|
52
|
-
});
|
|
53
|
-
// ============================================================================
|
|
54
|
-
// HANDLERS
|
|
55
|
-
// ============================================================================
|
|
56
|
-
/**
|
|
57
|
-
* List all configurations in a project
|
|
58
|
-
* API: GET /v1/configuration/{code}
|
|
59
|
-
* https://developers.qase.io/reference/get-configurations
|
|
60
|
-
*/
|
|
61
|
-
async function listConfigurations(args) {
|
|
62
|
-
const client = getApiClient();
|
|
63
|
-
const { code } = args;
|
|
64
|
-
const result = await toResultAsync(client.configurations.getConfigurations(code));
|
|
65
|
-
return result.match((response) => response.data.result, (error) => {
|
|
66
|
-
throw createToolError(error, 'listing configurations');
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Create a new configuration group
|
|
71
|
-
* API: POST /v1/configuration/{code}/group
|
|
72
|
-
* https://developers.qase.io/reference/create-configuration-group
|
|
73
|
-
*
|
|
74
|
-
* Note: The SDK type `ConfigurationGroupCreate` only declares `title`,
|
|
75
|
-
* but the API also accepts a `configurations` array. We cast to `any`
|
|
76
|
-
* to pass the full payload.
|
|
77
|
-
*/
|
|
78
|
-
async function createConfigurationGroup(args) {
|
|
79
|
-
const client = getApiClient();
|
|
80
|
-
const { code, title, configurations } = args;
|
|
81
|
-
const result = await toResultAsync(client.configurations.createConfigurationGroup(code, { title, configurations }));
|
|
82
|
-
return result.match((response) => response.data.result, (error) => {
|
|
83
|
-
throw createToolError(error, 'creating configuration group');
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Delete a configuration group
|
|
88
|
-
* API: DELETE /v1/configuration/{code}/group/{id}
|
|
89
|
-
*
|
|
90
|
-
* The SDK does not expose a delete method for configuration groups,
|
|
91
|
-
* so we use a direct API call.
|
|
92
|
-
*/
|
|
93
|
-
async function deleteConfigurationGroup(args) {
|
|
94
|
-
const client = getApiClient();
|
|
95
|
-
const { code, id } = args;
|
|
96
|
-
await client.request(`/v1/configuration/${code}/group/${id}`, {
|
|
97
|
-
method: 'DELETE',
|
|
98
|
-
});
|
|
99
|
-
return { success: true, id };
|
|
100
|
-
}
|
|
101
|
-
// ============================================================================
|
|
102
|
-
// TOOL REGISTRATION
|
|
103
|
-
// ============================================================================
|
|
104
|
-
toolRegistry.register({
|
|
105
|
-
name: 'list_configurations',
|
|
106
|
-
description: 'Get all configuration groups and their items in a project',
|
|
107
|
-
schema: ListConfigurationsSchema,
|
|
108
|
-
handler: listConfigurations,
|
|
109
|
-
annotations: ReadAnnotation,
|
|
110
|
-
});
|
|
111
|
-
toolRegistry.register({
|
|
112
|
-
name: 'create_configuration_group',
|
|
113
|
-
description: 'Create a new configuration group (e.g., Browser, OS) with items',
|
|
114
|
-
schema: CreateConfigurationGroupSchema,
|
|
115
|
-
handler: createConfigurationGroup,
|
|
116
|
-
annotations: CreateAnnotation,
|
|
117
|
-
});
|
|
118
|
-
toolRegistry.register({
|
|
119
|
-
name: 'delete_configuration_group',
|
|
120
|
-
description: 'Delete a configuration group from a project',
|
|
121
|
-
schema: DeleteConfigurationGroupSchema,
|
|
122
|
-
handler: deleteConfigurationGroup,
|
|
123
|
-
annotations: DeleteAnnotation,
|
|
124
|
-
});
|
|
125
|
-
//# sourceMappingURL=configurations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configurations.js","sourceRoot":"","sources":["../../src/operations/configurations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAErE,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yDAAyD,CAAC;CAC7F,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IAC/F,cAAc,EAAE,CAAC;SACd,KAAK,CAAC,uBAAuB,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,kCAAkC,CAAC;CAChD,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CAChD,CAAC,CAAC;AAEH,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAAC,IAA8C;IAC9E,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEtB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAElF,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACzD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,wBAAwB,CAAC,IAAoD;IAC1F,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAE7C,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,MAAM,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAS,CAAC,CACvF,CAAC;IAEF,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;IAC/D,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,wBAAwB,CAAC,IAAoD;IAC1F,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAE1B,MAAM,MAAM,CAAC,OAAO,CAAC,qBAAqB,IAAI,UAAU,EAAE,EAAE,EAAE;QAC5D,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAC/B,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,2DAA2D;IACxE,MAAM,EAAE,wBAAwB;IAChC,OAAO,EAAE,kBAAkB;IAC3B,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,4BAA4B;IAClC,WAAW,EAAE,iEAAiE;IAC9E,MAAM,EAAE,8BAA8B;IACtC,OAAO,EAAE,wBAAwB;IACjC,WAAW,EAAE,gBAAgB;CAC9B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,4BAA4B;IAClC,WAAW,EAAE,6CAA6C;IAC1D,MAAM,EAAE,8BAA8B;IACtC,OAAO,EAAE,wBAAwB;IACjC,WAAW,EAAE,gBAAgB;CAC9B,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"custom-fields.d.ts","sourceRoot":"","sources":["../../src/operations/custom-fields.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom Fields Operations
|
|
3
|
-
*
|
|
4
|
-
* Implements all MCP tools for managing custom fields in Qase.
|
|
5
|
-
* Custom fields extend entities with project-specific data fields.
|
|
6
|
-
*/
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
import { getApiClient } from '../client/index.js';
|
|
9
|
-
import { toolRegistry, ReadAnnotation, CreateAnnotation, UpdateAnnotation, DeleteAnnotation, } from '../utils/registry.js';
|
|
10
|
-
import { toResultAsync, createToolError } from '../utils/errors.js';
|
|
11
|
-
import { IdSchema } from '../utils/validation.js';
|
|
12
|
-
// ============================================================================
|
|
13
|
-
// SCHEMAS
|
|
14
|
-
// ============================================================================
|
|
15
|
-
/**
|
|
16
|
-
* Custom field entity types
|
|
17
|
-
*/
|
|
18
|
-
const CustomFieldEntityEnum = z.enum(['case', 'run', 'defect', 'result']);
|
|
19
|
-
/**
|
|
20
|
-
* Custom field data types
|
|
21
|
-
*/
|
|
22
|
-
const CustomFieldTypeEnum = z.enum([
|
|
23
|
-
'number',
|
|
24
|
-
'string',
|
|
25
|
-
'text',
|
|
26
|
-
'selectbox',
|
|
27
|
-
'checkbox',
|
|
28
|
-
'radio',
|
|
29
|
-
'multiselect',
|
|
30
|
-
'url',
|
|
31
|
-
'user',
|
|
32
|
-
'datetime',
|
|
33
|
-
]);
|
|
34
|
-
/**
|
|
35
|
-
* Schema for listing custom fields
|
|
36
|
-
*/
|
|
37
|
-
const ListCustomFieldsSchema = z.object({
|
|
38
|
-
limit: z.number().int().positive().max(100).optional().describe('Maximum number of items'),
|
|
39
|
-
offset: z.number().int().nonnegative().optional().describe('Number of items to skip'),
|
|
40
|
-
});
|
|
41
|
-
/**
|
|
42
|
-
* Schema for getting a specific custom field
|
|
43
|
-
*/
|
|
44
|
-
const GetCustomFieldSchema = z.object({
|
|
45
|
-
id: IdSchema,
|
|
46
|
-
});
|
|
47
|
-
/**
|
|
48
|
-
* Schema for creating a custom field
|
|
49
|
-
*/
|
|
50
|
-
const CreateCustomFieldSchema = z.object({
|
|
51
|
-
title: z.string().min(1).max(255).describe('Custom field title'),
|
|
52
|
-
entity: CustomFieldEntityEnum.describe('Entity type this field applies to'),
|
|
53
|
-
type: CustomFieldTypeEnum.describe('Data type of the field'),
|
|
54
|
-
placeholder: z.string().optional().describe('Placeholder text'),
|
|
55
|
-
default_value: z.string().optional().describe('Default value'),
|
|
56
|
-
is_required: z.boolean().optional().describe('Whether field is required'),
|
|
57
|
-
is_visible: z.boolean().optional().describe('Whether field is visible'),
|
|
58
|
-
projects: z.array(z.string()).optional().describe('Project codes where field is available'),
|
|
59
|
-
});
|
|
60
|
-
/**
|
|
61
|
-
* Schema for updating a custom field
|
|
62
|
-
*/
|
|
63
|
-
const UpdateCustomFieldSchema = z.object({
|
|
64
|
-
id: IdSchema,
|
|
65
|
-
title: z.string().min(1).max(255).optional().describe('Custom field title'),
|
|
66
|
-
placeholder: z.string().optional().describe('Placeholder text'),
|
|
67
|
-
default_value: z.string().optional().describe('Default value'),
|
|
68
|
-
is_required: z.boolean().optional().describe('Whether field is required'),
|
|
69
|
-
is_visible: z.boolean().optional().describe('Whether field is visible'),
|
|
70
|
-
});
|
|
71
|
-
/**
|
|
72
|
-
* Schema for deleting a custom field
|
|
73
|
-
*/
|
|
74
|
-
const DeleteCustomFieldSchema = z.object({
|
|
75
|
-
id: IdSchema,
|
|
76
|
-
});
|
|
77
|
-
// ============================================================================
|
|
78
|
-
// HANDLERS
|
|
79
|
-
// ============================================================================
|
|
80
|
-
/**
|
|
81
|
-
* List all custom fields
|
|
82
|
-
*/
|
|
83
|
-
async function listCustomFields(args) {
|
|
84
|
-
const client = getApiClient();
|
|
85
|
-
const { limit, offset } = args;
|
|
86
|
-
const result = await toResultAsync(client.customFields.getCustomFields(undefined, undefined, limit, offset));
|
|
87
|
-
return result.match((response) => response.data.result, (error) => {
|
|
88
|
-
throw createToolError(error, 'custom field operation');
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Get a specific custom field
|
|
93
|
-
*/
|
|
94
|
-
async function getCustomField(args) {
|
|
95
|
-
const client = getApiClient();
|
|
96
|
-
const { id } = args;
|
|
97
|
-
const result = await toResultAsync(client.customFields.getCustomField(id));
|
|
98
|
-
return result.match((response) => response.data.result, (error) => {
|
|
99
|
-
throw createToolError(error, 'custom field operation');
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Create a new custom field
|
|
104
|
-
*/
|
|
105
|
-
async function createCustomField(args) {
|
|
106
|
-
const client = getApiClient();
|
|
107
|
-
const result = await toResultAsync(client.customFields.createCustomField(args));
|
|
108
|
-
return result.match((response) => response.data.result, (error) => {
|
|
109
|
-
throw createToolError(error, 'custom field operation');
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Update an existing custom field
|
|
114
|
-
*/
|
|
115
|
-
async function updateCustomField(args) {
|
|
116
|
-
const client = getApiClient();
|
|
117
|
-
const { id, ...updateData } = args;
|
|
118
|
-
const result = await toResultAsync(client.customFields.updateCustomField(id, updateData));
|
|
119
|
-
return result.match((response) => response.data.result, (error) => {
|
|
120
|
-
throw createToolError(error, 'custom field operation');
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Delete a custom field
|
|
125
|
-
*/
|
|
126
|
-
async function deleteCustomField(args) {
|
|
127
|
-
const client = getApiClient();
|
|
128
|
-
const { id } = args;
|
|
129
|
-
const result = await toResultAsync(client.customFields.deleteCustomField(id));
|
|
130
|
-
return result.match((_response) => ({ success: true, id }), (error) => {
|
|
131
|
-
throw createToolError(error, 'custom field operation');
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
// ============================================================================
|
|
135
|
-
// TOOL REGISTRATION
|
|
136
|
-
// ============================================================================
|
|
137
|
-
toolRegistry.register({
|
|
138
|
-
name: 'list_custom_fields',
|
|
139
|
-
description: 'Get all custom field definitions with optional pagination',
|
|
140
|
-
schema: ListCustomFieldsSchema,
|
|
141
|
-
handler: listCustomFields,
|
|
142
|
-
annotations: ReadAnnotation,
|
|
143
|
-
});
|
|
144
|
-
toolRegistry.register({
|
|
145
|
-
name: 'get_custom_field',
|
|
146
|
-
description: 'Get a specific custom field definition by ID',
|
|
147
|
-
schema: GetCustomFieldSchema,
|
|
148
|
-
handler: getCustomField,
|
|
149
|
-
annotations: ReadAnnotation,
|
|
150
|
-
});
|
|
151
|
-
toolRegistry.register({
|
|
152
|
-
name: 'create_custom_field',
|
|
153
|
-
description: 'Create a new custom field for extending entity data',
|
|
154
|
-
schema: CreateCustomFieldSchema,
|
|
155
|
-
handler: createCustomField,
|
|
156
|
-
annotations: CreateAnnotation,
|
|
157
|
-
});
|
|
158
|
-
toolRegistry.register({
|
|
159
|
-
name: 'update_custom_field',
|
|
160
|
-
description: 'Update an existing custom field definition',
|
|
161
|
-
schema: UpdateCustomFieldSchema,
|
|
162
|
-
handler: updateCustomField,
|
|
163
|
-
annotations: UpdateAnnotation,
|
|
164
|
-
});
|
|
165
|
-
toolRegistry.register({
|
|
166
|
-
name: 'delete_custom_field',
|
|
167
|
-
description: 'Delete a custom field definition',
|
|
168
|
-
schema: DeleteCustomFieldSchema,
|
|
169
|
-
handler: deleteCustomField,
|
|
170
|
-
annotations: DeleteAnnotation,
|
|
171
|
-
});
|
|
172
|
-
//# sourceMappingURL=custom-fields.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"custom-fields.js","sourceRoot":"","sources":["../../src/operations/custom-fields.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC;IACjC,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,WAAW;IACX,UAAU;IACV,OAAO;IACP,aAAa;IACb,KAAK;IACL,MAAM;IACN,UAAU;CACX,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC1F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;CACtF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,QAAQ;CACb,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAChE,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC3E,IAAI,EAAE,mBAAmB,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC/D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC9D,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACzE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACvE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CAC5F,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC3E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC/D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC9D,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACzE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CACxE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,QAAQ;CACb,CAAC,CAAC;AAEH,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAAC,IAA4C;IAC1E,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE/B,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CACzE,CAAC;IAEF,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACzD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,IAA0C;IACtE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAEpB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3E,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACzD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,IAA6C;IAC5E,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAE9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAW,CAAC,CAAC,CAAC;IAEvF,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACzD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,IAA6C;IAC5E,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC;IAEnC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE,EAAE,UAAiB,CAAC,CAAC,CAAC;IAEjG,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EACvC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACzD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,IAA6C;IAC5E,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAEpB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9E,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,SAAc,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAC3C,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;IACzD,CAAC,CACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,2DAA2D;IACxE,MAAM,EAAE,sBAAsB;IAC9B,OAAO,EAAE,gBAAgB;IACzB,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,8CAA8C;IAC3D,MAAM,EAAE,oBAAoB;IAC5B,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qDAAqD;IAClE,MAAM,EAAE,uBAAuB;IAC/B,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,gBAAgB;CAC9B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,4CAA4C;IACzD,MAAM,EAAE,uBAAuB;IAC/B,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,gBAAgB;CAC9B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,kCAAkC;IAC/C,MAAM,EAAE,uBAAuB;IAC/B,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,gBAAgB;CAC9B,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defects.d.ts","sourceRoot":"","sources":["../../src/operations/defects.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Defects Operations
|
|
3
|
-
*
|
|
4
|
-
* Implements all MCP tools for managing defects in Qase.
|
|
5
|
-
* Defects represent bugs and issues discovered during testing.
|
|
6
|
-
*/
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
import { getApiClient } from '../client/index.js';
|
|
9
|
-
import { toolRegistry, ReadAnnotation, CreateAnnotation, UpdateAnnotation, DeleteAnnotation, } from '../utils/registry.js';
|
|
10
|
-
import { toResultAsync, createToolError } from '../utils/errors.js';
|
|
11
|
-
import { ProjectCodeSchema, IdSchema } from '../utils/validation.js';
|
|
12
|
-
// ============================================================================
|
|
13
|
-
// SCHEMAS
|
|
14
|
-
// ============================================================================
|
|
15
|
-
/**
|
|
16
|
-
* Defect severity as human-readable label.
|
|
17
|
-
* Converted to numeric ID before sending to the SDK.
|
|
18
|
-
*/
|
|
19
|
-
const DefectSeveritySchema = z
|
|
20
|
-
.enum(['undefined', 'blocker', 'critical', 'major', 'normal', 'minor', 'trivial'])
|
|
21
|
-
.optional()
|
|
22
|
-
.describe('Defect severity level');
|
|
23
|
-
const severityToId = {
|
|
24
|
-
undefined: 0,
|
|
25
|
-
blocker: 1,
|
|
26
|
-
critical: 2,
|
|
27
|
-
major: 3,
|
|
28
|
-
normal: 4,
|
|
29
|
-
minor: 5,
|
|
30
|
-
trivial: 6,
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Defect status values
|
|
34
|
-
*/
|
|
35
|
-
const DefectStatusEnum = z.enum(['open', 'in_progress', 'resolved', 'invalid']);
|
|
36
|
-
/**
|
|
37
|
-
* Schema for listing defects
|
|
38
|
-
* API: GET /v1/defect/{code}
|
|
39
|
-
* https://developers.qase.io/reference/get-defects
|
|
40
|
-
*
|
|
41
|
-
* The Qase API only supports filtering by a single status value.
|
|
42
|
-
* Severity filtering is not supported by the API.
|
|
43
|
-
*/
|
|
44
|
-
const ListDefectsSchema = z.object({
|
|
45
|
-
code: ProjectCodeSchema,
|
|
46
|
-
status: DefectStatusEnum.optional().describe('Filter by status'),
|
|
47
|
-
limit: z
|
|
48
|
-
.number()
|
|
49
|
-
.int()
|
|
50
|
-
.positive()
|
|
51
|
-
.max(100)
|
|
52
|
-
.optional()
|
|
53
|
-
.describe('Maximum number of items (default: 10)'),
|
|
54
|
-
offset: z
|
|
55
|
-
.number()
|
|
56
|
-
.int()
|
|
57
|
-
.nonnegative()
|
|
58
|
-
.optional()
|
|
59
|
-
.describe('Number of items to skip (default: 0)'),
|
|
60
|
-
});
|
|
61
|
-
/**
|
|
62
|
-
* Schema for getting a specific defect
|
|
63
|
-
*/
|
|
64
|
-
const GetDefectSchema = z.object({
|
|
65
|
-
code: ProjectCodeSchema,
|
|
66
|
-
id: IdSchema,
|
|
67
|
-
});
|
|
68
|
-
/**
|
|
69
|
-
* Schema for creating a defect
|
|
70
|
-
*/
|
|
71
|
-
const CreateDefectSchema = z.object({
|
|
72
|
-
code: ProjectCodeSchema,
|
|
73
|
-
title: z.string().min(1).max(255).describe('Defect title'),
|
|
74
|
-
actual_result: z.string().optional().describe('Actual behavior observed'),
|
|
75
|
-
severity: DefectSeveritySchema.describe('Defect severity'),
|
|
76
|
-
attachments: z.array(z.string()).optional().describe('Array of attachment hashes'),
|
|
77
|
-
custom_field: z.record(z.any()).optional().describe('Custom field values'),
|
|
78
|
-
tags: z.array(z.string()).optional().describe('Tags for categorization'),
|
|
79
|
-
});
|
|
80
|
-
/**
|
|
81
|
-
* Schema for updating a defect
|
|
82
|
-
*/
|
|
83
|
-
const UpdateDefectSchema = z.object({
|
|
84
|
-
code: ProjectCodeSchema,
|
|
85
|
-
id: IdSchema,
|
|
86
|
-
title: z.string().min(1).max(255).optional().describe('Defect title'),
|
|
87
|
-
actual_result: z.string().optional().describe('Actual behavior observed'),
|
|
88
|
-
severity: DefectSeveritySchema.describe('Defect severity'),
|
|
89
|
-
attachments: z.array(z.string()).optional().describe('Array of attachment hashes'),
|
|
90
|
-
tags: z.array(z.string()).optional().describe('Tags for categorization'),
|
|
91
|
-
});
|
|
92
|
-
/**
|
|
93
|
-
* Schema for deleting a defect
|
|
94
|
-
*/
|
|
95
|
-
const DeleteDefectSchema = z.object({
|
|
96
|
-
code: ProjectCodeSchema,
|
|
97
|
-
id: IdSchema,
|
|
98
|
-
});
|
|
99
|
-
/**
|
|
100
|
-
* Schema for resolving a defect
|
|
101
|
-
*/
|
|
102
|
-
const ResolveDefectSchema = z.object({
|
|
103
|
-
code: ProjectCodeSchema,
|
|
104
|
-
id: IdSchema,
|
|
105
|
-
});
|
|
106
|
-
/**
|
|
107
|
-
* Schema for updating defect status
|
|
108
|
-
*/
|
|
109
|
-
const UpdateDefectStatusSchema = z.object({
|
|
110
|
-
code: ProjectCodeSchema,
|
|
111
|
-
id: IdSchema,
|
|
112
|
-
status: DefectStatusEnum.describe('New defect status'),
|
|
113
|
-
});
|
|
114
|
-
// ============================================================================
|
|
115
|
-
// HANDLERS
|
|
116
|
-
// ============================================================================
|
|
117
|
-
/**
|
|
118
|
-
* List all defects in a project
|
|
119
|
-
* API: GET /v1/defect/{code}
|
|
120
|
-
* https://developers.qase.io/reference/get-defects
|
|
121
|
-
*/
|
|
122
|
-
async function listDefects(args) {
|
|
123
|
-
const client = getApiClient();
|
|
124
|
-
const { code, status, limit, offset } = args;
|
|
125
|
-
const result = await toResultAsync(client.defects.getDefects(code, status, limit, offset));
|
|
126
|
-
return result.match((response) => response.data.result, (error) => {
|
|
127
|
-
throw createToolError(error, 'defect operation');
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Get a specific defect
|
|
132
|
-
*/
|
|
133
|
-
async function getDefect(args) {
|
|
134
|
-
const client = getApiClient();
|
|
135
|
-
const { code, id } = args;
|
|
136
|
-
const result = await toResultAsync(client.defects.getDefect(code, id));
|
|
137
|
-
return result.match((response) => response.data.result, (error) => {
|
|
138
|
-
throw createToolError(error, 'defect operation');
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Create a new defect
|
|
143
|
-
*/
|
|
144
|
-
async function createDefect(args) {
|
|
145
|
-
const client = getApiClient();
|
|
146
|
-
const { code, severity, ...rest } = args;
|
|
147
|
-
const defectData = {
|
|
148
|
-
...rest,
|
|
149
|
-
...(severity !== undefined && { severity: severityToId[severity] }),
|
|
150
|
-
};
|
|
151
|
-
const result = await toResultAsync(client.defects.createDefect(code, defectData));
|
|
152
|
-
return result.match((response) => response.data.result, (error) => {
|
|
153
|
-
throw createToolError(error, 'defect operation');
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Update an existing defect
|
|
158
|
-
*/
|
|
159
|
-
async function updateDefect(args) {
|
|
160
|
-
const client = getApiClient();
|
|
161
|
-
const { code, id, severity, ...rest } = args;
|
|
162
|
-
const updateData = {
|
|
163
|
-
...rest,
|
|
164
|
-
...(severity !== undefined && { severity: severityToId[severity] }),
|
|
165
|
-
};
|
|
166
|
-
const result = await toResultAsync(client.defects.updateDefect(code, id, updateData));
|
|
167
|
-
return result.match((response) => response.data.result, (error) => {
|
|
168
|
-
throw createToolError(error, 'defect operation');
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Delete a defect
|
|
173
|
-
*/
|
|
174
|
-
async function deleteDefect(args) {
|
|
175
|
-
const client = getApiClient();
|
|
176
|
-
const { code, id } = args;
|
|
177
|
-
const result = await toResultAsync(client.defects.deleteDefect(code, id));
|
|
178
|
-
return result.match((_response) => ({ success: true, id }), (error) => {
|
|
179
|
-
throw createToolError(error, 'defect operation');
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Mark a defect as resolved
|
|
184
|
-
*/
|
|
185
|
-
async function resolveDefect(args) {
|
|
186
|
-
const client = getApiClient();
|
|
187
|
-
const { code, id } = args;
|
|
188
|
-
const result = await toResultAsync(client.defects.resolveDefect(code, id));
|
|
189
|
-
return result.match((response) => response.data.result, (error) => {
|
|
190
|
-
throw createToolError(error, 'defect operation');
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Update defect status
|
|
195
|
-
*/
|
|
196
|
-
async function updateDefectStatus(args) {
|
|
197
|
-
const client = getApiClient();
|
|
198
|
-
const { code, id, status } = args;
|
|
199
|
-
const result = await toResultAsync(client.defects.updateDefect(code, id, { status }));
|
|
200
|
-
return result.match((response) => response.data.result, (error) => {
|
|
201
|
-
throw createToolError(error, 'defect operation');
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
// ============================================================================
|
|
205
|
-
// TOOL REGISTRATION
|
|
206
|
-
// ============================================================================
|
|
207
|
-
toolRegistry.register({
|
|
208
|
-
name: 'list_defects',
|
|
209
|
-
description: 'Get all defects in a project with optional filtering by status and severity',
|
|
210
|
-
schema: ListDefectsSchema,
|
|
211
|
-
handler: listDefects,
|
|
212
|
-
annotations: ReadAnnotation,
|
|
213
|
-
});
|
|
214
|
-
toolRegistry.register({
|
|
215
|
-
name: 'get_defect',
|
|
216
|
-
description: 'Get a specific defect by project code and defect ID',
|
|
217
|
-
schema: GetDefectSchema,
|
|
218
|
-
handler: getDefect,
|
|
219
|
-
annotations: ReadAnnotation,
|
|
220
|
-
});
|
|
221
|
-
toolRegistry.register({
|
|
222
|
-
name: 'create_defect',
|
|
223
|
-
description: 'Create a new defect/bug report in a project',
|
|
224
|
-
schema: CreateDefectSchema,
|
|
225
|
-
handler: createDefect,
|
|
226
|
-
annotations: CreateAnnotation,
|
|
227
|
-
});
|
|
228
|
-
toolRegistry.register({
|
|
229
|
-
name: 'update_defect',
|
|
230
|
-
description: 'Update an existing defect',
|
|
231
|
-
schema: UpdateDefectSchema,
|
|
232
|
-
handler: updateDefect,
|
|
233
|
-
annotations: UpdateAnnotation,
|
|
234
|
-
});
|
|
235
|
-
toolRegistry.register({
|
|
236
|
-
name: 'delete_defect',
|
|
237
|
-
description: 'Delete a defect from a project',
|
|
238
|
-
schema: DeleteDefectSchema,
|
|
239
|
-
handler: deleteDefect,
|
|
240
|
-
annotations: DeleteAnnotation,
|
|
241
|
-
});
|
|
242
|
-
toolRegistry.register({
|
|
243
|
-
name: 'resolve_defect',
|
|
244
|
-
description: 'Mark a defect as resolved',
|
|
245
|
-
schema: ResolveDefectSchema,
|
|
246
|
-
handler: resolveDefect,
|
|
247
|
-
annotations: UpdateAnnotation,
|
|
248
|
-
});
|
|
249
|
-
toolRegistry.register({
|
|
250
|
-
name: 'update_defect_status',
|
|
251
|
-
description: 'Update the status of a defect (open, in_progress, resolved, invalid)',
|
|
252
|
-
schema: UpdateDefectStatusSchema,
|
|
253
|
-
handler: updateDefectStatus,
|
|
254
|
-
annotations: UpdateAnnotation,
|
|
255
|
-
});
|
|
256
|
-
//# sourceMappingURL=defects.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defects.js","sourceRoot":"","sources":["../../src/operations/defects.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAErE,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,oBAAoB,GAAG,CAAC;KAC3B,IAAI,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;KACjF,QAAQ,EAAE;KACV,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAErC,MAAM,YAAY,GAA2B;IAC3C,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;CACX,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAChE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uCAAuC,CAAC;IACpD,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,EAAE;SACL,WAAW,EAAE;SACb,QAAQ,EAAE;SACV,QAAQ,CAAC,sCAAsC,CAAC;CACpD,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,QAAQ;CACb,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC1D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACzE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC1D,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAClF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC1E,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;CACzE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IACrE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACzE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC1D,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAClF,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;CACzE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,QAAQ;CACb,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,QAAQ;CACb,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,iBAAiB;IACvB,EAAE,EAAE,QAAQ;IACZ,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CACvD,CAAC,CAAC;AAEH,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;;;GAIG;AACH,KAAK,UAAU,WAAW,CAAC,IAAuC;IAChE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3F,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,IAAqC;IAC5D,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAE1B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAEvE,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,IAAwC;IAClE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAEzC,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI;QACP,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;KACpE,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,UAAiB,CAAC,CAAC,CAAC;IAEzF,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,IAAwC;IAClE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAE7C,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI;QACP,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;KACpE,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,UAAiB,CAAC,CAAC,CAAC;IAE7F,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,IAAwC;IAClE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAE1B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EACtC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,IAAyC;IACpE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAE1B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAE3E,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,IAA8C;IAC9E,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAElC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAS,CAAC,CAAC,CAAC;IAE7F,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,6EAA6E;IAC1F,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,qDAAqD;IAClE,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,6CAA6C;IAC1D,MAAM,EAAE,kBAAkB;IAC1B,OAAO,EAAE,YAAY;IACrB,WAAW,EAAE,gBAAgB;CAC9B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,2BAA2B;IACxC,MAAM,EAAE,kBAAkB;IAC1B,OAAO,EAAE,YAAY;IACrB,WAAW,EAAE,gBAAgB;CAC9B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,gCAAgC;IAC7C,MAAM,EAAE,kBAAkB;IAC1B,OAAO,EAAE,YAAY;IACrB,WAAW,EAAE,gBAAgB;CAC9B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,2BAA2B;IACxC,MAAM,EAAE,mBAAmB;IAC3B,OAAO,EAAE,aAAa;IACtB,WAAW,EAAE,gBAAgB;CAC9B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,sEAAsE;IACnF,MAAM,EAAE,wBAAwB;IAChC,OAAO,EAAE,kBAAkB;IAC3B,WAAW,EAAE,gBAAgB;CAC9B,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../src/operations/environments.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|