@axium/core 0.15.2 → 0.17.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/dist/api.d.ts CHANGED
@@ -1,138 +1,619 @@
1
- import type { PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON } from '@simplewebauthn/types';
2
- import type { Omit } from 'utilium';
3
- import type z from 'zod';
4
- import type { AccessControl, AccessMap } from './access.js';
5
- import type { App } from './apps.js';
6
- import type { AuditEvent, AuditFilter, Severity } from './audit.js';
7
- import type { NewSessionResponse, Session, Verification } from './auth.js';
8
- import type { PackageVersionInfo } from './packages.js';
9
- import type { Passkey, PasskeyAuthenticationResponse, PasskeyChangeable, PasskeyRegistration } from './passkeys.js';
10
- import type { PluginInternal } from './plugins.js';
1
+ import * as z from 'zod';
2
+ import { Severity } from './audit.js';
11
3
  import type { RequestMethod } from './requests.js';
12
- import type { LogoutSessions, User, UserAuthOptions, UserChangeable, UserInternal, UserPublic, UserRegistration } from './user.js';
13
- export interface AdminSummary {
14
- users: number;
15
- passkeys: number;
16
- sessions: number;
17
- auditEvents: Record<keyof typeof Severity, number>;
18
- configFiles: number;
19
- plugins: number;
20
- versions: Record<'core' | 'server' | 'client', PackageVersionInfo>;
21
- }
4
+ export declare const AdminSummary: z.ZodObject<{
5
+ users: z.ZodNumber;
6
+ passkeys: z.ZodNumber;
7
+ sessions: z.ZodNumber;
8
+ auditEvents: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
9
+ configFiles: z.ZodNumber;
10
+ plugins: z.ZodNumber;
11
+ versions: z.ZodRecord<z.ZodLiteral<"client" | "server" | "core">, z.ZodObject<{
12
+ name: z.ZodString;
13
+ version: z.ZodString;
14
+ latest: z.ZodNullable<z.ZodString>;
15
+ }, z.core.$strip>>;
16
+ }, z.core.$strip>;
22
17
  /**
23
- * Types for all API endpoints
18
+ * Schemas for all API endpoints
24
19
  * @internal
25
20
  */
