@levr-one/cli 0.5.11 → 0.6.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/README.md CHANGED
@@ -147,7 +147,7 @@ levr push ./results.xml --source "backend-unit-tests" --run-name "nightly"
147
147
  | `--team-id <uuid>` | `-t` | Team ID (optional; server resolves default if omitted. Or set `LEVR_TEAM_ID`) |
148
148
  | `--source <name>` | `-s` | Automation source name — groups recurring imports and remembers team (auto-detected in CI) |
149
149
  | `--run-name <name>` | `-r` | Name for the test run |
150
- | `--format <type>` | `-f` | File format: `junit`, `gherkin`, `cucumber-json` (auto-detected if omitted) |
150
+ | `--format <type>` | `-f` | File format: `junit`, `gherkin`, `cucumber-json`, `ctrf-json` (auto-detected if omitted) |
151
151
  | `--parent-folder-id <uuid>` | | Destination folder ID |
152
152
  | `--create-run` | | Force run creation for structure-only imports |
153
153
  | `--update-mode <mode>` | | `update` (default) or `create_new` |
package/dist/cli.js CHANGED
@@ -180,7 +180,7 @@ Examples:
180
180
  aliases: { d: "device-code" }
181
181
  },
182
182
  loader: async () => {
183
- const { loginHandler } = await import("./loginHandler-teEUMhcx.js");
183
+ const { loginHandler } = await import("./loginHandler-CkgLWdHW.js");
184
184
  return loginHandler;
185
185
  }
186
186
  });
@@ -219,7 +219,7 @@ Examples:
219
219
  },
220
220
  parameters: {},
221
221
  loader: async () => {
222
- const { statusHandler } = await import("./statusHandler-BQyhKidh.js");
222
+ const { statusHandler } = await import("./statusHandler-BeJPCp_P.js");
223
223
  return statusHandler;
224
224
  }
225
225
  });
@@ -295,7 +295,8 @@ Examples:
295
295
  values: [
296
296
  "junit",
297
297
  "gherkin",
298
- "cucumber-json"
298
+ "cucumber-json",
299
+ "ctrf-json"
299
300
  ],
300
301
  brief: "File format (auto-detected if omitted)",
301
302
  optional: true
@@ -330,7 +331,7 @@ Examples:
330
331
  }
331
332
  },
332
333
  loader: async () => {
333
- const { pushHandler } = await import("./pushHandler-CGP3GXBs.js");
334
+ const { pushHandler } = await import("./pushHandler-A0jjDZFJ.js");
334
335
  return pushHandler;
335
336
  }
336
337
  });
@@ -442,7 +443,7 @@ Examples:
442
443
  }
443
444
  },
444
445
  loader: async () => {
445
- const { importHandler } = await import("./importHandler-7N05jQtg.js");
446
+ const { importHandler } = await import("./importHandler-wY3tFusK.js");
446
447
  return importHandler;
447
448
  }
448
449
  });
@@ -463,7 +464,7 @@ Examples:
463
464
  },
464
465
  parameters: {},
465
466
  loader: async () => {
466
- const { listHandler } = await import("./listHandler-DofIDDfm.js");
467
+ const { listHandler } = await import("./listHandler-CovRX35T.js");
467
468
  return listHandler;
468
469
  }
469
470
  });
@@ -496,7 +497,7 @@ Examples:
496
497
  flags: {}
497
498
  },
498
499
  loader: async () => {
499
- const { selectHandler } = await import("./selectHandler-B6mttYcu.js");
500
+ const { selectHandler } = await import("./selectHandler-rPxNjupR.js");
500
501
  return selectHandler;
501
502
  }
502
503
  });
@@ -520,7 +521,7 @@ Examples:
520
521
 
521
522
  //#endregion
522
523
  //#region package.json
523
- var version = "0.5.11";
524
+ var version = "0.6.0";
524
525
 
525
526
  //#endregion
526
527
  //#region src/app.ts
@@ -1,7 +1,7 @@
1
1
  import { getApiUrl } from "./env-CHeKHu5S.js";
