@@ -10,6 +10,8 @@ import { extensionRegex, isISOString, semverRegex } from "./regex.ts";
1010
1111export const EntitySchema = z
1212 . object ( {
13+ // biome-ignore lint/style/useNamingConvention:
14+ $schema : z . string ( ) . url ( ) . optional ( ) . nullable ( ) ,
1315 id : z . string ( ) . max ( 512 ) ,
1416 created_at : z
1517 . string ( )
@@ -37,6 +39,17 @@ export const NoteSchema = EntitySchema.extend({
3739 . optional ( )
3840 . nullable ( ) ,
3941 content : TextOnlyContentFormatSchema . optional ( ) . nullable ( ) ,
42+ collections : z . object ( {
43+ replies : z . string ( ) . url ( ) ,
44+ quotes : z . string ( ) . url ( ) ,
45+ "pub.versia:reactions/Reactions" : z
46+ . string ( )
47+ . url ( )
48+ . optional ( )
49+ . nullable ( ) ,
50+ "pub.versia:likes/Likes" : z . string ( ) . url ( ) . optional ( ) . nullable ( ) ,
51+ "pub.versia:likes/Dislikes" : z . string ( ) . url ( ) . optional ( ) . nullable ( ) ,
52+ } ) ,
4053 device : z
4154 . object ( {
4255 name : z . string ( ) ,
@@ -72,13 +85,6 @@ export const NoteSchema = EntitySchema.extend({
7285 replies_to : z . string ( ) . url ( ) . optional ( ) . nullable ( ) ,
7386 subject : z . string ( ) . optional ( ) . nullable ( ) ,
7487 extensions : ExtensionPropertySchema . extend ( {
75- "pub.versia:reactions" : z
76- . object ( {
77- reactions : z . string ( ) . url ( ) ,
78- } )
79- . strict ( )
80- . optional ( )
81- . nullable ( ) ,
8288 "pub.versia:polls" : z
8389 . object ( {
8490 options : z . array ( TextOnlyContentFormatSchema ) ,
@@ -119,6 +125,10 @@ export const CollectionSchema = z.object({
119125 items : z . array ( z . any ( ) ) ,
120126} ) ;
121127
128+ export const URICollectionSchema = CollectionSchema . extend ( {
129+ items : z . array ( z . string ( ) . url ( ) ) ,
130+ } ) ;
131+
122132export const PublicKeyDataSchema = z
123133 . object ( {
124134 key : z . string ( ) . min ( 1 ) ,
@@ -147,8 +157,8 @@ export const UserSchema = EntitySchema.extend({
147157 . string ( )
148158 . min ( 1 )
149159 . regex (
150- / ^ [ a - z 0 - 9 _ - ] + $ / ,
151- "must be lowercase, alphanumeric, and may contain _ or -" ,
160+ / ^ [ a - z A - Z 0 - 9 _ - ] + $ / ,
161+ "must be alphanumeric, and may contain _ or -" ,
152162 ) ,
153163 header : ImageOnlyContentFormatSchema . optional ( ) . nullable ( ) ,
154164 public_key : PublicKeyDataSchema ,
@@ -208,14 +218,6 @@ export const UnfollowSchema = EntitySchema.extend({
208218 followee : z . string ( ) . url ( ) ,
209219} ) ;
210220
211- export const GroupSchema = EntitySchema . extend ( {
212- type : z . literal ( "Group" ) ,
213- name : TextOnlyContentFormatSchema . optional ( ) . nullable ( ) ,
214- description : TextOnlyContentFormatSchema . optional ( ) . nullable ( ) ,
215- members : z . string ( ) . url ( ) ,
216- notes : z . string ( ) . url ( ) . optional ( ) . nullable ( ) ,
217- } ) ;
218-
219221export const InstanceMetadataSchema = EntitySchema . extend ( {
220222 type : z . literal ( "InstanceMetadata" ) ,
221223 id : z . null ( ) . optional ( ) ,
0 commit comments