@syn7xx/testops-mcp-server 0.1.1 → 0.1.4

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 (91) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +147 -76
  3. package/dist/args.d.ts +2 -2
  4. package/dist/args.d.ts.map +1 -1
  5. package/dist/args.js +57 -16
  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.map +1 -1
  12. package/dist/domain/test-case/service.js +3 -1
  13. package/dist/domain/test-case/service.js.map +1 -1
  14. package/dist/domain/test-case/types.d.ts.map +1 -1
  15. package/dist/domain/test-plan/service.d.ts.map +1 -1
  16. package/dist/domain/test-plan/service.js +1 -1
  17. package/dist/domain/test-plan/service.js.map +1 -1
  18. package/dist/domain/test-plan/types.d.ts.map +1 -1
  19. package/dist/presentation/project/tools.d.ts +2 -1
  20. package/dist/presentation/project/tools.d.ts.map +1 -1
  21. package/dist/presentation/project/tools.js +30 -8
  22. package/dist/presentation/project/tools.js.map +1 -1
  23. package/dist/presentation/test-case/tools.d.ts +2 -1
  24. package/dist/presentation/test-case/tools.d.ts.map +1 -1
  25. package/dist/presentation/test-case/tools.js +77 -21
  26. package/dist/presentation/test-case/tools.js.map +1 -1
  27. package/dist/presentation/test-plan/tools.d.ts +2 -1
  28. package/dist/presentation/test-plan/tools.d.ts.map +1 -1
  29. package/dist/presentation/test-plan/tools.js +17 -5
  30. package/dist/presentation/test-plan/tools.js.map +1 -1
  31. package/dist/server.d.ts.map +1 -1
  32. package/dist/server.js +8 -5
  33. package/dist/server.js.map +1 -1
  34. package/dist/shared/api.d.ts +2 -4
  35. package/dist/shared/api.d.ts.map +1 -1
  36. package/dist/shared/api.js +34 -31
  37. package/dist/shared/api.js.map +1 -1
  38. package/dist/shared/pagination.d.ts.map +1 -1
  39. package/dist/shared/pagination.js.map +1 -1
  40. package/dist/shared/result.d.ts.map +1 -1
  41. package/dist/shared/result.js +7 -4
  42. package/dist/shared/result.js.map +1 -1
  43. package/package.json +19 -4
  44. package/dist/services/config.d.ts +0 -43
  45. package/dist/services/config.d.ts.map +0 -1
  46. package/dist/services/config.js +0 -99
  47. package/dist/services/config.js.map +0 -1
  48. package/dist/services/index.d.ts +0 -8
  49. package/dist/services/index.d.ts.map +0 -1
  50. package/dist/services/index.js +0 -8
  51. package/dist/services/index.js.map +0 -1
  52. package/dist/services/project.d.ts +0 -17
  53. package/dist/services/project.d.ts.map +0 -1
  54. package/dist/services/project.js +0 -27
  55. package/dist/services/project.js.map +0 -1
  56. package/dist/services/test-case.d.ts +0 -59
  57. package/dist/services/test-case.d.ts.map +0 -1
  58. package/dist/services/test-case.js +0 -138
  59. package/dist/services/test-case.js.map +0 -1
  60. package/dist/services/test-plan.d.ts +0 -20
  61. package/dist/services/test-plan.d.ts.map +0 -1
  62. package/dist/services/test-plan.js +0 -18
  63. package/dist/services/test-plan.js.map +0 -1
  64. package/dist/services/testops-client.d.ts +0 -96
  65. package/dist/services/testops-client.d.ts.map +0 -1
  66. package/dist/services/testops-client.js +0 -392
  67. package/dist/services/testops-client.js.map +0 -1
  68. package/dist/services/testops-types.d.ts +0 -62
  69. package/dist/services/testops-types.d.ts.map +0 -1
  70. package/dist/services/testops-types.js +0 -3
  71. package/dist/services/testops-types.js.map +0 -1
  72. package/dist/tools/index.d.ts +0 -8
  73. package/dist/tools/index.d.ts.map +0 -1
  74. package/dist/tools/index.js +0 -8
  75. package/dist/tools/index.js.map +0 -1
  76. package/dist/tools/project.d.ts +0 -5
  77. package/dist/tools/project.d.ts.map +0 -1
  78. package/dist/tools/project.js +0 -62
  79. package/dist/tools/project.js.map +0 -1
  80. package/dist/tools/test-case.d.ts +0 -5
  81. package/dist/tools/test-case.d.ts.map +0 -1
  82. package/dist/tools/test-case.js +0 -185
  83. package/dist/tools/test-case.js.map +0 -1
  84. package/dist/tools/test-plan.d.ts +0 -5
  85. package/dist/tools/test-plan.d.ts.map +0 -1
  86. package/dist/tools/test-plan.js +0 -57
  87. package/dist/tools/test-plan.js.map +0 -1
  88. package/dist/tools/testops.d.ts +0 -6
  89. package/dist/tools/testops.d.ts.map +0 -1
  90. package/dist/tools/testops.js +0 -302
  91. package/dist/tools/testops.js.map +0 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,45 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented in this file.