2
- import { configureClient, testCaseImportCommitV1, testCaseImportPreviewV1 } from "./sdk-client-BjvJ-M_m.js";
2
+ import { configureClient, testCaseImportCommitV1, testCaseImportPreviewV1 } from "./sdk-client-DpLn8Vau.js";
3
3
  import "./workspace-store-DDOxnut1.js";
4
- import { resolveWorkspace } from "./resolve-workspace-CfgaIAXE.js";
4
+ import { resolveWorkspace } from "./resolve-workspace-2DsYymDv.js";
5
5
  import "./token-refresh-Cu5RpkLJ.js";
6
6
  import { resolveToken } from "./resolve-token-DbQsmn03.js";
7
7
  import chalk from "chalk";
@@ -1,5 +1,5 @@
1
1
  import "./env-CHeKHu5S.js";
2
- import { authGetSitesV1, configureClient } from "./sdk-client-BjvJ-M_m.js";
2
+ import { authGetSitesV1, configureClient } from "./sdk-client-DpLn8Vau.js";
3
3
  import { loadWorkspace } from "./workspace-store-DDOxnut1.js";
4
4
  import "./token-refresh-Cu5RpkLJ.js";
5
5
  import { resolveToken } from "./resolve-token-DbQsmn03.js";
@@ -1,7 +1,7 @@
1
1
  import { CLI_CLIENT_ID, getApiUrl, getAuthUrl, setSessionApiUrl, writeCredentials } from "./env-CHeKHu5S.js";
2
- import { configureClient } from "./sdk-client-BjvJ-M_m.js";
2
+ import { configureClient } from "./sdk-client-DpLn8Vau.js";
3
3
  import "./workspace-store-DDOxnut1.js";
4
- import { autoSelectWorkspace } from "./resolve-workspace-CfgaIAXE.js";
4
+ import { autoSelectWorkspace } from "./resolve-workspace-2DsYymDv.js";
5
5
  import chalk from "chalk";
6
6
  import { createHash, randomBytes } from "node:crypto";
7
7
  import { createServer } from "node:http";
@@ -1,7 +1,7 @@
1
1
  import { getApiUrl, getAutomationSourceIdOverride, getSourceOverride, getTeamId } from "./env-CHeKHu5S.js";
2
- import { client, configureClient, uploadAutomationIngest, uploadImport } from "./sdk-client-BjvJ-M_m.js";
2
+ import { client, configureClient, uploadAutomationIngest, uploadImport } from "./sdk-client-DpLn8Vau.js";
3
3
  import "./workspace-store-DDOxnut1.js";
4
- import { resolveWorkspace } from "./resolve-workspace-CfgaIAXE.js";
4
+ import { resolveWorkspace } from "./resolve-workspace-2DsYymDv.js";
5
5
  import "./token-refresh-Cu5RpkLJ.js";
6
6
  import { resolveToken } from "./resolve-token-DbQsmn03.js";
7
7
  import { readFileSync, statSync } from "node:fs";
@@ -1,4 +1,4 @@
1
- import { authGetSitesV1 } from "./sdk-client-BjvJ-M_m.js";
1
+ import { authGetSitesV1 } from "./sdk-client-DpLn8Vau.js";
2
2
  import { clearWorkspace, loadWorkspace, saveWorkspace } from "./workspace-store-DDOxnut1.js";
3
3
 
4
4
  //#region src/workspace/resolve-workspace.ts
@@ -2,53 +2,53 @@ import { getApiUrl } from "./env-CHeKHu5S.js";
2
2
  import { z } from "zod/v3";
3
3
 
4
4
  //#region ../sdk/dist/gen/_common/zod.js
