@atproto/api 0.14.0-next.1 → 0.14.0-next.2

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.
Files changed (236) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/definitions/labels.json +1 -0
  3. package/dist/client/lexicons.d.ts +66 -0
  4. package/dist/client/lexicons.d.ts.map +1 -1
  5. package/dist/client/lexicons.js +33 -0
  6. package/dist/client/lexicons.js.map +1 -1
  7. package/dist/client/types/app/bsky/actor/defs.d.ts +24 -24
  8. package/dist/client/types/app/bsky/actor/defs.js.map +1 -1
  9. package/dist/client/types/app/bsky/actor/profile.d.ts +1 -3
  10. package/dist/client/types/app/bsky/actor/profile.d.ts.map +1 -1
  11. package/dist/client/types/app/bsky/actor/profile.js.map +1 -1
  12. package/dist/client/types/app/bsky/embed/defs.d.ts +1 -1
  13. package/dist/client/types/app/bsky/embed/defs.js.map +1 -1
  14. package/dist/client/types/app/bsky/embed/external.d.ts +4 -4
  15. package/dist/client/types/app/bsky/embed/external.js.map +1 -1
  16. package/dist/client/types/app/bsky/embed/images.d.ts +4 -4
  17. package/dist/client/types/app/bsky/embed/images.js.map +1 -1
  18. package/dist/client/types/app/bsky/embed/record.d.ts +6 -6
  19. package/dist/client/types/app/bsky/embed/record.js.map +1 -1
  20. package/dist/client/types/app/bsky/embed/recordWithMedia.d.ts +2 -2
  21. package/dist/client/types/app/bsky/embed/recordWithMedia.js.map +1 -1
  22. package/dist/client/types/app/bsky/embed/video.d.ts +3 -3
  23. package/dist/client/types/app/bsky/embed/video.js.map +1 -1
  24. package/dist/client/types/app/bsky/feed/defs.d.ts +17 -17
  25. package/dist/client/types/app/bsky/feed/defs.js.map +1 -1
  26. package/dist/client/types/app/bsky/feed/describeFeedGenerator.d.ts +2 -2
  27. package/dist/client/types/app/bsky/feed/describeFeedGenerator.js.map +1 -1
  28. package/dist/client/types/app/bsky/feed/generator.d.ts +1 -3
  29. package/dist/client/types/app/bsky/feed/generator.d.ts.map +1 -1
  30. package/dist/client/types/app/bsky/feed/generator.js.map +1 -1
  31. package/dist/client/types/app/bsky/feed/getLikes.d.ts +1 -1
  32. package/dist/client/types/app/bsky/feed/getLikes.js.map +1 -1
  33. package/dist/client/types/app/bsky/feed/like.d.ts +2 -4
  34. package/dist/client/types/app/bsky/feed/like.d.ts.map +1 -1
  35. package/dist/client/types/app/bsky/feed/like.js.map +1 -1
  36. package/dist/client/types/app/bsky/feed/post.d.ts +4 -6
  37. package/dist/client/types/app/bsky/feed/post.d.ts.map +1 -1
  38. package/dist/client/types/app/bsky/feed/post.js.map +1 -1
  39. package/dist/client/types/app/bsky/feed/postgate.d.ts +2 -4
  40. package/dist/client/types/app/bsky/feed/postgate.d.ts.map +1 -1
  41. package/dist/client/types/app/bsky/feed/postgate.js.map +1 -1
  42. package/dist/client/types/app/bsky/feed/repost.d.ts +2 -4
  43. package/dist/client/types/app/bsky/feed/repost.d.ts.map +1 -1
  44. package/dist/client/types/app/bsky/feed/repost.js.map +1 -1
  45. package/dist/client/types/app/bsky/feed/threadgate.d.ts +4 -6
  46. package/dist/client/types/app/bsky/feed/threadgate.d.ts.map +1 -1
  47. package/dist/client/types/app/bsky/feed/threadgate.js.map +1 -1
  48. package/dist/client/types/app/bsky/graph/block.d.ts +2 -4
  49. package/dist/client/types/app/bsky/graph/block.d.ts.map +1 -1
  50. package/dist/client/types/app/bsky/graph/block.js.map +1 -1
  51. package/dist/client/types/app/bsky/graph/defs.d.ts +8 -8
  52. package/dist/client/types/app/bsky/graph/defs.js.map +1 -1
  53. package/dist/client/types/app/bsky/graph/follow.d.ts +2 -4
  54. package/dist/client/types/app/bsky/graph/follow.d.ts.map +1 -1
  55. package/dist/client/types/app/bsky/graph/follow.js.map +1 -1
  56. package/dist/client/types/app/bsky/graph/list.d.ts +1 -3
  57. package/dist/client/types/app/bsky/graph/list.d.ts.map +1 -1
  58. package/dist/client/types/app/bsky/graph/list.js.map +1 -1
  59. package/dist/client/types/app/bsky/graph/listblock.d.ts +2 -4
  60. package/dist/client/types/app/bsky/graph/listblock.d.ts.map +1 -1
  61. package/dist/client/types/app/bsky/graph/listblock.js.map +1 -1
  62. package/dist/client/types/app/bsky/graph/listitem.d.ts +2 -4
  63. package/dist/client/types/app/bsky/graph/listitem.d.ts.map +1 -1
  64. package/dist/client/types/app/bsky/graph/listitem.js.map +1 -1
  65. package/dist/client/types/app/bsky/graph/starterpack.d.ts +3 -5
  66. package/dist/client/types/app/bsky/graph/starterpack.d.ts.map +1 -1
  67. package/dist/client/types/app/bsky/graph/starterpack.js.map +1 -1
  68. package/dist/client/types/app/bsky/labeler/defs.d.ts +4 -4
  69. package/dist/client/types/app/bsky/labeler/defs.js.map +1 -1
  70. package/dist/client/types/app/bsky/labeler/service.d.ts +1 -3
  71. package/dist/client/types/app/bsky/labeler/service.d.ts.map +1 -1
  72. package/dist/client/types/app/bsky/labeler/service.js.map +1 -1
  73. package/dist/client/types/app/bsky/notification/listNotifications.d.ts +1 -1
  74. package/dist/client/types/app/bsky/notification/listNotifications.js.map +1 -1
  75. package/dist/client/types/app/bsky/richtext/facet.d.ts +5 -5
  76. package/dist/client/types/app/bsky/richtext/facet.js.map +1 -1
  77. package/dist/client/types/app/bsky/unspecced/defs.d.ts +4 -4
  78. package/dist/client/types/app/bsky/unspecced/defs.js.map +1 -1
  79. package/dist/client/types/app/bsky/unspecced/getTaggedSuggestions.d.ts +1 -1
  80. package/dist/client/types/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
  81. package/dist/client/types/app/bsky/video/defs.d.ts +1 -1
  82. package/dist/client/types/app/bsky/video/defs.js.map +1 -1
  83. package/dist/client/types/chat/bsky/actor/declaration.d.ts +2 -4
  84. package/dist/client/types/chat/bsky/actor/declaration.d.ts.map +1 -1
  85. package/dist/client/types/chat/bsky/actor/declaration.js.map +1 -1
  86. package/dist/client/types/chat/bsky/actor/defs.d.ts +1 -1
  87. package/dist/client/types/chat/bsky/actor/defs.js.map +1 -1
  88. package/dist/client/types/chat/bsky/convo/defs.d.ts +10 -10
  89. package/dist/client/types/chat/bsky/convo/defs.js.map +1 -1
  90. package/dist/client/types/chat/bsky/convo/sendMessageBatch.d.ts +1 -1
  91. package/dist/client/types/chat/bsky/convo/sendMessageBatch.js.map +1 -1
  92. package/dist/client/types/chat/bsky/moderation/getActorMetadata.d.ts +1 -1
  93. package/dist/client/types/chat/bsky/moderation/getActorMetadata.js.map +1 -1
  94. package/dist/client/types/com/atproto/admin/defs.d.ts +5 -5
  95. package/dist/client/types/com/atproto/admin/defs.js.map +1 -1
  96. package/dist/client/types/com/atproto/label/defs.d.ts +5 -5
  97. package/dist/client/types/com/atproto/label/defs.js.map +1 -1
  98. package/dist/client/types/com/atproto/label/subscribeLabels.d.ts +2 -2
  99. package/dist/client/types/com/atproto/label/subscribeLabels.js.map +1 -1
  100. package/dist/client/types/com/atproto/repo/applyWrites.d.ts +6 -6
  101. package/dist/client/types/com/atproto/repo/applyWrites.js.map +1 -1
  102. package/dist/client/types/com/atproto/repo/defs.d.ts +1 -1
  103. package/dist/client/types/com/atproto/repo/defs.js.map +1 -1
  104. package/dist/client/types/com/atproto/repo/listMissingBlobs.d.ts +1 -1
  105. package/dist/client/types/com/atproto/repo/listMissingBlobs.js.map +1 -1
  106. package/dist/client/types/com/atproto/repo/listRecords.d.ts +1 -1
  107. package/dist/client/types/com/atproto/repo/listRecords.js.map +1 -1
  108. package/dist/client/types/com/atproto/repo/strongRef.d.ts +1 -1
  109. package/dist/client/types/com/atproto/repo/strongRef.js.map +1 -1
  110. package/dist/client/types/com/atproto/server/createAppPassword.d.ts +1 -1
  111. package/dist/client/types/com/atproto/server/createAppPassword.js.map +1 -1
  112. package/dist/client/types/com/atproto/server/createInviteCodes.d.ts +1 -1
  113. package/dist/client/types/com/atproto/server/createInviteCodes.js.map +1 -1
  114. package/dist/client/types/com/atproto/server/createSession.d.ts +2 -0
  115. package/dist/client/types/com/atproto/server/createSession.d.ts.map +1 -1
  116. package/dist/client/types/com/atproto/server/createSession.js.map +1 -1
  117. package/dist/client/types/com/atproto/server/defs.d.ts +2 -2
  118. package/dist/client/types/com/atproto/server/defs.js.map +1 -1
  119. package/dist/client/types/com/atproto/server/describeServer.d.ts +2 -2
  120. package/dist/client/types/com/atproto/server/describeServer.js.map +1 -1
  121. package/dist/client/types/com/atproto/server/listAppPasswords.d.ts +1 -1
  122. package/dist/client/types/com/atproto/server/listAppPasswords.js.map +1 -1
  123. package/dist/client/types/com/atproto/sync/listRepos.d.ts +1 -1
  124. package/dist/client/types/com/atproto/sync/listRepos.js.map +1 -1
  125. package/dist/client/types/com/atproto/sync/subscribeRepos.d.ts +8 -8
  126. package/dist/client/types/com/atproto/sync/subscribeRepos.js.map +1 -1
  127. package/dist/client/types/tools/ozone/communication/defs.d.ts +1 -1
  128. package/dist/client/types/tools/ozone/communication/defs.js.map +1 -1
  129. package/dist/client/types/tools/ozone/moderation/defs.d.ts +36 -34
  130. package/dist/client/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  131. package/dist/client/types/tools/ozone/moderation/defs.js.map +1 -1
  132. package/dist/client/types/tools/ozone/moderation/queryEvents.d.ts +1 -0
  133. package/dist/client/types/tools/ozone/moderation/queryEvents.d.ts.map +1 -1
  134. package/dist/client/types/tools/ozone/moderation/queryEvents.js.map +1 -1
  135. package/dist/client/types/tools/ozone/moderation/queryStatuses.d.ts +6 -0
  136. package/dist/client/types/tools/ozone/moderation/queryStatuses.d.ts.map +1 -1
  137. package/dist/client/types/tools/ozone/moderation/queryStatuses.js.map +1 -1
  138. package/dist/client/types/tools/ozone/server/getConfig.d.ts +2 -2
  139. package/dist/client/types/tools/ozone/server/getConfig.js.map +1 -1
  140. package/dist/client/types/tools/ozone/set/defs.d.ts +2 -2
  141. package/dist/client/types/tools/ozone/set/defs.js.map +1 -1
  142. package/dist/client/types/tools/ozone/setting/defs.d.ts +1 -1
  143. package/dist/client/types/tools/ozone/setting/defs.js.map +1 -1
  144. package/dist/client/types/tools/ozone/signature/defs.d.ts +1 -1
  145. package/dist/client/types/tools/ozone/signature/defs.js.map +1 -1
  146. package/dist/client/types/tools/ozone/signature/findRelatedAccounts.d.ts +1 -1
  147. package/dist/client/types/tools/ozone/signature/findRelatedAccounts.js.map +1 -1
  148. package/dist/client/types/tools/ozone/team/defs.d.ts +1 -1
  149. package/dist/client/types/tools/ozone/team/defs.js.map +1 -1
  150. package/dist/index.d.ts +1 -0
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.js.map +1 -1
  153. package/dist/moderation/const/labels.d.ts +1 -1
  154. package/dist/moderation/const/labels.d.ts.map +1 -1
  155. package/dist/moderation/const/labels.js +23 -0
  156. package/dist/moderation/const/labels.js.map +1 -1
  157. package/dist/moderation/decision.d.ts.map +1 -1
  158. package/dist/moderation/decision.js +1 -1
  159. package/dist/moderation/decision.js.map +1 -1
  160. package/dist/moderation/subjects/post.d.ts.map +1 -1
  161. package/dist/moderation/subjects/post.js +22 -17
  162. package/dist/moderation/subjects/post.js.map +1 -1
  163. package/dist/moderation/types.d.ts +2 -2
  164. package/dist/moderation/types.d.ts.map +1 -1
  165. package/dist/moderation/types.js.map +1 -1
  166. package/package.json +5 -5
  167. package/scripts/code/labels.mjs +33 -9
  168. package/src/client/lexicons.ts +40 -1
  169. package/src/client/types/app/bsky/actor/defs.ts +24 -24
  170. package/src/client/types/app/bsky/actor/profile.ts +1 -1
  171. package/src/client/types/app/bsky/embed/defs.ts +1 -1
  172. package/src/client/types/app/bsky/embed/external.ts +4 -4
  173. package/src/client/types/app/bsky/embed/images.ts +4 -4
  174. package/src/client/types/app/bsky/embed/record.ts +6 -6
  175. package/src/client/types/app/bsky/embed/recordWithMedia.ts +2 -2
  176. package/src/client/types/app/bsky/embed/video.ts +3 -3
  177. package/src/client/types/app/bsky/feed/defs.ts +17 -17
  178. package/src/client/types/app/bsky/feed/describeFeedGenerator.ts +2 -2
  179. package/src/client/types/app/bsky/feed/generator.ts +1 -1
  180. package/src/client/types/app/bsky/feed/getLikes.ts +1 -1
  181. package/src/client/types/app/bsky/feed/like.ts +1 -1
  182. package/src/client/types/app/bsky/feed/post.ts +4 -4
  183. package/src/client/types/app/bsky/feed/postgate.ts +2 -2
  184. package/src/client/types/app/bsky/feed/repost.ts +1 -1
  185. package/src/client/types/app/bsky/feed/threadgate.ts +4 -4
  186. package/src/client/types/app/bsky/graph/block.ts +1 -1
  187. package/src/client/types/app/bsky/graph/defs.ts +8 -8
  188. package/src/client/types/app/bsky/graph/follow.ts +1 -1
  189. package/src/client/types/app/bsky/graph/list.ts +1 -1
  190. package/src/client/types/app/bsky/graph/listblock.ts +1 -1
  191. package/src/client/types/app/bsky/graph/listitem.ts +1 -1
  192. package/src/client/types/app/bsky/graph/starterpack.ts +2 -2
  193. package/src/client/types/app/bsky/labeler/defs.ts +4 -4
  194. package/src/client/types/app/bsky/labeler/service.ts +1 -1
  195. package/src/client/types/app/bsky/notification/listNotifications.ts +1 -1
  196. package/src/client/types/app/bsky/richtext/facet.ts +5 -5
  197. package/src/client/types/app/bsky/unspecced/defs.ts +4 -4
  198. package/src/client/types/app/bsky/unspecced/getTaggedSuggestions.ts +1 -1
  199. package/src/client/types/app/bsky/video/defs.ts +1 -1
  200. package/src/client/types/chat/bsky/actor/declaration.ts +1 -1
  201. package/src/client/types/chat/bsky/actor/defs.ts +1 -1
  202. package/src/client/types/chat/bsky/convo/defs.ts +10 -10
  203. package/src/client/types/chat/bsky/convo/sendMessageBatch.ts +1 -1
  204. package/src/client/types/chat/bsky/moderation/getActorMetadata.ts +1 -1
  205. package/src/client/types/com/atproto/admin/defs.ts +5 -5
  206. package/src/client/types/com/atproto/label/defs.ts +5 -5
  207. package/src/client/types/com/atproto/label/subscribeLabels.ts +2 -2
  208. package/src/client/types/com/atproto/repo/applyWrites.ts +6 -6
  209. package/src/client/types/com/atproto/repo/defs.ts +1 -1
  210. package/src/client/types/com/atproto/repo/listMissingBlobs.ts +1 -1
  211. package/src/client/types/com/atproto/repo/listRecords.ts +1 -1
  212. package/src/client/types/com/atproto/repo/strongRef.ts +1 -1
  213. package/src/client/types/com/atproto/server/createAppPassword.ts +1 -1
  214. package/src/client/types/com/atproto/server/createInviteCodes.ts +1 -1
  215. package/src/client/types/com/atproto/server/createSession.ts +2 -0
  216. package/src/client/types/com/atproto/server/defs.ts +2 -2
  217. package/src/client/types/com/atproto/server/describeServer.ts +2 -2
  218. package/src/client/types/com/atproto/server/listAppPasswords.ts +1 -1
  219. package/src/client/types/com/atproto/sync/listRepos.ts +1 -1
  220. package/src/client/types/com/atproto/sync/subscribeRepos.ts +8 -8
  221. package/src/client/types/tools/ozone/communication/defs.ts +1 -1
  222. package/src/client/types/tools/ozone/moderation/defs.ts +40 -34
  223. package/src/client/types/tools/ozone/moderation/queryEvents.ts +1 -0
  224. package/src/client/types/tools/ozone/moderation/queryStatuses.ts +6 -0
  225. package/src/client/types/tools/ozone/server/getConfig.ts +2 -2
  226. package/src/client/types/tools/ozone/set/defs.ts +2 -2
  227. package/src/client/types/tools/ozone/setting/defs.ts +1 -1
  228. package/src/client/types/tools/ozone/signature/defs.ts +1 -1
  229. package/src/client/types/tools/ozone/signature/findRelatedAccounts.ts +1 -1
  230. package/src/client/types/tools/ozone/team/defs.ts +1 -1
  231. package/src/index.ts +1 -0
  232. package/src/moderation/const/labels.ts +24 -0
  233. package/src/moderation/decision.ts +1 -3
  234. package/src/moderation/subjects/post.ts +40 -22
  235. package/src/moderation/types.ts +2 -0
  236. package/tests/rich-text-detection.test.ts +2 -6
