@@ -349,6 +349,30 @@ export const recordSchema = t.isObject({
349349
350350export type RecordSchema = t . InferType < typeof objectSchema > ;
351351
352+ export const permissionSchema = t . isObject ( {
353+ type : t . isLiteral ( 'permission' ) ,
354+ description : t . isOptional ( t . isString ( ) ) ,
355+ resource : t . isString ( ) ,
356+ lxm : t . isOptional ( t . isArray ( t . isString ( ) ) ) ,
357+ action : t . isOptional ( t . isArray ( t . isString ( ) ) ) ,
358+ collection : t . isOptional ( t . isArray ( t . isString ( ) ) ) ,
359+ inheritAud : t . isOptional ( t . isBoolean ( ) ) ,
360+ } ) ;
361+
362+ export type PermissionSchema = t . InferType < typeof permissionSchema > ;
363+
364+ export const permissionSetSchema = t . isObject ( {
365+ type : t . isLiteral ( 'permission-set' ) ,
366+ description : t . isOptional ( t . isString ( ) ) ,
367+ title : t . isOptional ( t . isString ( ) ) ,
368+ 'title:lang' : t . isOptional ( t . isRecord ( t . isUnknown ( ) ) ) ,
369+ detail : t . isOptional ( t . isString ( ) ) ,
370+ 'detail:lang' : t . isOptional ( t . isRecord ( t . isUnknown ( ) ) ) ,
371+ permissions : t . isArray ( permissionSchema ) ,
372+ } ) ;
373+
374+ export type PermissionSetSchema = t . InferType < typeof permissionSetSchema > ;
375+
352376export const userTypeSchema = t . isOneOf ( [
353377 recordSchema ,
354378 xrpcQuerySchema ,
@@ -364,6 +388,8 @@ export const userTypeSchema = t.isOneOf([
364388 bytesSchema ,
365389 cidLinkSchema ,
366390 unknownSchema ,
391+ permissionSchema ,
392+ permissionSetSchema ,
367393] ) ;
368394
369395export type UserTypeSchema = t . InferType < typeof userTypeSchema > ;
0 commit comments