4
+
5
+ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
+ On each release, [release-it](https://github.com/release-it/release-it) with `@release-it/conventional-changelog` prepends new sections from [Conventional Commits](https://www.conventionalcommits.org/) since the previous tag.
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.1.3] - 2026-04-03
11
+
12
+ ### Added
13
+
14
+ - CI (lint, build on push); GitHub Actions **Release** workflow with `release-it`
15
+ - ESLint 9 (flat config), Prettier, `typescript-eslint`
16
+ - CLI parsing via `node:util` / `parseArgs`; short flags `-u` / `-t` / `-h`; validation of `http(s)` base URL
17
+ - HTTP 401 handling: clear JWT cache and retry once
18
+ - `CHANGELOG.md` in published npm package; maintainer notes in README (Release workflow, conventional commits)
19
+
20
+ ### Changed
21
+
22
+ - README: MCP setup for Cursor, VS Code (`servers`), OpenCode (`mcp` + `type: local`), Claude; **Releasing** section
23
+ - CI: npm publish removed from default pipeline (publish only via **Release** + `release-it`)
24
+
25
+ ## [0.1.2] - 2026-04-03
26
+
27
+ ### Fixed
28
+
29
+ - Add shebang for the `testops-mcp-server` CLI binary
30
+
31
+ ### Changed
32
+
33
+ - OpenCode: document using `TESTOPS_URL` / `TESTOPS_TOKEN` in env in MCP config
34
+
35
+ ## [0.1.0-alpha.2] - 2026-04-03
36
+
37
+ ### Added
38
+
39
+ - `bin` field in `package.json` for the CLI executable
40
+
41
+ ## [0.1.0] - 2026-04-03
42
+
43
+ ### Added
44
+
45
+ - Initial **TestOps MCP Server**: tools for projects, test plans, and test cases; API client with JWT; stdio transport
package/README.md CHANGED
@@ -16,6 +16,9 @@ Or use directly via npx:
16
16
  npx @syn7xx/testops-mcp-server --url <testops-url> --token <api-token>
17
17
  ```
18
18
 
19
+ Short flags: `-u` / `-t` / `-h` (same as `--url`, `--token`, `--help`).
20
+ Environment variables: `TESTOPS_URL`, `TESTOPS_TOKEN` (used when flags are omitted).
21
+
19
22
  ## Build
20
23
 
21
24
  ```bash
@@ -34,108 +37,116 @@ Or with npx (if not installed globally):
34
37
  npx @syn7xx/testops-mcp-server --url <testops-url> --token <api-token>
