@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,134 @@
|
|
|
1
|
+
import { validateAdminCreateUserInput, validateAdminUpdateUserInput, validateBulkDeactivateInput, } from '../config/validators.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get admin dashboard statistics
|
|
4
|
+
*/
|
|
5
|
+
export async function getStats(client) {
|
|
6
|
+
return client.get('/admin/stats');
|
|
7
|
+
}
|
|
8
|
+
// ============================================
|
|
9
|
+
// USER MANAGEMENT
|
|
10
|
+
// ============================================
|
|
11
|
+
/**
|
|
12
|
+
* List all users with filtering and pagination
|
|
13
|
+
*/
|
|
14
|
+
export async function listUsers(client, query) {
|
|
15
|
+
return client.get('/admin/users', {
|
|
16
|
+
search: query?.search,
|
|
17
|
+
role: Array.isArray(query?.role) ? query.role.join(',') : query?.role,
|
|
18
|
+
subscriptionTier: Array.isArray(query?.subscriptionTier)
|
|
19
|
+
? query.subscriptionTier.join(',')
|
|
20
|
+
: query?.subscriptionTier,
|
|
21
|
+
isActive: query?.isActive,
|
|
22
|
+
sortBy: query?.sortBy,
|
|
23
|
+
sortOrder: query?.sortOrder,
|
|
24
|
+
page: query?.page,
|
|
25
|
+
limit: query?.limit,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get a user by ID with stats
|
|
30
|
+
*/
|
|
31
|
+
export async function getUser(client, userId) {
|
|
32
|
+
return client.get(`/admin/users/${encodeURIComponent(userId)}`);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a new user (admin)
|
|
36
|
+
*/
|
|
37
|
+
export async function createUser(client, input) {
|
|
38
|
+
validateAdminCreateUserInput(input);
|
|
39
|
+
return client.post('/admin/users', {
|
|
40
|
+
email: input.email,
|
|
41
|
+
password: input.password,
|
|
42
|
+
role: input.role,
|
|
43
|
+
subscriptionTier: input.subscriptionTier,
|
|
44
|
+
sendWelcomeEmail: input.sendWelcomeEmail,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Update a user (admin)
|
|
49
|
+
*/
|
|
50
|
+
export async function updateUser(client, userId, input) {
|
|
51
|
+
validateAdminUpdateUserInput(input);
|
|
52
|
+
return client.patch(`/admin/users/${encodeURIComponent(userId)}`, {
|
|
53
|
+
email: input.email,
|
|
54
|
+
role: input.role,
|
|
55
|
+
subscriptionTier: input.subscriptionTier,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Deactivate (soft-delete) a user
|
|
60
|
+
*/
|
|
61
|
+
export async function deactivateUser(client, userId) {
|
|
62
|
+
return client.delete(`/admin/users/${encodeURIComponent(userId)}`);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Reactivate a deactivated user
|
|
66
|
+
*/
|
|
67
|
+
export async function reactivateUser(client, userId) {
|
|
68
|
+
return client.post(`/admin/users/${encodeURIComponent(userId)}/reactivate`);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Trigger a password reset email for a user
|
|
72
|
+
*/
|
|
73
|
+
export async function resetUserPassword(client, userId) {
|
|
74
|
+
return client.post(`/admin/users/${encodeURIComponent(userId)}/reset-password`);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Bulk deactivate users
|
|
78
|
+
*/
|
|
79
|
+
export async function bulkDeactivate(client, userIds) {
|
|
80
|
+
validateBulkDeactivateInput({ userIds });
|
|
81
|
+
return client.post('/admin/users/bulk-deactivate', {
|
|
82
|
+
userIds: userIds,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
// ============================================
|
|
86
|
+
// SESSION MANAGEMENT
|
|
87
|
+
// ============================================
|
|
88
|
+
/**
|
|
89
|
+
* List all active sessions
|
|
90
|
+
*/
|
|
91
|
+
export async function listSessions(client, query) {
|
|
92
|
+
return client.get('/admin/sessions', {
|
|
93
|
+
userId: query?.userId,
|
|
94
|
+
sortBy: query?.sortBy,
|
|
95
|
+
sortOrder: query?.sortOrder,
|
|
96
|
+
page: query?.page,
|
|
97
|
+
limit: query?.limit,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Terminate a specific session
|
|
102
|
+
*/
|
|
103
|
+
export async function terminateSession(client, sessionId) {
|
|
104
|
+
return client.delete(`/admin/sessions/${encodeURIComponent(sessionId)}`);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Terminate all sessions for a user
|
|
108
|
+
*/
|
|
109
|
+
export async function terminateUserSessions(client, userId) {
|
|
110
|
+
return client.delete(`/admin/sessions/user/${encodeURIComponent(userId)}`);
|
|
111
|
+
}
|
|
112
|
+
// ============================================
|
|
113
|
+
// API KEY MANAGEMENT
|
|
114
|
+
// ============================================
|
|
115
|
+
/**
|
|
116
|
+
* List all API keys
|
|
117
|
+
*/
|
|
118
|
+
export async function listKeys(client, query) {
|
|
119
|
+
return client.get('/admin/keys', {
|
|
120
|
+
userId: query?.userId,
|
|
121
|
+
search: query?.search,
|
|
122
|
+
sortBy: query?.sortBy,
|
|
123
|
+
sortOrder: query?.sortOrder,
|
|
124
|
+
page: query?.page,
|
|
125
|
+
limit: query?.limit,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Revoke any API key
|
|
130
|
+
*/
|
|
131
|
+
export async function revokeKey(client, keyId) {
|
|
132
|
+
return client.delete(`/admin/keys/${encodeURIComponent(keyId)}`);
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=admin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/operations/admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { OpsHttpClient } from '../http/http-client.js';
|
|
2
|
+
import type { AnalyticsQuery, ValidatorPerformance, ValidatorReliability, ValidatorReliabilityQuery, ResolutionRate, FileHotspot, TaxonomyDistribution, FullTaxonomyAnalytics, BurndownResult, BurndownQuery, VelocityResult, VelocityQuery, DiscoveryResult, DiscoveryQuery, ValidatorMatrixResult, ValidatorMatrixQuery, TrendSummary } from '../types/analytics.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get validator performance metrics
|
|
5
|
+
*/
|
|
6
|
+
export declare function getValidatorPerformance(client: OpsHttpClient, query?: AnalyticsQuery): Promise<ValidatorPerformance[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Get validator reliability stats
|
|
9
|
+
*/
|
|
10
|
+
export declare function getValidatorReliability(client: OpsHttpClient, query?: ValidatorReliabilityQuery): Promise<{
|
|
11
|
+
validators: ValidatorReliability[];
|
|
12
|
+
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Get issue resolution rates by project
|
|
15
|
+
*/
|
|
16
|
+
export declare function getResolutionRates(client: OpsHttpClient, query?: AnalyticsQuery): Promise<ResolutionRate[]>;
|
|
17
|
+
/**
|
|
18
|
+
* Get files with most issues (hotspots)
|
|
19
|
+
*/
|
|
20
|
+
export declare function getFileHotspots(client: OpsHttpClient, query?: AnalyticsQuery): Promise<FileHotspot[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Get basic taxonomy distribution
|
|
23
|
+
*/
|
|
24
|
+
export declare function getTaxonomyDistribution(client: OpsHttpClient, query?: AnalyticsQuery): Promise<TaxonomyDistribution[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Get full taxonomy analytics with all aggregations
|
|
27
|
+
*/
|
|
28
|
+
export declare function getFullTaxonomy(client: OpsHttpClient, query?: AnalyticsQuery): Promise<{
|
|
29
|
+
data: FullTaxonomyAnalytics;
|
|
30
|
+
computedAt: string;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Get taxonomy burndown time series
|
|
34
|
+
*/
|
|
35
|
+
export declare function getBurndown(client: OpsHttpClient, query?: BurndownQuery): Promise<BurndownResult>;
|
|
36
|
+
/**
|
|
37
|
+
* Get taxonomy velocity (rate of change per failure mode)
|
|
38
|
+
*/
|
|
39
|
+
export declare function getVelocity(client: OpsHttpClient, query?: VelocityQuery): Promise<VelocityResult>;
|
|
40
|
+
/**
|
|
41
|
+
* Get discovery timeline (new vs recurring issues)
|
|
42
|
+
*/
|
|
43
|
+
export declare function getDiscovery(client: OpsHttpClient, query?: DiscoveryQuery): Promise<DiscoveryResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Get validator-taxonomy coverage matrix
|
|
46
|
+
*/
|
|
47
|
+
export declare function getValidatorMatrix(client: OpsHttpClient, query?: ValidatorMatrixQuery): Promise<ValidatorMatrixResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Get general trend summary
|
|
50
|
+
*/
|
|
51
|
+
export declare function getTrendSummary(client: OpsHttpClient, query?: AnalyticsQuery): Promise<TrendSummary[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Valid metric names for getByMetric
|
|
54
|
+
*/
|
|
55
|
+
export declare const ANALYTICS_METRICS: readonly ["validator_performance", "resolution_rates", "cross_project_patterns", "file_hotspots", "regression_analysis", "trend_summary", "cost_analysis", "taxonomy_distribution", "category_performance"];
|
|
56
|
+
export type AnalyticsMetric = (typeof ANALYTICS_METRICS)[number];
|
|
57
|
+
/**
|
|
58
|
+
* Check if a string is a valid analytics metric
|
|
59
|
+
*/
|
|
60
|
+
export declare function isValidMetric(metric: string): metric is AnalyticsMetric;
|
|
61
|
+
/**
|
|
62
|
+
* Known result types for analytics metrics.
|
|
63
|
+
* Use with getByMetric for type-safe access to specific metrics.
|
|
64
|
+
*/
|
|
65
|
+
export interface AnalyticsMetricResultMap {
|
|
66
|
+
validator_performance: ValidatorPerformance[];
|
|
67
|
+
resolution_rates: ResolutionRate[];
|
|
68
|
+
file_hotspots: FileHotspot[];
|
|
69
|
+
trend_summary: TrendSummary[];
|
|
70
|
+
taxonomy_distribution: TaxonomyDistribution[];
|
|
71
|
+
cross_project_patterns: unknown;
|
|
72
|
+
regression_analysis: unknown;
|
|
73
|
+
cost_analysis: unknown;
|
|
74
|
+
category_performance: unknown;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get analytics by metric name (generic endpoint)
|
|
78
|
+
* @throws Error if metric is not a valid analytics metric
|
|
79
|
+
*/
|
|
80
|
+
export declare function getByMetric<M extends AnalyticsMetric>(client: OpsHttpClient, metric: M, query?: AnalyticsQuery): Promise<AnalyticsMetricResultMap[M]>;
|
|
81
|
+
//# sourceMappingURL=analytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/operations/analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { toQuery } from '../http/http-client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get validator performance metrics
|
|
4
|
+
*/
|
|
5
|
+
export async function getValidatorPerformance(client, query) {
|
|
6
|
+
return client.get('/analytics/validators/performance', toQuery(query));
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Get validator reliability stats
|
|
10
|
+
*/
|
|
11
|
+
export async function getValidatorReliability(client, query) {
|
|
12
|
+
return client.get('/analytics/validators/reliability', toQuery(query));
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get issue resolution rates by project
|
|
16
|
+
*/
|
|
17
|
+
export async function getResolutionRates(client, query) {
|
|
18
|
+
return client.get('/analytics/projects/resolution-rates', toQuery(query));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get files with most issues (hotspots)
|
|
22
|
+
*/
|
|
23
|
+
export async function getFileHotspots(client, query) {
|
|
24
|
+
return client.get('/analytics/files/hotspots', toQuery(query));
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get basic taxonomy distribution
|
|
28
|
+
*/
|
|
29
|
+
export async function getTaxonomyDistribution(client, query) {
|
|
30
|
+
return client.get('/analytics/taxonomy/distribution', toQuery(query));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get full taxonomy analytics with all aggregations
|
|
34
|
+
*/
|
|
35
|
+
export async function getFullTaxonomy(client, query) {
|
|
36
|
+
return client.get('/analytics/taxonomy/full', toQuery(query));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get taxonomy burndown time series
|
|
40
|
+
*/
|
|
41
|
+
export async function getBurndown(client, query) {
|
|
42
|
+
return client.get('/analytics/taxonomy/burndown', toQuery(query));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get taxonomy velocity (rate of change per failure mode)
|
|
46
|
+
*/
|
|
47
|
+
export async function getVelocity(client, query) {
|
|
48
|
+
return client.get('/analytics/taxonomy/velocity', {
|
|
49
|
+
project: query?.project,
|
|
50
|
+
days: query?.days,
|
|
51
|
+
alertThreshold: query?.alertThreshold,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get discovery timeline (new vs recurring issues)
|
|
56
|
+
*/
|
|
57
|
+
export async function getDiscovery(client, query) {
|
|
58
|
+
return client.get('/analytics/taxonomy/discovery', {
|
|
59
|
+
project: query?.project,
|
|
60
|
+
days: query?.days,
|
|
61
|
+
groupBy: query?.groupBy,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get validator-taxonomy coverage matrix
|
|
66
|
+
*/
|
|
67
|
+
export async function getValidatorMatrix(client, query) {
|
|
68
|
+
return client.get('/analytics/taxonomy/validator-matrix', {
|
|
69
|
+
project: query?.project,
|
|
70
|
+
days: query?.days,
|
|
71
|
+
minIssues: query?.minIssues,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get general trend summary
|
|
76
|
+
*/
|
|
77
|
+
export async function getTrendSummary(client, query) {
|
|
78
|
+
return client.get('/analytics/trends/summary', toQuery(query));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Valid metric names for getByMetric
|
|
82
|
+
*/
|
|
83
|
+
export const ANALYTICS_METRICS = [
|
|
84
|
+
'validator_performance',
|
|
85
|
+
'resolution_rates',
|
|
86
|
+
'cross_project_patterns',
|
|
87
|
+
'file_hotspots',
|
|
88
|
+
'regression_analysis',
|
|
89
|
+
'trend_summary',
|
|
90
|
+
'cost_analysis',
|
|
91
|
+
'taxonomy_distribution',
|
|
92
|
+
'category_performance',
|
|
93
|
+
];
|
|
94
|
+
/**
|
|
95
|
+
* Check if a string is a valid analytics metric
|
|
96
|
+
*/
|
|
97
|
+
export function isValidMetric(metric) {
|
|
98
|
+
return ANALYTICS_METRICS.includes(metric);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Get analytics by metric name (generic endpoint)
|
|
102
|
+
* @throws Error if metric is not a valid analytics metric
|
|
103
|
+
*/
|
|
104
|
+
export async function getByMetric(client, metric, query) {
|
|
105
|
+
// Runtime validation for string inputs that bypass type checking
|
|
106
|
+
if (!isValidMetric(metric)) {
|
|
107
|
+
throw new Error(`Invalid analytics metric: "${metric}". Valid metrics: ${ANALYTICS_METRICS.join(', ')}`);
|
|
108
|
+
}
|
|
109
|
+
return client.get(`/analytics/${metric}`, toQuery(query));
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/operations/analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { OpsHttpClient } from '../http/http-client.js';
|
|
2
|
+
import type { RegisterInput, LoginInput, LoginResponse, RegisterResponse, UpdateProfileInput, ChangePasswordInput, ResetPasswordInput, CreateApiKeyInput, ApiKeyCreatedResponse, PublicApiKey, PublicSession, AuthUser, PublicUser } from '../types/auth.js';
|
|
3
|
+
import type { MessageResponse } from '../types/responses.js';
|
|
4
|
+
/**
|
|
5
|
+
* Register a new user
|
|
6
|
+
*/
|
|
7
|
+
export declare function register(client: OpsHttpClient, input: RegisterInput): Promise<RegisterResponse>;
|
|
8
|
+
/**
|
|
9
|
+
* Login with email and password
|
|
10
|
+
*/
|
|
11
|
+
export declare function login(client: OpsHttpClient, input: LoginInput): Promise<LoginResponse>;
|
|
12
|
+
/**
|
|
13
|
+
* Logout all sessions for the current user
|
|
14
|
+
*/
|
|
15
|
+
export declare function logoutAll(client: OpsHttpClient): Promise<{
|
|
16
|
+
sessionsRevoked: number;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Request a password reset email
|
|
20
|
+
*/
|
|
21
|
+
export declare function forgotPassword(client: OpsHttpClient, email: string): Promise<MessageResponse>;
|
|
22
|
+
/**
|
|
23
|
+
* Reset password using a reset token
|
|
24
|
+
*/
|
|
25
|
+
export declare function resetPassword(client: OpsHttpClient, input: ResetPasswordInput): Promise<MessageResponse>;
|
|
26
|
+
/**
|
|
27
|
+
* Change password (requires current password)
|
|
28
|
+
*/
|
|
29
|
+
export declare function changePassword(client: OpsHttpClient, input: ChangePasswordInput): Promise<MessageResponse>;
|
|
30
|
+
/**
|
|
31
|
+
* Set password (first time, no current password)
|
|
32
|
+
*/
|
|
33
|
+
export declare function setPassword(client: OpsHttpClient, password: string): Promise<MessageResponse>;
|
|
34
|
+
/**
|
|
35
|
+
* Get current user info (minimal)
|
|
36
|
+
*/
|
|
37
|
+
export declare function getMe(client: OpsHttpClient): Promise<AuthUser>;
|
|
38
|
+
/**
|
|
39
|
+
* Get current user's full profile
|
|
40
|
+
*/
|
|
41
|
+
export declare function getProfile(client: OpsHttpClient): Promise<{
|
|
42
|
+
user: PublicUser;
|
|
43
|
+
}>;
|
|
44
|
+
/**
|
|
45
|
+
* Update current user's profile
|
|
46
|
+
*/
|
|
47
|
+
export declare function updateProfile(client: OpsHttpClient, input: UpdateProfileInput): Promise<{
|
|
48
|
+
user: PublicUser;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* Get current user's avatar (returns binary data)
|
|
52
|
+
*/
|
|
53
|
+
export declare function getAvatar(client: OpsHttpClient): Promise<{
|
|
54
|
+
data: ArrayBuffer;
|
|
55
|
+
contentType: string;
|
|
56
|
+
}>;
|
|
57
|
+
/**
|
|
58
|
+
* Delete current user's avatar
|
|
59
|
+
*/
|
|
60
|
+
export declare function deleteAvatar(client: OpsHttpClient): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* List user's API keys
|
|
63
|
+
*/
|
|
64
|
+
export declare function listApiKeys(client: OpsHttpClient): Promise<PublicApiKey[]>;
|
|
65
|
+
/**
|
|
66
|
+
* Create a new API key
|
|
67
|
+
*/
|
|
68
|
+
export declare function createApiKey(client: OpsHttpClient, input?: CreateApiKeyInput): Promise<ApiKeyCreatedResponse>;
|
|
69
|
+
/**
|
|
70
|
+
* Revoke an API key
|
|
71
|
+
*/
|
|
72
|
+
export declare function revokeApiKey(client: OpsHttpClient, keyId: string): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* List user's active sessions
|
|
75
|
+
*/
|
|
76
|
+
export declare function listSessions(client: OpsHttpClient): Promise<PublicSession[]>;
|
|
77
|
+
/**
|
|
78
|
+
* Revoke a session
|
|
79
|
+
*/
|
|
80
|
+
export declare function revokeSession(client: OpsHttpClient, sessionId: string): Promise<void>;
|
|
81
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/operations/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { validateRegisterInput, validateLoginInput, validateUpdateProfileInput, validateChangePasswordInput, validateResetPasswordInput, validateCreateApiKeyInput, } from '../config/validators.js';
|
|
2
|
+
/**
|
|
3
|
+
* Register a new user
|
|
4
|
+
*/
|
|
5
|
+
export async function register(client, input) {
|
|
6
|
+
validateRegisterInput(input);
|
|
7
|
+
return client.post('/auth/register', input, { skipAuth: true });
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Login with email and password
|
|
11
|
+
*/
|
|
12
|
+
export async function login(client, input) {
|
|
13
|
+
validateLoginInput(input);
|
|
14
|
+
return client.post('/auth/login', input, { skipAuth: true });
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Logout all sessions for the current user
|
|
18
|
+
*/
|
|
19
|
+
export async function logoutAll(client) {
|
|
20
|
+
return client.post('/auth/logout-all');
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Request a password reset email
|
|
24
|
+
*/
|
|
25
|
+
export async function forgotPassword(client, email) {
|
|
26
|
+
return client.post('/auth/forgot-password', { email }, { skipAuth: true });
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Reset password using a reset token
|
|
30
|
+
*/
|
|
31
|
+
export async function resetPassword(client, input) {
|
|
32
|
+
validateResetPasswordInput(input);
|
|
33
|
+
return client.post('/auth/reset-password', input, { skipAuth: true });
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Change password (requires current password)
|
|
37
|
+
*/
|
|
38
|
+
export async function changePassword(client, input) {
|
|
39
|
+
validateChangePasswordInput(input);
|
|
40
|
+
return client.put('/auth/password', input);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Set password (first time, no current password)
|
|
44
|
+
*/
|
|
45
|
+
export async function setPassword(client, password) {
|
|
46
|
+
return client.post('/auth/password', { password });
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get current user info (minimal)
|
|
50
|
+
*/
|
|
51
|
+
export async function getMe(client) {
|
|
52
|
+
return client.get('/auth/me');
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get current user's full profile
|
|
56
|
+
*/
|
|
57
|
+
export async function getProfile(client) {
|
|
58
|
+
return client.get('/auth/profile');
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Update current user's profile
|
|
62
|
+
*/
|
|
63
|
+
export async function updateProfile(client, input) {
|
|
64
|
+
validateUpdateProfileInput(input);
|
|
65
|
+
return client.patch('/auth/profile', input);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get current user's avatar (returns binary data)
|
|
69
|
+
*/
|
|
70
|
+
export async function getAvatar(client) {
|
|
71
|
+
const response = await client.requestBinary('GET', '/auth/avatar');
|
|
72
|
+
return {
|
|
73
|
+
data: response.data,
|
|
74
|
+
contentType: response.contentType,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Delete current user's avatar
|
|
79
|
+
*/
|
|
80
|
+
export async function deleteAvatar(client) {
|
|
81
|
+
await client.delete('/auth/avatar');
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* List user's API keys
|
|
85
|
+
*/
|
|
86
|
+
export async function listApiKeys(client) {
|
|
87
|
+
return client.get('/auth/keys');
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Create a new API key
|
|
91
|
+
*/
|
|
92
|
+
export async function createApiKey(client, input) {
|
|
93
|
+
if (input)
|
|
94
|
+
validateCreateApiKeyInput(input);
|
|
95
|
+
return client.post('/auth/keys', input);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Revoke an API key
|
|
99
|
+
*/
|
|
100
|
+
export async function revokeApiKey(client, keyId) {
|
|
101
|
+
await client.delete(`/auth/keys/${encodeURIComponent(keyId)}`);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* List user's active sessions
|
|
105
|
+
*/
|
|
106
|
+
export async function listSessions(client) {
|
|
107
|
+
return client.get('/auth/sessions');
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Revoke a session
|
|
111
|
+
*/
|
|
112
|
+
export async function revokeSession(client, sessionId) {
|
|
113
|
+
await client.delete(`/auth/sessions/${encodeURIComponent(sessionId)}`);
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/operations/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * as authOps from './auth.js';
|
|
2
|
+
export * as projectOps from './projects.js';
|
|
3
|
+
export * as runOps from './runs.js';
|
|
4
|
+
export * as issueOps from './issues.js';
|
|
5
|
+
export * as analyticsOps from './analytics.js';
|
|
6
|
+
export * as taxonomyOps from './taxonomy.js';
|
|
7
|
+
export * as adminOps from './admin.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * as authOps from './auth.js';
|
|
2
|
+
export * as projectOps from './projects.js';
|
|
3
|
+
export * as runOps from './runs.js';
|
|
4
|
+
export * as issueOps from './issues.js';
|
|
5
|
+
export * as analyticsOps from './analytics.js';
|
|
6
|
+
export * as taxonomyOps from './taxonomy.js';
|
|
7
|
+
export * as adminOps from './admin.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { OpsHttpClient } from '../http/http-client.js';
|
|
2
|
+
import type { Issue, CreateUserIssueInput, UpdateIssueInput, UpdateIssueStatusInput, CreateIssueNoteInput, IssueNote, StatusHistory, IssueDetails, IssueSearchQuery, ListIssuesQuery, BulkStatusUpdateItem, StatusUpdateResult } from '../types/issues.js';
|
|
3
|
+
/**
|
|
4
|
+
* Create a user-submitted issue
|
|
5
|
+
*/
|
|
6
|
+
export declare function create(client: OpsHttpClient, input: CreateUserIssueInput): Promise<Issue>;
|
|
7
|
+
/**
|
|
8
|
+
* Search issues across projects
|
|
9
|
+
*/
|
|
10
|
+
export declare function search(client: OpsHttpClient, query: IssueSearchQuery): Promise<Issue[]>;
|
|
11
|
+
/**
|
|
12
|
+
* Get an issue by its fingerprint
|
|
13
|
+
*/
|
|
14
|
+
export declare function getByFingerprint(client: OpsHttpClient, fingerprint: string, project: string): Promise<Issue>;
|
|
15
|
+
/**
|
|
16
|
+
* Update issue status by fingerprint
|
|
17
|
+
*/
|
|
18
|
+
export declare function updateStatusByFingerprint(client: OpsHttpClient, fingerprint: string, project: string, input: UpdateIssueStatusInput): Promise<StatusUpdateResult>;
|
|
19
|
+
/**
|
|
20
|
+
* Get an issue by ID
|
|
21
|
+
*/
|
|
22
|
+
export declare function get(client: OpsHttpClient, issueId: string): Promise<Issue>;
|
|
23
|
+
/**
|
|
24
|
+
* Get full issue details with occurrences, notes, and history
|
|
25
|
+
*/
|
|
26
|
+
export declare function getDetails(client: OpsHttpClient, issueId: string): Promise<IssueDetails>;
|
|
27
|
+
/**
|
|
28
|
+
* Get issue status history
|
|
29
|
+
*/
|
|
30
|
+
export declare function getHistory(client: OpsHttpClient, issueId: string): Promise<StatusHistory[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Update issue status
|
|
33
|
+
*/
|
|
34
|
+
export declare function updateStatus(client: OpsHttpClient, issueId: string, input: UpdateIssueStatusInput): Promise<Issue>;
|
|
35
|
+
/**
|
|
36
|
+
* Edit issue metadata
|
|
37
|
+
*/
|
|
38
|
+
export declare function edit(client: OpsHttpClient, issueId: string, input: UpdateIssueInput): Promise<Issue>;
|
|
39
|
+
/**
|
|
40
|
+
* Add a note to an issue
|
|
41
|
+
*/
|
|
42
|
+
export declare function addNote(client: OpsHttpClient, issueId: string, input: CreateIssueNoteInput): Promise<IssueNote>;
|
|
43
|
+
/**
|
|
44
|
+
* Restore a deleted issue
|
|
45
|
+
*/
|
|
46
|
+
export declare function restore(client: OpsHttpClient, issueId: string): Promise<Issue>;
|
|
47
|
+
/**
|
|
48
|
+
* Undo the last status change (within 24 hours)
|
|
49
|
+
*/
|
|
50
|
+
export declare function undoLastChange(client: OpsHttpClient, issueId: string): Promise<Issue>;
|
|
51
|
+
/**
|
|
52
|
+
* Bulk update issue statuses
|
|
53
|
+
*/
|
|
54
|
+
export declare function bulkUpdateStatus(client: OpsHttpClient, updates: BulkStatusUpdateItem[]): Promise<StatusUpdateResult[]>;
|
|
55
|
+
/**
|
|
56
|
+
* List issues in a project with filtering
|
|
57
|
+
*/
|
|
58
|
+
export declare function listByProject(client: OpsHttpClient, projectId: string, query?: ListIssuesQuery): Promise<Issue[]>;
|
|
59
|
+
//# sourceMappingURL=issues.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/operations/issues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EACV,KAAK,EACL,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,SAAS,EACT,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAU5B;;GAEG;AACH,wBAAsB,MAAM,CAC1B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAiBhB;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,KAAK,EAAE,CAAC,CAWlB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC,CAEhB;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,kBAAkB,CAAC,CAM7B;AAED;;GAEG;AACH,wBAAsB,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAEhF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAEvB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,EAAE,CAAC,CAE1B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,KAAK,CAAC,CAMhB;AAED;;GAEG;AACH,wBAAsB,IAAI,CACxB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,KAAK,CAAC,CAehB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,SAAS,CAAC,CAOpB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC,CAEhB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC,CAEhB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,oBAAoB,EAAE,GAC9B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAU/B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,eAAe,GACtB,OAAO,CAAC,KAAK,EAAE,CAAC,CAKlB"}
|