@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 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/types/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { PRIORITIES, STATUSES, SEVERITIES, FAILURE_DOMAINS, ISSUE_TYPES, NOTE_TYPES, USER_ROLES, SUBSCRIPTION_TIERS, AVATAR_MIME_TYPES, FAILURE_CODE_PATTERN, } from './enums.js';
|
|
3
|
+
// ============================================
|
|
4
|
+
// SHARED SCHEMAS
|
|
5
|
+
// ============================================
|
|
6
|
+
export const UuidSchema = z.string().uuid();
|
|
7
|
+
export const PrioritySchema = z.enum(PRIORITIES);
|
|
8
|
+
export const StatusSchema = z.enum(STATUSES);
|
|
9
|
+
export const SeveritySchema = z.enum(SEVERITIES);
|
|
10
|
+
export const FailureDomainSchema = z.enum(FAILURE_DOMAINS);
|
|
11
|
+
export const IssueTypeSchema = z.enum(ISSUE_TYPES);
|
|
12
|
+
export const NoteTypeSchema = z.enum(NOTE_TYPES);
|
|
13
|
+
export const UserRoleSchema = z.enum(USER_ROLES);
|
|
14
|
+
export const SubscriptionTierSchema = z.enum(SUBSCRIPTION_TIERS);
|
|
15
|
+
export const AvatarMimeTypeSchema = z.enum(AVATAR_MIME_TYPES);
|
|
16
|
+
export const FailureCodeSchema = z.string().regex(FAILURE_CODE_PATTERN, {
|
|
17
|
+
message: 'Invalid failure code format. Expected: DOMAIN-MODE/SEVERITY (e.g., SEM-VAL/H)',
|
|
18
|
+
});
|
|
19
|
+
// ============================================
|
|
20
|
+
// AUTH SCHEMAS
|
|
21
|
+
// ============================================
|
|
22
|
+
const PasswordSchema = z
|
|
23
|
+
.string()
|
|
24
|
+
.min(8)
|
|
25
|
+
.max(128)
|
|
26
|
+
.regex(/[a-z]/, 'Password must contain at least one lowercase letter')
|
|
27
|
+
.regex(/[A-Z]/, 'Password must contain at least one uppercase letter')
|
|
28
|
+
.regex(/[0-9]/, 'Password must contain at least one digit');
|
|
29
|
+
export const RegisterInputSchema = z.object({
|
|
30
|
+
email: z.string().email().max(255),
|
|
31
|
+
password: PasswordSchema,
|
|
32
|
+
});
|
|
33
|
+
export const LoginInputSchema = z.object({
|
|
34
|
+
email: z.string().email(),
|
|
35
|
+
password: z.string(),
|
|
36
|
+
});
|
|
37
|
+
export const UpdateProfileInputSchema = z
|
|
38
|
+
.object({
|
|
39
|
+
username: z
|
|
40
|
+
.string()
|
|
41
|
+
.regex(/^[a-z][a-z0-9_]{2,29}$/)
|
|
42
|
+
.nullish(),
|
|
43
|
+
name: z.string().max(100).nullish(),
|
|
44
|
+
bio: z.string().max(500).nullish(),
|
|
45
|
+
timezone: z.string().nullish(),
|
|
46
|
+
websiteUrl: z.string().url().max(500).nullish(),
|
|
47
|
+
avatar: z.string().nullish(), // base64
|
|
48
|
+
avatarMimeType: AvatarMimeTypeSchema.nullish(),
|
|
49
|
+
})
|
|
50
|
+
.refine((data) => Object.values(data).some((v) => v !== undefined), {
|
|
51
|
+
message: 'At least one field must be provided',
|
|
52
|
+
});
|
|
53
|
+
export const ChangePasswordInputSchema = z.object({
|
|
54
|
+
currentPassword: z.string(),
|
|
55
|
+
newPassword: PasswordSchema,
|
|
56
|
+
});
|
|
57
|
+
export const ResetPasswordInputSchema = z.object({
|
|
58
|
+
token: z.string(),
|
|
59
|
+
password: PasswordSchema,
|
|
60
|
+
});
|
|
61
|
+
export const CreateApiKeyInputSchema = z.object({
|
|
62
|
+
name: z.string().max(100).optional(),
|
|
63
|
+
expiresAt: z.string().datetime().optional(),
|
|
64
|
+
});
|
|
65
|
+
// ============================================
|
|
66
|
+
// PROJECT SCHEMAS
|
|
67
|
+
// ============================================
|
|
68
|
+
export const CreateProjectInputSchema = z.object({
|
|
69
|
+
name: z.string().min(1).max(200),
|
|
70
|
+
});
|
|
71
|
+
export const UpdateProjectInputSchema = z.object({
|
|
72
|
+
name: z.string().min(1).max(200).optional(),
|
|
73
|
+
});
|
|
74
|
+
export const DeleteProjectInputSchema = z.object({
|
|
75
|
+
confirm: z.literal(true),
|
|
76
|
+
confirmationPhrase: z.string(),
|
|
77
|
+
});
|
|
78
|
+
export const RenameProjectInputSchema = z.object({
|
|
79
|
+
oldName: z.string().min(1),
|
|
80
|
+
newName: z.string().min(1).max(200),
|
|
81
|
+
});
|
|
82
|
+
// ============================================
|
|
83
|
+
// RUN SCHEMAS
|
|
84
|
+
// ============================================
|
|
85
|
+
export const TokenUsageSchema = z.object({
|
|
86
|
+
inputTokens: z.number().int().nonnegative(),
|
|
87
|
+
outputTokens: z.number().int().nonnegative(),
|
|
88
|
+
cacheCreationTokens: z.number().int().nonnegative().optional(),
|
|
89
|
+
cacheReadTokens: z.number().int().nonnegative().optional(),
|
|
90
|
+
totalEffectiveTokens: z.number().int().nonnegative().optional(),
|
|
91
|
+
});
|
|
92
|
+
export const ValidatorInputSchema = z.object({
|
|
93
|
+
name: z.string().min(1).max(100),
|
|
94
|
+
score: z.number().min(0).max(100),
|
|
95
|
+
maxScore: z.number().min(0).max(100).optional(),
|
|
96
|
+
status: z.string().min(1).max(50),
|
|
97
|
+
model: z.string().max(50).optional(),
|
|
98
|
+
tokens: TokenUsageSchema.optional(),
|
|
99
|
+
durationMs: z.number().int().nonnegative().optional(),
|
|
100
|
+
});
|
|
101
|
+
export const RecommendationInputSchema = z.object({
|
|
102
|
+
validator: z.string().min(1).max(100),
|
|
103
|
+
title: z.string().min(1).max(500),
|
|
104
|
+
priority: PrioritySchema,
|
|
105
|
+
type: IssueTypeSchema.optional(),
|
|
106
|
+
severity: SeveritySchema.optional(),
|
|
107
|
+
failureCode: FailureCodeSchema.optional(),
|
|
108
|
+
failureDomain: FailureDomainSchema.optional(),
|
|
109
|
+
failureMode: z.string().max(50).optional(),
|
|
110
|
+
category: z.string().max(100).optional(),
|
|
111
|
+
filePath: z.string().max(1000).optional(),
|
|
112
|
+
lineNumber: z.number().int().nonnegative().optional(),
|
|
113
|
+
description: z.string().max(10000).optional(),
|
|
114
|
+
classificationConfidence: z.enum(['high', 'medium', 'low']).optional(),
|
|
115
|
+
classifiedBy: z.enum(['validator', 'classifier', 'human']).optional(),
|
|
116
|
+
secondaryFailureCodes: z.array(z.string()).optional(),
|
|
117
|
+
taxonomyVersion: z.string().optional(),
|
|
118
|
+
});
|
|
119
|
+
export const SaveFeaturesListInputSchema = z.object({
|
|
120
|
+
project: z.string().min(1).max(200),
|
|
121
|
+
workflowType: z.string().min(1).max(100),
|
|
122
|
+
validators: z.array(ValidatorInputSchema).min(1),
|
|
123
|
+
recommendations: z.array(RecommendationInputSchema),
|
|
124
|
+
timestamp: z.string().datetime().optional(),
|
|
125
|
+
rawMarkdown: z.string().optional(),
|
|
126
|
+
summary: z
|
|
127
|
+
.object({
|
|
128
|
+
allGatesPassed: z.boolean().optional(),
|
|
129
|
+
averageScore: z.number().min(0).max(100).optional(),
|
|
130
|
+
})
|
|
131
|
+
.optional(),
|
|
132
|
+
idempotencyKey: z.string().max(100).optional(),
|
|
133
|
+
});
|
|
134
|
+
export const ArchiveRunsInputSchema = z.object({
|
|
135
|
+
project: z.string().min(1),
|
|
136
|
+
beforeRunNumber: z.number().int().positive().optional(),
|
|
137
|
+
beforeDate: z.string().datetime().optional(),
|
|
138
|
+
keepLast: z.number().int().positive().optional(),
|
|
139
|
+
reason: z.string().max(500).optional(),
|
|
140
|
+
});
|
|
141
|
+
// ============================================
|
|
142
|
+
// ISSUE SCHEMAS
|
|
143
|
+
// ============================================
|
|
144
|
+
export const CreateUserIssueInputSchema = z.object({
|
|
145
|
+
project: z.string().min(1).max(200),
|
|
146
|
+
title: z.string().min(1).max(500),
|
|
147
|
+
priority: PrioritySchema,
|
|
148
|
+
severity: SeveritySchema.optional(),
|
|
149
|
+
category: z.string().max(100).optional(),
|
|
150
|
+
description: z.string().max(10000).optional(),
|
|
151
|
+
filePath: z.string().max(1000).optional(),
|
|
152
|
+
lineNumber: z.number().int().nonnegative().optional(),
|
|
153
|
+
failureCode: FailureCodeSchema.optional(),
|
|
154
|
+
failureDomain: FailureDomainSchema.optional(),
|
|
155
|
+
failureMode: z.string().max(50).optional(),
|
|
156
|
+
validator: z.string().min(1).max(100).optional(),
|
|
157
|
+
type: IssueTypeSchema.optional(),
|
|
158
|
+
});
|
|
159
|
+
export const UpdateIssueInputSchema = z.object({
|
|
160
|
+
title: z.string().min(1).max(500).optional(),
|
|
161
|
+
status: StatusSchema.optional(),
|
|
162
|
+
priority: PrioritySchema.optional(),
|
|
163
|
+
severity: SeveritySchema.nullish(),
|
|
164
|
+
failureCode: FailureCodeSchema.nullish(),
|
|
165
|
+
failureDomain: FailureDomainSchema.nullish(),
|
|
166
|
+
failureMode: z.string().max(50).nullish(),
|
|
167
|
+
category: z.string().max(100).nullish(),
|
|
168
|
+
type: IssueTypeSchema.nullish(),
|
|
169
|
+
filePath: z.string().max(1000).nullish(),
|
|
170
|
+
lineNumber: z.number().int().nonnegative().nullish(),
|
|
171
|
+
});
|
|
172
|
+
export const UpdateIssueStatusInputSchema = z.object({
|
|
173
|
+
status: StatusSchema,
|
|
174
|
+
reason: z.string().max(500).optional(),
|
|
175
|
+
});
|
|
176
|
+
export const CreateIssueNoteInputSchema = z.object({
|
|
177
|
+
content: z.string().min(1).max(10000),
|
|
178
|
+
noteType: NoteTypeSchema.optional(),
|
|
179
|
+
createdBy: z.string().max(200).optional(),
|
|
180
|
+
});
|
|
181
|
+
export const BulkStatusUpdateItemSchema = z.object({
|
|
182
|
+
issueId: UuidSchema.optional(),
|
|
183
|
+
id: UuidSchema.optional(),
|
|
184
|
+
status: StatusSchema,
|
|
185
|
+
reason: z.string().max(500).optional(),
|
|
186
|
+
});
|
|
187
|
+
export const BulkStatusUpdateInputSchema = z.object({
|
|
188
|
+
updates: z.array(BulkStatusUpdateItemSchema).min(1).max(100),
|
|
189
|
+
});
|
|
190
|
+
// ============================================
|
|
191
|
+
// QUERY SCHEMAS
|
|
192
|
+
// ============================================
|
|
193
|
+
export const ListIssuesQuerySchema = z.object({
|
|
194
|
+
status: StatusSchema.optional(),
|
|
195
|
+
priority: PrioritySchema.optional(),
|
|
196
|
+
severity: SeveritySchema.optional(),
|
|
197
|
+
failureDomain: FailureDomainSchema.optional(),
|
|
198
|
+
validator: z.string().optional(),
|
|
199
|
+
limit: z.coerce.number().int().min(1).max(100).optional(),
|
|
200
|
+
offset: z.coerce.number().int().nonnegative().optional(),
|
|
201
|
+
includeResolved: z.coerce.boolean().optional(),
|
|
202
|
+
minTimesSeen: z.coerce.number().int().positive().optional(),
|
|
203
|
+
dateStart: z.string().datetime().optional(),
|
|
204
|
+
dateEnd: z.string().datetime().optional(),
|
|
205
|
+
});
|
|
206
|
+
export const IssueSearchQuerySchema = z.object({
|
|
207
|
+
query: z.string().optional(),
|
|
208
|
+
projects: z.array(z.string()).optional(),
|
|
209
|
+
validators: z.array(z.string()).optional(),
|
|
210
|
+
status: z.union([StatusSchema, z.literal('all')]).optional(),
|
|
211
|
+
priority: z.union([PrioritySchema, z.literal('all')]).optional(),
|
|
212
|
+
severities: z.array(SeveritySchema).optional(),
|
|
213
|
+
failureDomains: z.array(FailureDomainSchema).optional(),
|
|
214
|
+
limit: z.coerce.number().int().min(1).max(100).optional(),
|
|
215
|
+
});
|
|
216
|
+
export const AnalyticsQuerySchema = z.object({
|
|
217
|
+
project: z.string().optional(),
|
|
218
|
+
days: z.coerce.number().int().min(1).max(365).optional(),
|
|
219
|
+
limit: z.coerce.number().int().min(1).max(100).optional(),
|
|
220
|
+
});
|
|
221
|
+
export const BurndownQuerySchema = AnalyticsQuerySchema.extend({
|
|
222
|
+
granularity: z.enum(['daily', 'weekly']).optional(),
|
|
223
|
+
});
|
|
224
|
+
export const VelocityQuerySchema = AnalyticsQuerySchema.extend({
|
|
225
|
+
alertThreshold: z.coerce.number().int().min(10).max(500).optional(),
|
|
226
|
+
});
|
|
227
|
+
export const DiscoveryQuerySchema = AnalyticsQuerySchema.extend({
|
|
228
|
+
groupBy: z.enum(['day', 'week', 'month']).optional(),
|
|
229
|
+
});
|
|
230
|
+
export const ValidatorMatrixQuerySchema = AnalyticsQuerySchema.extend({
|
|
231
|
+
minIssues: z.coerce.number().int().min(1).max(1000).optional(),
|
|
232
|
+
});
|
|
233
|
+
// ============================================
|
|
234
|
+
// ADMIN SCHEMAS
|
|
235
|
+
// ============================================
|
|
236
|
+
export const AdminCreateUserInputSchema = z.object({
|
|
237
|
+
email: z.string().email().max(255),
|
|
238
|
+
password: PasswordSchema.optional(),
|
|
239
|
+
role: UserRoleSchema,
|
|
240
|
+
subscriptionTier: SubscriptionTierSchema,
|
|
241
|
+
sendWelcomeEmail: z.boolean().optional(),
|
|
242
|
+
});
|
|
243
|
+
export const AdminUpdateUserInputSchema = z
|
|
244
|
+
.object({
|
|
245
|
+
email: z.string().email().max(255).optional(),
|
|
246
|
+
role: UserRoleSchema.optional(),
|
|
247
|
+
subscriptionTier: SubscriptionTierSchema.optional(),
|
|
248
|
+
})
|
|
249
|
+
.refine((data) => Object.values(data).some((v) => v !== undefined), {
|
|
250
|
+
message: 'At least one field must be provided',
|
|
251
|
+
});
|
|
252
|
+
export const BulkDeactivateInputSchema = z.object({
|
|
253
|
+
userIds: z.array(UuidSchema).min(1).max(50),
|
|
254
|
+
});
|
|
255
|
+
export const ListUsersQuerySchema = z.object({
|
|
256
|
+
search: z.string().optional(),
|
|
257
|
+
role: z.union([UserRoleSchema, z.array(UserRoleSchema)]).optional(),
|
|
258
|
+
subscriptionTier: z.union([SubscriptionTierSchema, z.array(SubscriptionTierSchema)]).optional(),
|
|
259
|
+
isActive: z.coerce.boolean().optional(),
|
|
260
|
+
sortBy: z.enum(['email', 'createdAt', 'updatedAt', 'role']).optional(),
|
|
261
|
+
sortOrder: z.enum(['asc', 'desc']).optional(),
|
|
262
|
+
page: z.coerce.number().int().positive().optional(),
|
|
263
|
+
limit: z.coerce.number().int().min(1).max(100).optional(),
|
|
264
|
+
});
|
|
265
|
+
export const ListSessionsQuerySchema = z.object({
|
|
266
|
+
userId: UuidSchema.optional(),
|
|
267
|
+
sortBy: z.enum(['createdAt', 'lastActiveAt', 'expiresAt']).optional(),
|
|
268
|
+
sortOrder: z.enum(['asc', 'desc']).optional(),
|
|
269
|
+
page: z.coerce.number().int().positive().optional(),
|
|
270
|
+
limit: z.coerce.number().int().min(1).max(100).optional(),
|
|
271
|
+
});
|
|
272
|
+
export const ListKeysQuerySchema = z.object({
|
|
273
|
+
userId: UuidSchema.optional(),
|
|
274
|
+
search: z.string().max(100).optional(),
|
|
275
|
+
sortBy: z.enum(['createdAt', 'lastUsedAt', 'expiresAt']).optional(),
|
|
276
|
+
sortOrder: z.enum(['asc', 'desc']).optional(),
|
|
277
|
+
page: z.coerce.number().int().positive().optional(),
|
|
278
|
+
limit: z.coerce.number().int().min(1).max(100).optional(),
|
|
279
|
+
});
|
|
280
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/types/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for @uluops/ops-sdk
|
|
3
|
+
*
|
|
4
|
+
* Shared utilities are re-exported from @uluops/sdk-core.
|
|
5
|
+
* SDK-specific utilities are defined here.
|
|
6
|
+
*/
|
|
7
|
+
export { sleep, retry, truncate, isPlainObject, isUuid } from '@uluops/sdk-core/utils';
|
|
8
|
+
/**
|
|
9
|
+
* Deep merge two objects, recursively merging nested objects
|
|
10
|
+
* @param target - Base object to merge into
|
|
11
|
+
* @param source - Object with values to overlay
|
|
12
|
+
* @returns New merged object (does not mutate inputs)
|
|
13
|
+
*/
|
|
14
|
+
export declare function deepMerge<T extends Record<string, unknown>>(target: T, source: Partial<T>): T;
|
|
15
|
+
/**
|
|
16
|
+
* Pick specified keys from an object
|
|
17
|
+
* @param obj - Source object
|
|
18
|
+
* @param keys - Keys to include in the result
|
|
19
|
+
* @returns New object containing only the specified keys
|
|
20
|
+
*/
|
|
21
|
+
export declare function pick<T extends Record<string, unknown>, K extends keyof T>(obj: T, keys: K[]): Pick<T, K>;
|
|
22
|
+
/**
|
|
23
|
+
* Omit specified keys from an object
|
|
24
|
+
* @param obj - Source object
|
|
25
|
+
* @param keys - Keys to exclude from the result
|
|
26
|
+
* @returns New object without the specified keys
|
|
27
|
+
*/
|
|
28
|
+
export declare function omit<T extends Record<string, unknown>, K extends keyof T>(obj: T, keys: K[]): Omit<T, K>;
|
|
29
|
+
/**
|
|
30
|
+
* Remove undefined values from an object
|
|
31
|
+
* @param obj - Source object to compact
|
|
32
|
+
* @returns New object with undefined values removed
|
|
33
|
+
*/
|
|
34
|
+
export declare function compact<T extends Record<string, unknown>>(obj: T): Partial<T>;
|
|
35
|
+
/**
|
|
36
|
+
* Format a date for display as an ISO 8601 string
|
|
37
|
+
* @param date - Date object or date string to format
|
|
38
|
+
* @returns ISO 8601 formatted date string
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatDate(date: string | Date): string;
|
|
41
|
+
/**
|
|
42
|
+
* Convert camelCase to snake_case
|
|
43
|
+
* @param str - camelCase string to convert
|
|
44
|
+
* @returns snake_case formatted string
|
|
45
|
+
*/
|
|
46
|
+
export declare function toSnakeCase(str: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* Convert snake_case to camelCase
|
|
49
|
+
* @param str - snake_case string to convert
|
|
50
|
+
* @returns camelCase formatted string
|
|
51
|
+
*/
|
|
52
|
+
export declare function toCamelCase(str: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Get a property from an object, trying camelCase first then snake_case
|
|
55
|
+
* Useful for handling API responses that may use either format
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const count = getFlexibleProperty(response, 'newIssues', 0);
|
|
60
|
+
* // Tries response.newIssues, then response.new_issues, then returns 0
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function getFlexibleProperty<T>(obj: object, camelCaseKey: string, defaultValue: T): T;
|
|
64
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAYvF;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GACjB,CAAC,CAeH;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACvE,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,EAAE,GACR,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAUZ;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACvE,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,EAAE,GACR,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAQZ;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAU7E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGtD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,CAAC,GACd,CAAC,CAYH"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for @uluops/ops-sdk
|
|
3
|
+
*
|
|
4
|
+
* Shared utilities are re-exported from @uluops/sdk-core.
|
|
5
|
+
* SDK-specific utilities are defined here.
|
|
6
|
+
*/
|
|
7
|
+
// Re-export shared utilities from sdk-core
|
|
8
|
+
export { sleep, retry, truncate, isPlainObject, isUuid } from '@uluops/sdk-core/utils';
|
|
9
|
+
// ---- SDK-specific utilities ----
|
|
10
|
+
/**
|
|
11
|
+
* Check if a value is a plain object (local copy for deepMerge to avoid
|
|
12
|
+
* importing the re-exported version which could cause issues)
|
|
13
|
+
*/
|
|
14
|
+
function isObj(value) {
|
|
15
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Deep merge two objects, recursively merging nested objects
|
|
19
|
+
* @param target - Base object to merge into
|
|
20
|
+
* @param source - Object with values to overlay
|
|
21
|
+
* @returns New merged object (does not mutate inputs)
|
|
22
|
+
*/
|
|
23
|
+
export function deepMerge(target, source) {
|
|
24
|
+
const result = { ...target };
|
|
25
|
+
for (const key of Object.keys(source)) {
|
|
26
|
+
const sourceValue = source[key];
|
|
27
|
+
const targetValue = result[key];
|
|
28
|
+
if (isObj(sourceValue) && isObj(targetValue)) {
|
|
29
|
+
result[key] = deepMerge(targetValue, sourceValue);
|
|
30
|
+
}
|
|
31
|
+
else if (sourceValue !== undefined) {
|
|
32
|
+
result[key] = sourceValue;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Pick specified keys from an object
|
|
39
|
+
* @param obj - Source object
|
|
40
|
+
* @param keys - Keys to include in the result
|
|
41
|
+
* @returns New object containing only the specified keys
|
|
42
|
+
*/
|
|
43
|
+
export function pick(obj, keys) {
|
|
44
|
+
const result = {};
|
|
45
|
+
for (const key of keys) {
|
|
46
|
+
if (key in obj) {
|
|
47
|
+
result[key] = obj[key];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Omit specified keys from an object
|
|
54
|
+
* @param obj - Source object
|
|
55
|
+
* @param keys - Keys to exclude from the result
|
|
56
|
+
* @returns New object without the specified keys
|
|
57
|
+
*/
|
|
58
|
+
export function omit(obj, keys) {
|
|
59
|
+
const result = { ...obj };
|
|
60
|
+
for (const key of keys) {
|
|
61
|
+
delete result[key];
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Remove undefined values from an object
|
|
67
|
+
* @param obj - Source object to compact
|
|
68
|
+
* @returns New object with undefined values removed
|
|
69
|
+
*/
|
|
70
|
+
export function compact(obj) {
|
|
71
|
+
const result = {};
|
|
72
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
73
|
+
if (value !== undefined) {
|
|
74
|
+
result[key] = value;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Format a date for display as an ISO 8601 string
|
|
81
|
+
* @param date - Date object or date string to format
|
|
82
|
+
* @returns ISO 8601 formatted date string
|
|
83
|
+
*/
|
|
84
|
+
export function formatDate(date) {
|
|
85
|
+
const d = typeof date === 'string' ? new Date(date) : date;
|
|
86
|
+
return d.toISOString();
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Convert camelCase to snake_case
|
|
90
|
+
* @param str - camelCase string to convert
|
|
91
|
+
* @returns snake_case formatted string
|
|
92
|
+
*/
|
|
93
|
+
export function toSnakeCase(str) {
|
|
94
|
+
return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Convert snake_case to camelCase
|
|
98
|
+
* @param str - snake_case string to convert
|
|
99
|
+
* @returns camelCase formatted string
|
|
100
|
+
*/
|
|
101
|
+
export function toCamelCase(str) {
|
|
102
|
+
return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get a property from an object, trying camelCase first then snake_case
|
|
106
|
+
* Useful for handling API responses that may use either format
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* const count = getFlexibleProperty(response, 'newIssues', 0);
|
|
111
|
+
* // Tries response.newIssues, then response.new_issues, then returns 0
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export function getFlexibleProperty(obj, camelCaseKey, defaultValue) {
|
|
115
|
+
const record = obj;
|
|
116
|
+
// Try camelCase first
|
|
117
|
+
if (camelCaseKey in record && record[camelCaseKey] !== undefined) {
|
|
118
|
+
return record[camelCaseKey];
|
|
119
|
+
}
|
|
120
|
+
// Try snake_case
|
|
121
|
+
const snakeKey = toSnakeCase(camelCaseKey);
|
|
122
|
+
if (snakeKey in record && record[snakeKey] !== undefined) {
|
|
123
|
+
return record[snakeKey];
|
|
124
|
+
}
|
|
125
|
+
return defaultValue;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,KAAK,MAAM,GACZ,MAAM,aAAa,CAAC;AACrB,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,GAEf,MAAM,aAAa,CAAC;AACrB,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,KAAK,MAAM,GACZ,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,GAEf,MAAM,wBAAwB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@uluops/ops-sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "SDK for the UluOps validation tracker API",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"./types": {
|
|
14
|
+
"import": "./dist/types/index.js",
|
|
15
|
+
"types": "./dist/types/index.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"./types/enums": {
|
|
18
|
+
"import": "./dist/types/enums.js",
|
|
19
|
+
"types": "./dist/types/enums.d.ts"
|
|
20
|
+
},
|
|
21
|
+
"./types/auth": {
|
|
22
|
+
"import": "./dist/types/auth.js",
|
|
23
|
+
"types": "./dist/types/auth.d.ts"
|
|
24
|
+
},
|
|
25
|
+
"./types/projects": {
|
|
26
|
+
"import": "./dist/types/projects.js",
|
|
27
|
+
"types": "./dist/types/projects.d.ts"
|
|
28
|
+
},
|
|
29
|
+
"./types/runs": {
|
|
30
|
+
"import": "./dist/types/runs.js",
|
|
31
|
+
"types": "./dist/types/runs.d.ts"
|
|
32
|
+
},
|
|
33
|
+
"./types/issues": {
|
|
34
|
+
"import": "./dist/types/issues.js",
|
|
35
|
+
"types": "./dist/types/issues.d.ts"
|
|
36
|
+
},
|
|
37
|
+
"./types/analytics": {
|
|
38
|
+
"import": "./dist/types/analytics.js",
|
|
39
|
+
"types": "./dist/types/analytics.d.ts"
|
|
40
|
+
},
|
|
41
|
+
"./types/responses": {
|
|
42
|
+
"import": "./dist/types/responses.js",
|
|
43
|
+
"types": "./dist/types/responses.d.ts"
|
|
44
|
+
},
|
|
45
|
+
"./types/schemas": {
|
|
46
|
+
"import": "./dist/types/schemas.js",
|
|
47
|
+
"types": "./dist/types/schemas.d.ts"
|
|
48
|
+
},
|
|
49
|
+
"./errors": {
|
|
50
|
+
"import": "./dist/errors/index.js",
|
|
51
|
+
"types": "./dist/errors/index.d.ts"
|
|
52
|
+
},
|
|
53
|
+
"./config": {
|
|
54
|
+
"import": "./dist/config/index.js",
|
|
55
|
+
"types": "./dist/config/index.d.ts"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"files": [
|
|
59
|
+
"dist"
|
|
60
|
+
],
|
|
61
|
+
"scripts": {
|
|
62
|
+
"build": "tsc",
|
|
63
|
+
"typecheck": "tsc --noEmit",
|
|
64
|
+
"test": "vitest run",
|
|
65
|
+
"test:watch": "vitest watch",
|
|
66
|
+
"test:coverage": "vitest run --coverage",
|
|
67
|
+
"lint": "eslint src/",
|
|
68
|
+
"prepublishOnly": "npm run build"
|
|
69
|
+
},
|
|
70
|
+
"keywords": [
|
|
71
|
+
"uluops",
|
|
72
|
+
"validation",
|
|
73
|
+
"tracker",
|
|
74
|
+
"sdk",
|
|
75
|
+
"api"
|
|
76
|
+
],
|
|
77
|
+
"author": "Uluops <engineering@uluops.com>",
|
|
78
|
+
"license": "MIT",
|
|
79
|
+
"repository": {
|
|
80
|
+
"type": "git",
|
|
81
|
+
"url": "git+https://github.com/Uluops/-uluops-ops-sdk.git"
|
|
82
|
+
},
|
|
83
|
+
"dependencies": {
|
|
84
|
+
"@uluops/sdk-core": "^0.1.0",
|
|
85
|
+
"zod": "^3.24.1"
|
|
86
|
+
},
|
|
87
|
+
"devDependencies": {
|
|
88
|
+
"@types/node": "^22.12.0",
|
|
89
|
+
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
|
90
|
+
"@typescript-eslint/parser": "^8.54.0",
|
|
91
|
+
"eslint": "^9.39.2",
|
|
92
|
+
"nock": "^14.0.1",
|
|
93
|
+
"typescript": "^5.7.3",
|
|
94
|
+
"typescript-eslint": "^8.54.0",
|
|
95
|
+
"vitest": "^3.0.4"
|
|
96
|
+
},
|
|
97
|
+
"publishConfig": {
|
|
98
|
+
"access": "restricted"
|
|
99
|
+
},
|
|
100
|
+
"engines": {
|
|
101
|
+
"node": ">=18.0.0"
|
|
102
|
+
}
|
|
103
|
+
}
|