@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,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":"AAiBA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAqB,EACrB,KAAoB;IAEpB,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAmB,gBAAgB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,MAAqB,EACrB,KAAiB;IAEjB,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAgB,aAAa,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAqB;IAErB,OAAO,MAAM,CAAC,IAAI,CAA8B,kBAAkB,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAqB,EACrB,KAAa;IAEb,OAAO,MAAM,CAAC,IAAI,CAAkB,uBAAuB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAqB,EACrB,KAAyB;IAEzB,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,IAAI,CAAkB,sBAAsB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACzF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAqB,EACrB,KAA0B;IAE1B,2BAA2B,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,GAAG,CAAkB,gBAAgB,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAqB,EACrB,QAAgB;IAEhB,OAAO,MAAM,CAAC,IAAI,CAAkB,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,MAAqB;IAC/C,OAAO,MAAM,CAAC,GAAG,CAAW,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAqB;IACpD,OAAO,MAAM,CAAC,GAAG,CAAuB,eAAe,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAqB,EACrB,KAAyB;IAEzB,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,KAAK,CAAuB,eAAe,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAqB;IAErB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACnE,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAqB;IACtD,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAqB;IAErB,OAAO,MAAM,CAAC,GAAG,CAAiB,YAAY,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,KAAyB;IAEzB,IAAI,KAAK;QAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,IAAI,CAAwB,YAAY,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,KAAa;IAEb,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAqB;IAErB,OAAO,MAAM,CAAC,GAAG,CAAkB,gBAAgB,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAqB,EACrB,SAAiB;IAEjB,MAAM,MAAM,CAAC,MAAM,CAAC,kBAAkB,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACzE,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.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"}