@h-ai/api-contract 1.0.0-beta.2 → 1.0.0-beta.20

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,571 @@
1
+ import { PaginationQuerySchema, paginatedSchema } from './chunk-CCCPHO6X.js';
2
+ import { haiResultSchema, route, HaiVoidResultSchema } from './chunk-5LBEMLDK.js';
3
+ import { z } from 'zod';
4
+
5
+ var captchaProofSchema = z.string().min(1).max(4096).optional();
6
+ var IamCreateCaptchaInputSchema = z.object({
7
+ operation: z.enum([
8
+ "login",
9
+ "register",
10
+ "sendOtp",
11
+ "passwordReset",
12
+ "renewPassword"
13
+ ])
14
+ });
15
+ var IamCaptchaChallengeSchema = z.object({
16
+ id: z.string().regex(/^[a-f0-9]{64}$/),
17
+ challenge: z.object({
18
+ signature: z.string().max(256).optional(),
19
+ parameters: z.object({
20
+ algorithm: z.string().refine((value) => value === "PBKDF2/SHA-256"),
21
+ nonce: z.string().min(1).max(256),
22
+ salt: z.string().min(1).max(256),
23
+ cost: z.number().int().min(100).max(5e4),
24
+ keyLength: z.number().int().min(16).max(64),
25
+ keyPrefix: z.string().min(1).max(128),
26
+ keySignature: z.string().max(256).optional(),
27
+ data: z.record(z.string(), z.union([
28
+ z.string(),
29
+ z.number(),
30
+ z.boolean(),
31
+ z.null()
32
+ ])).optional()
33
+ })
34
+ })
35
+ });
36
+ var IamUserSchema = z.object({
37
+ id: z.string(),
38
+ username: z.string(),
39
+ email: z.string().optional(),
40
+ phone: z.string().optional(),
41
+ displayName: z.string().optional(),
42
+ avatarUrl: z.string().optional(),
43
+ accountType: z.enum(["permanent", "temporary"]).optional(),
44
+ accountStatus: z.enum(["active", "dormant", "closed"]),
45
+ accountExpiresAt: z.coerce.date().nullable().optional(),
46
+ lastLoginAt: z.coerce.date().nullable().optional(),
47
+ mustChangePassword: z.boolean().optional(),
48
+ emailVerified: z.boolean().optional(),
49
+ phoneVerified: z.boolean().optional(),
50
+ createdAt: z.coerce.date(),
51
+ updatedAt: z.coerce.date(),
52
+ metadata: z.record(z.string(), z.unknown()).optional()
53
+ });
54
+ var IamTokenPairSchema = z.object({
55
+ accessToken: z.string(),
56
+ refreshToken: z.string().optional(),
57
+ expiresIn: z.number(),
58
+ tokenType: z.literal("Bearer")
59
+ });
60
+ var IamAgreementDisplaySchema = z.object({
61
+ /** 配置中的 Markdown 原文由客户端安全渲染。 */
62
+ userAgreementMarkdown: z.string().min(1).optional(),
63
+ privacyPolicyMarkdown: z.string().min(1).optional(),
64
+ userAgreementUrl: z.string().optional(),
65
+ privacyPolicyUrl: z.string().optional(),
66
+ showOnRegister: z.boolean(),
67
+ showOnLogin: z.boolean()
68
+ });
69
+ var IamAuthResultSchema = z.object({
70
+ user: IamUserSchema,
71
+ tokens: IamTokenPairSchema,
72
+ roles: z.array(z.string()).default([]),
73
+ permissions: z.array(z.string()).default([]),
74
+ agreements: IamAgreementDisplaySchema.optional()
75
+ });
76
+ var IamCurrentUserSchema = IamUserSchema.extend({
77
+ roles: z.array(z.string()),
78
+ permissions: z.array(z.string())
79
+ });
80
+ var IamLoginInputSchema = z.object({
81
+ expectedUserId: z.string().min(1).max(200).optional(),
82
+ captcha: captchaProofSchema,
83
+ identifier: z.string().min(1),
84
+ password: z.string().min(1)
85
+ });
86
+ var IamSessionErrorCodeSchema = z.enum([
87
+ "hai:iam:101",
88
+ "hai:iam:102",
89
+ "hai:iam:103",
90
+ "hai:iam:105",
91
+ "hai:iam:106",
92
+ "hai:iam:107"
93
+ ]);
94
+ var IamLdapLoginInputSchema = z.object({
95
+ username: z.string().trim().min(1),
96
+ password: z.string().min(1),
97
+ captcha: captchaProofSchema,
98
+ expectedUserId: z.string().min(1).max(200).optional()
99
+ });
100
+ var IamRequestPasswordResetInputSchema = z.object({
101
+ identifier: z.string().trim().min(1),
102
+ captcha: captchaProofSchema
103
+ });
104
+ var IamConfirmPasswordResetInputSchema = z.object({
105
+ token: z.string().min(1),
106
+ newPassword: z.string().min(1)
107
+ });
108
+ var IamRenewPasswordInputSchema = z.object({
109
+ identifier: z.string().trim().min(1),
110
+ password: z.string().min(1),
111
+ newPassword: z.string().min(1),
112
+ captcha: captchaProofSchema
113
+ });
114
+ var IamReauthenticateInputSchema = z.object({
115
+ password: z.string().min(1),
116
+ operation: z.string().trim().min(1).max(128)
117
+ });
118
+ var IamReauthenticationProofSchema = z.object({
119
+ ticket: z.string().min(1),
120
+ expiresAt: z.number()
121
+ });
122
+ var IamPublicConfigSchema = z.object({
123
+ captcha: z.object({
124
+ enabled: z.boolean()
125
+ }).default({ enabled: false }),
126
+ reauthentication: z.object({
127
+ enabled: z.boolean(),
128
+ operations: z.array(z.string())
129
+ }).optional(),
130
+ initialCredentials: z.object({
131
+ enabled: z.boolean()
132
+ }).optional(),
133
+ password: z.object({
134
+ minLength: z.number(),
135
+ maxLength: z.number(),
136
+ requireUppercase: z.boolean(),
137
+ requireLowercase: z.boolean(),
138
+ requireNumber: z.boolean(),
139
+ requireSpecialChar: z.boolean(),
140
+ expirationDays: z.number(),
141
+ minCharacterClasses: z.number().optional(),
142
+ preventSamePassword: z.boolean().optional(),
143
+ requireInitialChange: z.boolean().optional()
144
+ }),
145
+ register: z.object({
146
+ enabled: z.boolean()
147
+ }),
148
+ login: z.object({
149
+ password: z.boolean(),
150
+ otp: z.boolean(),
151
+ ldap: z.boolean(),
152
+ email: z.boolean(),
153
+ sms: z.boolean()
154
+ }),
155
+ passwordReset: z.object({
156
+ enabled: z.boolean(),
157
+ mode: z.enum(["email", "phone"])
158
+ }),
159
+ otp: z.object({
160
+ length: z.number(),
161
+ resendInterval: z.number()
162
+ }),
163
+ agreements: IamAgreementDisplaySchema,
164
+ ui: z.object({
165
+ variant: z.enum(["card", "split"]),
166
+ title: z.string().optional(),
167
+ subtitle: z.string().optional(),
168
+ brandTitle: z.string().optional(),
169
+ brandText: z.string().optional(),
170
+ logoUrl: z.string().optional(),
171
+ illustrationUrl: z.string().optional()
172
+ }),
173
+ session: z.object({
174
+ maxAge: z.number(),
175
+ endOnPageHide: z.boolean().default(false)
176
+ })
177
+ });
178
+ var IamOtpLoginInputSchema = z.object({
179
+ expectedUserId: z.string().min(1).max(200).optional(),
180
+ captcha: captchaProofSchema,
181
+ identifier: z.string().min(1),
182
+ code: z.string().min(1)
183
+ });
184
+ var IamLogoutInputSchema = z.object({
185
+ accessToken: z.string().min(1).optional()
186
+ });
187
+ var IamSendOtpInputSchema = z.object({
188
+ captcha: captchaProofSchema,
189
+ identifier: z.string().min(1)
190
+ });
191
+ var IamSendOtpDataSchema = z.object({
192
+ expiresAt: z.coerce.date()
193
+ });
194
+ var IamRefreshTokenInputSchema = z.object({
195
+ refreshToken: z.string().min(1)
196
+ });
197
+ var IamRefreshTokenDataSchema = z.object({
198
+ tokens: IamTokenPairSchema
199
+ });
200
+ var IamRegisterInputSchema = z.object({
201
+ captcha: captchaProofSchema,
202
+ username: z.string().min(1),
203
+ password: z.string().min(1),
204
+ email: z.string().email().optional(),
205
+ phone: z.string().optional(),
206
+ displayName: z.string().optional(),
207
+ metadata: z.record(z.string(), z.unknown()).optional()
208
+ });
209
+ var IamChangePasswordInputSchema = z.object({
210
+ oldPassword: z.string().min(1),
211
+ newPassword: z.string().min(1)
212
+ });
213
+ var IamUpdateCurrentUserInputSchema = z.object({
214
+ username: z.string().min(1).optional(),
215
+ email: z.string().email().optional(),
216
+ displayName: z.string().optional(),
217
+ avatarUrl: z.string().optional(),
218
+ phone: z.string().optional(),
219
+ metadata: z.record(z.string(), z.unknown()).optional()
220
+ });
221
+ var IamListUsersInputSchema = PaginationQuerySchema.extend({
222
+ sortBy: z.enum([
223
+ "username",
224
+ "email",
225
+ "displayName",
226
+ "accountStatus",
227
+ "createdAt"
228
+ ]).optional(),
229
+ sortDirection: z.enum(["asc", "desc"]).optional(),
230
+ roleCode: z.string().trim().min(1).max(100).optional(),
231
+ search: z.string().optional(),
232
+ accountStatus: z.enum(["active", "dormant", "closed"]).optional()
233
+ }).strict();
234
+ var IamAdminCreateUserInputSchema = z.strictObject({
235
+ accountType: z.enum(["permanent", "temporary"]).optional(),
236
+ accountStatus: z.enum(["active", "dormant", "closed"]).optional(),
237
+ accountExpiresAt: z.coerce.date().optional(),
238
+ username: z.string().min(1),
239
+ email: z.string().email().optional(),
240
+ phone: z.string().optional(),
241
+ password: z.string().min(1),
242
+ displayName: z.string().optional(),
243
+ metadata: z.record(z.string(), z.unknown()).optional(),
244
+ roleIds: z.array(z.string()).optional()
245
+ });
246
+ var IamInviteUserInputSchema = IamAdminCreateUserInputSchema.omit({ password: true }).extend({
247
+ accountStatus: z.literal("active").optional()
248
+ });
249
+ var IamAdminUpdateUserInputSchema = z.strictObject({
250
+ accountType: z.enum(["permanent", "temporary"]).optional(),
251
+ accountStatus: z.enum(["active", "dormant", "closed"]).optional(),
252
+ accountExpiresAt: z.coerce.date().nullable().optional(),
253
+ id: z.string().min(1),
254
+ username: z.string().min(1).optional(),
255
+ email: z.string().email().optional(),
256
+ phone: z.string().optional(),
257
+ displayName: z.string().optional(),
258
+ avatarUrl: z.string().optional(),
259
+ metadata: z.record(z.string(), z.unknown()).optional(),
260
+ roleIds: z.array(z.string()).optional()
261
+ });
262
+ var IamUserIdInputSchema = z.object({
263
+ id: z.string().min(1)
264
+ });
265
+ var IamAdminResetPasswordInputSchema = z.object({
266
+ id: z.string().min(1),
267
+ newPassword: z.string().min(1)
268
+ });
269
+ var IamRoleSchema = z.object({
270
+ id: z.string(),
271
+ code: z.string(),
272
+ name: z.string(),
273
+ description: z.string().optional(),
274
+ isSystem: z.boolean().optional(),
275
+ createdAt: z.coerce.date(),
276
+ updatedAt: z.coerce.date()
277
+ });
278
+ var IamCreateRoleInputSchema = z.object({
279
+ code: z.string().min(1),
280
+ name: z.string().min(1),
281
+ description: z.string().optional(),
282
+ isSystem: z.boolean().optional()
283
+ });
284
+ var IamUpdateRoleInputSchema = z.object({
285
+ id: z.string().min(1),
286
+ name: z.string().min(1).optional(),
287
+ description: z.string().optional()
288
+ });
289
+ var IamPermissionTypeSchema = z.enum(["menu", "api", "button"]);
290
+ var IamPermissionSchema = z.object({
291
+ sensitiveOperations: z.array(z.string().trim().min(1).max(128)).max(1e3).nullish().transform((value) => value ?? []),
292
+ id: z.string(),
293
+ code: z.string(),
294
+ name: z.string(),
295
+ description: z.string().optional(),
296
+ type: IamPermissionTypeSchema.optional(),
297
+ resource: z.string().optional(),
298
+ action: z.string().optional(),
299
+ createdAt: z.coerce.date(),
300
+ updatedAt: z.coerce.date()
301
+ });
302
+ var IamListPermissionsInputSchema = PaginationQuerySchema.extend({
303
+ search: z.string().optional(),
304
+ type: IamPermissionTypeSchema.optional()
305
+ });
306
+ var IamCreatePermissionInputSchema = z.object({
307
+ sensitiveOperations: z.array(z.string().trim().min(1).max(128)).max(1e3).default([]),
308
+ code: z.string().min(1),
309
+ name: z.string().min(1),
310
+ description: z.string().optional(),
311
+ resource: z.string().optional(),
312
+ action: z.string().optional(),
313
+ type: IamPermissionTypeSchema.optional()
314
+ });
315
+
316
+ // src/iam/iam-contract.ts
317
+ var authResultOutputSchema = haiResultSchema(IamAuthResultSchema);
318
+ var userOutputSchema = haiResultSchema(IamUserSchema);
319
+ var roleOutputSchema = haiResultSchema(IamRoleSchema);
320
+ var iamContract = {
321
+ auth: {
322
+ createCaptcha: route({
323
+ method: "POST",
324
+ path: "/auth/captcha",
325
+ operationId: "iam.auth.createCaptcha",
326
+ summary: "Create self-hosted security challenge",
327
+ tags: ["iam", "auth"]
328
+ }).input(IamCreateCaptchaInputSchema).output(haiResultSchema(IamCaptchaChallengeSchema)),
329
+ reauthenticate: route({
330
+ method: "POST",
331
+ path: "/auth/reauthenticate",
332
+ operationId: "iam.auth.reauthenticate",
333
+ summary: "Verify current password for one sensitive operation",
334
+ tags: ["iam", "auth"]
335
+ }).input(IamReauthenticateInputSchema).output(haiResultSchema(IamReauthenticationProofSchema)),
336
+ publicConfig: route({
337
+ method: "GET",
338
+ path: "/auth/config",
339
+ operationId: "iam.auth.publicConfig",
340
+ summary: "Public authentication configuration",
341
+ tags: ["iam", "auth"]
342
+ }).output(haiResultSchema(IamPublicConfigSchema.nullable())),
343
+ renewPassword: route({
344
+ method: "POST",
345
+ path: "/auth/password/renew",
346
+ operationId: "iam.auth.renewPassword",
347
+ summary: "Change initial or expired password",
348
+ tags: ["iam", "auth"]
349
+ }).input(IamRenewPasswordInputSchema).output(HaiVoidResultSchema),
350
+ loginWithLdap: route({
351
+ method: "POST",
352
+ path: "/auth/login/ldap",
353
+ operationId: "iam.auth.loginWithLdap",
354
+ summary: "LDAP login",
355
+ tags: ["iam", "auth"]
356
+ }).input(IamLdapLoginInputSchema).output(authResultOutputSchema),
357
+ requestPasswordReset: route({
358
+ method: "POST",
359
+ path: "/auth/password-reset/request",
360
+ operationId: "iam.auth.requestPasswordReset",
361
+ summary: "Request password reset",
362
+ tags: ["iam", "auth"]
363
+ }).input(IamRequestPasswordResetInputSchema).output(HaiVoidResultSchema),
364
+ confirmPasswordReset: route({
365
+ method: "POST",
366
+ path: "/auth/password-reset/confirm",
367
+ operationId: "iam.auth.confirmPasswordReset",
368
+ summary: "Confirm password reset",
369
+ tags: ["iam", "auth"]
370
+ }).input(IamConfirmPasswordResetInputSchema).output(HaiVoidResultSchema),
371
+ login: route({
372
+ method: "POST",
373
+ path: "/auth/login",
374
+ operationId: "iam.auth.login",
375
+ summary: "Password login",
376
+ tags: ["iam", "auth"]
377
+ }).input(IamLoginInputSchema).output(authResultOutputSchema),
378
+ loginWithOtp: route({
379
+ method: "POST",
380
+ path: "/auth/login/otp",
381
+ operationId: "iam.auth.loginWithOtp",
382
+ summary: "OTP login",
383
+ tags: ["iam", "auth"]
384
+ }).input(IamOtpLoginInputSchema).output(authResultOutputSchema),
385
+ logout: route({
386
+ method: "POST",
387
+ path: "/auth/logout",
388
+ operationId: "iam.auth.logout",
389
+ summary: "Logout",
390
+ tags: ["iam", "auth"]
391
+ }).input(IamLogoutInputSchema).output(HaiVoidResultSchema),
392
+ closeSession: route({
393
+ method: "POST",
394
+ path: "/auth/session/close",
395
+ operationId: "iam.auth.closeSession",
396
+ summary: "Revoke departing client session without clearing newer cookies",
397
+ tags: ["iam", "auth"]
398
+ }).input(IamLogoutInputSchema).output(HaiVoidResultSchema),
399
+ currentUser: route({
400
+ method: "GET",
401
+ path: "/auth/me",
402
+ operationId: "iam.auth.currentUser",
403
+ summary: "Get current user and access scope",
404
+ tags: ["iam", "auth"]
405
+ }).output(haiResultSchema(IamCurrentUserSchema)),
406
+ refresh: route({
407
+ method: "POST",
408
+ path: "/auth/refresh",
409
+ operationId: "iam.auth.refresh",
410
+ summary: "Refresh access token",
411
+ tags: ["iam", "auth"]
412
+ }).input(IamRefreshTokenInputSchema).output(haiResultSchema(IamRefreshTokenDataSchema)),
413
+ sendOtp: route({
414
+ method: "POST",
415
+ path: "/auth/otp/send",
416
+ operationId: "iam.auth.sendOtp",
417
+ summary: "Send OTP",
418
+ tags: ["iam", "auth"]
419
+ }).input(IamSendOtpInputSchema).output(haiResultSchema(IamSendOtpDataSchema)),
420
+ register: route({
421
+ method: "POST",
422
+ path: "/auth/register",
423
+ operationId: "iam.auth.register",
424
+ summary: "Register and login",
425
+ tags: ["iam", "auth"]
426
+ }).input(IamRegisterInputSchema).output(authResultOutputSchema),
427
+ changePassword: route({
428
+ method: "POST",
429
+ path: "/auth/change-password",
430
+ operationId: "iam.auth.changePassword",
431
+ summary: "Change current user password",
432
+ tags: ["iam", "auth"]
433
+ }).input(IamChangePasswordInputSchema).output(HaiVoidResultSchema),
434
+ updateCurrentUser: route({
435
+ method: "PUT",
436
+ path: "/auth/me",
437
+ operationId: "iam.auth.updateCurrentUser",
438
+ summary: "Update current user",
439
+ tags: ["iam", "auth"]
440
+ }).input(IamUpdateCurrentUserInputSchema).output(userOutputSchema)
441
+ },
442
+ users: {
443
+ invite: route({
444
+ method: "POST",
445
+ path: "/iam/users/invite",
446
+ operationId: "iam.users.invite",
447
+ summary: "Create account with one-time setup invitation",
448
+ tags: ["iam", "users"]
449
+ }).input(IamInviteUserInputSchema).output(userOutputSchema),
450
+ list: route({
451
+ method: "GET",
452
+ path: "/iam/users",
453
+ operationId: "iam.users.list",
454
+ summary: "List users",
455
+ tags: ["iam", "users"]
456
+ }).input(IamListUsersInputSchema).output(haiResultSchema(paginatedSchema(IamUserSchema))),
457
+ get: route({
458
+ method: "GET",
459
+ path: "/iam/users/{id}",
460
+ operationId: "iam.users.get",
461
+ summary: "Get user",
462
+ tags: ["iam", "users"]
463
+ }).input(IamUserIdInputSchema).output(haiResultSchema(IamUserSchema.nullable())),
464
+ create: route({
465
+ method: "POST",
466
+ path: "/iam/users",
467
+ operationId: "iam.users.create",
468
+ summary: "Create user",
469
+ tags: ["iam", "users"]
470
+ }).input(IamAdminCreateUserInputSchema).output(userOutputSchema),
471
+ update: route({
472
+ method: "PUT",
473
+ path: "/iam/users/{id}",
474
+ operationId: "iam.users.update",
475
+ summary: "Update user",
476
+ tags: ["iam", "users"]
477
+ }).input(IamAdminUpdateUserInputSchema).output(userOutputSchema),
478
+ delete: route({
479
+ method: "DELETE",
480
+ path: "/iam/users/{id}",
481
+ operationId: "iam.users.delete",
482
+ summary: "Delete user",
483
+ tags: ["iam", "users"]
484
+ }).input(IamUserIdInputSchema).output(HaiVoidResultSchema),
485
+ resetPassword: route({
486
+ method: "POST",
487
+ path: "/iam/users/{id}/reset-password",
488
+ operationId: "iam.users.resetPassword",
489
+ summary: "Reset user password",
490
+ tags: ["iam", "users"]
491
+ }).input(IamAdminResetPasswordInputSchema).output(HaiVoidResultSchema)
492
+ },
493
+ roles: {
494
+ list: route({
495
+ method: "GET",
496
+ path: "/iam/roles",
497
+ operationId: "iam.roles.list",
498
+ summary: "List roles",
499
+ tags: ["iam", "roles"]
500
+ }).output(haiResultSchema(paginatedSchema(IamRoleSchema))),
501
+ get: route({
502
+ method: "GET",
503
+ path: "/iam/roles/{id}",
504
+ operationId: "iam.roles.get",
505
+ summary: "Get role",
506
+ tags: ["iam", "roles"]
507
+ }).input(IamUserIdInputSchema).output(haiResultSchema(IamRoleSchema.nullable())),
508
+ create: route({
509
+ method: "POST",
510
+ path: "/iam/roles",
511
+ operationId: "iam.roles.create",
512
+ summary: "Create role",
513
+ tags: ["iam", "roles"]
514
+ }).input(IamCreateRoleInputSchema).output(roleOutputSchema),
515
+ update: route({
516
+ method: "PUT",
517
+ path: "/iam/roles/{id}",
518
+ operationId: "iam.roles.update",
519
+ summary: "Update role",
520
+ tags: ["iam", "roles"]
521
+ }).input(IamUpdateRoleInputSchema).output(roleOutputSchema),
522
+ delete: route({
523
+ method: "DELETE",
524
+ path: "/iam/roles/{id}",
525
+ operationId: "iam.roles.delete",
526
+ summary: "Delete role",
527
+ tags: ["iam", "roles"]
528
+ }).input(IamUserIdInputSchema).output(HaiVoidResultSchema)
529
+ },
530
+ permissions: {
531
+ setSensitiveOperations: route({
532
+ method: "PUT",
533
+ path: "/iam/permissions/{id}/sensitive-operations",
534
+ operationId: "iam.permissions.sensitiveOperations",
535
+ summary: "Set permission sensitive operations",
536
+ tags: ["iam", "permissions"]
537
+ }).input(IamPermissionSchema.pick({ id: true, sensitiveOperations: true })).output(HaiVoidResultSchema),
538
+ list: route({
539
+ method: "GET",
540
+ path: "/iam/permissions",
541
+ operationId: "iam.permissions.list",
542
+ summary: "List permissions",
543
+ tags: ["iam", "permissions"]
544
+ }).input(IamListPermissionsInputSchema).output(haiResultSchema(paginatedSchema(IamPermissionSchema))),
545
+ get: route({
546
+ method: "GET",
547
+ path: "/iam/permissions/{id}",
548
+ operationId: "iam.permissions.get",
549
+ summary: "Get permission",
550
+ tags: ["iam", "permissions"]
551
+ }).input(IamUserIdInputSchema).output(haiResultSchema(IamPermissionSchema.nullable())),
552
+ create: route({
553
+ method: "POST",
554
+ path: "/iam/permissions",
555
+ operationId: "iam.permissions.create",
556
+ summary: "Create permission",
557
+ tags: ["iam", "permissions"]
558
+ }).input(IamCreatePermissionInputSchema).output(haiResultSchema(IamPermissionSchema)),
559
+ delete: route({
560
+ method: "DELETE",
561
+ path: "/iam/permissions/{id}",
562
+ operationId: "iam.permissions.delete",
563
+ summary: "Delete permission",
564
+ tags: ["iam", "permissions"]
565
+ }).input(IamUserIdInputSchema).output(HaiVoidResultSchema)
566
+ }
567
+ };
568
+
569
+ export { IamAdminCreateUserInputSchema, IamAdminResetPasswordInputSchema, IamAdminUpdateUserInputSchema, IamAgreementDisplaySchema, IamAuthResultSchema, IamCaptchaChallengeSchema, IamChangePasswordInputSchema, IamConfirmPasswordResetInputSchema, IamCreateCaptchaInputSchema, IamCreatePermissionInputSchema, IamCreateRoleInputSchema, IamCurrentUserSchema, IamInviteUserInputSchema, IamLdapLoginInputSchema, IamListPermissionsInputSchema, IamListUsersInputSchema, IamLoginInputSchema, IamLogoutInputSchema, IamOtpLoginInputSchema, IamPermissionSchema, IamPermissionTypeSchema, IamPublicConfigSchema, IamReauthenticateInputSchema, IamReauthenticationProofSchema, IamRefreshTokenDataSchema, IamRefreshTokenInputSchema, IamRegisterInputSchema, IamRenewPasswordInputSchema, IamRequestPasswordResetInputSchema, IamRoleSchema, IamSendOtpDataSchema, IamSendOtpInputSchema, IamSessionErrorCodeSchema, IamTokenPairSchema, IamUpdateCurrentUserInputSchema, IamUpdateRoleInputSchema, IamUserIdInputSchema, IamUserSchema, iamContract };
570
+ //# sourceMappingURL=chunk-PS3OHILQ.js.map
571
+ //# sourceMappingURL=chunk-PS3OHILQ.js.map