26
- export interface $API {
27
- metadata: {
28
- GET: {
29
- versions: PackageVersionInfo[];
30
- routes: Record<string, {
31
- params: Record<string, string | null>;
32
- methods: string[];
33
- }>;
34
- };
35
- };
36
- apps: {
37
- GET: App[];
38
- };
39
- session: {
40
- GET: Session & {
41
- user: User;
42
- };
43
- DELETE: Session;
44
- };
45
- register: {
46
- OPTIONS: {
47
- userId: string;
48
- options: PublicKeyCredentialCreationOptionsJSON;
49
- };
50
- POST: [z.input<typeof UserRegistration>, NewSessionResponse];
51
- };
52
- 'users/:id': {
53
- GET: UserPublic & Partial<User>;
54
- PATCH: [z.input<typeof UserChangeable>, User];
55
- DELETE: User;
56
- };
57
- 'users/:id/full': {
58
- GET: User & {
59
- sessions: Session[];
60
- };
61
- };
62
- 'users/:id/auth': {
63
- OPTIONS: [z.input<typeof UserAuthOptions>, PublicKeyCredentialRequestOptionsJSON];
64
- POST: [z.input<typeof PasskeyAuthenticationResponse>, NewSessionResponse];
65
- };
66
- 'users/:id/sessions': {
67
- GET: Session[];
68
- DELETE: [z.input<typeof LogoutSessions>, Session[]];
69
- };
70
- 'users/:id/passkeys': {
71
- OPTIONS: PublicKeyCredentialCreationOptionsJSON;
72
- GET: Passkey[];
73
- PUT: [z.input<typeof PasskeyRegistration>, Passkey];
74
- };
75
- 'users/:id/verify_email': {
76
- OPTIONS: {
77
- enabled: boolean;
78
- };
79
- GET: Verification;
80
- POST: [{
81
- token: string;
82
- }, {}];
83
- };
84
- 'passkeys/:id': {
85
- GET: Passkey;
86
- PATCH: [z.input<typeof PasskeyChangeable>, Passkey];
87
- DELETE: Passkey;
88
- };
89
- user_id: {
90
- POST: [{
91
- using: 'email' | 'handle';
92
- value: string;
93
- }, {
94
- id: string;
95
- }];
96
- };
97
- 'acl/:itemType/:itemId': {
98
- GET: AccessControl[];
99
- POST: [AccessMap, AccessControl[]];
100
- };
101
- 'admin/summary': {
102
- GET: AdminSummary;
103
- };
104
- 'admin/users/all': {
105
- GET: UserInternal[];
106
- };
107
- 'admin/users/:userId': {
108
- GET: UserInternal & {
109
- sessions: Session[];
110
- };
111
- };
112
- 'admin/config': {
113
- GET: {
114
- files: Record<string, object>;
115
- config: Record<string, unknown>;
116
- };
117
- };
118
- 'admin/plugins': {
119
- GET: (Omit<PluginInternal, '_hooks' | '_client'> & PackageVersionInfo)[];
120
- };
121
- 'admin/audit/events': {
122
- OPTIONS: {
123
- name: string[];
124
- source: string[];
125
- tags: string[];
126
- } | false;
127
- GET: [filter: z.input<typeof AuditFilter>, result: AuditEvent[]];
128
- };
129
- 'admin/audit/:eventId': {
130
- GET: AuditEvent;
21
+ declare const _API: {
22
+ readonly metadata: {
23
+ readonly GET: z.ZodObject<{
24
+ versions: z.ZodArray<z.ZodObject<{
25
+ name: z.ZodString;
26
+ version: z.ZodString;
27
+ latest: z.ZodNullable<z.ZodString>;
28
+ }, z.core.$strip>>;
29
+ routes: z.ZodRecord<z.ZodString, z.ZodObject<{
30
+ params: z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodString>>;
31
+ methods: z.ZodArray<z.ZodString>;
32
+ }, z.core.$strip>>;
33
+ }, z.core.$strip>;
34
+ };
35
+ readonly apps: {
36
+ readonly GET: z.ZodArray<z.ZodObject<{
37
+ id: z.ZodString;
38
+ name: z.ZodOptional<z.ZodString>;
39
+ image: z.ZodOptional<z.ZodString>;
40
+ icon: z.ZodOptional<z.ZodString>;
41
+ }, z.core.$strip>>;
42
+ };
43
+ readonly session: {
44
+ readonly GET: z.ZodObject<{
45
+ user: z.ZodObject<{
46
+ id: z.ZodUUID;
47
+ name: z.ZodString;
48
+ email: z.ZodEmail;
49
+ emailVerified: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
50
+ image: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
51
+ preferences: z.ZodLazy<z.ZodObject<{
52
+ debug: z.ZodDefault<z.ZodBoolean>;
53
+ }, z.core.$strip>>;
54
+ roles: z.ZodArray<z.ZodString>;
55
+ tags: z.ZodArray<z.ZodString>;
56
+ registeredAt: z.ZodCoercedDate<unknown>;
57
+ isAdmin: z.ZodBoolean;
58
+ isSuspended: z.ZodBoolean;
59
+ }, z.core.$strip>;
60
+ id: z.ZodUUID;
61
+ userId: z.ZodUUID;
62
+ expires: z.ZodCoercedDate<unknown>;
63
+ created: z.ZodCoercedDate<unknown>;
64
+ elevated: z.ZodBoolean;
65
+ }, z.core.$strip>;
66
+ readonly DELETE: z.ZodObject<{
67
+ id: z.ZodUUID;
68
+ userId: z.ZodUUID;
69
+ expires: z.ZodCoercedDate<unknown>;
70
+ created: z.ZodCoercedDate<unknown>;
71
+ elevated: z.ZodBoolean;
72
+ }, z.core.$strip>;
73
+ };
74
+ readonly register: {
75
+ readonly OPTIONS: [z.ZodObject<{
76
+ name: z.ZodOptional<z.ZodString>;
77
+ email: z.ZodOptional<z.ZodEmail>;
78
+ }, z.core.$strip>, z.ZodObject<{
79
+ userId: z.ZodUUID;
80
+ options: z.ZodObject<{
81
+ rp: z.ZodObject<{
82
+ id: z.ZodOptional<z.ZodString>;
83
+ name: z.ZodString;
84
+ }, z.core.$strip>;
85
+ user: z.ZodObject<{
86
+ id: z.ZodString;
87
+ name: z.ZodString;
88
+ displayName: z.ZodString;
89
+ }, z.core.$strip>;
90
+ challenge: z.ZodBase64URL;
91
+ pubKeyCredParams: z.ZodArray<z.ZodObject<{
92
+ alg: z.ZodNumber;
93
+ type: z.ZodLiteral<"public-key">;
94
+ }, z.core.$strip>>;
95
+ timeout: z.ZodOptional<z.ZodNumber>;
96
+ excludeCredentials: z.ZodOptional<z.ZodArray<z.ZodObject<{
97
+ id: z.ZodBase64URL;
98
+ type: z.ZodLiteral<"public-key">;
99
+ transports: z.ZodOptional<z.ZodArray<z.ZodLiteral<"ble" | "cable" | "hybrid" | "internal" | "nfc" | "smart-card" | "usb">>>;
100
+ }, z.core.$strip>>>;
101
+ authenticatorSelection: z.ZodOptional<z.ZodObject<{
102
+ authenticatorAttachment: z.ZodOptional<z.ZodOptional<z.ZodLiteral<"cross-platform" | "platform">>>;
103
+ requireResidentKey: z.ZodOptional<z.ZodBoolean>;
104
+ residentKey: z.ZodOptional<z.ZodLiteral<"required" | "preferred" | "discouraged">>;
105
+ userVerification: z.ZodOptional<z.ZodLiteral<"required" | "preferred" | "discouraged">>;
106
+ }, z.core.$strip>>;
107
+ attestation: z.ZodOptional<z.ZodLiteral<"none" | "indirect" | "direct" | "enterprise">>;
108
+ }, z.core.$strip>;
109
+ }, z.core.$strip>];
110
+ readonly POST: [z.ZodObject<{
111
+ name: z.ZodString;
112
+ email: z.ZodEmail;
113
+ userId: z.ZodUUID;
114
+ response: z.ZodObject<{
115
+ id: z.ZodString;
116
+ rawId: z.ZodString;
117
+ response: z.ZodObject<{
118
+ clientDataJSON: z.ZodString;
119
+ attestationObject: z.ZodString;
120
+ authenticatorData: z.ZodOptional<z.ZodString>;
121
+ transports: z.ZodOptional<z.ZodArray<z.ZodLiteral<"ble" | "cable" | "hybrid" | "internal" | "nfc" | "smart-card" | "usb">>>;
122
+ publicKeyAlgorithm: z.ZodOptional<z.ZodNumber>;
123
+ publicKey: z.ZodOptional<z.ZodString>;
124
+ }, z.core.$strip>;
125
+ authenticatorAttachment: z.ZodOptional<z.ZodLiteral<"cross-platform" | "platform">>;
126
+ clientExtensionResults: z.ZodRecord<z.ZodAny, z.ZodAny>;
127
+ type: z.ZodLiteral<"public-key">;
128
+ }, z.core.$strip>;
129
+ }, z.core.$strip>, z.ZodObject<{
130
+ userId: z.ZodUUID;
131
+ token: z.ZodString;
132
+ }, z.core.$strip>];
133
+ };
134
+ readonly 'users/:id': {
135
+ readonly GET: z.ZodObject<{
136
+ id: z.ZodUUID;
137
+ name: z.ZodString;
138
+ email: z.ZodOptional<z.ZodEmail>;
139
+ emailVerified: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>>;
140
+ image: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
141
+ preferences: z.ZodOptional<z.ZodLazy<z.ZodObject<{
142
+ debug: z.ZodDefault<z.ZodBoolean>;
143
+ }, z.core.$strip>>>;
144
+ roles: z.ZodArray<z.ZodString>;
145
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
146
+ registeredAt: z.ZodCoercedDate<unknown>;
147
+ isAdmin: z.ZodOptional<z.ZodBoolean>;
148
+ isSuspended: z.ZodOptional<z.ZodBoolean>;
149
+ }, z.core.$strip>;
150
+ readonly PATCH: [z.ZodObject<{
151
+ preferences: z.ZodOptional<z.ZodLazy<z.ZodObject<{
152
+ debug: z.ZodDefault<z.ZodBoolean>;
153
+ }, z.core.$strip>>>;
154
+ email: z.ZodOptional<z.ZodEmail>;
155
+ name: z.ZodOptional<z.ZodString>;
156
+ image: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodURL>>>;
157
+ }, z.core.$strip>, z.ZodObject<{
158
+ id: z.ZodUUID;
159
+ name: z.ZodString;
160
+ email: z.ZodEmail;
161
+ emailVerified: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
162
+ image: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
163
+ preferences: z.ZodLazy<z.ZodObject<{
164
+ debug: z.ZodDefault<z.ZodBoolean>;
165
+ }, z.core.$strip>>;
166
+ roles: z.ZodArray<z.ZodString>;
167
+ tags: z.ZodArray<z.ZodString>;
168
+ registeredAt: z.ZodCoercedDate<unknown>;
169
+ isAdmin: z.ZodBoolean;
170
+ isSuspended: z.ZodBoolean;
171
+ }, z.core.$strip>];
172
+ readonly DELETE: z.ZodObject<{
173
+ id: z.ZodUUID;
174
+ name: z.ZodString;
175
+ email: z.ZodEmail;
176
+ emailVerified: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
177
+ image: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
178
+ preferences: z.ZodLazy<z.ZodObject<{
179
+ debug: z.ZodDefault<z.ZodBoolean>;
180
+ }, z.core.$strip>>;
181
+ roles: z.ZodArray<z.ZodString>;
182
+ tags: z.ZodArray<z.ZodString>;
183
+ registeredAt: z.ZodCoercedDate<unknown>;
184
+ isAdmin: z.ZodBoolean;
185
+ isSuspended: z.ZodBoolean;
186
+ }, z.core.$strip>;
187
+ };
188
+ readonly 'users/:id/full': {
189
+ readonly GET: z.ZodObject<{
190
+ sessions: z.ZodArray<z.ZodObject<{
191
+ id: z.ZodUUID;
192
+ userId: z.ZodUUID;
193
+ expires: z.ZodCoercedDate<unknown>;
194
+ created: z.ZodCoercedDate<unknown>;
195
+ elevated: z.ZodBoolean;
196
+ }, z.core.$strip>>;
197
+ id: z.ZodUUID;
198
+ name: z.ZodString;
199
+ email: z.ZodEmail;
200
+ emailVerified: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
201
+ image: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
202
+ preferences: z.ZodLazy<z.ZodObject<{
203
+ debug: z.ZodDefault<z.ZodBoolean>;
204
+ }, z.core.$strip>>;
205
+ roles: z.ZodArray<z.ZodString>;
206
+ tags: z.ZodArray<z.ZodString>;
207
+ registeredAt: z.ZodCoercedDate<unknown>;
208
+ isAdmin: z.ZodBoolean;
209
+ isSuspended: z.ZodBoolean;
210
+ }, z.core.$strip>;
211
+ };
212
+ readonly 'users/:id/auth': {
213
+ readonly OPTIONS: [z.ZodObject<{
214
+ type: z.ZodLiteral<"login" | "action" | "client_login">;
215
+ }, z.core.$strip>, z.ZodObject<{
216
+ challenge: z.ZodBase64URL;
217
+ timeout: z.ZodOptional<z.ZodNumber>;
218
+ rpId: z.ZodOptional<z.ZodString>;
219
+ allowCredentials: z.ZodOptional<z.ZodArray<z.ZodObject<{
220
+ id: z.ZodBase64URL;
221
+ type: z.ZodLiteral<"public-key">;
222
+ transports: z.ZodOptional<z.ZodArray<z.ZodLiteral<"ble" | "cable" | "hybrid" | "internal" | "nfc" | "smart-card" | "usb">>>;
223
+ }, z.core.$strip>>>;
224
+ userVerification: z.ZodOptional<z.ZodLiteral<"required" | "preferred" | "discouraged">>;
225
+ extensions: z.ZodOptional<z.ZodObject<{
226
+ appid: z.ZodOptional<z.ZodString>;
227
+ credProps: z.ZodOptional<z.ZodBoolean>;
228
+ hmacCreateSecret: z.ZodOptional<z.ZodBoolean>;
229
+ minPinLength: z.ZodOptional<z.ZodBoolean>;
230
+ }, z.core.$strip>>;
231
+ }, z.core.$strip>];
232
+ readonly POST: [z.ZodObject<{
233
+ id: z.ZodString;
234
+ rawId: z.ZodString;
235
+ response: z.ZodObject<{
236
+ clientDataJSON: z.ZodString;
237
+ authenticatorData: z.ZodString;
238
+ signature: z.ZodString;
239
+ userHandle: z.ZodOptional<z.ZodString>;
240
+ }, z.core.$strip>;
241
+ authenticatorAttachment: z.ZodOptional<z.ZodLiteral<"cross-platform" | "platform">>;
242
+ clientExtensionResults: z.ZodRecord<z.ZodAny, z.ZodAny>;
243
+ type: z.ZodLiteral<"public-key">;
244
+ }, z.core.$strip>, z.ZodObject<{
245
+ userId: z.ZodUUID;
246
+ token: z.ZodString;
247
+ }, z.core.$strip>];
248
+ };
249
+ readonly 'users/:id/sessions': {
250
+ readonly GET: z.ZodArray<z.ZodObject<{
251
+ id: z.ZodUUID;
252
+ userId: z.ZodUUID;
253
+ expires: z.ZodCoercedDate<unknown>;
254
+ created: z.ZodCoercedDate<unknown>;
255
+ elevated: z.ZodBoolean;
256
+ }, z.core.$strip>>;
257
+ readonly DELETE: [z.ZodObject<{
258
+ id: z.ZodOptional<z.ZodArray<z.ZodUUID>>;
259
+ confirm_all: z.ZodOptional<z.ZodBoolean>;
260
+ }, z.core.$strip>, z.ZodArray<z.ZodObject<{
261
+ id: z.ZodUUID;
262
+ userId: z.ZodUUID;
263
+ expires: z.ZodCoercedDate<unknown>;
264
+ created: z.ZodCoercedDate<unknown>;
265
+ elevated: z.ZodBoolean;
266
+ }, z.core.$strip>>];
267
+ };
268
+ readonly 'users/:id/passkeys': {
269
+ readonly OPTIONS: z.ZodObject<{
270
+ rp: z.ZodObject<{
271
+ id: z.ZodOptional<z.ZodString>;
272
+ name: z.ZodString;
273
+ }, z.core.$strip>;
274
+ user: z.ZodObject<{
275
+ id: z.ZodString;
276
+ name: z.ZodString;
277
+ displayName: z.ZodString;
278
+ }, z.core.$strip>;
279
+ challenge: z.ZodBase64URL;
280
+ pubKeyCredParams: z.ZodArray<z.ZodObject<{
281
+ alg: z.ZodNumber;
282
+ type: z.ZodLiteral<"public-key">;
283
+ }, z.core.$strip>>;
284
+ timeout: z.ZodOptional<z.ZodNumber>;
285
+ excludeCredentials: z.ZodOptional<z.ZodArray<z.ZodObject<{
286
+ id: z.ZodBase64URL;
287
+ type: z.ZodLiteral<"public-key">;
288
+ transports: z.ZodOptional<z.ZodArray<z.ZodLiteral<"ble" | "cable" | "hybrid" | "internal" | "nfc" | "smart-card" | "usb">>>;
289
+ }, z.core.$strip>>>;
290
+ authenticatorSelection: z.ZodOptional<z.ZodObject<{
291
+ authenticatorAttachment: z.ZodOptional<z.ZodOptional<z.ZodLiteral<"cross-platform" | "platform">>>;
292
+ requireResidentKey: z.ZodOptional<z.ZodBoolean>;
293
+ residentKey: z.ZodOptional<z.ZodLiteral<"required" | "preferred" | "discouraged">>;
294
+ userVerification: z.ZodOptional<z.ZodLiteral<"required" | "preferred" | "discouraged">>;
295
+ }, z.core.$strip>>;
296
+ attestation: z.ZodOptional<z.ZodLiteral<"none" | "indirect" | "direct" | "enterprise">>;
297
+ }, z.core.$strip>;
298
+ readonly GET: z.ZodArray<z.ZodObject<{
299
+ id: z.ZodString;
300
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
301
+ createdAt: z.ZodCoercedDate<unknown>;
302
+ userId: z.ZodUUID;
303
+ deviceType: z.ZodLiteral<"singleDevice" | "multiDevice">;
304
+ backedUp: z.ZodBoolean;
305
+ transports: z.ZodArray<z.ZodLiteral<"ble" | "cable" | "hybrid" | "internal" | "nfc" | "smart-card" | "usb">>;
306
+ }, z.core.$strip>>;
307
+ readonly PUT: [z.ZodObject<{
308
+ id: z.ZodString;
309
+ rawId: z.ZodString;
310
+ response: z.ZodObject<{
311
+ clientDataJSON: z.ZodString;
312
+ attestationObject: z.ZodString;
313
+ authenticatorData: z.ZodOptional<z.ZodString>;
314
+ transports: z.ZodOptional<z.ZodArray<z.ZodLiteral<"ble" | "cable" | "hybrid" | "internal" | "nfc" | "smart-card" | "usb">>>;
315
+ publicKeyAlgorithm: z.ZodOptional<z.ZodNumber>;
316
+ publicKey: z.ZodOptional<z.ZodString>;
317
+ }, z.core.$strip>;
318
+ authenticatorAttachment: z.ZodOptional<z.ZodLiteral<"cross-platform" | "platform">>;
319
+ clientExtensionResults: z.ZodRecord<z.ZodAny, z.ZodAny>;
320
+ type: z.ZodLiteral<"public-key">;
321
+ }, z.core.$strip>, z.ZodObject<{
322
+ id: z.ZodString;
323
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
324
+ createdAt: z.ZodCoercedDate<unknown>;
325
+ userId: z.ZodUUID;
326
+ deviceType: z.ZodLiteral<"singleDevice" | "multiDevice">;
327
+ backedUp: z.ZodBoolean;
328
+ transports: z.ZodArray<z.ZodLiteral<"ble" | "cable" | "hybrid" | "internal" | "nfc" | "smart-card" | "usb">>;
329
+ }, z.core.$strip>];
330
+ };
331
+ readonly 'users/:id/verify/email': {
332
+ readonly OPTIONS: z.ZodObject<{
333
+ enabled: z.ZodBoolean;
334
+ }, z.core.$strip>;
335
+ readonly GET: z.ZodObject<{
336
+ userId: z.ZodUUID;
337
+ expires: z.ZodCoercedDate<unknown>;
338
+ }, z.core.$strip>;
339
+ readonly POST: [z.ZodObject<{
340
+ token: z.ZodString;
341
+ }, z.core.$strip>, z.ZodObject<{}, z.core.$strip>];
342
+ };
343
+ readonly 'users/:id/verify/login': {
344
+ readonly POST: [z.ZodObject<{
345
+ token: z.ZodString;
346
+ }, z.core.$strip>, z.ZodObject<{
347
+ userId: z.ZodUUID;
348
+ token: z.ZodString;
349
+ }, z.core.$strip>];
131
350
  };
351
+ readonly 'passkeys/:id': {
352
+ readonly GET: z.ZodObject<{
353
+ id: z.ZodString;
354
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
355
+ createdAt: z.ZodCoercedDate<unknown>;
356
+ userId: z.ZodUUID;
357
+ deviceType: z.ZodLiteral<"singleDevice" | "multiDevice">;
358
+ backedUp: z.ZodBoolean;
359
+ transports: z.ZodArray<z.ZodLiteral<"ble" | "cable" | "hybrid" | "internal" | "nfc" | "smart-card" | "usb">>;
360
+ }, z.core.$strip>;
361
+ readonly PATCH: [z.ZodObject<{
362
+ name: z.ZodOptional<z.ZodString>;
363
+ }, z.core.$strip>, z.ZodObject<{
364
+ id: z.ZodString;
365
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
366
+ createdAt: z.ZodCoercedDate<unknown>;
367
+ userId: z.ZodUUID;
368
+ deviceType: z.ZodLiteral<"singleDevice" | "multiDevice">;
369
+ backedUp: z.ZodBoolean;
370
+ transports: z.ZodArray<z.ZodLiteral<"ble" | "cable" | "hybrid" | "internal" | "nfc" | "smart-card" | "usb">>;
371
+ }, z.core.$strip>];
372
+ readonly DELETE: z.ZodObject<{
373
+ id: z.ZodString;
374
+ name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
375
+ createdAt: z.ZodCoercedDate<unknown>;
376
+ userId: z.ZodUUID;
377
+ deviceType: z.ZodLiteral<"singleDevice" | "multiDevice">;
378
+ backedUp: z.ZodBoolean;
379
+ transports: z.ZodArray<z.ZodLiteral<"ble" | "cable" | "hybrid" | "internal" | "nfc" | "smart-card" | "usb">>;
380
+ }, z.core.$strip>;
381
+ };
382
+ readonly user_id: {
383
+ readonly POST: [z.ZodObject<{
384
+ using: z.ZodLiteral<"email" | "handle">;
385
+ value: z.ZodString;
386
+ }, z.core.$strip>, z.ZodObject<{
387
+ id: z.ZodUUID;
388
+ }, z.core.$strip>];
389
+ };
390
+ readonly 'acl/:itemType/:itemId': {
391
+ readonly GET: z.ZodArray<z.ZodObject<{
392
+ itemId: z.ZodUUID;
393
+ userId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
394
+ role: z.ZodOptional<z.ZodNullable<z.ZodString>>;
395
+ user: z.ZodOptional<z.ZodObject<{
396
+ id: z.ZodUUID;
397
+ name: z.ZodString;
398
+ email: z.ZodEmail;
399
+ emailVerified: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
400
+ image: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
401
+ preferences: z.ZodLazy<z.ZodObject<{
402
+ debug: z.ZodDefault<z.ZodBoolean>;
403
+ }, z.core.$strip>>;
404
+ roles: z.ZodArray<z.ZodString>;
405
+ tags: z.ZodArray<z.ZodString>;
406
+ registeredAt: z.ZodCoercedDate<unknown>;
407
+ isAdmin: z.ZodBoolean;
408
+ isSuspended: z.ZodBoolean;
409
+ }, z.core.$strip>>;
410
+ createdAt: z.ZodCoercedDate<unknown>;
411
+ }, z.core.$strip>>;
412
+ readonly POST: [z.ZodRecord<z.ZodUnion<readonly [z.ZodUUID, z.ZodTemplateLiteral<`@${string}`>, z.ZodTemplateLiteral<`#${string}`>, z.ZodLiteral<"public">]>, z.ZodAny>, z.ZodArray<z.ZodObject<{
413
+ itemId: z.ZodUUID;
414
+ userId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
415
+ role: z.ZodOptional<z.ZodNullable<z.ZodString>>;
416
+ user: z.ZodOptional<z.ZodObject<{
417
+ id: z.ZodUUID;
418
+ name: z.ZodString;
419
+ email: z.ZodEmail;
420
+ emailVerified: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
421
+ image: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
422
+ preferences: z.ZodLazy<z.ZodObject<{
423
+ debug: z.ZodDefault<z.ZodBoolean>;
424
+ }, z.core.$strip>>;
425
+ roles: z.ZodArray<z.ZodString>;
426
+ tags: z.ZodArray<z.ZodString>;
427
+ registeredAt: z.ZodCoercedDate<unknown>;
428
+ isAdmin: z.ZodBoolean;
429
+ isSuspended: z.ZodBoolean;
430
+ }, z.core.$strip>>;
431
+ createdAt: z.ZodCoercedDate<unknown>;
432
+ }, z.core.$strip>>];
433
+ };
434
+ readonly 'admin/summary': {
435
+ readonly GET: z.ZodObject<{
436
+ users: z.ZodNumber;
437
+ passkeys: z.ZodNumber;
438
+ sessions: z.ZodNumber;
439
+ auditEvents: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
440
+ configFiles: z.ZodNumber;
441
+ plugins: z.ZodNumber;
442
+ versions: z.ZodRecord<z.ZodLiteral<"client" | "server" | "core">, z.ZodObject<{
443
+ name: z.ZodString;
444
+ version: z.ZodString;
445
+ latest: z.ZodNullable<z.ZodString>;
446
+ }, z.core.$strip>>;
447
+ }, z.core.$strip>;
448
+ };
449
+ readonly 'admin/users': {
450
+ readonly GET: z.ZodArray<z.ZodObject<{
451
+ id: z.ZodUUID;
452
+ name: z.ZodString;
453
+ email: z.ZodEmail;
454
+ emailVerified: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
455
+ image: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
456
+ preferences: z.ZodLazy<z.ZodObject<{
457
+ debug: z.ZodDefault<z.ZodBoolean>;
458
+ }, z.core.$strip>>;
459
+ roles: z.ZodArray<z.ZodString>;
460
+ tags: z.ZodArray<z.ZodString>;
461
+ registeredAt: z.ZodCoercedDate<unknown>;
462
+ isAdmin: z.ZodBoolean;
463
+ isSuspended: z.ZodBoolean;
464
+ }, z.core.$strip>>;
465
+ readonly PUT: [z.ZodObject<{
466
+ name: z.ZodString;
467
+ email: z.ZodEmail;
468
+ }, z.core.$strip>, z.ZodObject<{
469
+ user: z.ZodObject<{
470
+ id: z.ZodUUID;
471
+ name: z.ZodString;
472
+ email: z.ZodEmail;
473
+ emailVerified: z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>;
474
+ image: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
475
+ preferences: z.ZodLazy<z.ZodObject<{
476
+ debug: z.ZodDefault<z.ZodBoolean>;
477
+ }, z.core.$strip>>;
478
+ roles: z.ZodArray<z.ZodString>;
479
+ tags: z.ZodArray<z.ZodString>;
480
+ registeredAt: z.ZodCoercedDate<unknown>;
481
+ isAdmin: z.ZodBoolean;
482
+ isSuspended: z.ZodBoolean;
483
+ }, z.core.$strip>;
484
+ verification: z.ZodObject<{
485
+ userId: z.ZodUUID;
486
+ expires: z.ZodCoercedDate<unknown>;
487
+ token: z.ZodString;
488
+ role: z.ZodLiteral<"email" | "login">;
489
+ }, z.core.$strip>;
490
+ }, z.core.$strip>];
491
+ };
492
+ readonly 'admin/config': {
493
+ readonly GET: z.ZodObject<{
494
+ files: z.ZodRecord<z.ZodString, z.ZodAny>;
495
+ config: z.ZodRecord<z.ZodString, z.ZodUnknown>;
496
+ }, z.core.$strip>;
497
+ };
498
+ readonly 'admin/plugins': {
499
+ readonly GET: z.ZodArray<z.ZodObject<{
500
+ name: z.ZodString;
501
+ version: z.ZodString;
502
+ latest: z.ZodNullable<z.ZodString>;
503
+ cli: z.ZodOptional<z.ZodString>;
504
+ description: z.ZodOptional<z.ZodString>;
505
+ apps: z.ZodOptional<z.ZodArray<z.ZodObject<{
506
+ id: z.ZodString;
507
+ name: z.ZodOptional<z.ZodString>;
508
+ image: z.ZodOptional<z.ZodString>;
509
+ icon: z.ZodOptional<z.ZodString>;
510
+ }, z.core.$strip>>>;
511
+ client: z.ZodOptional<z.ZodObject<{
512
+ cli: z.ZodOptional<z.ZodString>;
513
+ hooks: z.ZodOptional<z.ZodString>;
514
+ integrations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
515
+ }, z.core.$strip>>;
516
+ server: z.ZodOptional<z.ZodObject<{
517
+ cli: z.ZodOptional<z.ZodString>;
518
+ hooks: z.ZodOptional<z.ZodString>;
519
+ integrations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
520
+ http_handler: z.ZodOptional<z.ZodString>;
521
+ routes: z.ZodOptional<z.ZodString>;
522
+ db: z.ZodOptional<z.ZodString>;
523
+ }, z.core.$strip>>;
524
+ update_checks: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
525
+ path: z.ZodString;
526
+ dirname: z.ZodString;
527
+ specifier: z.ZodString;
528
+ loadedBy: z.ZodString;
529
+ isServer: z.ZodBoolean;
530
+ _db: z.ZodOptional<z.ZodAny>;
531
+ }, z.core.$strip>>;
532
+ };
533
+ readonly 'admin/audit/events': {
534
+ readonly OPTIONS: z.ZodUnion<[z.ZodObject<{
535
+ name: z.ZodArray<z.ZodString>;
536
+ source: z.ZodArray<z.ZodString>;
537
+ tags: z.ZodArray<z.ZodString>;
538
+ }, z.core.$strip>, z.ZodLiteral<false>]>;
539
+ readonly GET: [z.ZodObject<{
540
+ since: z.ZodOptional<z.ZodCoercedDate<unknown>>;
541
+ until: z.ZodOptional<z.ZodCoercedDate<unknown>>;
542
+ user: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodUUID, z.ZodPipe<z.ZodLiteral<"null">, z.ZodTransform<null, "null">>]>>>;
543
+ severity: z.ZodOptional<z.ZodPipe<z.ZodLiteral<"debug" | "error" | "emergency" | "alert" | "critical" | "warning" | "notice" | "info">, z.ZodTransform<Severity, "debug" | "error" | "emergency" | "alert" | "critical" | "warning" | "notice" | "info">>>;
544
+ source: z.ZodOptional<z.ZodString>;
545
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
546
+ event: z.ZodOptional<z.ZodString>;
547
+ }, z.core.$strip>, z.ZodArray<z.ZodObject<{
548
+ id: z.ZodUUID;
549
+ userId: z.ZodNullable<z.ZodUUID>;
550
+ user: z.ZodOptional<z.ZodNullable<z.ZodObject<{
551
+ id: z.ZodNonOptional<z.ZodOptional<z.ZodUUID>>;
552
+ name: z.ZodNonOptional<z.ZodOptional<z.ZodString>>;
553
+ email: z.ZodOptional<z.ZodEmail>;
554
+ emailVerified: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>>;
555
+ image: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodURL>>>;
556
+ preferences: z.ZodOptional<z.ZodLazy<z.ZodObject<{
557
+ debug: z.ZodDefault<z.ZodBoolean>;
558
+ }, z.core.$strip>>>;
559
+ roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
560
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
561
+ registeredAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
562
+ isAdmin: z.ZodOptional<z.ZodBoolean>;
563
+ isSuspended: z.ZodOptional<z.ZodBoolean>;
564
+ }, z.core.$strip>>>;
565
+ timestamp: z.ZodCoercedDate<unknown>;
566
+ severity: z.ZodEnum<typeof Severity>;
567
+ name: z.ZodString;
568
+ source: z.ZodString;
569
+ tags: z.ZodArray<z.ZodString>;
570
+ extra: z.ZodRecord<z.ZodAny, z.ZodUnknown>;
571
+ }, z.core.$strip>>];
572
+ };
573
+ readonly 'admin/audit/:eventId': {
574
+ readonly GET: z.ZodObject<{
575
+ id: z.ZodUUID;
576
+ userId: z.ZodNullable<z.ZodUUID>;
577
+ user: z.ZodOptional<z.ZodNullable<z.ZodObject<{
578
+ id: z.ZodNonOptional<z.ZodOptional<z.ZodUUID>>;
579
+ name: z.ZodNonOptional<z.ZodOptional<z.ZodString>>;
580
+ email: z.ZodOptional<z.ZodEmail>;
581
+ emailVerified: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodCoercedDate<unknown>>>>;
582
+ image: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodURL>>>;
583
+ preferences: z.ZodOptional<z.ZodLazy<z.ZodObject<{
584
+ debug: z.ZodDefault<z.ZodBoolean>;
585
+ }, z.core.$strip>>>;
586
+ roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
587
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
588
+ registeredAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
589
+ isAdmin: z.ZodOptional<z.ZodBoolean>;
590
+ isSuspended: z.ZodOptional<z.ZodBoolean>;
591
+ }, z.core.$strip>>>;
592
+ timestamp: z.ZodCoercedDate<unknown>;
593
+ severity: z.ZodEnum<typeof Severity>;
594
+ name: z.ZodString;
595
+ source: z.ZodString;
596
+ tags: z.ZodArray<z.ZodString>;
597
+ extra: z.ZodRecord<z.ZodAny, z.ZodUnknown>;
598
+ }, z.core.$strip>;
599
+ };
600
+ };
601
+ type _API = typeof _API;
602
+ export interface $API extends _API {
132
603
  }
604
+ export declare const $API: $API;
605
+ export type APIValues = {
606
+ [Endpoint in keyof $API]: {
607
+ [Method in keyof $API[Endpoint]]: $API[Endpoint][Method] extends readonly [
608
+ infer Body extends z.ZodType,
609
+ infer Result extends z.ZodType
610
+ ] ? [z.input<Body>, z.infer<Result>] : $API[Endpoint][Method] extends z.ZodType ? z.infer<$API[Endpoint][Method]> : never;
611
+ };
612
+ };
133
613
  export type Endpoint = keyof $API;
134
- export type APIFunction<Method extends RequestMethod, E extends Endpoint> = Method extends keyof $API[E] ? $API[E][Method] extends [infer Body, infer Result] ? (body: Body) => Promise<Result> : () => $API[E][Method] : unknown;
135
- export type RequestBody<Method extends RequestMethod, E extends Endpoint> = Method extends keyof $API[E] ? $API[E][Method] extends [infer Body, unknown] ? Body : any : unknown;
136
- export type Result<Method extends RequestMethod & keyof $API[E], E extends Endpoint> = $API[E][Method] extends [unknown, infer R] ? R : $API[E][Method];
137
- export type AsyncResult<Method extends RequestMethod & keyof $API[E], E extends Endpoint> = Promise<Result<Method, E>>;
614
+ export type APIFunction<Method extends RequestMethod & keyof $API[E], E extends Endpoint> = Method extends keyof APIValues[E] ? APIValues[E][Method] extends [infer Body, infer Result] ? (body: Body) => Promise<Result> : () => APIValues[E][Method] : unknown;
615
+ export type RequestBody<Method extends RequestMethod & keyof $API[E], E extends Endpoint> = Method extends keyof APIValues[E] ? APIValues[E][Method] extends [infer Body, unknown] ? Body : any : unknown;
616
+ export type Result<Method extends RequestMethod & keyof APIValues[E], E extends Endpoint> = APIValues[E][Method] extends [unknown, infer R] ? R : APIValues[E][Method];
617
+ export type AsyncResult<Method extends RequestMethod & keyof APIValues[E], E extends Endpoint> = Promise<Result<Method, E>>;
138
618
  export type APIParameters<S extends string> = S extends `${string}/:${infer Right}` ? [string, ...APIParameters<Right>] : [];
619
+ export {};