@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.
Files changed (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1647 -0
  3. package/dist/client.d.ts +191 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +168 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/config/constants.d.ts +27 -0
  8. package/dist/config/constants.d.ts.map +1 -0
  9. package/dist/config/constants.js +35 -0
  10. package/dist/config/constants.js.map +1 -0
  11. package/dist/config/index.d.ts +4 -0
  12. package/dist/config/index.d.ts.map +1 -0
  13. package/dist/config/index.js +4 -0
  14. package/dist/config/index.js.map +1 -0
  15. package/dist/config/loaders.d.ts +41 -0
  16. package/dist/config/loaders.d.ts.map +1 -0
  17. package/dist/config/loaders.js +43 -0
  18. package/dist/config/loaders.js.map +1 -0
  19. package/dist/config/validators.d.ts +163 -0
  20. package/dist/config/validators.d.ts.map +1 -0
  21. package/dist/config/validators.js +126 -0
  22. package/dist/config/validators.js.map +1 -0
  23. package/dist/errors/errors.d.ts +7 -0
  24. package/dist/errors/errors.d.ts.map +1 -0
  25. package/dist/errors/errors.js +7 -0
  26. package/dist/errors/errors.js.map +1 -0
  27. package/dist/errors/index.d.ts +2 -0
  28. package/dist/errors/index.d.ts.map +1 -0
  29. package/dist/errors/index.js +2 -0
  30. package/dist/errors/index.js.map +1 -0
  31. package/dist/http/auth-strategy.d.ts +5 -0
  32. package/dist/http/auth-strategy.d.ts.map +1 -0
  33. package/dist/http/auth-strategy.js +5 -0
  34. package/dist/http/auth-strategy.js.map +1 -0
  35. package/dist/http/fetch-adapter.d.ts +5 -0
  36. package/dist/http/fetch-adapter.d.ts.map +1 -0
  37. package/dist/http/fetch-adapter.js +2 -0
  38. package/dist/http/fetch-adapter.js.map +1 -0
  39. package/dist/http/http-client.d.ts +29 -0
  40. package/dist/http/http-client.d.ts.map +1 -0
  41. package/dist/http/http-client.js +25 -0
  42. package/dist/http/http-client.js.map +1 -0
  43. package/dist/http/index.d.ts +6 -0
  44. package/dist/http/index.d.ts.map +1 -0
  45. package/dist/http/index.js +3 -0
  46. package/dist/http/index.js.map +1 -0
  47. package/dist/index.d.ts +8 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +13 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/operations/admin.d.ts +89 -0
  52. package/dist/operations/admin.d.ts.map +1 -0
  53. package/dist/operations/admin.js +134 -0
  54. package/dist/operations/admin.js.map +1 -0
  55. package/dist/operations/analytics.d.ts +81 -0
  56. package/dist/operations/analytics.d.ts.map +1 -0
  57. package/dist/operations/analytics.js +111 -0
  58. package/dist/operations/analytics.js.map +1 -0
  59. package/dist/operations/auth.d.ts +81 -0
  60. package/dist/operations/auth.d.ts.map +1 -0
  61. package/dist/operations/auth.js +115 -0
  62. package/dist/operations/auth.js.map +1 -0
  63. package/dist/operations/index.d.ts +8 -0
  64. package/dist/operations/index.d.ts.map +1 -0
  65. package/dist/operations/index.js +8 -0
  66. package/dist/operations/index.js.map +1 -0
  67. package/dist/operations/issues.d.ts +59 -0
  68. package/dist/operations/issues.d.ts.map +1 -0
  69. package/dist/operations/issues.js +141 -0
  70. package/dist/operations/issues.js.map +1 -0
  71. package/dist/operations/projects.d.ts +56 -0
  72. package/dist/operations/projects.d.ts.map +1 -0
  73. package/dist/operations/projects.js +99 -0
  74. package/dist/operations/projects.js.map +1 -0
  75. package/dist/operations/query-utils.d.ts +20 -0
  76. package/dist/operations/query-utils.d.ts.map +1 -0
  77. package/dist/operations/query-utils.js +22 -0
  78. package/dist/operations/query-utils.js.map +1 -0
  79. package/dist/operations/runs.d.ts +53 -0
  80. package/dist/operations/runs.d.ts.map +1 -0
  81. package/dist/operations/runs.js +118 -0
  82. package/dist/operations/runs.js.map +1 -0
  83. package/dist/operations/taxonomy.d.ts +7 -0
  84. package/dist/operations/taxonomy.d.ts.map +1 -0
  85. package/dist/operations/taxonomy.js +7 -0
  86. package/dist/operations/taxonomy.js.map +1 -0
  87. package/dist/types/analytics.d.ts +338 -0
  88. package/dist/types/analytics.d.ts.map +1 -0
  89. package/dist/types/analytics.js +2 -0
  90. package/dist/types/analytics.js.map +1 -0
  91. package/dist/types/auth.d.ts +303 -0
  92. package/dist/types/auth.d.ts.map +1 -0
  93. package/dist/types/auth.js +2 -0
  94. package/dist/types/auth.js.map +1 -0
  95. package/dist/types/enums.d.ts +200 -0
  96. package/dist/types/enums.d.ts.map +1 -0
  97. package/dist/types/enums.js +222 -0
  98. package/dist/types/enums.js.map +1 -0
  99. package/dist/types/index.d.ts +10 -0
  100. package/dist/types/index.d.ts.map +1 -0
  101. package/dist/types/index.js +16 -0
  102. package/dist/types/index.js.map +1 -0
  103. package/dist/types/issues.d.ts +182 -0
  104. package/dist/types/issues.d.ts.map +1 -0
  105. package/dist/types/issues.js +2 -0
  106. package/dist/types/issues.js.map +1 -0
  107. package/dist/types/projects.d.ts +123 -0
  108. package/dist/types/projects.d.ts.map +1 -0
  109. package/dist/types/projects.js +2 -0
  110. package/dist/types/projects.js.map +1 -0
  111. package/dist/types/response-schemas.d.ts +3441 -0
  112. package/dist/types/response-schemas.d.ts.map +1 -0
  113. package/dist/types/response-schemas.js +388 -0
  114. package/dist/types/response-schemas.js.map +1 -0
  115. package/dist/types/responses.d.ts +84 -0
  116. package/dist/types/responses.d.ts.map +1 -0
  117. package/dist/types/responses.js +2 -0
  118. package/dist/types/responses.js.map +1 -0
  119. package/dist/types/runs.d.ts +232 -0
  120. package/dist/types/runs.d.ts.map +1 -0
  121. package/dist/types/runs.js +2 -0
  122. package/dist/types/runs.js.map +1 -0
  123. package/dist/types/schemas.d.ts +914 -0
  124. package/dist/types/schemas.d.ts.map +1 -0
  125. package/dist/types/schemas.js +280 -0
  126. package/dist/types/schemas.js.map +1 -0
  127. package/dist/utils/helpers.d.ts +64 -0
  128. package/dist/utils/helpers.d.ts.map +1 -0
  129. package/dist/utils/helpers.js +127 -0
  130. package/dist/utils/helpers.js.map +1 -0
  131. package/dist/utils/index.d.ts +3 -0
  132. package/dist/utils/index.d.ts.map +1 -0
  133. package/dist/utils/index.js +3 -0
  134. package/dist/utils/index.js.map +1 -0
  135. package/dist/utils/logger.d.ts +5 -0
  136. package/dist/utils/logger.d.ts.map +1 -0
  137. package/dist/utils/logger.js +5 -0
  138. package/dist/utils/logger.js.map +1 -0
  139. 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,7 @@
1
+ /**
2
+ * Get the failure taxonomy schema (reference data)
3
+ */
4
+ export async function get(client) {
5
+ return client.get('/taxonomy');
6
+ }
7
+ //# sourceMappingURL=taxonomy.js.map
@@ -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"}