35
38
  ```
36
39
 
37
- ## Tools
40
+ ## MCP setup in AI tools
38
41
 
39
- ### Project
40
- | Tool | Description |
41
- |------|-------------|
42
- | `project_list` | List projects with pagination |
43
- | `project_find_by_name` | Find project by exact or partial name match |
44
- | `project_get_by_id` | Get project by ID |
42
+ Configs differ by product:
45
43
 
46
- ### Test Plan
47
- | Tool | Description |
48
- |------|-------------|
49
- | `testplan_get` | Get test plan by ID |
50
- | `testplan_get_test_cases` | Get test cases from test plan with pagination |
44
+ | Product | Typical config file | Root key | Notes |
45
+ |--------|---------------------|----------|--------|
46
+ | Cursor, Windsurf, Kilo Code, Zed | `mcp.json` (paths vary) | **`mcpServers`** | `command` + `args` |
47
+ | **Visual Studio Code** | `.vscode/mcp.json` or user MCP config | **`servers`** | [Official docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) not `mcpServers` |
48
+ | Claude Desktop | `claude_desktop_config.json` | **`mcpServers`** | Same idea as Cursor |
49
+ | **OpenCode** | `opencode.jsonc` (project or [user config](https://open-code.ai/en/docs/config)) | **`mcp`** | **`type: "local"`**, `command` as **array**, env under **`environment`** |
51
50
 
52
- ### Test Case
53
- | Tool | Description |
54
- |------|-------------|
55
- | `testcase_get` | Get test case by ID |
56
- | `testcase_get_detail` | Get test case with steps and custom fields |
57
- | `testcase_get_scenario` | Get scenario (steps and expected results) |
58
- | `testcase_update_step` | Update a step in scenario |
59
- | `testcase_set_scenario` | Replace all steps in scenario |
60
- | `testcase_get_custom_fields` | Get custom field values |
61
- | `testcase_update_custom_fields` | Update custom field values |
62
- | `testcase_search_by_aql` | Search test cases using AQL |
51
+ Do **not** commit real tokens; use env vars or local-only config.
63
52
 
64
- ## Project Structure
53
+ ### Cursor, Windsurf, Kilo Code, Zed
65
54
 
66
- ```
67
- src/
68
- ├── shared/ # Utilities (Result, pagination, API client)
69
- ├── domain/ # Business logic (project, test-plan, test-case)
70
- ├── presentation/ # MCP tools
71
- ├── index.ts # Entry point
72
- └── server.ts # MCP server configuration
73
- ```
74
-
75
- <details>
76
- <summary><b>Configuration in AI Editors</b> (click to expand)</summary>
55
+ These use top-level **`mcpServers`**, each entry has **`command`** (string) and **`args`** (array).
77
56
 
78
- Use `@syn7xx/testops-mcp-server` package:
79
-
80
- ```bash
81
- npm install -g @syn7xx/testops-mcp-server
82
- ```
83
-
84
- ### Cursor
85
-
86
- Add to `~/.cursor/mcp.json` or project `.cursor/mcp.json`:
57
+ **Cursor** — `~/.cursor/mcp.json` or project `.cursor/mcp.json`:
87
58
 
88
59
  ```json
89
60
  {
90
61
  "mcpServers": {
91
62
  "testops": {
92
63
  "command": "npx",
93
- "args": ["@syn7xx/testops-mcp-server", "--url", "https://your-testops.com", "--token", "your-token"]
64
+ "args": [
65
+ "-y",
66
+ "@syn7xx/testops-mcp-server",
67
+ "--url",
68
+ "https://your-testops.com",
69
+ "--token",
70
+ "your-token"
71
+ ]
94
72
  }
95
73
  }
96
74
  }
97
75
  ```
98
76
 
99
- ### Windsurf (Codeium)
77
+ **Windsurf** — `~/.config/windsurf/mcp.json` or project `.windsurf/mcp.json` (same structure).
78
+
79
+ **Kilo Code** — `~/.kilocode/mcp.json` or project `.kilocode/mcp.json` (same structure).
80
+
81
+ **Zed** — `~/.config/zed/mcp.json` (same structure).
100
82
 
101
- Add to `~/.config/windsurf/mcp.json` or project `.windsurf/mcp.json`:
83
+ ### Visual Studio Code
84
+
85
+ VS Code stores MCP config in **`mcp.json`** with top-level **`servers`**, not `mcpServers` (see [Add and manage MCP servers in VS Code](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) and the [MCP configuration reference](https://code.visualstudio.com/docs/copilot/reference/mcp-configuration)).
86
+
87
+ Workspace file: **`.vscode/mcp.json`**, or run **MCP: Open User Configuration** for a global file.
102
88
 
103
89
  ```json