5
- const zProfileResponseDto = z.object({
6
- id: z.string(),
7
- profileName: z.string(),
8
- providerType: z.number(),
9
- providerName: z.string(),
10
- modelName: z.string(),
11
- temperature: z.number().optional(),
12
- baseUrl: z.string().optional(),
13
- isSystem: z.boolean(),
14
- llmProviderId: z.string(),
15
- createdAt: z.unknown(),
16
- updatedAt: z.unknown()
17
- });
18
- const zUpdateProfileDto = z.object({
19
- profileName: z.string().optional(),
20
- providerType: z.number().optional(),
21
- apiKey: z.string().optional(),
22
- baseUrl: z.string().nullable().optional(),
23
- modelName: z.string().optional(),
24
- temperature: z.number().nullable().optional()
25
- });
26
- const zSuccessResponseDto = z.object({ success: z.boolean() });
27
- const zResponseWorkspaceDto = z.object({
5
+ const zResponseIssueDto = z.object({
28
6
  id: z.string().describe(""),
29
- name: z.string().describe(""),
30
- database_name: z.string().nullable().optional().describe(""),
31
- company_name: z.string().nullable().optional().describe(""),
32
- company_url: z.string().nullable().optional().describe(""),
7
+ identifier: z.string().optional().describe(""),
8
+ number: z.number().optional().describe(""),
9
+ title: z.string().describe(""),
33
10
  description: z.string().nullable().optional().describe(""),
34
- company_email: z.string().nullable().optional().describe(""),
35
- company_phone: z.string().nullable().optional().describe(""),
36
- total_run_rows: z.number().optional().describe(""),
37
- total_run_result_rows: z.number().optional().describe(""),
38
- total_run_result_step_rows: z.number().optional().describe(""),
39
- space_limit_per_user: z.number().optional().describe(""),
40
- openid_url: z.string().nullable().optional().describe(""),
41
- openid_client_id: z.string().nullable().optional().describe(""),
42
- type: z.number().nullable().optional().describe(""),
43
- parent_workspace_id: z.string().nullable().optional().describe(""),
44
- url_key: z.string().describe(""),
45
- ai_budget_daily_usd: z.number().nullable().optional().describe(""),
46
- ai_budget_monthly_usd: z.number().nullable().optional().describe(""),
11
+ priority: z.number().optional().describe(""),
12
+ estimate: z.number().nullable().optional().describe(""),
13
+ rolled_up_estimate: z.number().nullable().optional().describe(""),
14
+ rolled_up_completed_estimate: z.number().nullable().optional().describe(""),
15
+ sequence: z.string().optional().describe(""),
16
+ sub_issue_sequence: z.string().nullable().optional().describe(""),
17
+ due_date: z.unknown().optional().describe(""),
18
+ snoozed_until: z.unknown().optional().describe(""),
19
+ started_at: z.unknown().optional().describe(""),
20
+ completed_at: z.unknown().optional().describe(""),
21
+ canceled_at: z.unknown().optional().describe(""),
22
+ auto_closed_at: z.unknown().optional().describe(""),
23
+ origin: z.string().optional().describe(""),
24
+ origin_detail: z.string().nullable().optional().describe(""),
25
+ origin_run_result_id: z.string().nullable().optional().describe(""),
26
+ verification_status: z.string().optional().describe(""),
27
+ confidence_score: z.number().nullable().optional().describe(""),
28
+ added_to_cycle_at: z.unknown().optional().describe(""),
29
+ sla_status: z.string().nullable().optional().describe(""),
30
+ team_id: z.string().describe(""),
31
+ workflow_state_id: z.string().optional().describe(""),
32
+ creator_id: z.string().optional().describe(""),
33
+ gate_set_id: z.string().nullable().optional().describe(""),
34
+ milestone_id: z.string().nullable().optional().describe(""),
35
+ spoke_key: z.string().nullable().optional().describe(""),
36
+ project_id: z.string().nullable().optional(),
37
+ assignee_id: z.string().nullable().optional(),
38
+ parent_id: z.string().nullable().optional(),
39
+ cycle_id: z.string().nullable().optional(),
40
+ type_label_id: z.string().nullable().optional(),
47
41
  created_at: z.unknown().describe(""),
48
42
  updated_at: z.unknown().describe(""),
49
43
  epoch: z.number().describe(""),
50
44
  created_by: z.string().describe(""),
51
- updated_by: z.string().describe("")
45
+ updated_by: z.string().describe(""),
46
+ workspace_id: z.string().describe(""),
47
+ deleted_at: z.unknown().describe(""),
48
+ deleted_by: z.string().nullable().describe(""),
49
+ archived_at: z.unknown().describe(""),
50
+ archived_by: z.string().nullable().describe(""),
51
+ auto_archived_at: z.unknown().describe("")
52
52
  });
53
53
  const zPaginatedMetaDocumented = z.object({
54
54
  itemsPerPage: z.number(),
@@ -96,53 +96,53 @@ const zResponseLabelDto = z.object({
96
96
  archived_at: z.unknown().describe(""),
97
97
  archived_by: z.string().nullable().describe("")
98
98
  });
99
- const zResponseIssueDto = z.object({
99
+ const zProfileResponseDto = z.object({
100
+ id: z.string(),
101
+ profileName: z.string(),
102
+ providerType: z.number(),
103
+ providerName: z.string(),
104
+ modelName: z.string(),
105
+ temperature: z.number().optional(),
106
+ baseUrl: z.string().optional(),
107
+ isSystem: z.boolean(),
108
+ llmProviderId: z.string(),
109
+ createdAt: z.unknown(),
110
+ updatedAt: z.unknown()
111
+ });
112
+ const zUpdateProfileDto = z.object({
113
+ profileName: z.string().optional(),
114
+ providerType: z.number().optional(),
115
+ apiKey: z.string().optional(),
116
+ baseUrl: z.string().nullable().optional(),
117
+ modelName: z.string().optional(),
118
+ temperature: z.number().nullable().optional()
119
+ });
120
+ const zSuccessResponseDto = z.object({ success: z.boolean() });
121
+ const zResponseWorkspaceDto = z.object({
100
122
  id: z.string().describe(""),
101
- identifier: z.string().optional().describe(""),
102
- number: z.number().optional().describe(""),
103
- title: z.string().describe(""),
123
+ name: z.string().describe(""),
124
+ database_name: z.string().nullable().optional().describe(""),
125
+ company_name: z.string().nullable().optional().describe(""),
126
+ company_url: z.string().nullable().optional().describe(""),
104
127
  description: z.string().nullable().optional().describe(""),
105
- priority: z.number().optional().describe(""),
106
- estimate: z.number().nullable().optional().describe(""),
107
- rolled_up_estimate: z.number().nullable().optional().describe(""),
108
- rolled_up_completed_estimate: z.number().nullable().optional().describe(""),
109
- sequence: z.string().optional().describe(""),
110
- sub_issue_sequence: z.string().nullable().optional().describe(""),
111
- due_date: z.unknown().optional().describe(""),
112
- snoozed_until: z.unknown().optional().describe(""),
113
- started_at: z.unknown().optional().describe(""),
114
- completed_at: z.unknown().optional().describe(""),
115
- canceled_at: z.unknown().optional().describe(""),
116
- auto_closed_at: z.unknown().optional().describe(""),
117
- origin: z.string().optional().describe(""),
118
- origin_detail: z.string().nullable().optional().describe(""),
119
- origin_run_result_id: z.string().nullable().optional().describe(""),
120
- verification_status: z.string().optional().describe(""),
121
- confidence_score: z.number().nullable().optional().describe(""),
122
- added_to_cycle_at: z.unknown().optional().describe(""),
123
- sla_status: z.string().nullable().optional().describe(""),
124
- team_id: z.string().describe(""),
125
- workflow_state_id: z.string().optional().describe(""),
126
- creator_id: z.string().optional().describe(""),
127
- gate_set_id: z.string().nullable().optional().describe(""),
128
- milestone_id: z.string().nullable().optional().describe(""),
129
- spoke_key: z.string().nullable().optional().describe(""),
130
- project_id: z.string().nullable().optional(),
131
- assignee_id: z.string().nullable().optional(),
132
- parent_id: z.string().nullable().optional(),
133
- cycle_id: z.string().nullable().optional(),
134
- type_label_id: z.string().nullable().optional(),
128
+ company_email: z.string().nullable().optional().describe(""),
129
+ company_phone: z.string().nullable().optional().describe(""),
130
+ total_run_rows: z.number().optional().describe(""),
131
+ total_run_result_rows: z.number().optional().describe(""),
132
+ total_run_result_step_rows: z.number().optional().describe(""),
133
+ space_limit_per_user: z.number().optional().describe(""),
134
+ openid_url: z.string().nullable().optional().describe(""),
135
+ openid_client_id: z.string().nullable().optional().describe(""),
136
+ type: z.number().nullable().optional().describe(""),
137
+ parent_workspace_id: z.string().nullable().optional().describe(""),
138
+ url_key: z.string().describe(""),
139
+ ai_budget_daily_usd: z.number().nullable().optional().describe(""),
140
+ ai_budget_monthly_usd: z.number().nullable().optional().describe(""),
135
141
  created_at: z.unknown().describe(""),
136
142
  updated_at: z.unknown().describe(""),
137
143
  epoch: z.number().describe(""),
138
144
  created_by: z.string().describe(""),
139
- updated_by: z.string().describe(""),
140
- workspace_id: z.string().describe(""),
141
- deleted_at: z.unknown().describe(""),
142
- deleted_by: z.string().nullable().describe(""),
143
- archived_at: z.unknown().describe(""),
144
- archived_by: z.string().nullable().describe(""),
145
- auto_archived_at: z.unknown().describe("")
145
+ updated_by: z.string().describe("")
146
146
  });
147
147
  const zResponseCommentTestDto = z.object({
148
148
  id: z.string().describe(""),
@@ -212,6 +212,15 @@ const zResponseRoleDto = z.object({
212
212
  deleted_at: z.unknown().describe(""),
213
213
  deleted_by: z.string().nullable().describe("")
214
214
  });
215
+ const zCascadeIssueRefDto = z.object({
216
+ id: z.string(),
217
+ identifier: z.record(z.string(), z.unknown()).nullable(),
218
+ title: z.record(z.string(), z.unknown()).nullable()
219
+ });
220
+ const zCascadeSkipDto = z.object({
221
+ issue: zCascadeIssueRefDto,
222
+ reason: z.string()
223
+ });
215
224
 
216
225
  //#endregion
217
226
  //#region ../sdk/dist/runtime/client.js
@@ -3416,8 +3425,6 @@ const zAutomationRunResultFindAllV1Data = z.object({
3416
3425
  "filter.trace": z.array(z.string()).optional(),
3417
3426
  "filter.snippet": z.array(z.string()).optional(),
3418
3427
  "filter.failure_type": z.array(z.string()).optional(),
3419
- "filter.stdout": z.array(z.string()).optional(),
3420
- "filter.stderr": z.array(z.string()).optional(),
3421
3428
  "filter.stdout_truncated": z.array(z.string()).optional(),
3422
3429
  "filter.stderr_truncated": z.array(z.string()).optional(),
3423
3430
  "filter.source_locator": z.array(z.string()).optional(),
@@ -3453,10 +3460,6 @@ const zAutomationRunResultFindAllV1Data = z.object({
3453
3460
  "snippet:DESC",
3454
3461
  "failure_type:ASC",
3455
3462
  "failure_type:DESC",
3456
- "stdout:ASC",
3457
- "stdout:DESC",
3458
- "stderr:ASC",
3459
- "stderr:DESC",
3460
3463
  "source_locator:ASC",
3461
3464
  "source_locator:DESC",
3462
3465
  "automation_suite_id:ASC",
@@ -3511,6 +3514,13 @@ const zAutomationRunResultUnarchiveV1Data = z.object({
3511
3514
  url: z.literal("/v1/automation-run-result/{id}/unarchive")
3512
3515
  });
3513
3516
 
3517
+ //#endregion
3518
+ //#region ../sdk/dist/gen/automation-run-result-console/zod.js
3519
+ const zAutomationRunResultConsoleGetConsoleV1Data = z.object({
3520
+ path: z.object({ "id": z.string() }),
3521
+ url: z.literal("/v1/automation-run-result/{id}/console")
3522
+ });
3523
+
3514
3524
  //#endregion
3515
3525
  //#region ../sdk/dist/gen/automation-setting/zod.js
3516
3526
  const zCreateAutomationSettingDto = z.object({
@@ -14818,7 +14828,8 @@ const zImportCreateV1Body = z.object({
14818
14828
  format: z.enum([
14819
14829
  "junit",
14820
14830
  "gherkin",
14821
- "cucumber-json"
14831
+ "cucumber-json",
14832
+ "ctrf-json"
14822
14833
  ]).optional().describe(""),
14823
14834
  parent_folder_id: z.string().optional().describe(""),
14824
14835
  run_name: z.string().optional().describe(""),
@@ -14838,7 +14849,8 @@ const zImportResponseDto = z.object({
14838
14849
  format: z.enum([
14839
14850
  "junit",
14840
14851
  "gherkin",
14841
- "cucumber-json"
14852
+ "cucumber-json",
14853
+ "ctrf-json"
14842
14854
  ]).describe(""),
14843
14855
  created_at: z.string().describe(""),
14844
14856
  completed_at: z.string().describe(""),
@@ -16580,6 +16592,23 @@ const zIssueTestLinkBulkOperationV1Data = z.object({
16580
16592
  url: z.literal("/v1/issue-test-link/bulk")
16581
16593
  });
16582
16594
 
16595
+ //#endregion
16596
+ //#region ../sdk/dist/gen/issue-transition/zod.js
16597
+ const zTransitionIssueDto = z.object({
16598
+ workflow_state_id: z.string().describe(""),
16599
+ child_completion: z.enum([
16600
+ "require_children",
16601
+ "leave_children",
16602
+ "cascade_children"
16603
+ ]).optional().describe(""),
16604
+ batch_scope: z.array(z.string()).optional().describe("")
16605
+ });
16606
+ const zIssueTransitionTransitionV1Data = z.object({
16607
+ body: zTransitionIssueDto,
16608
+ path: z.object({ "id": z.string() }),
16609
+ url: z.literal("/v1/issue/{id}/transition")
16610
+ });
16611
+
16583
16612
  //#endregion
16584
16613
  //#region ../sdk/dist/gen/issue-type-config/zod.js
16585
16614
  const zCreateIssueTypeConfigDto = z.object({
@@ -26713,7 +26742,7 @@ const zPushResultsDto = z.object({ results: z.array(z.object({
26713
26742
  column_number: z.number().optional(),
26714
26743
  is_assertion: z.boolean().optional()
26715
26744
  })).optional(),
26716
- retry_count: z.number().optional(),
26745
+ retry_count: z.unknown().optional(),
26717
26746
  flaky: z.boolean().optional(),
26718
26747
  tags: z.array(z.string()).optional(),
26719
26748
  line: z.number().optional(),
@@ -1,5 +1,5 @@
1
1
  import "./env-CHeKHu5S.js";
2
- import { authGetSitesV1, configureClient } from "./sdk-client-BjvJ-M_m.js";
2
+ import { authGetSitesV1, configureClient } from "./sdk-client-DpLn8Vau.js";
3
3
  import { saveWorkspace } from "./workspace-store-DDOxnut1.js";
4
4
  import "./token-refresh-Cu5RpkLJ.js";
5
5
  import { resolveToken } from "./resolve-token-DbQsmn03.js";
@@ -1,5 +1,5 @@
1
1
  import { getApiUrl, getPatToken, readCredentials } from "./env-CHeKHu5S.js";
2
- import { authGetProfileV1, configureClient } from "./sdk-client-BjvJ-M_m.js";
2
+ import { authGetProfileV1, configureClient } from "./sdk-client-DpLn8Vau.js";
3
3
  import { isTokenExpired } from "./token-refresh-Cu5RpkLJ.js";
4
4
  import chalk from "chalk";
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@levr-one/cli",
3
- "version": "0.5.11",
3
+ "version": "0.6.0",
4
4
  "description": "The command-line interface for Levr",
5
5
  "type": "module",
6
6
  "license": "MIT",