@numa-tech/numa 1.26.14 → 1.26.16

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.
@@ -0,0 +1,421 @@
1
+ import { z } from "zod";
2
+ export declare const findingTypes: readonly ["EXPIRING", "EXPIRED_IN_USE", "HOSTNAME_MISMATCH", "CHAIN_INVALID", "UNEXPECTED_CERT", "RENEWAL_NOT_DEPLOYED", "DRIFT", "PROBE_UNAVAILABLE", "EXPIRED_STILL_BOUND", "ORPHAN_COPY", "KEY_REUSED"];
3
+ export declare const findingSeverities: readonly ["P1", "P2", "P3"];
4
+ export declare const findingStatuses: readonly ["OPEN", "CLOSED", "ALL"];
5
+ export declare const pageSchema: <T extends z.ZodTypeAny>(item: T) => z.ZodObject<{
6
+ items: z.ZodArray<T>;
7
+ total: z.ZodNumber;
8
+ page: z.ZodNumber;
9
+ size: z.ZodNumber;
10
+ }, z.core.$strip>;
11
+ export declare const certificateSchema: z.ZodObject<{
12
+ fingerprint: z.ZodString;
13
+ commonName: z.ZodNullable<z.ZodString>;
14
+ sans: z.ZodArray<z.ZodString>;
15
+ issuer: z.ZodNullable<z.ZodString>;
16
+ serial: z.ZodNullable<z.ZodString>;
17
+ notBefore: z.ZodNullable<z.ZodString>;
18
+ notAfter: z.ZodNullable<z.ZodString>;
19
+ publicKeyFingerprint: z.ZodNullable<z.ZodString>;
20
+ publicKeyScheme: z.ZodNullable<z.ZodString>;
21
+ provenance: z.ZodNullable<z.ZodString>;
22
+ status: z.ZodNullable<z.ZodEnum<{
23
+ ACTIVE: "ACTIVE";
24
+ OBSERVED_ONLY: "OBSERVED_ONLY";
25
+ RETIRED: "RETIRED";
26
+ SUPERSEDED: "SUPERSEDED";
27
+ }>>;
28
+ supersededBy: z.ZodNullable<z.ZodString>;
29
+ }, z.core.$strip>;
30
+ export declare const copySchema: z.ZodObject<{
31
+ id: z.ZodString;
32
+ accountId: z.ZodString;
33
+ site: z.ZodEnum<{
34
+ CHINA: "CHINA";
35
+ INTERNATIONAL: "INTERNATIONAL";
36
+ }>;
37
+ casId: z.ZodString;
38
+ certIdentifier: z.ZodNullable<z.ZodString>;
39
+ name: z.ZodNullable<z.ZodString>;
40
+ status: z.ZodNullable<z.ZodString>;
41
+ fingerprint: z.ZodNullable<z.ZodString>;
42
+ lastSeenAt: z.ZodString;
43
+ removedAt: z.ZodNullable<z.ZodString>;
44
+ }, z.core.$strip>;
45
+ export declare const bindingSchema: z.ZodObject<{
46
+ id: z.ZodString;
47
+ accountId: z.ZodString;
48
+ region: z.ZodString;
49
+ albId: z.ZodString;
50
+ albName: z.ZodNullable<z.ZodString>;
51
+ listenerId: z.ZodString;
52
+ port: z.ZodNumber;
53
+ protocol: z.ZodString;
54
+ certificateId: z.ZodString;
55
+ defaultCertificate: z.ZodBoolean;
56
+ associationStatus: z.ZodNullable<z.ZodString>;
57
+ managementSource: z.ZodNullable<z.ZodString>;
58
+ lastSeenAt: z.ZodString;
59
+ removedAt: z.ZodNullable<z.ZodString>;
60
+ }, z.core.$strip>;
61
+ export declare const endpointSchema: z.ZodObject<{
62
+ id: z.ZodString;
63
+ hostname: z.ZodString;
64
+ port: z.ZodNumber;
65
+ ownerTeamId: z.ZodNullable<z.ZodString>;
66
+ ownershipStatus: z.ZodEnum<{
67
+ CONFIRMED: "CONFIRMED";
68
+ PENDING: "PENDING";
69
+ }>;
70
+ managementSource: z.ZodString;
71
+ environmentId: z.ZodNullable<z.ZodString>;
72
+ tier: z.ZodNullable<z.ZodEnum<{
73
+ DEV: "DEV";
74
+ PRD: "PRD";
75
+ STG: "STG";
76
+ UNKNOWN: "UNKNOWN";
77
+ }>>;
78
+ expectedFingerprint: z.ZodNullable<z.ZodString>;
79
+ enabled: z.ZodBoolean;
80
+ version: z.ZodNumber;
81
+ }, z.core.$strip>;
82
+ export declare const probeSchema: z.ZodObject<{
83
+ id: z.ZodString;
84
+ runId: z.ZodString;
85
+ attemptedAt: z.ZodString;
86
+ observedAt: z.ZodNullable<z.ZodString>;
87
+ outcome: z.ZodEnum<{
88
+ OBSERVED: "OBSERVED";
89
+ UNKNOWN: "UNKNOWN";
90
+ }>;
91
+ errorCode: z.ZodNullable<z.ZodString>;
92
+ elapsedMs: z.ZodNumber;
93
+ chain: z.ZodArray<z.ZodObject<{
94
+ fingerprint: z.ZodString;
95
+ commonName: z.ZodNullable<z.ZodString>;
96
+ sans: z.ZodArray<z.ZodString>;
97
+ issuer: z.ZodNullable<z.ZodString>;
98
+ serial: z.ZodNullable<z.ZodString>;
99
+ notBefore: z.ZodNullable<z.ZodString>;
100
+ notAfter: z.ZodNullable<z.ZodString>;
101
+ publicKeyFingerprint: z.ZodNullable<z.ZodString>;
102
+ publicKeyScheme: z.ZodNullable<z.ZodString>;
103
+ provenance: z.ZodNullable<z.ZodString>;
104
+ status: z.ZodNullable<z.ZodEnum<{
105
+ ACTIVE: "ACTIVE";
106
+ OBSERVED_ONLY: "OBSERVED_ONLY";
107
+ RETIRED: "RETIRED";
108
+ SUPERSEDED: "SUPERSEDED";
109
+ }>>;
110
+ supersededBy: z.ZodNullable<z.ZodString>;
111
+ }, z.core.$strip>>;
112
+ validity: z.ZodEnum<{
113
+ EXPIRED: "EXPIRED";
114
+ NOT_YET_VALID: "NOT_YET_VALID";
115
+ UNKNOWN: "UNKNOWN";
116
+ VALID: "VALID";
117
+ }>;
118
+ hostname: z.ZodEnum<{
119
+ INVALID: "INVALID";
120
+ UNKNOWN: "UNKNOWN";
121
+ VALID: "VALID";
122
+ }>;
123
+ trust: z.ZodEnum<{
124
+ INVALID: "INVALID";
125
+ UNKNOWN: "UNKNOWN";
126
+ VALID: "VALID";
127
+ }>;
128
+ }, z.core.$strip>;
129
+ export declare const certificateDetailSchema: z.ZodObject<{
130
+ certificate: z.ZodObject<{
131
+ fingerprint: z.ZodString;
132
+ commonName: z.ZodNullable<z.ZodString>;
133
+ sans: z.ZodArray<z.ZodString>;
134
+ issuer: z.ZodNullable<z.ZodString>;
135
+ serial: z.ZodNullable<z.ZodString>;
136
+ notBefore: z.ZodNullable<z.ZodString>;
137
+ notAfter: z.ZodNullable<z.ZodString>;
138
+ publicKeyFingerprint: z.ZodNullable<z.ZodString>;
139
+ publicKeyScheme: z.ZodNullable<z.ZodString>;
140
+ provenance: z.ZodNullable<z.ZodString>;
141
+ status: z.ZodNullable<z.ZodEnum<{
142
+ ACTIVE: "ACTIVE";
143
+ OBSERVED_ONLY: "OBSERVED_ONLY";
144
+ RETIRED: "RETIRED";
145
+ SUPERSEDED: "SUPERSEDED";
146
+ }>>;
147
+ supersededBy: z.ZodNullable<z.ZodString>;
148
+ }, z.core.$strip>;
149
+ endpoints: z.ZodObject<{
150
+ items: z.ZodArray<z.ZodObject<{
151
+ id: z.ZodString;
152
+ hostname: z.ZodString;
153
+ port: z.ZodNumber;
154
+ ownerTeamId: z.ZodNullable<z.ZodString>;
155
+ ownershipStatus: z.ZodEnum<{
156
+ CONFIRMED: "CONFIRMED";
157
+ PENDING: "PENDING";
158
+ }>;
159
+ managementSource: z.ZodString;
160
+ environmentId: z.ZodNullable<z.ZodString>;
161
+ tier: z.ZodNullable<z.ZodEnum<{
162
+ DEV: "DEV";
163
+ PRD: "PRD";
164
+ STG: "STG";
165
+ UNKNOWN: "UNKNOWN";
166
+ }>>;
167
+ expectedFingerprint: z.ZodNullable<z.ZodString>;
168
+ enabled: z.ZodBoolean;
169
+ version: z.ZodNumber;
170
+ }, z.core.$strip>>;
171
+ total: z.ZodNumber;
172
+ page: z.ZodNumber;
173
+ size: z.ZodNumber;
174
+ }, z.core.$strip>;
175
+ copies: z.ZodObject<{
176
+ items: z.ZodArray<z.ZodObject<{
177
+ id: z.ZodString;
178
+ accountId: z.ZodString;
179
+ site: z.ZodEnum<{
180
+ CHINA: "CHINA";
181
+ INTERNATIONAL: "INTERNATIONAL";
182
+ }>;
183
+ casId: z.ZodString;
184
+ certIdentifier: z.ZodNullable<z.ZodString>;
185
+ name: z.ZodNullable<z.ZodString>;
186
+ status: z.ZodNullable<z.ZodString>;
187
+ fingerprint: z.ZodNullable<z.ZodString>;
188
+ lastSeenAt: z.ZodString;
189
+ removedAt: z.ZodNullable<z.ZodString>;
190
+ }, z.core.$strip>>;
191
+ total: z.ZodNumber;
192
+ page: z.ZodNumber;
193
+ size: z.ZodNumber;
194
+ }, z.core.$strip>;
195
+ bindings: z.ZodObject<{
196
+ items: z.ZodArray<z.ZodObject<{
197
+ id: z.ZodString;
198
+ accountId: z.ZodString;
199
+ region: z.ZodString;
200
+ albId: z.ZodString;
201
+ albName: z.ZodNullable<z.ZodString>;
202
+ listenerId: z.ZodString;
203
+ port: z.ZodNumber;
204
+ protocol: z.ZodString;
205
+ certificateId: z.ZodString;
206
+ defaultCertificate: z.ZodBoolean;
207
+ associationStatus: z.ZodNullable<z.ZodString>;
208
+ managementSource: z.ZodNullable<z.ZodString>;
209
+ lastSeenAt: z.ZodString;
210
+ removedAt: z.ZodNullable<z.ZodString>;
211
+ }, z.core.$strip>>;
212
+ total: z.ZodNumber;
213
+ page: z.ZodNumber;
214
+ size: z.ZodNumber;
215
+ }, z.core.$strip>;
216
+ }, z.core.$strip>;
217
+ export declare const endpointDetailSchema: z.ZodObject<{
218
+ endpoint: z.ZodObject<{
219
+ id: z.ZodString;
220
+ hostname: z.ZodString;
221
+ port: z.ZodNumber;
222
+ ownerTeamId: z.ZodNullable<z.ZodString>;
223
+ ownershipStatus: z.ZodEnum<{
224
+ CONFIRMED: "CONFIRMED";
225
+ PENDING: "PENDING";
226
+ }>;
227
+ managementSource: z.ZodString;
228
+ environmentId: z.ZodNullable<z.ZodString>;
229
+ tier: z.ZodNullable<z.ZodEnum<{
230
+ DEV: "DEV";
231
+ PRD: "PRD";
232
+ STG: "STG";
233
+ UNKNOWN: "UNKNOWN";
234
+ }>>;
235
+ expectedFingerprint: z.ZodNullable<z.ZodString>;
236
+ enabled: z.ZodBoolean;
237
+ version: z.ZodNumber;
238
+ }, z.core.$strip>;
239
+ bindings: z.ZodObject<{
240
+ items: z.ZodArray<z.ZodObject<{
241
+ id: z.ZodString;
242
+ accountId: z.ZodString;
243
+ region: z.ZodString;
244
+ albId: z.ZodString;
245
+ albName: z.ZodNullable<z.ZodString>;
246
+ listenerId: z.ZodString;
247
+ port: z.ZodNumber;
248
+ protocol: z.ZodString;
249
+ certificateId: z.ZodString;
250
+ defaultCertificate: z.ZodBoolean;
251
+ associationStatus: z.ZodNullable<z.ZodString>;
252
+ managementSource: z.ZodNullable<z.ZodString>;
253
+ lastSeenAt: z.ZodString;
254
+ removedAt: z.ZodNullable<z.ZodString>;
255
+ }, z.core.$strip>>;
256
+ total: z.ZodNumber;
257
+ page: z.ZodNumber;
258
+ size: z.ZodNumber;
259
+ }, z.core.$strip>;
260
+ latestProbe: z.ZodNullable<z.ZodObject<{
261
+ id: z.ZodString;
262
+ runId: z.ZodString;
263
+ attemptedAt: z.ZodString;
264
+ observedAt: z.ZodNullable<z.ZodString>;
265
+ outcome: z.ZodEnum<{
266
+ OBSERVED: "OBSERVED";
267
+ UNKNOWN: "UNKNOWN";
268
+ }>;
269
+ errorCode: z.ZodNullable<z.ZodString>;
270
+ elapsedMs: z.ZodNumber;
271
+ chain: z.ZodArray<z.ZodObject<{
272
+ fingerprint: z.ZodString;
273
+ commonName: z.ZodNullable<z.ZodString>;
274
+ sans: z.ZodArray<z.ZodString>;
275
+ issuer: z.ZodNullable<z.ZodString>;
276
+ serial: z.ZodNullable<z.ZodString>;
277
+ notBefore: z.ZodNullable<z.ZodString>;
278
+ notAfter: z.ZodNullable<z.ZodString>;
279
+ publicKeyFingerprint: z.ZodNullable<z.ZodString>;
280
+ publicKeyScheme: z.ZodNullable<z.ZodString>;
281
+ provenance: z.ZodNullable<z.ZodString>;
282
+ status: z.ZodNullable<z.ZodEnum<{
283
+ ACTIVE: "ACTIVE";
284
+ OBSERVED_ONLY: "OBSERVED_ONLY";
285
+ RETIRED: "RETIRED";
286
+ SUPERSEDED: "SUPERSEDED";
287
+ }>>;
288
+ supersededBy: z.ZodNullable<z.ZodString>;
289
+ }, z.core.$strip>>;
290
+ validity: z.ZodEnum<{
291
+ EXPIRED: "EXPIRED";
292
+ NOT_YET_VALID: "NOT_YET_VALID";
293
+ UNKNOWN: "UNKNOWN";
294
+ VALID: "VALID";
295
+ }>;
296
+ hostname: z.ZodEnum<{
297
+ INVALID: "INVALID";
298
+ UNKNOWN: "UNKNOWN";
299
+ VALID: "VALID";
300
+ }>;
301
+ trust: z.ZodEnum<{
302
+ INVALID: "INVALID";
303
+ UNKNOWN: "UNKNOWN";
304
+ VALID: "VALID";
305
+ }>;
306
+ }, z.core.$strip>>;
307
+ observationStatus: z.ZodEnum<{
308
+ NOT_OBSERVED: "NOT_OBSERVED";
309
+ OBSERVED: "OBSERVED";
310
+ UNKNOWN: "UNKNOWN";
311
+ }>;
312
+ }, z.core.$strip>;
313
+ export declare const findingSchema: z.ZodObject<{
314
+ id: z.ZodString;
315
+ type: z.ZodEnum<{
316
+ CHAIN_INVALID: "CHAIN_INVALID";
317
+ DRIFT: "DRIFT";
318
+ EXPIRED_IN_USE: "EXPIRED_IN_USE";
319
+ EXPIRED_STILL_BOUND: "EXPIRED_STILL_BOUND";
320
+ EXPIRING: "EXPIRING";
321
+ HOSTNAME_MISMATCH: "HOSTNAME_MISMATCH";
322
+ KEY_REUSED: "KEY_REUSED";
323
+ ORPHAN_COPY: "ORPHAN_COPY";
324
+ PROBE_UNAVAILABLE: "PROBE_UNAVAILABLE";
325
+ RENEWAL_NOT_DEPLOYED: "RENEWAL_NOT_DEPLOYED";
326
+ UNEXPECTED_CERT: "UNEXPECTED_CERT";
327
+ }>;
328
+ severity: z.ZodEnum<{
329
+ P1: "P1";
330
+ P2: "P2";
331
+ P3: "P3";
332
+ }>;
333
+ firstSeenAt: z.ZodString;
334
+ lastSeenAt: z.ZodString;
335
+ closedAt: z.ZodNullable<z.ZodString>;
336
+ fingerprint: z.ZodNullable<z.ZodString>;
337
+ replacementFingerprint: z.ZodNullable<z.ZodString>;
338
+ notAfter: z.ZodNullable<z.ZodString>;
339
+ endpointIds: z.ZodObject<{
340
+ items: z.ZodArray<z.ZodString>;
341
+ total: z.ZodNumber;
342
+ page: z.ZodNumber;
343
+ size: z.ZodNumber;
344
+ }, z.core.$strip>;
345
+ bindingIds: z.ZodObject<{
346
+ items: z.ZodArray<z.ZodString>;
347
+ total: z.ZodNumber;
348
+ page: z.ZodNumber;
349
+ size: z.ZodNumber;
350
+ }, z.core.$strip>;
351
+ notification: z.ZodObject<{
352
+ status: z.ZodEnum<{
353
+ ACCEPTED: "ACCEPTED";
354
+ CONFIGURATION_ERROR: "CONFIGURATION_ERROR";
355
+ CONFLICT: "CONFLICT";
356
+ FAILED: "FAILED";
357
+ NO_EVENT: "NO_EVENT";
358
+ PARTIAL: "PARTIAL";
359
+ PENDING_RECIPIENTS: "PENDING_RECIPIENTS";
360
+ READY: "READY";
361
+ RETRY: "RETRY";
362
+ SENDING: "SENDING";
363
+ UNKNOWN: "UNKNOWN";
364
+ }>;
365
+ errorCode: z.ZodNullable<z.ZodString>;
366
+ createdAt: z.ZodNullable<z.ZodString>;
367
+ }, z.core.$strip>;
368
+ }, z.core.$strip>;
369
+ export type PageInput = {
370
+ page?: string | number;
371
+ size?: string | number;
372
+ };
373
+ export type CertificateInput = PageInput & {
374
+ query?: string;
375
+ expiringDays?: number;
376
+ };
377
+ export type EndpointInput = PageInput & {
378
+ query?: string;
379
+ teamId?: string;
380
+ };
381
+ export type FindingInput = PageInput & {
382
+ type?: string;
383
+ severity?: string;
384
+ status?: string;
385
+ };
386
+ export declare function invalid(field: string): never;
387
+ export declare function paging(options?: PageInput): {
388
+ page: number;
389
+ size: number;
390
+ };
391
+ export declare function pageInput(options?: PageInput): {
392
+ page: number;
393
+ size: number;
394
+ };
395
+ export declare function fingerprint(value: unknown): string;
396
+ export declare function identity(value: unknown): string;
397
+ export declare function expiring(value: unknown): number;
398
+ export declare function hostname(value: unknown): string;
399
+ export declare function probeInput(host: unknown, port?: unknown): {
400
+ hostname: string;
401
+ port: number;
402
+ };
403
+ export declare function certificateInput(options?: CertificateInput): {
404
+ page: number;
405
+ size: number;
406
+ query?: string | undefined;
407
+ expiringDays?: number | undefined;
408
+ };
409
+ export declare function endpointInput(options?: EndpointInput): {
410
+ page: number;
411
+ size: number;
412
+ query?: string | undefined;
413
+ teamId?: string | undefined;
414
+ };
415
+ export declare function findingInput(options?: FindingInput): {
416
+ page: number;
417
+ size: number;
418
+ type?: string | undefined;
419
+ severity?: string | undefined;
420
+ status: string;
421
+ };
@@ -0,0 +1,92 @@
1
+ import { domainToASCII } from "node:url";
2
+ import { z } from "zod";
3
+ import { CertError } from "./errors.js";
4
+ const text = z.string().max(4096);
5
+ const id = z.string().regex(/^[1-9]\d*$/u);
6
+ const sha = z.string().regex(/^[0-9a-f]{64}$/u);
7
+ const time = z.string().datetime();
8
+ const uuid = z.string().uuid();
9
+ const count = z.number().int().nonnegative().safe();
10
+ const code = z.string().regex(/^[A-Z][A-Z0-9_]{0,127}$/u);
11
+ export const findingTypes = ["EXPIRING", "EXPIRED_IN_USE", "HOSTNAME_MISMATCH", "CHAIN_INVALID", "UNEXPECTED_CERT", "RENEWAL_NOT_DEPLOYED", "DRIFT", "PROBE_UNAVAILABLE", "EXPIRED_STILL_BOUND", "ORPHAN_COPY", "KEY_REUSED"];
12
+ export const findingSeverities = ["P1", "P2", "P3"];
13
+ export const findingStatuses = ["OPEN", "CLOSED", "ALL"];
14
+ export const pageSchema = (item) => z.object({ items: z.array(item).max(100), total: count, page: z.number().int().min(1).max(1000000), size: z.number().int().min(1).max(100) });
15
+ export const certificateSchema = z.object({
16
+ fingerprint: sha, commonName: text.nullable(), sans: z.array(text), issuer: text.nullable(), serial: text.nullable(),
17
+ notBefore: time.nullable(), notAfter: time.nullable(), publicKeyFingerprint: text.nullable(), publicKeyScheme: text.nullable(),
18
+ provenance: text.nullable(), status: z.enum(["ACTIVE", "SUPERSEDED", "RETIRED", "OBSERVED_ONLY"]).nullable(), supersededBy: sha.nullable(),
19
+ });
20
+ export const copySchema = z.object({ id, accountId: id, site: z.enum(["CHINA", "INTERNATIONAL"]), casId: text, certIdentifier: text.nullable(), name: text.nullable(), status: text.nullable(), fingerprint: sha.nullable(), lastSeenAt: time, removedAt: time.nullable() });
21
+ export const bindingSchema = z.object({ id, accountId: id, region: text, albId: text, albName: text.nullable(), listenerId: text, port: z.number().int().min(1).max(65535), protocol: text, certificateId: text, defaultCertificate: z.boolean(), associationStatus: text.nullable(), managementSource: text.nullable(), lastSeenAt: time, removedAt: time.nullable() });
22
+ export const endpointSchema = z.object({ id, hostname: text, port: z.number().int().min(1).max(65535), ownerTeamId: id.nullable(), ownershipStatus: z.enum(["PENDING", "CONFIRMED"]), managementSource: text, environmentId: id.nullable(), tier: z.enum(["PRD", "DEV", "STG", "UNKNOWN"]).nullable(), expectedFingerprint: sha.nullable(), enabled: z.boolean(), version: count });
23
+ export const probeSchema = z.object({ id: uuid, runId: uuid, attemptedAt: time, observedAt: time.nullable(), outcome: z.enum(["OBSERVED", "UNKNOWN"]), errorCode: code.nullable(), elapsedMs: count, chain: z.array(certificateSchema), validity: z.enum(["VALID", "EXPIRED", "NOT_YET_VALID", "UNKNOWN"]), hostname: z.enum(["VALID", "INVALID", "UNKNOWN"]), trust: z.enum(["VALID", "INVALID", "UNKNOWN"]) });
24
+ export const certificateDetailSchema = z.object({ certificate: certificateSchema, endpoints: pageSchema(endpointSchema), copies: pageSchema(copySchema), bindings: pageSchema(bindingSchema) });
25
+ export const endpointDetailSchema = z.object({ endpoint: endpointSchema, bindings: pageSchema(bindingSchema), latestProbe: probeSchema.nullable(), observationStatus: z.enum(["NOT_OBSERVED", "OBSERVED", "UNKNOWN"]) });
26
+ export const findingSchema = z.object({ id: uuid, type: z.enum(findingTypes), severity: z.enum(findingSeverities), firstSeenAt: time, lastSeenAt: time, closedAt: time.nullable(), fingerprint: sha.nullable(), replacementFingerprint: sha.nullable(), notAfter: time.nullable(), endpointIds: pageSchema(id), bindingIds: pageSchema(id), notification: z.object({ status: z.enum(["NO_EVENT", "PENDING_RECIPIENTS", "READY", "RETRY", "CONFIGURATION_ERROR", "SENDING", "ACCEPTED", "PARTIAL", "FAILED", "UNKNOWN", "CONFLICT"]), errorCode: code.nullable(), createdAt: time.nullable() }) });
27
+ export function invalid(field) { throw new CertError(`TLS 参数 ${field} 无效;请求尚未发送。`, "TLS_INPUT_INVALID"); }
28
+ function integer(value, field, min, max) {
29
+ if (typeof value !== "number" && (typeof value !== "string" || !/^\d+$/u.test(value)))
30
+ return invalid(field);
31
+ const parsed = Number(value);
32
+ if (!Number.isSafeInteger(parsed) || parsed < min || parsed > max)
33
+ return invalid(field);
34
+ return parsed;
35
+ }
36
+ function keys(options, allowed) {
37
+ if (!options || typeof options !== "object" || Array.isArray(options) || Object.keys(options).some(key => !allowed.includes(key)))
38
+ invalid("options");
39
+ }
40
+ export function paging(options = {}) {
41
+ return { page: integer(options.page ?? 1, "page", 1, 1000000), size: integer(options.size ?? 20, "size", 1, 100) };
42
+ }
43
+ export function pageInput(options = {}) { keys(options, ["page", "size"]); return paging(options); }
44
+ function query(value) {
45
+ if (typeof value !== "string" || value.trim().length > 253)
46
+ return invalid("query");
47
+ return value.trim();
48
+ }
49
+ export function fingerprint(value) { if (typeof value !== "string" || !/^[0-9a-f]{64}$/iu.test(value))
50
+ return invalid("fingerprint"); return value.toLowerCase(); }
51
+ export function identity(value) { if (typeof value !== "string" || !/^[1-9]\d*$/u.test(value))
52
+ return invalid("id"); return value; }
53
+ export function expiring(value) {
54
+ if (typeof value !== "string" || !/^\d+d$/u.test(value))
55
+ return invalid("expiring");
56
+ return integer(value.slice(0, -1), "expiring", 0, 3650);
57
+ }
58
+ export function hostname(value) {
59
+ if (typeof value !== "string" || /[\s/:?@#*%\\]/u.test(value))
60
+ return invalid("hostname");
61
+ const original = value.endsWith(".") ? value.slice(0, -1) : value;
62
+ const normalized = domainToASCII(original).toLowerCase();
63
+ const labels = normalized.split(".");
64
+ if (normalized.length > 253 || labels.length < 2 || labels.every(label => /^\d+$/u.test(label)) || labels.some(label => label.length < 1 || label.length > 63 || !/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/u.test(label)))
65
+ return invalid("hostname");
66
+ // Node UTS46 and server Java IDNA2003 differ. Preserve validated Unicode identity
67
+ // for authoritative server normalization instead of selecting a remapped ASCII host.
68
+ return /[^\x00-\x7f]/u.test(original) ? original : normalized;
69
+ }
70
+ export function probeInput(host, port = 443) {
71
+ const normalized = hostname(host);
72
+ if (port !== 443 && port !== "443")
73
+ return invalid("port");
74
+ return { hostname: normalized, port: 443 };
75
+ }
76
+ export function certificateInput(options = {}) {
77
+ keys(options, ["query", "expiringDays", "page", "size"]);
78
+ return { ...(options.query === undefined ? {} : { query: query(options.query) }), ...(options.expiringDays === undefined ? {} : { expiringDays: integer(options.expiringDays, "expiringDays", 0, 3650) }), ...paging(options) };
79
+ }
80
+ export function endpointInput(options = {}) {
81
+ keys(options, ["query", "teamId", "page", "size"]);
82
+ return { ...(options.query === undefined ? {} : { query: query(options.query) }), ...(options.teamId === undefined ? {} : { teamId: identity(options.teamId) }), ...paging(options) };
83
+ }
84
+ export function findingInput(options = {}) {
85
+ keys(options, ["type", "severity", "status", "page", "size"]);
86
+ for (const [name, values] of [["type", findingTypes], ["severity", findingSeverities], ["status", findingStatuses]]) {
87
+ if (options[name] !== undefined && !values.includes(options[name]))
88
+ invalid(name);
89
+ }
90
+ return { ...(options.type === undefined ? {} : { type: options.type }), ...(options.severity === undefined ? {} : { severity: options.severity }), status: options.status ?? "OPEN", ...paging(options) };
91
+ }
92
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/cert/schemas.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -45,6 +45,8 @@ import { registerPublicationCommands } from "./publications/commands.js";
45
45
  import { registerJenkinsCommands } from "./jenkins/commands.js";
46
46
  import { registerClusterCommands } from "./clusters/commands.js";
47
47
  import { ClusterError, clusterExitCode, sanitizeClusterOutput } from "./clusters/errors.js";
48
+ import { registerDataResourceCommands } from "./data-resources/commands.js";
49
+ import { DataResourceError } from "./data-resources/client.js";
48
50
  import { registerTeamCommands } from "./teams/commands.js";
49
51
  import { TeamError, sanitizeTeamOutput, teamExitCode } from "./teams/errors.js";
50
52
  import { registerApplicationOnboardingCommands } from "./application-onboarding/commands.js";
@@ -52,6 +54,7 @@ import { OnboardingError, sanitizeOnboardingOutput } from "./application-onboard
52
54
  import { registerAuthorizationCommands } from "./authorization/commands.js";
53
55
  import { AuthorizationError, authorizationExitCode, sanitizeAuthorizationOutput } from "./authorization/errors.js";
54
56
  import { registerJevCommands } from "./jev/commands.js";
57
+ import { registerCertCommands } from "./cert/commands.js";
55
58
  import { JevError, jevExitCode } from "./jev/errors.js";
56
59
  import { registerNotionCommands } from "./notion/commands.js";
57
60
  import { registerKbCommands } from "./kb/commands.js";
@@ -524,6 +527,7 @@ Examples:
524
527
  const localPublicationScan = commandPath[0] === "publication" && commandPath[1] === "scan";
525
528
  // Jev validates input first, then resolves its own platform HTTP identity and diagnostics.
526
529
  const localJev = commandName === "jev";
530
+ const localCert = commandName === "cert";
527
531
  const localMailArchive = commandPath[0] === "mail";
528
532
  const localInstallEntry = ["mcp", "skills"].includes(commandPath[0] ?? "") && commandPath[1] === "install";
529
533
  const localMcpManagement = commandPath[0] === "mcp" && ["install-cli", "tools", "modules"].includes(commandPath[1] ?? "");
@@ -531,7 +535,7 @@ Examples:
531
535
  || commandPath[0] === "skills" && commandPath[1] === "uninstall"
532
536
  || commandPath[0] === "skills" && commandPath[1] === "updates"
533
537
  && ["status", "configure", "track", "pin"].includes(commandPath[2] ?? "");
534
- if (!localJev && !localInstallEntry && !localMcpManagement && !localClusterDiscovery && !localPublicationScan && !localMailArchive && !localMaintenanceSettings
538
+ if (!localJev && !localCert && !localInstallEntry && !localMcpManagement && !localClusterDiscovery && !localPublicationScan && !localMailArchive && !localMaintenanceSettings
535
539
  && !["task", "modules", "config", "doctor", "commands", "help", "--help", "-h", "--version", "--cli-version", "-V"].includes(commandName)) {
536
540
  rootSafeDiagnostic("platform_profile.resolve.started", { cliVersion: PACKAGE_VERSION });
537
541
  try {
@@ -583,12 +587,14 @@ Examples:
583
587
  registerJenkinsCommands(program);
584
588
  registerClusterCommands(program);
585
589
  registerTeamCommands(program);
590
+ registerDataResourceCommands(program);
586
591
  registerApplicationOnboardingCommands(program);
587
592
  registerAuthorizationCommands(program);
588
593
  registerMailCommands(program);
589
594
  registerWecomCommands(program);
590
595
  registerNotionCommands(program);
591
596
  registerJevCommands(program);
597
+ registerCertCommands(program);
592
598
  registerKbCommands(program);
593
599
  registerTaskCommands(program);
594
600
  registerMaintenanceCommands(program, () => moduleMaintenanceTasks(codexModule));
@@ -597,7 +603,7 @@ Examples:
597
603
  for (let cursor = action; cursor && cursor !== program; cursor = cursor.parent)
598
604
  path.unshift(cursor.name());
599
605
  let json = Boolean(action.optsWithGlobals().json);
600
- if (path[0] === "jev")
606
+ if (path[0] === "jev" || path[0] === "cert")
601
607
  return;
602
608
  if (!automaticMaintenanceAllowed(path, json))
603
609
  return;
@@ -647,39 +653,41 @@ main().catch((error) => {
647
653
  ? error.code
648
654
  : error instanceof ModuleUnavailableError || error instanceof ProfileMismatchError
649
655
  ? error.code
650
- : error instanceof JevError
656
+ : error instanceof DataResourceError
651
657
  ? error.code
652
- : error instanceof KbError
658
+ : error instanceof JevError
653
659
  ? error.code
654
- : error instanceof CodexError
660
+ : error instanceof KbError
655
661
  ? error.code
656
- : error instanceof MediaError
662
+ : error instanceof CodexError
657
663
  ? error.code
658
- : error instanceof OssError
664
+ : error instanceof MediaError
659
665
  ? error.code
660
- : error instanceof PipelineError
666
+ : error instanceof OssError
661
667
  ? error.code
662
- : error instanceof GitOpsError
668
+ : error instanceof PipelineError
663
669
  ? error.code
664
- : error instanceof RepositoryError
670
+ : error instanceof GitOpsError
665
671
  ? error.code
666
- : error instanceof ClusterError
672
+ : error instanceof RepositoryError
667
673
  ? error.code
668
- : error instanceof TeamError
674
+ : error instanceof ClusterError
669
675
  ? error.code
670
- : error instanceof OnboardingError
676
+ : error instanceof TeamError
671
677
  ? error.code
672
- : error instanceof AuthorizationError
678
+ : error instanceof OnboardingError
673
679
  ? error.code
674
- : error instanceof AiRegistryError
680
+ : error instanceof AuthorizationError
675
681
  ? error.code
676
- : error instanceof WecomError
682
+ : error instanceof AiRegistryError
677
683
  ? error.code
678
- : error instanceof MailArchiveError
684
+ : error instanceof WecomError
679
685
  ? error.code
680
- : error instanceof CommanderError
681
- ? "cli_usage_error"
682
- : "command_failed";
686
+ : error instanceof MailArchiveError
687
+ ? error.code
688
+ : error instanceof CommanderError
689
+ ? "cli_usage_error"
690
+ : "command_failed";
683
691
  if (json) {
684
692
  printJson({
685
693
  ...(error instanceof CodexError ? { schemaVersion: 1 } : {}),
@@ -697,6 +705,7 @@ main().catch((error) => {
697
705
  ...(error instanceof MediaError
698
706
  ? { status: error.status ?? null, request_id: error.requestId ?? null }
699
707
  : {}),
708
+ ...(error instanceof DataResourceError ? { status: error.status ?? null } : {}),
700
709
  ...(error instanceof JevError ? { status: error.status ?? null } : {}),
701
710
  ...(error instanceof KbError
702
711
  ? { status: error.status ?? null, ...(error.details === undefined ? {} : { details: sanitizeKbOutput(error.details) }) }