@uluops/ops-sdk 0.1.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/LICENSE +21 -0
- package/README.md +1647 -0
- package/dist/client.d.ts +191 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +168 -0
- package/dist/client.js.map +1 -0
- package/dist/config/constants.d.ts +27 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +35 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loaders.d.ts +41 -0
- package/dist/config/loaders.d.ts.map +1 -0
- package/dist/config/loaders.js +43 -0
- package/dist/config/loaders.js.map +1 -0
- package/dist/config/validators.d.ts +163 -0
- package/dist/config/validators.d.ts.map +1 -0
- package/dist/config/validators.js +126 -0
- package/dist/config/validators.js.map +1 -0
- package/dist/errors/errors.d.ts +7 -0
- package/dist/errors/errors.d.ts.map +1 -0
- package/dist/errors/errors.js +7 -0
- package/dist/errors/errors.js.map +1 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +2 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/http/auth-strategy.d.ts +5 -0
- package/dist/http/auth-strategy.d.ts.map +1 -0
- package/dist/http/auth-strategy.js +5 -0
- package/dist/http/auth-strategy.js.map +1 -0
- package/dist/http/fetch-adapter.d.ts +5 -0
- package/dist/http/fetch-adapter.d.ts.map +1 -0
- package/dist/http/fetch-adapter.js +2 -0
- package/dist/http/fetch-adapter.js.map +1 -0
- package/dist/http/http-client.d.ts +29 -0
- package/dist/http/http-client.d.ts.map +1 -0
- package/dist/http/http-client.js +25 -0
- package/dist/http/http-client.js.map +1 -0
- package/dist/http/index.d.ts +6 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +3 -0
- package/dist/http/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/operations/admin.d.ts +89 -0
- package/dist/operations/admin.d.ts.map +1 -0
- package/dist/operations/admin.js +134 -0
- package/dist/operations/admin.js.map +1 -0
- package/dist/operations/analytics.d.ts +81 -0
- package/dist/operations/analytics.d.ts.map +1 -0
- package/dist/operations/analytics.js +111 -0
- package/dist/operations/analytics.js.map +1 -0
- package/dist/operations/auth.d.ts +81 -0
- package/dist/operations/auth.d.ts.map +1 -0
- package/dist/operations/auth.js +115 -0
- package/dist/operations/auth.js.map +1 -0
- package/dist/operations/index.d.ts +8 -0
- package/dist/operations/index.d.ts.map +1 -0
- package/dist/operations/index.js +8 -0
- package/dist/operations/index.js.map +1 -0
- package/dist/operations/issues.d.ts +59 -0
- package/dist/operations/issues.d.ts.map +1 -0
- package/dist/operations/issues.js +141 -0
- package/dist/operations/issues.js.map +1 -0
- package/dist/operations/projects.d.ts +56 -0
- package/dist/operations/projects.d.ts.map +1 -0
- package/dist/operations/projects.js +99 -0
- package/dist/operations/projects.js.map +1 -0
- package/dist/operations/query-utils.d.ts +20 -0
- package/dist/operations/query-utils.d.ts.map +1 -0
- package/dist/operations/query-utils.js +22 -0
- package/dist/operations/query-utils.js.map +1 -0
- package/dist/operations/runs.d.ts +53 -0
- package/dist/operations/runs.d.ts.map +1 -0
- package/dist/operations/runs.js +118 -0
- package/dist/operations/runs.js.map +1 -0
- package/dist/operations/taxonomy.d.ts +7 -0
- package/dist/operations/taxonomy.d.ts.map +1 -0
- package/dist/operations/taxonomy.js +7 -0
- package/dist/operations/taxonomy.js.map +1 -0
- package/dist/types/analytics.d.ts +338 -0
- package/dist/types/analytics.d.ts.map +1 -0
- package/dist/types/analytics.js +2 -0
- package/dist/types/analytics.js.map +1 -0
- package/dist/types/auth.d.ts +303 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +2 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/enums.d.ts +200 -0
- package/dist/types/enums.d.ts.map +1 -0
- package/dist/types/enums.js +222 -0
- package/dist/types/enums.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +16 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/issues.d.ts +182 -0
- package/dist/types/issues.d.ts.map +1 -0
- package/dist/types/issues.js +2 -0
- package/dist/types/issues.js.map +1 -0
- package/dist/types/projects.d.ts +123 -0
- package/dist/types/projects.d.ts.map +1 -0
- package/dist/types/projects.js +2 -0
- package/dist/types/projects.js.map +1 -0
- package/dist/types/response-schemas.d.ts +3441 -0
- package/dist/types/response-schemas.d.ts.map +1 -0
- package/dist/types/response-schemas.js +388 -0
- package/dist/types/response-schemas.js.map +1 -0
- package/dist/types/responses.d.ts +84 -0
- package/dist/types/responses.d.ts.map +1 -0
- package/dist/types/responses.js +2 -0
- package/dist/types/responses.js.map +1 -0
- package/dist/types/runs.d.ts +232 -0
- package/dist/types/runs.d.ts.map +1 -0
- package/dist/types/runs.js +2 -0
- package/dist/types/runs.js.map +1 -0
- package/dist/types/schemas.d.ts +914 -0
- package/dist/types/schemas.d.ts.map +1 -0
- package/dist/types/schemas.js +280 -0
- package/dist/types/schemas.js.map +1 -0
- package/dist/utils/helpers.d.ts +64 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +127 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +5 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +5 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +103 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { validateCreateUserIssueInput, validateUpdateIssueInput, validateUpdateIssueStatusInput, validateCreateIssueNoteInput, validateBulkStatusUpdateInput, } from '../config/validators.js';
|
|
2
|
+
import { buildIssueListParams } from './query-utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create a user-submitted issue
|
|
5
|
+
*/
|
|
6
|
+
export async function create(client, input) {
|
|
7
|
+
validateCreateUserIssueInput(input);
|
|
8
|
+
return client.post('/issues', {
|
|
9
|
+
project: input.project,
|
|
10
|
+
title: input.title,
|
|
11
|
+
priority: input.priority,
|
|
12
|
+
severity: input.severity,
|
|
13
|
+
category: input.category,
|
|
14
|
+
description: input.description,
|
|
15
|
+
filePath: input.filePath,
|
|
16
|
+
lineNumber: input.lineNumber,
|
|
17
|
+
failureCode: input.failureCode,
|
|
18
|
+
failureDomain: input.failureDomain,
|
|
19
|
+
failureMode: input.failureMode,
|
|
20
|
+
validator: input.validator,
|
|
21
|
+
type: input.type,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Search issues across projects
|
|
26
|
+
*/
|
|
27
|
+
export async function search(client, query) {
|
|
28
|
+
return client.get('/issues/search', {
|
|
29
|
+
query: query.query,
|
|
30
|
+
projects: query.projects?.join(','),
|
|
31
|
+
validators: query.validators?.join(','),
|
|
32
|
+
status: query.status,
|
|
33
|
+
priority: query.priority,
|
|
34
|
+
severities: query.severities?.join(','),
|
|
35
|
+
failureDomains: query.failureDomains?.join(','),
|
|
36
|
+
limit: query.limit,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get an issue by its fingerprint
|
|
41
|
+
*/
|
|
42
|
+
export async function getByFingerprint(client, fingerprint, project) {
|
|
43
|
+
return client.get(`/issues/by-fingerprint/${encodeURIComponent(fingerprint)}`, { project });
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Update issue status by fingerprint
|
|
47
|
+
*/
|
|
48
|
+
export async function updateStatusByFingerprint(client, fingerprint, project, input) {
|
|
49
|
+
return client.patch(`/issues/by-fingerprint/${encodeURIComponent(fingerprint)}/status`, { status: input.status, reason: input.reason }, { params: { project } });
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get an issue by ID
|
|
53
|
+
*/
|
|
54
|
+
export async function get(client, issueId) {
|
|
55
|
+
return client.get(`/issues/${encodeURIComponent(issueId)}`);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get full issue details with occurrences, notes, and history
|
|
59
|
+
*/
|
|
60
|
+
export async function getDetails(client, issueId) {
|
|
61
|
+
return client.get(`/issues/${encodeURIComponent(issueId)}/details`);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get issue status history
|
|
65
|
+
*/
|
|
66
|
+
export async function getHistory(client, issueId) {
|
|
67
|
+
return client.get(`/issues/${encodeURIComponent(issueId)}/history`);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Update issue status
|
|
71
|
+
*/
|
|
72
|
+
export async function updateStatus(client, issueId, input) {
|
|
73
|
+
validateUpdateIssueStatusInput(input);
|
|
74
|
+
return client.patch(`/issues/${encodeURIComponent(issueId)}/status`, {
|
|
75
|
+
status: input.status,
|
|
76
|
+
reason: input.reason,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Edit issue metadata
|
|
81
|
+
*/
|
|
82
|
+
export async function edit(client, issueId, input) {
|
|
83
|
+
validateUpdateIssueInput(input);
|
|
84
|
+
return client.patch(`/issues/${encodeURIComponent(issueId)}`, {
|
|
85
|
+
title: input.title,
|
|
86
|
+
status: input.status,
|
|
87
|
+
priority: input.priority,
|
|
88
|
+
severity: input.severity,
|
|
89
|
+
failureCode: input.failureCode,
|
|
90
|
+
failureDomain: input.failureDomain,
|
|
91
|
+
failureMode: input.failureMode,
|
|
92
|
+
category: input.category,
|
|
93
|
+
type: input.type,
|
|
94
|
+
filePath: input.filePath,
|
|
95
|
+
lineNumber: input.lineNumber,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Add a note to an issue
|
|
100
|
+
*/
|
|
101
|
+
export async function addNote(client, issueId, input) {
|
|
102
|
+
validateCreateIssueNoteInput(input);
|
|
103
|
+
return client.post(`/issues/${encodeURIComponent(issueId)}/notes`, {
|
|
104
|
+
content: input.content,
|
|
105
|
+
noteType: input.noteType,
|
|
106
|
+
createdBy: input.createdBy,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Restore a deleted issue
|
|
111
|
+
*/
|
|
112
|
+
export async function restore(client, issueId) {
|
|
113
|
+
return client.post(`/issues/${encodeURIComponent(issueId)}/restore`);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Undo the last status change (within 24 hours)
|
|
117
|
+
*/
|
|
118
|
+
export async function undoLastChange(client, issueId) {
|
|
119
|
+
return client.post(`/issues/${encodeURIComponent(issueId)}/undo`);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Bulk update issue statuses
|
|
123
|
+
*/
|
|
124
|
+
export async function bulkUpdateStatus(client, updates) {
|
|
125
|
+
validateBulkStatusUpdateInput({ updates });
|
|
126
|
+
return client.post('/issues/bulk-status', {
|
|
127
|
+
updates: updates.map((u) => ({
|
|
128
|
+
issueId: u.issueId,
|
|
129
|
+
id: u.id,
|
|
130
|
+
status: u.status,
|
|
131
|
+
reason: u.reason,
|
|
132
|
+
})),
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* List issues in a project with filtering
|
|
137
|
+
*/
|
|
138
|
+
export async function listByProject(client, projectId, query) {
|
|
139
|
+
return client.get(`/projects/${encodeURIComponent(projectId)}/issues`, buildIssueListParams(query));
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/operations/issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { OpsHttpClient } from '../http/http-client.js';
|
|
2
|
+
import type { Project, CreateProjectInput, UpdateProjectInput, DeleteProjectInput, RenameProjectInput, ProjectSummary, TrendDataPoint, ProjectTrendsQuery, ListProjectIssuesQuery, BulkIssueStatusUpdate, BulkIssueStatusResult, MergeIssuesInput, MergeIssuesResult } from '../types/projects.js';
|
|
3
|
+
import type { Issue } from '../types/issues.js';
|
|
4
|
+
/**
|
|
5
|
+
* List all projects for the current user
|
|
6
|
+
*/
|
|
7
|
+
export declare function list(client: OpsHttpClient): Promise<Project[]>;
|
|
8
|
+
/**
|
|
9
|
+
* Get a single project by ID or name
|
|
10
|
+
*/
|
|
11
|
+
export declare function get(client: OpsHttpClient, idOrName: string): Promise<Project>;
|
|
12
|
+
/**
|
|
13
|
+
* Create a new project
|
|
14
|
+
*/
|
|
15
|
+
export declare function create(client: OpsHttpClient, input: CreateProjectInput): Promise<Project>;
|
|
16
|
+
/**
|
|
17
|
+
* Update a project
|
|
18
|
+
*/
|
|
19
|
+
export declare function update(client: OpsHttpClient, idOrName: string, input: UpdateProjectInput): Promise<Project>;
|
|
20
|
+
/**
|
|
21
|
+
* Hard delete a project (requires confirmation)
|
|
22
|
+
*/
|
|
23
|
+
export declare function deleteProject(client: OpsHttpClient, idOrName: string, input: DeleteProjectInput): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Soft delete a project (can be restored)
|
|
26
|
+
*/
|
|
27
|
+
export declare function softDelete(client: OpsHttpClient, idOrName: string, input: DeleteProjectInput): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Restore a soft-deleted project
|
|
30
|
+
*/
|
|
31
|
+
export declare function restore(client: OpsHttpClient, idOrName: string): Promise<Project>;
|
|
32
|
+
/**
|
|
33
|
+
* Rename a project by name
|
|
34
|
+
*/
|
|
35
|
+
export declare function rename(client: OpsHttpClient, input: RenameProjectInput): Promise<Project>;
|
|
36
|
+
/**
|
|
37
|
+
* Get project summary statistics
|
|
38
|
+
*/
|
|
39
|
+
export declare function getSummary(client: OpsHttpClient, idOrName: string): Promise<ProjectSummary>;
|
|
40
|
+
/**
|
|
41
|
+
* Get project trend data over time
|
|
42
|
+
*/
|
|
43
|
+
export declare function getTrends(client: OpsHttpClient, idOrName: string, query?: ProjectTrendsQuery): Promise<TrendDataPoint[]>;
|
|
44
|
+
/**
|
|
45
|
+
* List issues in a project with filtering
|
|
46
|
+
*/
|
|
47
|
+
export declare function listIssues(client: OpsHttpClient, idOrName: string, query?: ListProjectIssuesQuery): Promise<Issue[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Bulk update issue statuses in a project
|
|
50
|
+
*/
|
|
51
|
+
export declare function bulkUpdateIssueStatus(client: OpsHttpClient, idOrName: string, updates: BulkIssueStatusUpdate[]): Promise<BulkIssueStatusResult[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Merge multiple issues into one
|
|
54
|
+
*/
|
|
55
|
+
export declare function mergeIssues(client: OpsHttpClient, idOrName: string, input: MergeIssuesInput): Promise<MergeIssuesResult>;
|
|
56
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/operations/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAQhD;;GAEG;AACH,wBAAsB,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAEpE;AAED;;GAEG;AACH,wBAAsB,GAAG,CACvB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CAEzB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,kBAAkB,GACzB,OAAO,CAAC,cAAc,EAAE,CAAC,CAK3B;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,sBAAsB,GAC7B,OAAO,CAAC,KAAK,EAAE,CAAC,CAKlB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,qBAAqB,EAAE,GAC/B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAKlC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAS5B"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { toQuery } from '../http/http-client.js';
|
|
2
|
+
import { validateCreateProjectInput, validateDeleteProjectInput, validateRenameProjectInput, } from '../config/validators.js';
|
|
3
|
+
import { buildIssueListParams } from './query-utils.js';
|
|
4
|
+
/**
|
|
5
|
+
* List all projects for the current user
|
|
6
|
+
*/
|
|
7
|
+
export async function list(client) {
|
|
8
|
+
return client.get('/projects');
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get a single project by ID or name
|
|
12
|
+
*/
|
|
13
|
+
export async function get(client, idOrName) {
|
|
14
|
+
return client.get(`/projects/${encodeURIComponent(idOrName)}`);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create a new project
|
|
18
|
+
*/
|
|
19
|
+
export async function create(client, input) {
|
|
20
|
+
validateCreateProjectInput(input);
|
|
21
|
+
return client.post('/projects', input);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Update a project
|
|
25
|
+
*/
|
|
26
|
+
export async function update(client, idOrName, input) {
|
|
27
|
+
return client.patch(`/projects/${encodeURIComponent(idOrName)}`, input);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Hard delete a project (requires confirmation)
|
|
31
|
+
*/
|
|
32
|
+
export async function deleteProject(client, idOrName, input) {
|
|
33
|
+
validateDeleteProjectInput(input);
|
|
34
|
+
await client.delete(`/projects/${encodeURIComponent(idOrName)}`, {
|
|
35
|
+
confirm: input.confirm,
|
|
36
|
+
confirmationPhrase: input.confirmationPhrase,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Soft delete a project (can be restored)
|
|
41
|
+
*/
|
|
42
|
+
export async function softDelete(client, idOrName, input) {
|
|
43
|
+
validateDeleteProjectInput(input);
|
|
44
|
+
await client.delete(`/projects/${encodeURIComponent(idOrName)}/soft`, {
|
|
45
|
+
confirm: input.confirm,
|
|
46
|
+
confirmationPhrase: input.confirmationPhrase,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Restore a soft-deleted project
|
|
51
|
+
*/
|
|
52
|
+
export async function restore(client, idOrName) {
|
|
53
|
+
return client.post(`/projects/${encodeURIComponent(idOrName)}/restore`);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Rename a project by name
|
|
57
|
+
*/
|
|
58
|
+
export async function rename(client, input) {
|
|
59
|
+
validateRenameProjectInput(input);
|
|
60
|
+
return client.post('/projects/rename', {
|
|
61
|
+
oldName: input.oldName,
|
|
62
|
+
newName: input.newName,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get project summary statistics
|
|
67
|
+
*/
|
|
68
|
+
export async function getSummary(client, idOrName) {
|
|
69
|
+
return client.get(`/projects/${encodeURIComponent(idOrName)}/summary`);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get project trend data over time
|
|
73
|
+
*/
|
|
74
|
+
export async function getTrends(client, idOrName, query) {
|
|
75
|
+
return client.get(`/projects/${encodeURIComponent(idOrName)}/trends`, toQuery(query));
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* List issues in a project with filtering
|
|
79
|
+
*/
|
|
80
|
+
export async function listIssues(client, idOrName, query) {
|
|
81
|
+
return client.get(`/projects/${encodeURIComponent(idOrName)}/issues`, buildIssueListParams(query));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Bulk update issue statuses in a project
|
|
85
|
+
*/
|
|
86
|
+
export async function bulkUpdateIssueStatus(client, idOrName, updates) {
|
|
87
|
+
return client.patch(`/projects/${encodeURIComponent(idOrName)}/issues/status`, { updates });
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Merge multiple issues into one
|
|
91
|
+
*/
|
|
92
|
+
export async function mergeIssues(client, idOrName, input) {
|
|
93
|
+
return client.post(`/projects/${encodeURIComponent(idOrName)}/issues/merge`, {
|
|
94
|
+
targetIssueId: input.targetIssueId,
|
|
95
|
+
sourceIssueIds: input.sourceIssueIds,
|
|
96
|
+
strategy: input.strategy,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/operations/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared query parameter builder for issue listing endpoints.
|
|
3
|
+
* Used by both issues.listByProject and projects.listIssues.
|
|
4
|
+
*/
|
|
5
|
+
interface IssueListQuery {
|
|
6
|
+
status?: string;
|
|
7
|
+
priority?: string;
|
|
8
|
+
severity?: string;
|
|
9
|
+
failureDomain?: string;
|
|
10
|
+
validator?: string;
|
|
11
|
+
limit?: number;
|
|
12
|
+
offset?: number;
|
|
13
|
+
includeResolved?: boolean;
|
|
14
|
+
minTimesSeen?: number;
|
|
15
|
+
dateStart?: string;
|
|
16
|
+
dateEnd?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function buildIssueListParams(query?: IssueListQuery): Record<string, string | number | boolean | undefined> | undefined;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=query-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-utils.d.ts","sourceRoot":"","sources":["../../src/operations/query-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG,SAAS,CAgB9H"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared query parameter builder for issue listing endpoints.
|
|
3
|
+
* Used by both issues.listByProject and projects.listIssues.
|
|
4
|
+
*/
|
|
5
|
+
export function buildIssueListParams(query) {
|
|
6
|
+
if (!query)
|
|
7
|
+
return undefined;
|
|
8
|
+
return {
|
|
9
|
+
status: query.status,
|
|
10
|
+
priority: query.priority,
|
|
11
|
+
severity: query.severity,
|
|
12
|
+
failureDomain: query.failureDomain,
|
|
13
|
+
validator: query.validator,
|
|
14
|
+
limit: query.limit,
|
|
15
|
+
offset: query.offset,
|
|
16
|
+
includeResolved: query.includeResolved,
|
|
17
|
+
minTimesSeen: query.minTimesSeen,
|
|
18
|
+
dateStart: query.dateStart,
|
|
19
|
+
dateEnd: query.dateEnd,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=query-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-utils.js","sourceRoot":"","sources":["../../src/operations/query-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { OpsHttpClient } from '../http/http-client.js';
|
|
2
|
+
import type { Run, SaveFeaturesListInput, SaveFeaturesListResponse, ValidateFeaturesListResponse, RunDiffQuery, RunDiffResult, ArchiveRunsInput, ArchiveRunsResult, UpdateRunInput, UpdateRunByNumberInput, ListRunsQuery, RunDetails } from '../types/runs.js';
|
|
3
|
+
/**
|
|
4
|
+
* Save validation run results (save_features_list)
|
|
5
|
+
*
|
|
6
|
+
* Sends SDK input directly in camelCase. The API accepts both
|
|
7
|
+
* camelCase and snake_case via normalizeKeys().
|
|
8
|
+
*/
|
|
9
|
+
export declare function save(client: OpsHttpClient, input: SaveFeaturesListInput): Promise<SaveFeaturesListResponse>;
|
|
10
|
+
/**
|
|
11
|
+
* Validate run data without saving (preview)
|
|
12
|
+
*
|
|
13
|
+
* Similar to save() but the API validates data and returns what
|
|
14
|
+
* would be created/updated without actually persisting anything.
|
|
15
|
+
*/
|
|
16
|
+
export declare function validate(client: OpsHttpClient, input: SaveFeaturesListInput): Promise<ValidateFeaturesListResponse>;
|
|
17
|
+
/**
|
|
18
|
+
* Compare two runs (diff)
|
|
19
|
+
*/
|
|
20
|
+
export declare function diff(client: OpsHttpClient, query: RunDiffQuery): Promise<RunDiffResult>;
|
|
21
|
+
/**
|
|
22
|
+
* Archive old runs
|
|
23
|
+
*/
|
|
24
|
+
export declare function archive(client: OpsHttpClient, input: ArchiveRunsInput): Promise<ArchiveRunsResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Update run metadata by project and run number
|
|
27
|
+
*/
|
|
28
|
+
export declare function update(client: OpsHttpClient, input: UpdateRunByNumberInput): Promise<Run>;
|
|
29
|
+
/**
|
|
30
|
+
* List runs for a project
|
|
31
|
+
*/
|
|
32
|
+
export declare function listByProject(client: OpsHttpClient, projectId: string, query?: ListRunsQuery): Promise<Run[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Get the latest run for a project
|
|
35
|
+
*/
|
|
36
|
+
export declare function getLatest(client: OpsHttpClient, projectId: string, workflowType?: string): Promise<Run>;
|
|
37
|
+
/**
|
|
38
|
+
* Get full run details with recommendations
|
|
39
|
+
*/
|
|
40
|
+
export declare function getDetails(client: OpsHttpClient, projectId: string, runNumber?: number): Promise<RunDetails>;
|
|
41
|
+
/**
|
|
42
|
+
* Get a run by ID
|
|
43
|
+
*/
|
|
44
|
+
export declare function get(client: OpsHttpClient, runId: string): Promise<Run>;
|
|
45
|
+
/**
|
|
46
|
+
* Update a run by ID
|
|
47
|
+
*/
|
|
48
|
+
export declare function updateById(client: OpsHttpClient, runId: string, input: UpdateRunInput): Promise<Run>;
|
|
49
|
+
/**
|
|
50
|
+
* Delete a run (requires confirmation header)
|
|
51
|
+
*/
|
|
52
|
+
export declare function deleteRun(client: OpsHttpClient, runId: string): Promise<void>;
|
|
53
|
+
//# sourceMappingURL=runs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/operations/runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EACV,GAAG,EACH,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,UAAU,EACX,MAAM,kBAAkB,CAAC;AAM1B;;;;;GAKG;AACH,wBAAsB,IAAI,CACxB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,wBAAwB,CAAC,CAYnC;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,4BAA4B,CAAC,CAQvC;AAED;;GAEG;AACH,wBAAsB,IAAI,CACxB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,aAAa,CAAC,CAMxB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAS5B;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,GAAG,CAAC,CAUd;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,aAAa,GACpB,OAAO,CAAC,GAAG,EAAE,CAAC,CAKhB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,GAAG,CAAC,CAKd;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,CAAC,CAKrB;AAED;;GAEG;AACH,wBAAsB,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAE5E;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,GAAG,CAAC,CAQd;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { toQuery } from '../http/http-client.js';
|
|
2
|
+
import { validateSaveFeaturesListInput, validateArchiveRunsInput, } from '../config/validators.js';
|
|
3
|
+
/**
|
|
4
|
+
* Save validation run results (save_features_list)
|
|
5
|
+
*
|
|
6
|
+
* Sends SDK input directly in camelCase. The API accepts both
|
|
7
|
+
* camelCase and snake_case via normalizeKeys().
|
|
8
|
+
*/
|
|
9
|
+
export async function save(client, input) {
|
|
10
|
+
validateSaveFeaturesListInput(input);
|
|
11
|
+
return client.post('/runs', {
|
|
12
|
+
project: input.project,
|
|
13
|
+
workflowType: input.workflowType,
|
|
14
|
+
validators: input.validators,
|
|
15
|
+
recommendations: input.recommendations,
|
|
16
|
+
timestamp: input.timestamp,
|
|
17
|
+
rawMarkdown: input.rawMarkdown,
|
|
18
|
+
summary: input.summary,
|
|
19
|
+
idempotencyKey: input.idempotencyKey,
|
|
20
|
+
}, { retryMutations: true });
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Validate run data without saving (preview)
|
|
24
|
+
*
|
|
25
|
+
* Similar to save() but the API validates data and returns what
|
|
26
|
+
* would be created/updated without actually persisting anything.
|
|
27
|
+
*/
|
|
28
|
+
export async function validate(client, input) {
|
|
29
|
+
validateSaveFeaturesListInput(input);
|
|
30
|
+
return client.post('/runs/validate', {
|
|
31
|
+
project: input.project,
|
|
32
|
+
workflowType: input.workflowType,
|
|
33
|
+
validators: input.validators,
|
|
34
|
+
recommendations: input.recommendations,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Compare two runs (diff)
|
|
39
|
+
*/
|
|
40
|
+
export async function diff(client, query) {
|
|
41
|
+
return client.get('/runs/diff', {
|
|
42
|
+
project: query.project,
|
|
43
|
+
baseRun: query.baseRun,
|
|
44
|
+
compareRun: query.compareRun,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Archive old runs
|
|
49
|
+
*/
|
|
50
|
+
export async function archive(client, input) {
|
|
51
|
+
validateArchiveRunsInput(input);
|
|
52
|
+
return client.post('/runs/archive', {
|
|
53
|
+
project: input.project,
|
|
54
|
+
beforeRunNumber: input.beforeRunNumber,
|
|
55
|
+
beforeDate: input.beforeDate,
|
|
56
|
+
keepLast: input.keepLast,
|
|
57
|
+
reason: input.reason,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Update run metadata by project and run number
|
|
62
|
+
*/
|
|
63
|
+
export async function update(client, input) {
|
|
64
|
+
return client.patch('/runs/update', {
|
|
65
|
+
project: input.project,
|
|
66
|
+
runNumber: input.runNumber,
|
|
67
|
+
workflowType: input.workflowType,
|
|
68
|
+
allGatesPassed: input.allGatesPassed,
|
|
69
|
+
averageScore: input.averageScore,
|
|
70
|
+
rawMarkdown: input.rawMarkdown,
|
|
71
|
+
validators: input.validators,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* List runs for a project
|
|
76
|
+
*/
|
|
77
|
+
export async function listByProject(client, projectId, query) {
|
|
78
|
+
return client.get(`/runs/project/${encodeURIComponent(projectId)}`, toQuery(query));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get the latest run for a project
|
|
82
|
+
*/
|
|
83
|
+
export async function getLatest(client, projectId, workflowType) {
|
|
84
|
+
return client.get(`/runs/project/${encodeURIComponent(projectId)}/latest`, workflowType ? { workflowType } : undefined);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get full run details with recommendations
|
|
88
|
+
*/
|
|
89
|
+
export async function getDetails(client, projectId, runNumber) {
|
|
90
|
+
return client.get(`/runs/project/${encodeURIComponent(projectId)}/details`, runNumber !== undefined ? { runNumber } : undefined);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get a run by ID
|
|
94
|
+
*/
|
|
95
|
+
export async function get(client, runId) {
|
|
96
|
+
return client.get(`/runs/${encodeURIComponent(runId)}`);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Update a run by ID
|
|
100
|
+
*/
|
|
101
|
+
export async function updateById(client, runId, input) {
|
|
102
|
+
return client.patch(`/runs/${encodeURIComponent(runId)}`, {
|
|
103
|
+
workflowType: input.workflowType,
|
|
104
|
+
allGatesPassed: input.allGatesPassed,
|
|
105
|
+
averageScore: input.averageScore,
|
|
106
|
+
rawMarkdown: input.rawMarkdown,
|
|
107
|
+
validators: input.validators,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Delete a run (requires confirmation header)
|
|
112
|
+
*/
|
|
113
|
+
export async function deleteRun(client, runId) {
|
|
114
|
+
await client.request('DELETE', `/runs/${encodeURIComponent(runId)}`, undefined, {
|
|
115
|
+
headers: { 'X-Confirm-Delete': runId },
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=runs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/operations/runs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { OpsHttpClient } from '../http/http-client.js';
|
|
2
|
+
import type { TaxonomySchema } from '../types/analytics.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get the failure taxonomy schema (reference data)
|
|
5
|
+
*/
|
|
6
|
+
export declare function get(client: OpsHttpClient): Promise<TaxonomySchema>;
|
|
7
|
+
//# sourceMappingURL=taxonomy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taxonomy.d.ts","sourceRoot":"","sources":["../../src/operations/taxonomy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,wBAAsB,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAExE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taxonomy.js","sourceRoot":"","sources":["../../src/operations/taxonomy.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,MAAqB;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAiB,WAAW,CAAC,CAAC;AACjD,CAAC"}
|