104
90
  {
105
- "mcpServers": {
91
+ "servers": {
106
92
  "testops": {
107
93
  "command": "npx",
108
- "args": ["@syn7xx/testops-mcp-server", "--url", "https://your-testops.com", "--token", "your-token"]
94
+ "args": [
95
+ "-y",
96
+ "@syn7xx/testops-mcp-server",
97
+ "--url",
98
+ "https://your-testops.com",
99
+ "--token",
100
+ "your-token"
101
+ ]
109
102
  }
110
103
  }
111
104
  }
112
105
  ```
113
106
 
114
- ### Kilo Code
107
+ For sensitive values, prefer [input variables](https://code.visualstudio.com/docs/copilot/reference/mcp-configuration#_input-variables-for-sensitive-data) or env files as described in the reference.
115
108
 
116
- Add to `~/.kilocode/mcp.json` or project `.kilocode/mcp.json`:
109
+ ### OpenCode
117
110
 
118
- ```json
111
+ OpenCode does **not** use `mcpServers`. Define servers under **`mcp`**, set **`type: "local"`**, pass the process as a **`command`** array (e.g. `npx`, `-y`, `@syn7xx/testops-mcp-server`, …), and optional env in **`environment`** (not `env`). See [OpenCode MCP servers](https://open-code.ai/docs/en/mcp-servers).
112
+
113
+ Example — `opencode.jsonc` in the project root or in the [global OpenCode config](https://open-code.ai/en/docs/config):
114
+
115
+ ```jsonc
119
116
  {
120
- "mcpServers": {
117
+ "$schema": "https://opencode.ai/config.json",
118
+ "mcp": {
121
119
  "testops": {
122
- "command": "npx",
123
- "args": ["@syn7xx/testops-mcp-server", "--url", "https://your-testops.com", "--token", "your-token"]
120
+ "type": "local",
121
+ "command": [
122
+ "npx",
123
+ "-y",
124
+ "@syn7xx/testops-mcp-server",
125
+ "--url",
126
+ "https://your-testops.com",
127
+ "--token",
128
+ "your-token"
129
+ ],
130
+ "enabled": true
124
131
  }
125
132
  }
126
133
  }
127
134
  ```
128
135
 
129
- ### OpenCode
130
-
131
- Add to `~/.opencode/mcp.json` or project `.opencode/mcp.json`:
136
+ Using environment variables instead of flags:
132
137
 
133
- ```json
138
+ ```jsonc
134
139
  {
135
- "mcpServers": {
140
+ "$schema": "https://opencode.ai/config.json",
141
+ "mcp": {
136
142
  "testops": {
137
- "command": "npx",
138
- "args": ["@syn7xx/testops-mcp-server", "--url", "https://your-testops.com", "--token", "your-token"]
143
+ "type": "local",
144
+ "command": ["npx", "-y", "@syn7xx/testops-mcp-server"],
145
+ "environment": {
146
+ "TESTOPS_URL": "https://your-testops.com",
147
+ "TESTOPS_TOKEN": "your-token"
148
+ },
149
+ "enabled": true
139
150
  }
140
151
  }
141
152
  }
@@ -143,34 +154,94 @@ Add to `~/.opencode/mcp.json` or project `.opencode/mcp.json`:
143
154
 
144
155
  ### Claude Desktop
145
156
 
146
- Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
157
+ **macOS** `~/Library/Application Support/Claude/claude_desktop_config.json`:
147
158
 
148
159
  ```json
149
160
  {
150
161
  "mcpServers": {
151
162
  "testops": {
152
163
  "command": "npx",
153
- "args": ["@syn7xx/testops-mcp-server", "--url", "https://your-testops.com", "--token", "your-token"]
164
+ "args": [
165
+ "@syn7xx/testops-mcp-server",
166
+ "--url",
167
+ "https://your-testops.com",
168
+ "--token",
169
+ "your-token"
170
+ ]
154
171
  }
155
172
  }
156
173
  }
157
174
  ```
158
175
 
159
- ### Zed
176
+ On **Windows**, the config lives under `%APPDATA%\Claude\` — see Anthropic’s Claude Desktop documentation for the exact path.
160
177
 
161
- Add to `~/.config/zed/mcp.json`:
178
+ ### Global install (optional)
179
+
180
+ If you prefer a fixed binary path instead of `npx`:
181
+
182
+ ```bash
183
+ npm install -g @syn7xx/testops-mcp-server
184
+ ```
185
+
186
+ Then use `"command": "testops-mcp-server"` and `"args": ["--url", "...", "--token", "..."]` under **`mcpServers`** (Cursor, Claude, …) or **`servers`** (VS Code), or the **`command`** array in OpenCode.
187
+
188
+ ## Tools
189
+
190
+ ### Project
191
+
192
+ | Tool | Description |
193
+ |------|-------------|
194
+ | `project_list` | List projects with pagination |
195
+ | `project_find_by_name` | Find project by exact or partial name match |
196
+ | `project_get_by_id` | Get project by ID |
197
+
198
+ ### Test Plan
199
+
200
+ | Tool | Description |
201
+ |------|-------------|
202
+ | `testplan_get` | Get test plan by ID |
203
+ | `testplan_get_test_cases` | Get test cases from test plan with pagination |
204
+
205
+ ### Test Case
206
+
207
+ | Tool | Description |
208
+ |------|-------------|
209
+ | `testcase_get` | Get test case by ID |
210
+ | `testcase_get_detail` | Get test case with steps and custom fields |
211
+ | `testcase_get_scenario` | Get scenario (steps and expected results) |
212
+ | `testcase_update_step` | Update a step in scenario |
213
+ | `testcase_set_scenario` | Replace all steps in scenario |
214
+ | `testcase_get_custom_fields` | Get custom field values |
215
+ | `testcase_update_custom_fields` | Update custom field values |
216
+ | `testcase_search_by_aql` | Search test cases using AQL |
217
+
218
+ ## Project Structure
162
219
 
163
- ```json
164
- {
165
- "mcpServers": {
166
- "testops": {
167
- "command": "npx",
168
- "args": ["@syn7xx/testops-mcp-server", "--url", "https://your-testops.com", "--token", "your-token"]
169
- }
170
- }
171
- }
172
220
  ```
173
- </details>
221
+ src/
222
+ ├── shared/ # Utilities (Result, pagination, API client)
223
+ ├── domain/ # Business logic (project, test-plan, test-case)
224
+ ├── presentation/ # MCP tools
225
+ ├── index.ts # Entry point
226
+ └── server.ts # MCP server configuration
227
+ ```
228
+
229
+ ## Releasing
230
+
231
+ Publishing to **npm** is only via the GitHub Actions workflow **Release** (`release-it`). The **CI** workflow only runs lint and build.
232
+
233
+ **This workflow does not run on `git push`.** It is triggered **only** when someone opens **Actions → Release → Run workflow**, selects branch **`main`**, and chooses **patch** / **minor** / **major**. A plain merge or push to `main` will not start `release-it` (by design, so every commit does not bump the version).
234
+
235
+ Steps:
236
+
237
+ 1. Repository secret **`NPM_TOKEN`** (npm token with publish access for `@syn7xx`).
238
+ 2. **Actions** tab → **Release** in the left list → **Run workflow** → branch **main** → run.
239
+
240
+ That bumps `package.json`, updates **`CHANGELOG.md`** (from conventional commits since the last tag), creates a git tag, pushes to `main`, and runs **`npm publish`**. Use commit messages like `feat: ...`, `fix: ...`, `chore: ...` so the changelog has meaningful entries. Locally you can use `npm run release` (interactive) or `npm run release:patch` / `:minor` / `:major` instead.
241
+
242
+ If you do not want a changelog at all, remove the `@release-it/conventional-changelog` plugin from `release-it.json` and delete `CHANGELOG.md`.
243
+
244
+ If the **Release** workflow is missing in **Actions**, ensure `.github/workflows/release.yml` is on the **default branch** and that Actions are allowed in the repository **Settings → Actions → General**.
174
245
 
175
246
  ## License
176
247
 
package/dist/args.d.ts CHANGED
@@ -3,8 +3,8 @@ export type TestOpsServerArgs = {
3
3
  token: string;
4
4
  };
5
5
  /**
6
- * Parse process args: --url <base> --token <apitoken>
7
- * Base URL is stored without a trailing slash.
6
+ * Parse argv with `node:util` parseArgs (strict: unknown flags and positionals are rejected),
7
+ * then merge env TESTOPS_URL / TESTOPS_TOKEN. Base URL is trimmed and has trailing slashes removed.
8
8
  */
9
9
  export declare function parseTestOpsServerArgs(argv: string[]): TestOpsServerArgs;
10
10
  //# sourceMappingURL=args.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAwBxE"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAoCF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAqCxE"}
package/dist/args.js CHANGED
@@ -1,26 +1,67 @@
1
+ import { parseArgs } from 'node:util';
2
+ const usage = `Usage: testops-mcp-server --url <BASE_URL> --token <API_TOKEN>
3
+ testops-mcp-server -u <BASE_URL> -t <API_TOKEN>
4
+ testops-mcp-server --url=<BASE> --token=<TOKEN>
5
+ Environment: TESTOPS_URL, TESTOPS_TOKEN (used if CLI flags are omitted)
6
+ CLI flags override environment variables when both are set.`;
7
+ function printCliError(err) {
8
+ const msg = err instanceof Error ? err.message : String(err);
9
+ console.error(msg);
10
+ console.error(usage);
11
+ process.exit(1);
12
+ }
13
+ function normalizeBaseUrl(raw) {
14
+ const s = raw.trim();
15
+ let parsed;
16
+ try {
17
+ parsed = new URL(s);
18
+ }
19
+ catch {
20
+ console.error('Invalid --url / TESTOPS_URL: expected an absolute http(s) URL (e.g. https://testops.example.com)\n' +
21
+ usage);
22
+ process.exit(1);
23
+ }
24
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
25
+ console.error('Invalid --url: only http: and https: are supported\n' + usage);
26
+ process.exit(1);
27
+ }
28
+ return s.replace(/\/+$/, '');
29
+ }
1
30
  /**
2
- * Parse process args: --url <base> --token <apitoken>
3
- * Base URL is stored without a trailing slash.
31
+ * Parse argv with `node:util` parseArgs (strict: unknown flags and positionals are rejected),
32
+ * then merge env TESTOPS_URL / TESTOPS_TOKEN. Base URL is trimmed and has trailing slashes removed.
4
33
  */
5
34
  export function parseTestOpsServerArgs(argv) {
6
- const raw = argv.slice(2);
7
- let url;
8
- let token;
9
- for (let i = 0; i < raw.length; i++) {
10
- if (raw[i] === '--url' && raw[i + 1] !== undefined) {
11
- url = raw[++i];
12
- }
13
- else if (raw[i] === '--token' && raw[i + 1] !== undefined) {
14
- token = raw[++i];
15
- }
35
+ let values;
36
+ try {
37
+ ({ values } = parseArgs({
38
+ args: argv.slice(2),
39
+ options: {
40
+ url: { type: 'string', short: 'u' },
41
+ token: { type: 'string', short: 't' },
42
+ help: { type: 'boolean', short: 'h' },
43
+ },
44
+ allowPositionals: false,
45
+ strict: true,
46
+ }));
47
+ }
48
+ catch (err) {
49
+ printCliError(err);
50
+ }
51
+ if (values.help) {
52
+ console.log(usage);
53
+ process.exit(0);
16
54
  }
17
- if (!url?.trim() || !token?.trim()) {
18
- console.error('Required: --url <TESTOPS_BASE_URL> --token <API_TOKEN>');
55
+ const urlRaw = values.url ?? process.env.TESTOPS_URL;
56
+ const tokenRaw = values.token ?? process.env.TESTOPS_TOKEN;
57
+ if (!urlRaw?.trim() || !tokenRaw?.trim()) {
58
+ console.error('Required: --url / -u and --token / -t (or env TESTOPS_URL, TESTOPS_TOKEN)\n\n' +
59
+ usage);
19
60
  process.exit(1);
20
61
  }
21
62
  return {
22
- url: url.replace(/\/+$/, ''),
23
- token: token.trim(),
63
+ url: normalizeBaseUrl(urlRaw),
64
+ token: tokenRaw.trim(),
24
65
  };
25
66
  }
26
67
  //# sourceMappingURL=args.js.map
package/dist/args.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAc;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,GAAuB,CAAC;IAC5B,IAAI,KAAyB,CAAC;IAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACnD,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5D,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CACX,wDAAwD,CACzD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5B,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;KACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAOtC,MAAM,KAAK,GAAG;;;;4DAI8C,CAAC;AAE7D,SAAS,aAAa,CAAC,GAAY;IACjC,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CACX,oGAAoG;YAClG,KAAK,CACR,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChE,OAAO,CAAC,KAAK,CACX,sDAAsD,GAAG,KAAK,CAC/D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAc;IACnD,IAAI,MAAwD,CAAC;IAC7D,IAAI,CAAC;QACH,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACnB,OAAO,EAAE;gBACP,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;gBACnC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;gBACrC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;aACtC;YACD,gBAAgB,EAAE,KAAK;YACvB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,aAAa,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAE3D,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CACX,+EAA+E;YAC7E,KAAK,CACR,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO;QACL,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAC7B,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE;KACvB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/domain/project/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAO,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAwC,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC9G,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,YAAY,CAAC;AAS7D;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAU,SAAS,UAAU,KAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAiBjG,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,CAsB3F,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAG/E,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/domain/project/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAO,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,UAAU,EAGV,KAAK,SAAS,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,YAAY,CAAC;AAS7D;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,SAAS,UAAU,KAClB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAiB3C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,KACX,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,CAyBvC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,IAAI,MAAM,KACT,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAGhC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { apiGet } from '../../shared/api.js';
2
2
  import { map } from '../../shared/result.js';
3
- import { normalizePageParams, createPaginated } from '../../shared/pagination.js';
3
+ import { normalizePageParams, createPaginated, } from '../../shared/pagination.js';
4
4
  /**
5
5
  * Find all projects with pagination
6
6
  * @param params - Pagination parameters (page, size, sort)
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/project/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAU,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAc,mBAAmB,EAAE,eAAe,EAAkB,MAAM,4BAA4B,CAAC;AAU9G;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,MAAmB,EAA8C,EAAE;IAClG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAwB,cAAc,EAAE;QACjE,IAAI;QACJ,IAAI;QACJ,IAAI;KACP,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1B,eAAe,CACX,IAAI,CAAC,OAAO,IAAI,EAAE,EAClB,IAAI,CAAC,MAAM,IAAI,IAAI,EACnB,IAAI,CAAC,IAAI,IAAI,IAAI,EACjB,IAAI,CAAC,aAAa,CACrB,CACJ,CAAC;AACN,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAY,EAA0C,EAAE;IAC5F,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAkC,sBAAsB,EAAE;QACnF,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,EAAE;KACX,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAErC,cAAc;QACd,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CACrD,CAAC;QACF,IAAI,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAErD,gBAAgB;QAChB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACnC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CACpD,CAAC;QACF,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,EAAU,EAAmC,EAAE;IAChF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAU,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/project/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAU,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAEL,mBAAmB,EACnB,eAAe,GAEhB,MAAM,4BAA4B,CAAC;AAUpC;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAmB,EACyB,EAAE;IAC9C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAwB,cAAc,EAAE;QACnE,IAAI;QACJ,IAAI;QACJ,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAC5B,eAAe,CACb,IAAI,CAAC,OAAO,IAAI,EAAE,EAClB,IAAI,CAAC,MAAM,IAAI,IAAI,EACnB,IAAI,CAAC,IAAI,IAAI,IAAI,EACjB,IAAI,CAAC,aAAa,CACnB,CACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,IAAY,EAC4B,EAAE;IAC1C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAC3B,sBAAsB,EACtB;QACE,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,EAAE;KACT,CACF,CAAC;IAEF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAErC,cAAc;QACd,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CACnD,CAAC;QACF,IAAI,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAErD,gBAAgB;QAChB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACrC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAClD,CAAC;QACF,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,EAAU,EACuB,EAAE;IACnC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAU,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/project/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/project/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/domain/test-case/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAA2B,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAuC,MAAM,4BAA4B,CAAC;AAC7F,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAS5H;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAE7E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CAmCzF,CAAC;AAoBF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC5B,YAAY,MAAM,KACnB,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAE3C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC3B,YAAY,MAAM,EAClB,QAAQ,MAAM,EACd,MAAM;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,KACjD,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAU3C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC5B,YAAY,MAAM,EAClB,OAAO,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,KAC1D,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAY3C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAChC,YAAY,MAAM,KACnB,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,KAAK,CAAC,CAEhD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACnC,YAAY,MAAM,EAClB,QAAQ,KAAK,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,KAC7D,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAG7B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC7B,WAAW,MAAM,EACjB,KAAK,MAAM,EACX,SAAS,UAAU,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAC5C,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAqB7C,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/domain/test-case/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAA2B,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAuB,MAAM,4BAA4B,CAAC;AAC7E,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AASpB;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,IAAI,MAAM,KACT,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAEjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,IAAI,MAAM,KACT,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CAmCvC,CAAC;AAoBF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,KACjB,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAE3C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,QAAQ,MAAM,EACd,MAAM;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,KAC/C,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAS3C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,EAClB,OAAO,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,KACxD,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAY3C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAClC,YAAY,MAAM,KACjB,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,KAAK,CAAC,CAEhD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,YAAY,MAAM,EAClB,QAAQ,KAAK,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,KAC3D,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAM7B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,WAAW,MAAM,EACjB,KAAK,MAAM,EACX,SAAS,UAAU,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAC1C,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAqB7C,CAAC"}
@@ -80,7 +80,9 @@ export const updateScenarioStep = async (testCaseId, stepId, data) => {
80
80
  body.body = data.body;
81
81
  if (data.expectedResult !== undefined)
82
82
  body.expectedResult = data.expectedResult;
83
- return apiPatch(`/api/testcase/step/${stepId}`, body, { withExpectedResult: true });
83
+ return apiPatch(`/api/testcase/step/${stepId}`, body, {
84
+ withExpectedResult: true,
85
+ });
84
86
  };
85
87
  /**
86
88
  * Replace entire scenario with new steps
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/test-case/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/test-case/service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/test-case/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IAC/B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,IAAI,EAAE;QACF,QAAQ,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACL;AAED,MAAM,WAAW,qBAAqB;IAClC,WAAW,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACV,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACN;AAED,MAAM,WAAW,oBAAoB;IACjC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/test-case/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/domain/test-plan/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAO,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAuB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAS7D;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAE7E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC7B,YAAY,MAAM,EAClB,SAAS,UAAU,KACpB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAgBpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GACxB,YAAY,MAAM,KACnB,OAAO,CAAC,MAAM,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,CAAC,CAE1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAEtF,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/domain/test-plan/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAO,MAAM,wBAAwB,CAAC;AAErD,OAAO,EACL,UAAU,EAEV,KAAK,SAAS,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAS7D;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,IAAI,MAAM,KACT,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAEjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,EAClB,SAAS,UAAU,KAClB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAgBpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,YAAY,MAAM,KACjB,OAAO,CACR,MAAM,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,CAAC,CAGjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,YAAY,MAAM,KACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAEjC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { apiGet } from '../../shared/api.js';
2
2
  import { map } from '../../shared/result.js';
3
3
  import { createPaginated } from '../../shared/pagination.js';
4
- import { normalizePageParams } from '../../shared/pagination.js';
4
+ import { normalizePageParams, } from '../../shared/pagination.js';
5
5
  /**
6
6
  * Get a test plan by ID
7
7
  * @param id - Test plan ID
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/test-plan/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAU,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAc,mBAAmB,EAAkB,MAAM,4BAA4B,CAAC;AAU7F;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAU,EAAoC,EAAE;IAC9E,OAAO,MAAM,CAAW,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACrC,UAAkB,EAClB,MAAmB,EACgC,EAAE;IACrD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CACzB,iBAAiB,UAAU,YAAY,EACvC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,UAAU,EAAE,CAC3C,CAAC;IAEF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1B,eAAe,CACX,IAAI,CAAC,OAAO,IAAI,EAAE,EAClB,IAAI,CAAC,MAAM,IAAI,IAAI,EACnB,IAAI,CAAC,IAAI,IAAI,IAAI,EACjB,IAAI,CAAC,aAAa,CACrB,CACJ,CAAC;AACN,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAChC,UAAkB,EACuD,EAAE;IAC3E,OAAO,MAAM,CAAC,iBAAiB,UAAU,OAAO,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,UAAkB,EAAoC,EAAE;IACvF,OAAO,MAAM,CAAW,iBAAiB,UAAU,OAAO,CAAC,CAAC;AAChE,CAAC,CAAC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/test-plan/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAU,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAEL,mBAAmB,GAEpB,MAAM,4BAA4B,CAAC;AAUpC;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,EAAU,EACwB,EAAE;IACpC,OAAO,MAAM,CAAW,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,UAAkB,EAClB,MAAmB,EACkC,EAAE;IACvD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAC3B,iBAAiB,UAAU,YAAY,EACvC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,UAAU,EAAE,CACzC,CAAC;IAEF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAC5B,eAAe,CACb,IAAI,CAAC,OAAO,IAAI,EAAE,EAClB,IAAI,CAAC,MAAM,IAAI,IAAI,EACnB,IAAI,CAAC,IAAI,IAAI,IAAI,EACjB,IAAI,CAAC,aAAa,CACnB,CACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,UAAkB,EAGlB,EAAE;IACF,OAAO,MAAM,CAAC,iBAAiB,UAAU,OAAO,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,UAAkB,EACgB,EAAE;IACpC,OAAO,MAAM,CAAW,iBAAiB,UAAU,OAAO,CAAC,CAAC;AAC9D,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/test-plan/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/test-plan/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -1,2 +1,3 @@
1
- export declare const registerProjectTools: (server: any) => void;
1
+ import type { McpServer } from '@modelcontextprotocol/server';
2
+ export declare const registerProjectTools: (server: McpServer) => void;
2
3
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/presentation/project/tools.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,GAAI,QAAQ,GAAG,SA6E/C,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/presentation/project/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAS9D,eAAO,MAAM,oBAAoB,GAAI,QAAQ,SAAS,SAuGrD,CAAC"}