@@ -40,7 +40,7 @@ export function validateProfileViewBasic<V>(v: V) {
40
40
  }
41
41
 
42
42
  export function isValidProfileViewBasic<V>(v: V) {
43
- return isValid<ProfileViewBasic>(v, id, hashProfileViewBasic)
43
+ return isValid<ProfileViewBasic & V>(v, id, hashProfileViewBasic)
44
44
  }
45
45
 
46
46
  export interface ProfileView {
@@ -68,7 +68,7 @@ export function validateProfileView<V>(v: V) {
68
68
  }
69
69
 
70
70
  export function isValidProfileView<V>(v: V) {
71
- return isValid<ProfileView>(v, id, hashProfileView)
71
+ return isValid<ProfileView & V>(v, id, hashProfileView)
72
72
  }
73
73
 
74
74
  export interface ProfileViewDetailed {
@@ -102,7 +102,7 @@ export function validateProfileViewDetailed<V>(v: V) {
102
102
  }
103
103
 
104
104
  export function isValidProfileViewDetailed<V>(v: V) {
105
- return isValid<ProfileViewDetailed>(v, id, hashProfileViewDetailed)
105
+ return isValid<ProfileViewDetailed & V>(v, id, hashProfileViewDetailed)
106
106
  }
107
107
 
108
108
  export interface ProfileAssociated {
@@ -125,7 +125,7 @@ export function validateProfileAssociated<V>(v: V) {
125
125
  }
126
126
 
127
127
  export function isValidProfileAssociated<V>(v: V) {
128
- return isValid<ProfileAssociated>(v, id, hashProfileAssociated)
128
+ return isValid<ProfileAssociated & V>(v, id, hashProfileAssociated)
129
129
  }
130
130
 
131
131
  export interface ProfileAssociatedChat {
@@ -144,7 +144,7 @@ export function validateProfileAssociatedChat<V>(v: V) {
144
144
  }
145
145
 
146
146
  export function isValidProfileAssociatedChat<V>(v: V) {
147
- return isValid<ProfileAssociatedChat>(v, id, hashProfileAssociatedChat)
147
+ return isValid<ProfileAssociatedChat & V>(v, id, hashProfileAssociatedChat)
148
148
  }
149
149
 
150
150
  /** Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests. */
@@ -171,7 +171,7 @@ export function validateViewerState<V>(v: V) {
171
171
  }
172
172
 
173
173
  export function isValidViewerState<V>(v: V) {
174
- return isValid<ViewerState>(v, id, hashViewerState)
174
+ return isValid<ViewerState & V>(v, id, hashViewerState)
175
175
  }
176
176
 
177
177
  /** The subject's followers whom you also follow */
@@ -192,7 +192,7 @@ export function validateKnownFollowers<V>(v: V) {
192
192
  }
193
193
 
194
194
  export function isValidKnownFollowers<V>(v: V) {
195
- return isValid<KnownFollowers>(v, id, hashKnownFollowers)
195
+ return isValid<KnownFollowers & V>(v, id, hashKnownFollowers)
196
196
  }
197
197
 
198
198
  export type Preferences = (
@@ -227,7 +227,7 @@ export function validateAdultContentPref<V>(v: V) {
227
227
  }
228
228
 
229
229
  export function isValidAdultContentPref<V>(v: V) {
230
- return isValid<AdultContentPref>(v, id, hashAdultContentPref)
230
+ return isValid<AdultContentPref & V>(v, id, hashAdultContentPref)
231
231
  }
232
232
 
233
233
  export interface ContentLabelPref {
@@ -249,7 +249,7 @@ export function validateContentLabelPref<V>(v: V) {
249
249
  }
250
250
 
251
251
  export function isValidContentLabelPref<V>(v: V) {
252
- return isValid<ContentLabelPref>(v, id, hashContentLabelPref)
252
+ return isValid<ContentLabelPref & V>(v, id, hashContentLabelPref)
253
253
  }
254
254
 
255
255
  export interface SavedFeed {
@@ -271,7 +271,7 @@ export function validateSavedFeed<V>(v: V) {
271
271
  }
272
272
 
273
273
  export function isValidSavedFeed<V>(v: V) {
274
- return isValid<SavedFeed>(v, id, hashSavedFeed)
274
+ return isValid<SavedFeed & V>(v, id, hashSavedFeed)
275
275
  }
276
276
 
277
277
  export interface SavedFeedsPrefV2 {
@@ -290,7 +290,7 @@ export function validateSavedFeedsPrefV2<V>(v: V) {
290
290
  }
291
291
 
292
292
  export function isValidSavedFeedsPrefV2<V>(v: V) {
293
- return isValid<SavedFeedsPrefV2>(v, id, hashSavedFeedsPrefV2)
293
+ return isValid<SavedFeedsPrefV2 & V>(v, id, hashSavedFeedsPrefV2)
294
294
  }
295
295
 
296
296
  export interface SavedFeedsPref {
@@ -311,7 +311,7 @@ export function validateSavedFeedsPref<V>(v: V) {
311
311
  }
312
312
 
313
313
  export function isValidSavedFeedsPref<V>(v: V) {
314
- return isValid<SavedFeedsPref>(v, id, hashSavedFeedsPref)
314
+ return isValid<SavedFeedsPref & V>(v, id, hashSavedFeedsPref)
315
315
  }
316
316
 
317
317
  export interface PersonalDetailsPref {
@@ -331,7 +331,7 @@ export function validatePersonalDetailsPref<V>(v: V) {
331
331
  }
332
332
 
333
333
  export function isValidPersonalDetailsPref<V>(v: V) {
334
- return isValid<PersonalDetailsPref>(v, id, hashPersonalDetailsPref)
334
+ return isValid<PersonalDetailsPref & V>(v, id, hashPersonalDetailsPref)
335
335
  }
336
336
 
337
337
  export interface FeedViewPref {
@@ -361,7 +361,7 @@ export function validateFeedViewPref<V>(v: V) {
361
361
  }
362
362
 
363
363
  export function isValidFeedViewPref<V>(v: V) {
364
- return isValid<FeedViewPref>(v, id, hashFeedViewPref)
364
+ return isValid<FeedViewPref & V>(v, id, hashFeedViewPref)
365
365
  }
366
366
 
367
367
  export interface ThreadViewPref {
@@ -389,7 +389,7 @@ export function validateThreadViewPref<V>(v: V) {
389
389
  }
390
390
 
391
391
  export function isValidThreadViewPref<V>(v: V) {
392
- return isValid<ThreadViewPref>(v, id, hashThreadViewPref)
392
+ return isValid<ThreadViewPref & V>(v, id, hashThreadViewPref)
393
393
  }
394
394
 
395
395
  export interface InterestsPref {
@@ -409,7 +409,7 @@ export function validateInterestsPref<V>(v: V) {
409
409
  }
410
410
 
411
411
  export function isValidInterestsPref<V>(v: V) {
412
- return isValid<InterestsPref>(v, id, hashInterestsPref)
412
+ return isValid<InterestsPref & V>(v, id, hashInterestsPref)
413
413
  }
414
414
 
415
415
  export type MutedWordTarget = 'content' | 'tag' | (string & {})
@@ -439,7 +439,7 @@ export function validateMutedWord<V>(v: V) {
439
439
  }
440
440
 
441
441
  export function isValidMutedWord<V>(v: V) {
442
- return isValid<MutedWord>(v, id, hashMutedWord)
442
+ return isValid<MutedWord & V>(v, id, hashMutedWord)
443
443
  }
444
444
 
445
445
  export interface MutedWordsPref {
@@ -459,7 +459,7 @@ export function validateMutedWordsPref<V>(v: V) {
459
459
  }
460
460
 
461
461
  export function isValidMutedWordsPref<V>(v: V) {
462
- return isValid<MutedWordsPref>(v, id, hashMutedWordsPref)
462
+ return isValid<MutedWordsPref & V>(v, id, hashMutedWordsPref)
463
463
  }
464
464
 
465
465
  export interface HiddenPostsPref {
@@ -479,7 +479,7 @@ export function validateHiddenPostsPref<V>(v: V) {
479
479
  }
480
480
 
481
481
  export function isValidHiddenPostsPref<V>(v: V) {
482
- return isValid<HiddenPostsPref>(v, id, hashHiddenPostsPref)
482
+ return isValid<HiddenPostsPref & V>(v, id, hashHiddenPostsPref)
483
483
  }
484
484
 
485
485
  export interface LabelersPref {
@@ -498,7 +498,7 @@ export function validateLabelersPref<V>(v: V) {
498
498
  }
499
499
 
500
500
  export function isValidLabelersPref<V>(v: V) {
501
- return isValid<LabelersPref>(v, id, hashLabelersPref)
501
+ return isValid<LabelersPref & V>(v, id, hashLabelersPref)
502
502
  }
503
503
 
504
504
  export interface LabelerPrefItem {
@@ -517,7 +517,7 @@ export function validateLabelerPrefItem<V>(v: V) {
517
517
  }
518
518
 
519
519
  export function isValidLabelerPrefItem<V>(v: V) {
520
- return isValid<LabelerPrefItem>(v, id, hashLabelerPrefItem)
520
+ return isValid<LabelerPrefItem & V>(v, id, hashLabelerPrefItem)
521
521
  }
522
522
 
523
523
  /** A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this. */
@@ -541,7 +541,7 @@ export function validateBskyAppStatePref<V>(v: V) {
541
541
  }
542
542
 
543
543
  export function isValidBskyAppStatePref<V>(v: V) {
544
- return isValid<BskyAppStatePref>(v, id, hashBskyAppStatePref)
544
+ return isValid<BskyAppStatePref & V>(v, id, hashBskyAppStatePref)
545
545
  }
546
546
 
547
547
  /** If set, an active progress guide. Once completed, can be set to undefined. Should have unspecced fields tracking progress. */
@@ -561,7 +561,7 @@ export function validateBskyAppProgressGuide<V>(v: V) {
561
561
  }
562
562
 
563
563
  export function isValidBskyAppProgressGuide<V>(v: V) {
564
- return isValid<BskyAppProgressGuide>(v, id, hashBskyAppProgressGuide)
564
+ return isValid<BskyAppProgressGuide & V>(v, id, hashBskyAppProgressGuide)
565
565
  }
566
566
 
567
567
  /** A new user experiences (NUX) storage object */
@@ -586,5 +586,5 @@ export function validateNux<V>(v: V) {
586
586
  }
587
587
 
588
588
  export function isValidNux<V>(v: V) {
589
- return isValid<Nux>(v, id, hashNux)
589
+ return isValid<Nux & V>(v, id, hashNux)
590
590
  }
@@ -43,5 +43,5 @@ export function validateRecord<V>(v: V) {
43
43
  }
44
44
 
45
45
  export function isValidRecord<V>(v: V) {
46
- return isValid<Record>(v, id, hashRecord, true)
46
+ return isValid<Record & V>(v, id, hashRecord, true)
47
47
  }
@@ -32,5 +32,5 @@ export function validateAspectRatio<V>(v: V) {
32
32
  }
33
33
 
34
34
  export function isValidAspectRatio<V>(v: V) {
35
- return isValid<AspectRatio>(v, id, hashAspectRatio)
35
+ return isValid<AspectRatio & V>(v, id, hashAspectRatio)
36
36
  }
@@ -31,7 +31,7 @@ export function validateMain<V>(v: V) {
31
31
  }
32
32
 
33
33
  export function isValidMain<V>(v: V) {
34
- return isValid<Main>(v, id, hashMain)
34
+ return isValid<Main & V>(v, id, hashMain)
35
35
  }
36
36
 
37
37
  export interface External {
@@ -53,7 +53,7 @@ export function validateExternal<V>(v: V) {
53
53
  }
54
54
 
55
55
  export function isValidExternal<V>(v: V) {
56
- return isValid<External>(v, id, hashExternal)
56
+ return isValid<External & V>(v, id, hashExternal)
57
57
  }
58
58
 
59
59
  export interface View {
@@ -72,7 +72,7 @@ export function validateView<V>(v: V) {
72
72
  }
73
73
 
74
74
  export function isValidView<V>(v: V) {
75
- return isValid<View>(v, id, hashView)
75
+ return isValid<View & V>(v, id, hashView)
76
76
  }
77
77
 
78
78
  export interface ViewExternal {
@@ -94,5 +94,5 @@ export function validateViewExternal<V>(v: V) {
94
94
  }
95
95
 
96
96
  export function isValidViewExternal<V>(v: V) {
97
- return isValid<ViewExternal>(v, id, hashViewExternal)
97
+ return isValid<ViewExternal & V>(v, id, hashViewExternal)
98
98
  }
@@ -31,7 +31,7 @@ export function validateMain<V>(v: V) {
31
31
  }
32
32
 
33
33
  export function isValidMain<V>(v: V) {
34
- return isValid<Main>(v, id, hashMain)
34
+ return isValid<Main & V>(v, id, hashMain)
35
35
  }
36
36
 
37
37
  export interface Image {
@@ -53,7 +53,7 @@ export function validateImage<V>(v: V) {
53
53
  }
54
54
 
55
55
  export function isValidImage<V>(v: V) {
56
- return isValid<Image>(v, id, hashImage)
56
+ return isValid<Image & V>(v, id, hashImage)
57
57
  }
58
58
 
59
59
  export interface View {
@@ -72,7 +72,7 @@ export function validateView<V>(v: V) {
72
72
  }
73
73
 
74
74
  export function isValidView<V>(v: V) {
75
- return isValid<View>(v, id, hashView)
75
+ return isValid<View & V>(v, id, hashView)
76
76
  }
77
77
 
78
78
  export interface ViewImage {
@@ -97,5 +97,5 @@ export function validateViewImage<V>(v: V) {
97
97
  }
98
98
 
99
99
  export function isValidViewImage<V>(v: V) {
100
- return isValid<ViewImage>(v, id, hashViewImage)
100
+ return isValid<ViewImage & V>(v, id, hashViewImage)
101
101
  }
@@ -40,7 +40,7 @@ export function validateMain<V>(v: V) {
40
40
  }
41
41
 
42
42
  export function isValidMain<V>(v: V) {
43
- return isValid<Main>(v, id, hashMain)
43
+ return isValid<Main & V>(v, id, hashMain)
44
44
  }
45
45
 
46
46
  export interface View {
@@ -68,7 +68,7 @@ export function validateView<V>(v: V) {
68
68
  }
69
69
 
70
70
  export function isValidView<V>(v: V) {
71
- return isValid<View>(v, id, hashView)
71
+ return isValid<View & V>(v, id, hashView)
72
72
  }
73
73
 
74
74
  export interface ViewRecord {
@@ -105,7 +105,7 @@ export function validateViewRecord<V>(v: V) {
105
105
  }
106
106
 
107
107
  export function isValidViewRecord<V>(v: V) {
108
- return isValid<ViewRecord>(v, id, hashViewRecord)
108
+ return isValid<ViewRecord & V>(v, id, hashViewRecord)
109
109
  }
110
110
 
111
111
  export interface ViewNotFound {
@@ -125,7 +125,7 @@ export function validateViewNotFound<V>(v: V) {
125
125
  }
126
126
 
127
127
  export function isValidViewNotFound<V>(v: V) {
128
- return isValid<ViewNotFound>(v, id, hashViewNotFound)
128
+ return isValid<ViewNotFound & V>(v, id, hashViewNotFound)
129
129
  }
130
130
 
131
131
  export interface ViewBlocked {
@@ -146,7 +146,7 @@ export function validateViewBlocked<V>(v: V) {
146
146
  }
147
147
 
148
148
  export function isValidViewBlocked<V>(v: V) {
149
- return isValid<ViewBlocked>(v, id, hashViewBlocked)
149
+ return isValid<ViewBlocked & V>(v, id, hashViewBlocked)
150
150
  }
151
151
 
152
152
  export interface ViewDetached {
@@ -166,5 +166,5 @@ export function validateViewDetached<V>(v: V) {
166
166
  }
167
167
 
168
168
  export function isValidViewDetached<V>(v: V) {
169
- return isValid<ViewDetached>(v, id, hashViewDetached)
169
+ return isValid<ViewDetached & V>(v, id, hashViewDetached)
170
170
  }
@@ -39,7 +39,7 @@ export function validateMain<V>(v: V) {
39
39
  }
40
40
 
41
41
  export function isValidMain<V>(v: V) {
42
- return isValid<Main>(v, id, hashMain)
42
+ return isValid<Main & V>(v, id, hashMain)
43
43
  }
44
44
 
45
45
  export interface View {
@@ -63,5 +63,5 @@ export function validateView<V>(v: V) {
63
63
  }
64
64
 
65
65
  export function isValidView<V>(v: V) {
66
- return isValid<View>(v, id, hashView)
66
+ return isValid<View & V>(v, id, hashView)
67
67
  }
@@ -35,7 +35,7 @@ export function validateMain<V>(v: V) {
35
35
  }
36
36
 
37
37
  export function isValidMain<V>(v: V) {
38
- return isValid<Main>(v, id, hashMain)
38
+ return isValid<Main & V>(v, id, hashMain)
39
39
  }
40
40
 
41
41
  export interface Caption {
@@ -55,7 +55,7 @@ export function validateCaption<V>(v: V) {
55
55
  }
56
56
 
57
57
  export function isValidCaption<V>(v: V) {
58
- return isValid<Caption>(v, id, hashCaption)
58
+ return isValid<Caption & V>(v, id, hashCaption)
59
59
  }
60
60
 
61
61
  export interface View {
@@ -78,5 +78,5 @@ export function validateView<V>(v: V) {
78
78
  }
79
79
 
80
80
  export function isValidView<V>(v: V) {
81
- return isValid<View>(v, id, hashView)
81
+ return isValid<View & V>(v, id, hashView)
82
82
  }
@@ -57,7 +57,7 @@ export function validatePostView<V>(v: V) {
57
57
  }
58
58
 
59
59
  export function isValidPostView<V>(v: V) {
60
- return isValid<PostView>(v, id, hashPostView)
60
+ return isValid<PostView & V>(v, id, hashPostView)
61
61
  }
62
62
 
63
63
  /** Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests. */
@@ -82,7 +82,7 @@ export function validateViewerState<V>(v: V) {
82
82
  }
83
83
 
84
84
  export function isValidViewerState<V>(v: V) {
85
- return isValid<ViewerState>(v, id, hashViewerState)
85
+ return isValid<ViewerState & V>(v, id, hashViewerState)
86
86
  }
87
87
 
88
88
  export interface FeedViewPost {
@@ -105,7 +105,7 @@ export function validateFeedViewPost<V>(v: V) {
105
105
  }
106
106
 
107
107
  export function isValidFeedViewPost<V>(v: V) {
108
- return isValid<FeedViewPost>(v, id, hashFeedViewPost)
108
+ return isValid<FeedViewPost & V>(v, id, hashFeedViewPost)
109
109
  }
110
110
 
111
111
  export interface ReplyRef {
@@ -134,7 +134,7 @@ export function validateReplyRef<V>(v: V) {
134
134
  }
135
135
 
136
136
  export function isValidReplyRef<V>(v: V) {
137
- return isValid<ReplyRef>(v, id, hashReplyRef)
137
+ return isValid<ReplyRef & V>(v, id, hashReplyRef)
138
138
  }
139
139
 
140
140
  export interface ReasonRepost {
@@ -154,7 +154,7 @@ export function validateReasonRepost<V>(v: V) {
154
154
  }
155
155
 
156
156
  export function isValidReasonRepost<V>(v: V) {
157
- return isValid<ReasonRepost>(v, id, hashReasonRepost)
157
+ return isValid<ReasonRepost & V>(v, id, hashReasonRepost)
158
158
  }
159
159
 
160
160
  export interface ReasonPin {
@@ -172,7 +172,7 @@ export function validateReasonPin<V>(v: V) {
172
172
  }
173
173
 
174
174
  export function isValidReasonPin<V>(v: V) {
175
- return isValid<ReasonPin>(v, id, hashReasonPin)
175
+ return isValid<ReasonPin & V>(v, id, hashReasonPin)
176
176
  }
177
177
 
178
178
  export interface ThreadViewPost {
@@ -202,7 +202,7 @@ export function validateThreadViewPost<V>(v: V) {
202
202
  }
203
203
 
204
204
  export function isValidThreadViewPost<V>(v: V) {
205
- return isValid<ThreadViewPost>(v, id, hashThreadViewPost)
205
+ return isValid<ThreadViewPost & V>(v, id, hashThreadViewPost)
206
206
  }
207
207
 
208
208
  export interface NotFoundPost {
@@ -222,7 +222,7 @@ export function validateNotFoundPost<V>(v: V) {
222
222
  }
223
223
 
224
224
  export function isValidNotFoundPost<V>(v: V) {
225
- return isValid<NotFoundPost>(v, id, hashNotFoundPost)
225
+ return isValid<NotFoundPost & V>(v, id, hashNotFoundPost)
226
226
  }
227
227
 
228
228
  export interface BlockedPost {
@@ -243,7 +243,7 @@ export function validateBlockedPost<V>(v: V) {
243
243
  }
244
244
 
245
245
  export function isValidBlockedPost<V>(v: V) {
246
- return isValid<BlockedPost>(v, id, hashBlockedPost)
246
+ return isValid<BlockedPost & V>(v, id, hashBlockedPost)
247
247
  }
248
248
 
249
249
  export interface BlockedAuthor {
@@ -263,7 +263,7 @@ export function validateBlockedAuthor<V>(v: V) {
263
263
  }
264
264
 
265
265
  export function isValidBlockedAuthor<V>(v: V) {
266
- return isValid<BlockedAuthor>(v, id, hashBlockedAuthor)
266
+ return isValid<BlockedAuthor & V>(v, id, hashBlockedAuthor)
267
267
  }
268
268
 
269
269
  export interface GeneratorView {
@@ -294,7 +294,7 @@ export function validateGeneratorView<V>(v: V) {
294
294
  }
295
295
 
296
296
  export function isValidGeneratorView<V>(v: V) {
297
- return isValid<GeneratorView>(v, id, hashGeneratorView)
297
+ return isValid<GeneratorView & V>(v, id, hashGeneratorView)
298
298
  }
299
299
 
300
300
  export interface GeneratorViewerState {
@@ -313,7 +313,7 @@ export function validateGeneratorViewerState<V>(v: V) {
313
313
  }
314
314
 
315
315
  export function isValidGeneratorViewerState<V>(v: V) {
316
- return isValid<GeneratorViewerState>(v, id, hashGeneratorViewerState)
316
+ return isValid<GeneratorViewerState & V>(v, id, hashGeneratorViewerState)
317
317
  }
318
318
 
319
319
  export interface SkeletonFeedPost {
@@ -338,7 +338,7 @@ export function validateSkeletonFeedPost<V>(v: V) {
338
338
  }
339
339
 
340
340
  export function isValidSkeletonFeedPost<V>(v: V) {
341
- return isValid<SkeletonFeedPost>(v, id, hashSkeletonFeedPost)
341
+ return isValid<SkeletonFeedPost & V>(v, id, hashSkeletonFeedPost)
342
342
  }
343
343
 
344
344
  export interface SkeletonReasonRepost {
@@ -357,7 +357,7 @@ export function validateSkeletonReasonRepost<V>(v: V) {
357
357
  }
358
358
 
359
359
  export function isValidSkeletonReasonRepost<V>(v: V) {
360
- return isValid<SkeletonReasonRepost>(v, id, hashSkeletonReasonRepost)
360
+ return isValid<SkeletonReasonRepost & V>(v, id, hashSkeletonReasonRepost)
361
361
  }
362
362
 
363
363
  export interface SkeletonReasonPin {
@@ -375,7 +375,7 @@ export function validateSkeletonReasonPin<V>(v: V) {
375
375
  }
376
376
 
377
377
  export function isValidSkeletonReasonPin<V>(v: V) {
378
- return isValid<SkeletonReasonPin>(v, id, hashSkeletonReasonPin)
378
+ return isValid<SkeletonReasonPin & V>(v, id, hashSkeletonReasonPin)
379
379
  }
380
380
 
381
381
  export interface ThreadgateView {
@@ -397,7 +397,7 @@ export function validateThreadgateView<V>(v: V) {
397
397
  }
398
398
 
399
399
  export function isValidThreadgateView<V>(v: V) {
400
- return isValid<ThreadgateView>(v, id, hashThreadgateView)
400
+ return isValid<ThreadgateView & V>(v, id, hashThreadgateView)
401
401
  }
402
402
 
403
403
  export interface Interaction {
@@ -432,7 +432,7 @@ export function validateInteraction<V>(v: V) {
432
432
  }
433
433
 
434
434
  export function isValidInteraction<V>(v: V) {
435
- return isValid<Interaction>(v, id, hashInteraction)
435
+ return isValid<Interaction & V>(v, id, hashInteraction)
436
436
  }
437
437
 
438
438
  /** Request that less content like the given feed item be shown in the feed */
@@ -56,7 +56,7 @@ export function validateFeed<V>(v: V) {
56
56
  }
57
57
 
58
58
  export function isValidFeed<V>(v: V) {
59
- return isValid<Feed>(v, id, hashFeed)
59
+ return isValid<Feed & V>(v, id, hashFeed)
60
60
  }
61
61
 
62
62
  export interface Links {
@@ -76,5 +76,5 @@ export function validateLinks<V>(v: V) {
76
76
  }
77
77
 
78
78
  export function isValidLinks<V>(v: V) {
79
- return isValid<Links>(v, id, hashLinks)
79
+ return isValid<Links & V>(v, id, hashLinks)
80
80
  }
@@ -41,5 +41,5 @@ export function validateRecord<V>(v: V) {
41
41
  }
42
42
 
43
43
  export function isValidRecord<V>(v: V) {
44
- return isValid<Record>(v, id, hashRecord, true)
44
+ return isValid<Record & V>(v, id, hashRecord, true)
45
45
  }
@@ -67,5 +67,5 @@ export function validateLike<V>(v: V) {
67
67
  }
68
68
 
69
69
  export function isValidLike<V>(v: V) {
70
- return isValid<Like>(v, id, hashLike)
70
+ return isValid<Like & V>(v, id, hashLike)
71
71
  }
@@ -33,5 +33,5 @@ export function validateRecord<V>(v: V) {
33
33
  }
34
34
 
35
35
  export function isValidRecord<V>(v: V) {
36
- return isValid<Record>(v, id, hashRecord, true)
36
+ return isValid<Record & V>(v, id, hashRecord, true)
37
37
  }
@@ -59,7 +59,7 @@ export function validateRecord<V>(v: V) {
59
59
  }
60
60
 
61
61
  export function isValidRecord<V>(v: V) {
62
- return isValid<Record>(v, id, hashRecord, true)
62
+ return isValid<Record & V>(v, id, hashRecord, true)
63
63
  }
64
64
 
65
65
  export interface ReplyRef {
@@ -79,7 +79,7 @@ export function validateReplyRef<V>(v: V) {
79
79
  }
80
80
 
81
81
  export function isValidReplyRef<V>(v: V) {
82
- return isValid<ReplyRef>(v, id, hashReplyRef)
82
+ return isValid<ReplyRef & V>(v, id, hashReplyRef)
83
83
  }
84
84
 
85
85
  /** Deprecated: use facets instead. */
@@ -102,7 +102,7 @@ export function validateEntity<V>(v: V) {
102
102
  }
103
103
 
104
104
  export function isValidEntity<V>(v: V) {
105
- return isValid<Entity>(v, id, hashEntity)
105
+ return isValid<Entity & V>(v, id, hashEntity)
106
106
  }
107
107
 
108
108
  /** Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings. */
@@ -123,5 +123,5 @@ export function validateTextSlice<V>(v: V) {
123
123
  }
124
124
 
125
125
  export function isValidTextSlice<V>(v: V) {
126
- return isValid<TextSlice>(v, id, hashTextSlice)
126
+ return isValid<TextSlice & V>(v, id, hashTextSlice)
127
127
  }
@@ -36,7 +36,7 @@ export function validateRecord<V>(v: V) {
36
36
  }
37
37
 
38
38
  export function isValidRecord<V>(v: V) {
39
- return isValid<Record>(v, id, hashRecord, true)
39
+ return isValid<Record & V>(v, id, hashRecord, true)
40
40
  }
41
41
 
42
42
  /** Disables embedding of this post. */
@@ -55,5 +55,5 @@ export function validateDisableRule<V>(v: V) {
55
55
  }
56
56
 
57
57
  export function isValidDisableRule<V>(v: V) {
58
- return isValid<DisableRule>(v, id, hashDisableRule)
58
+ return isValid<DisableRule & V>(v, id, hashDisableRule)
59
59
  }
@@ -33,5 +33,5 @@ export function validateRecord<V>(v: V) {
33
33
  }
34
34
 
35
35
  export function isValidRecord<V>(v: V) {
36
- return isValid<Record>(v, id, hashRecord, true)
36
+ return isValid<Record & V>(v, id, hashRecord, true)
37
37
  }
@@ -41,7 +41,7 @@ export function validateRecord<V>(v: V) {
41
41
  }
42
42
 
43
43
  export function isValidRecord<V>(v: V) {
44
- return isValid<Record>(v, id, hashRecord, true)
44
+ return isValid<Record & V>(v, id, hashRecord, true)
45
45
  }
46
46
 
47
47
  /** Allow replies from actors mentioned in your post. */
@@ -60,7 +60,7 @@ export function validateMentionRule<V>(v: V) {
60
60
  }
61
61
 
62
62
  export function isValidMentionRule<V>(v: V) {
63
- return isValid<MentionRule>(v, id, hashMentionRule)
63
+ return isValid<MentionRule & V>(v, id, hashMentionRule)
64
64
  }
65
65
 
66
66
  /** Allow replies from actors you follow. */
@@ -79,7 +79,7 @@ export function validateFollowingRule<V>(v: V) {
79
79
  }
80
80
 
81
81
  export function isValidFollowingRule<V>(v: V) {
82
- return isValid<FollowingRule>(v, id, hashFollowingRule)
82
+ return isValid<FollowingRule & V>(v, id, hashFollowingRule)
83
83
  }
84
84
 
85
85
  /** Allow replies from actors on a list. */
@@ -99,5 +99,5 @@ export function validateListRule<V>(v: V) {
99
99
  }
100
100
 
101
101
  export function isValidListRule<V>(v: V) {
102
- return isValid<ListRule>(v, id, hashListRule)
102
+ return isValid<ListRule & V>(v, id, hashListRule)
103
103
  }
@@ -33,5 +33,5 @@ export function validateRecord<V>(v: V) {
33
33
  }
34
34
 
35
35
  export function isValidRecord<V>(v: V) {
36
- return isValid<Record>(v, id, hashRecord, true)
36
+ return isValid<Record & V>(v, id, hashRecord, true)
37
37
  }