jazz-tools 0.18.38 → 0.19.1

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 (304) hide show
  1. package/.svelte-kit/__package__/jazz.class.svelte.d.ts +8 -8
  2. package/.svelte-kit/__package__/jazz.class.svelte.d.ts.map +1 -1
  3. package/.svelte-kit/__package__/jazz.class.svelte.js +39 -14
  4. package/.svelte-kit/__package__/media/image.svelte +6 -5
  5. package/.svelte-kit/__package__/media/image.svelte.d.ts.map +1 -1
  6. package/.svelte-kit/__package__/tests/AccountCoState.svelte.test-d.d.ts +2 -0
  7. package/.svelte-kit/__package__/tests/AccountCoState.svelte.test-d.d.ts.map +1 -0
  8. package/.svelte-kit/__package__/tests/AccountCoState.svelte.test-d.js +19 -0
  9. package/.svelte-kit/__package__/tests/CoState.svelte.test-d.d.ts +2 -0
  10. package/.svelte-kit/__package__/tests/CoState.svelte.test-d.d.ts.map +1 -0
  11. package/.svelte-kit/__package__/tests/CoState.svelte.test-d.js +16 -0
  12. package/.svelte-kit/__package__/tests/CoState.svelte.test.d.ts +2 -0
  13. package/.svelte-kit/__package__/tests/CoState.svelte.test.d.ts.map +1 -0
  14. package/.svelte-kit/__package__/tests/CoState.svelte.test.js +42 -0
  15. package/.svelte-kit/__package__/tests/TestCoStateWrapper.svelte +23 -0
  16. package/.svelte-kit/__package__/tests/TestCoStateWrapper.svelte.d.ts +12 -0
  17. package/.svelte-kit/__package__/tests/TestCoStateWrapper.svelte.d.ts.map +1 -0
  18. package/.turbo/turbo-build.log +62 -62
  19. package/CHANGELOG.md +32 -0
  20. package/dist/better-auth/database-adapter/index.js +14 -11
  21. package/dist/better-auth/database-adapter/index.js.map +1 -1
  22. package/dist/better-auth/database-adapter/repository/generic.d.ts +1 -1
  23. package/dist/better-auth/database-adapter/repository/generic.d.ts.map +1 -1
  24. package/dist/better-auth/database-adapter/repository/user.d.ts.map +1 -1
  25. package/dist/{chunk-OSQ7S47Q.js → chunk-NCNM6UDZ.js} +563 -252
  26. package/dist/chunk-NCNM6UDZ.js.map +1 -0
  27. package/dist/index.js +14 -6
  28. package/dist/index.js.map +1 -1
  29. package/dist/media/{chunk-K6GCHLQU.js → chunk-3LKBM3G3.js} +23 -15
  30. package/dist/media/chunk-3LKBM3G3.js.map +1 -0
  31. package/dist/media/create-image/browser.d.ts +2 -2
  32. package/dist/media/create-image/react-native.d.ts +2 -2
  33. package/dist/media/create-image/server.d.ts +2 -2
  34. package/dist/media/create-image-factory.d.ts +2 -2
  35. package/dist/media/index.browser.js +1 -1
  36. package/dist/media/index.js +1 -1
  37. package/dist/media/index.native.js +1 -1
  38. package/dist/media/index.server.js +1 -1
  39. package/dist/media/utils.d.ts.map +1 -1
  40. package/dist/react/hooks.d.ts +1 -1
  41. package/dist/react/hooks.d.ts.map +1 -1
  42. package/dist/react/index.d.ts +1 -1
  43. package/dist/react/index.d.ts.map +1 -1
  44. package/dist/react/index.js +31 -15
  45. package/dist/react/index.js.map +1 -1
  46. package/dist/react/media/image.d.ts.map +1 -1
  47. package/dist/react-core/hooks.d.ts +126 -224
  48. package/dist/react-core/hooks.d.ts.map +1 -1
  49. package/dist/react-core/index.js +65 -63
  50. package/dist/react-core/index.js.map +1 -1
  51. package/dist/react-core/subscription-provider.d.ts.map +1 -1
  52. package/dist/react-core/tests/createCoValueSubscriptionContext.test.d.ts +2 -0
  53. package/dist/react-core/tests/createCoValueSubscriptionContext.test.d.ts.map +1 -0
  54. package/dist/react-core/tests/useAccount.selector.test.d.ts +2 -0
  55. package/dist/react-core/tests/useAccount.selector.test.d.ts.map +1 -0
  56. package/dist/react-core/tests/useCoState.selector.test.d.ts +2 -0
  57. package/dist/react-core/tests/useCoState.selector.test.d.ts.map +1 -0
  58. package/dist/react-native-core/hooks.d.ts +1 -1
  59. package/dist/react-native-core/hooks.d.ts.map +1 -1
  60. package/dist/react-native-core/index.js +7 -5
  61. package/dist/react-native-core/index.js.map +1 -1
  62. package/dist/react-native-core/media/image.d.ts.map +1 -1
  63. package/dist/svelte/jazz.class.svelte.d.ts +8 -8
  64. package/dist/svelte/jazz.class.svelte.d.ts.map +1 -1
  65. package/dist/svelte/jazz.class.svelte.js +39 -14
  66. package/dist/svelte/media/image.svelte +6 -5
  67. package/dist/svelte/media/image.svelte.d.ts.map +1 -1
  68. package/dist/svelte/tests/AccountCoState.svelte.test-d.d.ts +2 -0
  69. package/dist/svelte/tests/AccountCoState.svelte.test-d.d.ts.map +1 -0
  70. package/dist/svelte/tests/AccountCoState.svelte.test-d.js +19 -0
  71. package/dist/svelte/tests/CoState.svelte.test-d.d.ts +2 -0
  72. package/dist/svelte/tests/CoState.svelte.test-d.d.ts.map +1 -0
  73. package/dist/svelte/tests/CoState.svelte.test-d.js +16 -0
  74. package/dist/svelte/tests/CoState.svelte.test.d.ts +2 -0
  75. package/dist/svelte/tests/CoState.svelte.test.d.ts.map +1 -0
  76. package/dist/svelte/tests/CoState.svelte.test.js +42 -0
  77. package/dist/svelte/tests/TestCoStateWrapper.svelte +23 -0
  78. package/dist/svelte/tests/TestCoStateWrapper.svelte.d.ts +12 -0
  79. package/dist/svelte/tests/TestCoStateWrapper.svelte.d.ts.map +1 -0
  80. package/dist/testing.js +3 -1
  81. package/dist/testing.js.map +1 -1
  82. package/dist/tools/coValues/CoValueBase.d.ts +4 -1
  83. package/dist/tools/coValues/CoValueBase.d.ts.map +1 -1
  84. package/dist/tools/coValues/account.d.ts +6 -6
  85. package/dist/tools/coValues/account.d.ts.map +1 -1
  86. package/dist/tools/coValues/coFeed.d.ts +5 -5
  87. package/dist/tools/coValues/coFeed.d.ts.map +1 -1
  88. package/dist/tools/coValues/coList.d.ts +9 -8
  89. package/dist/tools/coValues/coList.d.ts.map +1 -1
  90. package/dist/tools/coValues/coMap.d.ts +17 -17
  91. package/dist/tools/coValues/coMap.d.ts.map +1 -1
  92. package/dist/tools/coValues/coPlainText.d.ts +3 -3
  93. package/dist/tools/coValues/coPlainText.d.ts.map +1 -1
  94. package/dist/tools/coValues/coVector.d.ts +3 -3
  95. package/dist/tools/coValues/coVector.d.ts.map +1 -1
  96. package/dist/tools/coValues/deepLoading.d.ts +71 -40
  97. package/dist/tools/coValues/deepLoading.d.ts.map +1 -1
  98. package/dist/tools/coValues/extensions/imageDef.d.ts +1 -1
  99. package/dist/tools/coValues/extensions/imageDef.d.ts.map +1 -1
  100. package/dist/tools/coValues/group.d.ts +2 -2
  101. package/dist/tools/coValues/group.d.ts.map +1 -1
  102. package/dist/tools/coValues/inbox.d.ts.map +1 -1
  103. package/dist/tools/coValues/interfaces.d.ts +17 -9
  104. package/dist/tools/coValues/interfaces.d.ts.map +1 -1
  105. package/dist/tools/coValues/request.d.ts.map +1 -1
  106. package/dist/tools/coValues/schemaUnion.d.ts +6 -9
  107. package/dist/tools/coValues/schemaUnion.d.ts.map +1 -1
  108. package/dist/tools/exports.d.ts +3 -3
  109. package/dist/tools/exports.d.ts.map +1 -1
  110. package/dist/tools/implementation/refs.d.ts +3 -3
  111. package/dist/tools/implementation/refs.d.ts.map +1 -1
  112. package/dist/tools/implementation/schema.d.ts +2 -2
  113. package/dist/tools/implementation/schema.d.ts.map +1 -1
  114. package/dist/tools/implementation/schemaUtils.d.ts +8 -0
  115. package/dist/tools/implementation/schemaUtils.d.ts.map +1 -1
  116. package/dist/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.d.ts.map +1 -1
  117. package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts +33 -18
  118. package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts.map +1 -1
  119. package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts +19 -7
  120. package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts.map +1 -1
  121. package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts +23 -12
  122. package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts.map +1 -1
  123. package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts +29 -18
  124. package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts.map +1 -1
  125. package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts +39 -22
  126. package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts.map +1 -1
  127. package/dist/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.d.ts +1 -0
  128. package/dist/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.d.ts.map +1 -1
  129. package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts +30 -19
  130. package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts.map +1 -1
  131. package/dist/tools/implementation/zodSchema/schemaTypes/CoValueSchema.d.ts +5 -0
  132. package/dist/tools/implementation/zodSchema/schemaTypes/CoValueSchema.d.ts.map +1 -1
  133. package/dist/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.d.ts +6 -5
  134. package/dist/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.d.ts.map +1 -1
  135. package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts +3 -2
  136. package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts.map +1 -1
  137. package/dist/tools/implementation/zodSchema/schemaTypes/GroupSchema.d.ts +3 -2
  138. package/dist/tools/implementation/zodSchema/schemaTypes/GroupSchema.d.ts.map +1 -1
  139. package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts +3 -2
  140. package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts.map +1 -1
  141. package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts +3 -2
  142. package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts.map +1 -1
  143. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts +3 -0
  144. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts.map +1 -1
  145. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesMaybeLoaded.d.ts +22 -0
  146. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesMaybeLoaded.d.ts.map +1 -0
  147. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts +4 -0
  148. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts.map +1 -1
  149. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.d.ts +9 -0
  150. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.d.ts.map +1 -0
  151. package/dist/tools/implementation/zodSchema/unionUtils.d.ts.map +1 -1
  152. package/dist/tools/implementation/zodSchema/zodCo.d.ts.map +1 -1
  153. package/dist/tools/implementation/zodSchema/zodSchema.d.ts +7 -6
  154. package/dist/tools/implementation/zodSchema/zodSchema.d.ts.map +1 -1
  155. package/dist/tools/internal.d.ts +3 -3
  156. package/dist/tools/internal.d.ts.map +1 -1
  157. package/dist/tools/lib/utils.d.ts +14 -0
  158. package/dist/tools/lib/utils.d.ts.map +1 -0
  159. package/dist/tools/lib/utils.test.d.ts +2 -0
  160. package/dist/tools/lib/utils.test.d.ts.map +1 -0
  161. package/dist/tools/subscribe/CoValueCoreSubscription.d.ts +3 -2
  162. package/dist/tools/subscribe/CoValueCoreSubscription.d.ts.map +1 -1
  163. package/dist/tools/subscribe/JazzError.d.ts +4 -3
  164. package/dist/tools/subscribe/JazzError.d.ts.map +1 -1
  165. package/dist/tools/subscribe/SubscriptionScope.d.ts +7 -5
  166. package/dist/tools/subscribe/SubscriptionScope.d.ts.map +1 -1
  167. package/dist/tools/subscribe/index.d.ts.map +1 -1
  168. package/dist/tools/subscribe/types.d.ts +23 -3
  169. package/dist/tools/subscribe/types.d.ts.map +1 -1
  170. package/dist/tools/subscribe/utils.d.ts.map +1 -1
  171. package/dist/tools/testing.d.ts +3 -2
  172. package/dist/tools/testing.d.ts.map +1 -1
  173. package/dist/tools/tests/schema.resolved.test.d.ts +2 -0
  174. package/dist/tools/tests/schema.resolved.test.d.ts.map +1 -0
  175. package/dist/tools/tests/utils.d.ts +2 -1
  176. package/dist/tools/tests/utils.d.ts.map +1 -1
  177. package/package.json +4 -4
  178. package/src/better-auth/database-adapter/index.ts +2 -2
  179. package/src/better-auth/database-adapter/repository/account.ts +3 -3
  180. package/src/better-auth/database-adapter/repository/generic.ts +9 -6
  181. package/src/better-auth/database-adapter/repository/user.ts +6 -2
  182. package/src/better-auth/database-adapter/schema.ts +1 -1
  183. package/src/better-auth/database-adapter/tests/index.test.ts +3 -4
  184. package/src/inspector/tests/viewer/history-view.test.tsx +6 -2
  185. package/src/media/utils.test.ts +5 -0
  186. package/src/media/utils.ts +25 -16
  187. package/src/react/hooks.tsx +2 -2
  188. package/src/react/index.ts +2 -2
  189. package/src/react/media/image.tsx +10 -2
  190. package/src/react/tests/useAcceptInvite.test.ts +3 -1
  191. package/src/react-core/hooks.ts +226 -304
  192. package/src/react-core/subscription-provider.tsx +14 -7
  193. package/src/react-core/tests/createCoValueSubscriptionContext.test.tsx +233 -0
  194. package/src/react-core/tests/subscription.bench.tsx +32 -15
  195. package/src/react-core/tests/{useAccountWithSelector.test.ts → useAccount.selector.test.ts} +72 -24
  196. package/src/react-core/tests/useAccount.test.ts +92 -106
  197. package/src/react-core/tests/{useCoStateWithSelector.test.ts → useCoState.selector.test.ts} +23 -8
  198. package/src/react-core/tests/useCoState.test.ts +173 -49
  199. package/src/react-core/tests/useInboxSender.test.ts +3 -1
  200. package/src/react-core/tests/usePassPhraseAuth.test.ts +11 -82
  201. package/src/react-core/tests/useSubscriptionSelector.test.ts +48 -14
  202. package/src/react-native-core/hooks.tsx +2 -2
  203. package/src/react-native-core/media/image.tsx +3 -1
  204. package/src/svelte/jazz.class.svelte.ts +103 -27
  205. package/src/svelte/media/image.svelte +6 -5
  206. package/src/svelte/tests/AccountCoState.svelte.test-d.ts +23 -0
  207. package/src/svelte/tests/CoState.svelte.test-d.ts +20 -0
  208. package/src/svelte/tests/CoState.svelte.test.ts +57 -0
  209. package/src/svelte/tests/TestCoStateWrapper.svelte +23 -0
  210. package/src/tools/coValues/CoValueBase.ts +12 -0
  211. package/src/tools/coValues/account.ts +17 -12
  212. package/src/tools/coValues/coFeed.ts +38 -15
  213. package/src/tools/coValues/coList.ts +17 -12
  214. package/src/tools/coValues/coMap.ts +15 -14
  215. package/src/tools/coValues/coPlainText.ts +6 -3
  216. package/src/tools/coValues/coVector.ts +6 -5
  217. package/src/tools/coValues/deepLoading.ts +147 -86
  218. package/src/tools/coValues/group.ts +3 -2
  219. package/src/tools/coValues/inbox.ts +11 -10
  220. package/src/tools/coValues/interfaces.ts +52 -30
  221. package/src/tools/coValues/request.ts +8 -6
  222. package/src/tools/coValues/schemaUnion.ts +20 -14
  223. package/src/tools/exports.ts +11 -1
  224. package/src/tools/implementation/refs.ts +19 -13
  225. package/src/tools/implementation/schema.ts +5 -4
  226. package/src/tools/implementation/schemaUtils.ts +15 -0
  227. package/src/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.ts +4 -4
  228. package/src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts +131 -95
  229. package/src/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.ts +86 -16
  230. package/src/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.ts +73 -22
  231. package/src/tools/implementation/zodSchema/schemaTypes/CoListSchema.ts +86 -28
  232. package/src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts +204 -148
  233. package/src/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.ts +1 -0
  234. package/src/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.ts +71 -27
  235. package/src/tools/implementation/zodSchema/schemaTypes/CoValueSchema.ts +7 -0
  236. package/src/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.ts +8 -6
  237. package/src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts +4 -1
  238. package/src/tools/implementation/zodSchema/schemaTypes/GroupSchema.ts +4 -1
  239. package/src/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.ts +4 -1
  240. package/src/tools/implementation/zodSchema/schemaTypes/RichTextSchema.ts +4 -1
  241. package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.ts +3 -0
  242. package/src/tools/implementation/zodSchema/typeConverters/{InstanceOfSchemaCoValuesNullable.ts → InstanceOfSchemaCoValuesMaybeLoaded.ts} +47 -39
  243. package/src/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.ts +4 -0
  244. package/src/tools/implementation/zodSchema/typeConverters/{InstanceOrPrimitiveOfSchemaCoValuesNullable.ts → InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.ts} +7 -3
  245. package/src/tools/implementation/zodSchema/unionUtils.ts +35 -4
  246. package/src/tools/implementation/zodSchema/zodSchema.ts +15 -7
  247. package/src/tools/internal.ts +3 -3
  248. package/src/tools/lib/utils.test.ts +56 -0
  249. package/src/tools/lib/utils.ts +32 -0
  250. package/src/tools/subscribe/CoValueCoreSubscription.ts +13 -8
  251. package/src/tools/subscribe/JazzError.ts +8 -2
  252. package/src/tools/subscribe/SubscriptionScope.ts +57 -57
  253. package/src/tools/subscribe/index.ts +12 -4
  254. package/src/tools/subscribe/types.ts +36 -2
  255. package/src/tools/subscribe/utils.ts +2 -1
  256. package/src/tools/testing.ts +5 -0
  257. package/src/tools/tests/CoValueCoreSubscription.test.ts +10 -4
  258. package/src/tools/tests/ContextManager.test.ts +12 -5
  259. package/src/tools/tests/account.test.ts +22 -12
  260. package/src/tools/tests/coDiscriminatedUnion.test.ts +354 -8
  261. package/src/tools/tests/coFeed.branch.test.ts +48 -32
  262. package/src/tools/tests/coFeed.test-d.ts +17 -10
  263. package/src/tools/tests/coFeed.test.ts +52 -30
  264. package/src/tools/tests/coList.branch.test.ts +21 -21
  265. package/src/tools/tests/coList.test-d.ts +39 -23
  266. package/src/tools/tests/coList.test.ts +51 -25
  267. package/src/tools/tests/coList.unique.test.ts +34 -29
  268. package/src/tools/tests/coMap.branch.test.ts +20 -21
  269. package/src/tools/tests/coMap.record.test-d.ts +28 -26
  270. package/src/tools/tests/coMap.record.test.ts +30 -20
  271. package/src/tools/tests/coMap.test-d.ts +31 -29
  272. package/src/tools/tests/coMap.test.ts +67 -40
  273. package/src/tools/tests/coMap.unique.test.ts +25 -24
  274. package/src/tools/tests/coVector.test.ts +29 -15
  275. package/src/tools/tests/createContext.test.ts +5 -3
  276. package/src/tools/tests/deepLoading.test.ts +369 -176
  277. package/src/tools/tests/exportImport.test.ts +16 -15
  278. package/src/tools/tests/groupsAndAccounts.test.ts +39 -16
  279. package/src/tools/tests/inbox.test.ts +3 -1
  280. package/src/tools/tests/load.test.ts +29 -23
  281. package/src/tools/tests/patterns/quest.test.ts +3 -2
  282. package/src/tools/tests/patterns/requestToJoin.test.ts +17 -17
  283. package/src/tools/tests/request.test.ts +12 -2
  284. package/src/tools/tests/schema.resolved.test.ts +792 -0
  285. package/src/tools/tests/schemaUnion.test.ts +7 -3
  286. package/src/tools/tests/subscribe.test.ts +39 -21
  287. package/src/tools/tests/testing.test.ts +3 -2
  288. package/src/tools/tests/utils.ts +15 -2
  289. package/dist/chunk-OSQ7S47Q.js.map +0 -1
  290. package/dist/media/chunk-K6GCHLQU.js.map +0 -1
  291. package/dist/react-core/tests/useAccountWithSelector.test.d.ts +0 -2
  292. package/dist/react-core/tests/useAccountWithSelector.test.d.ts.map +0 -1
  293. package/dist/react-core/tests/useCoStateWithSelector.test.d.ts +0 -2
  294. package/dist/react-core/tests/useCoStateWithSelector.test.d.ts.map +0 -1
  295. package/dist/tools/implementation/errors.d.ts +0 -2
  296. package/dist/tools/implementation/errors.d.ts.map +0 -1
  297. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts +0 -19
  298. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts.map +0 -1
  299. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts +0 -5
  300. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts.map +0 -1
  301. package/dist/tools/lib/id.d.ts +0 -2
  302. package/dist/tools/lib/id.d.ts.map +0 -1
  303. package/src/tools/implementation/errors.ts +0 -1
  304. package/src/tools/lib/id.ts +0 -3
@@ -2,14 +2,20 @@ import {
2
2
  Account,
3
3
  AccountCreationProps,
4
4
  BranchDefinition,
5
+ CoMapSchemaDefinition,
5
6
  coOptionalDefiner,
6
7
  Group,
8
+ MaybeLoaded,
7
9
  RefsToResolveStrict,
10
+ RefsToResolve,
11
+ Resolved,
8
12
  Simplify,
13
+ SubscribeListenerOptions,
14
+ unstable_mergeBranchWithResolve,
9
15
  } from "../../../internal.js";
10
16
  import { AnonymousJazzAgent } from "../../anonymousJazzAgent.js";
11
17
  import { InstanceOrPrimitiveOfSchema } from "../typeConverters/InstanceOrPrimitiveOfSchema.js";
12
- import { InstanceOrPrimitiveOfSchemaCoValuesNullable } from "../typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.js";
18
+ import { InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded } from "../typeConverters/InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.js";
13
19
  import { z } from "../zodReExport.js";
14
20
  import { AnyZodOrCoValueSchema, Loaded, ResolveQuery } from "../zodSchema.js";
15
21
  import {
@@ -17,6 +23,9 @@ import {
17
23
  CoreCoMapSchema,
18
24
  createCoreCoMapSchema,
19
25
  } from "./CoMapSchema.js";
26
+ import { CoOptionalSchema } from "./CoOptionalSchema.js";
27
+ import { CoreResolveQuery } from "./CoValueSchema.js";
28
+ import { withSchemaResolveQuery } from "../../schemaUtils.js";
20
29
 
21
30
  export type BaseProfileShape = {
22
31
  name: z.core.$ZodString<string>;
@@ -34,60 +43,151 @@ export type DefaultAccountShape = {
34
43
  root: CoMapSchema<{}>;
35
44
  };
36
45
 
37
- export interface AccountSchema<
46
+ export class AccountSchema<
38
47
  Shape extends BaseAccountShape = DefaultAccountShape,
39
- > extends CoreAccountSchema<Shape>,
40
- Omit<
41
- CoMapSchema<Shape>,
42
- | "builtin"
43
- | "getDefinition"
44
- | "create"
45
- | "load"
46
- | "withMigration"
47
- | "unstable_merge"
48
- | "getCoValueClass"
49
- > {
50
- builtin: "Account";
51
-
52
- create: (
48
+ DefaultResolveQuery extends CoreResolveQuery = true,
49
+ > implements CoreAccountSchema<Shape>
50
+ {
51
+ collaborative = true as const;
52
+ builtin = "Account" as const;
53
+ shape: Shape;
54
+ getDefinition: () => CoMapSchemaDefinition;
55
+
56
+ /**
57
+ * Default resolve query to be used when loading instances of this schema.
58
+ * This resolve query will be used when no resolve query is provided to the load method.
59
+ * @default true
60
+ */
61
+ resolveQuery: DefaultResolveQuery = true as DefaultResolveQuery;
62
+
63
+ constructor(
64
+ coreSchema: CoreAccountSchema<Shape>,
65
+ private coValueClass: typeof Account,
66
+ ) {
67
+ this.shape = coreSchema.shape;
68
+ this.getDefinition = coreSchema.getDefinition;
69
+ }
70
+
71
+ create(
53
72
  options: Simplify<Parameters<(typeof Account)["create"]>[0]>,
54
- ) => Promise<AccountInstance<Shape>>;
55
-
56
- load: <R extends ResolveQuery<AccountSchema<Shape>>>(
73
+ ): Promise<AccountInstance<Shape>> {
74
+ // @ts-expect-error
75
+ return this.coValueClass.create(options);
76
+ }
77
+
78
+ load<
79
+ // @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is
80
+ const R extends ResolveQuery<AccountSchema<Shape>> = DefaultResolveQuery,
81
+ >(
57
82
  id: string,
58
83
  options?: {
59
84
  loadAs?: Account | AnonymousJazzAgent;
60
85
  resolve?: RefsToResolveStrict<AccountSchema<Shape>, R>;
61
86
  },
62
- ) => Promise<Loaded<AccountSchema<Shape>, R> | null>;
87
+ ): Promise<MaybeLoaded<Loaded<AccountSchema<Shape>, R>>> {
88
+ // @ts-expect-error
89
+ return this.coValueClass.load(
90
+ id,
91
+ // @ts-expect-error
92
+ withSchemaResolveQuery(options, this.resolveQuery),
93
+ );
94
+ }
63
95
 
64
96
  /** @internal */
65
- createAs: (
97
+ createAs(
66
98
  as: Account,
67
99
  options: {
68
- creationProps?: { name: string };
100
+ creationProps: { name: string };
69
101
  },
70
- ) => Promise<AccountInstance<Shape>>;
71
-
72
- unstable_merge: <R extends ResolveQuery<AccountSchema<Shape>>>(
102
+ ): Promise<AccountInstance<Shape>> {
103
+ // @ts-expect-error
104
+ return this.coValueClass.createAs(as, options);
105
+ }
106
+
107
+ unstable_merge<
108
+ // @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is
109
+ R extends ResolveQuery<AccountSchema<Shape>> = DefaultResolveQuery,
110
+ >(
73
111
  id: string,
74
- options?: {
112
+ options: {
75
113
  loadAs?: Account | AnonymousJazzAgent;
76
114
  resolve?: RefsToResolveStrict<AccountSchema<Shape>, R>;
77
115
  branch: BranchDefinition;
78
116
  },
79
- ) => Promise<void>;
117
+ ): Promise<void> {
118
+ return unstable_mergeBranchWithResolve(
119
+ this.coValueClass,
120
+ id,
121
+ // @ts-expect-error
122
+ withSchemaResolveQuery(options, this.resolveQuery),
123
+ );
124
+ }
125
+
126
+ subscribe<
127
+ const R extends RefsToResolve<
128
+ Simplify<AccountInstance<Shape>>
129
+ // @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is
130
+ > = DefaultResolveQuery,
131
+ >(
132
+ id: string,
133
+ options: SubscribeListenerOptions<Simplify<AccountInstance<Shape>>, R>,
134
+ listener: (
135
+ value: Resolved<Simplify<AccountInstance<Shape>>, R>,
136
+ unsubscribe: () => void,
137
+ ) => void,
138
+ ): () => void {
139
+ return this.coValueClass.subscribe(
140
+ id,
141
+ // @ts-expect-error
142
+ withSchemaResolveQuery(options, this.resolveQuery),
143
+ listener,
144
+ );
145
+ }
80
146
 
81
- getMe: () => AccountInstanceCoValuesNullable<Shape>;
147
+ getMe(): Loaded<this, true> {
148
+ // @ts-expect-error
149
+ return this.coValueClass.getMe();
150
+ }
82
151
 
83
152
  withMigration(
84
153
  migration: (
85
154
  account: Loaded<AccountSchema<Shape>>,
86
155
  creationProps?: { name: string },
87
156
  ) => void,
88
- ): AccountSchema<Shape>;
89
-
90
- getCoValueClass: () => typeof Account;
157
+ ): AccountSchema<Shape, DefaultResolveQuery> {
158
+ (this.coValueClass.prototype as Account).migrate = async function (
159
+ this,
160
+ creationProps,
161
+ ) {
162
+ // @ts-expect-error
163
+ await migration(this, creationProps);
164
+ };
165
+
166
+ return this;
167
+ }
168
+
169
+ getCoValueClass(): typeof Account {
170
+ return this.coValueClass;
171
+ }
172
+
173
+ optional(): CoOptionalSchema<this> {
174
+ return coOptionalDefiner(this);
175
+ }
176
+
177
+ /**
178
+ * Adds a default resolve query to be used when loading instances of this schema.
179
+ * This resolve query will be used when no resolve query is provided to the load method.
180
+ */
181
+ resolved<R extends ResolveQuery<AccountSchema<Shape>>>(
182
+ resolveQuery: RefsToResolveStrict<AccountSchema<Shape>, R>,
183
+ ): AccountSchema<Shape, R> {
184
+ const coreSchema: CoreAccountSchema<Shape> = createCoreAccountSchema(
185
+ this.shape,
186
+ );
187
+ const copy = new AccountSchema<Shape, R>(coreSchema, this.coValueClass);
188
+ copy.resolveQuery = resolveQuery as R;
189
+ return copy;
190
+ }
91
191
  }
92
192
 
93
193
  export function createCoreAccountSchema<Shape extends BaseAccountShape>(
@@ -99,62 +199,6 @@ export function createCoreAccountSchema<Shape extends BaseAccountShape>(
99
199
  };
100
200
  }
101
201
 
102
- export function enrichAccountSchema<Shape extends BaseAccountShape>(
103
- schema: CoreAccountSchema<Shape>,
104
- coValueClass: typeof Account,
105
- ): AccountSchema<Shape> {
106
- const enrichedSchema = Object.assign(schema, {
107
- create: (...args: any[]) => {
108
- // @ts-expect-error
109
- return coValueClass.create(...args);
110
- },
111
- createAs: (...args: any[]) => {
112
- // @ts-expect-error
113
- return coValueClass.createAs(...args);
114
- },
115
- getMe: (...args: any[]) => {
116
- // @ts-expect-error
117
- return coValueClass.getMe(...args);
118
- },
119
- load: (...args: any[]) => {
120
- // @ts-expect-error
121
- return coValueClass.load(...args);
122
- },
123
- subscribe: (...args: any[]) => {
124
- // @ts-expect-error
125
- return coValueClass.subscribe(...args);
126
- },
127
- fromRaw: (...args: any[]) => {
128
- // @ts-expect-error
129
- return coValueClass.fromRaw(...args);
130
- },
131
- unstable_merge: (...args: any[]) => {
132
- // @ts-expect-error
133
- return unstable_mergeBranchWithResolve(coValueClass, ...args);
134
- },
135
- withMigration: (
136
- migration: (
137
- value: any,
138
- creationProps?: AccountCreationProps,
139
- ) => void | Promise<void>,
140
- ) => {
141
- (coValueClass.prototype as Account).migrate = async function (
142
- this,
143
- creationProps,
144
- ) {
145
- await migration(this, creationProps);
146
- };
147
-
148
- return enrichedSchema;
149
- },
150
- getCoValueClass: () => {
151
- return coValueClass;
152
- },
153
- optional: () => coOptionalDefiner(enrichedSchema),
154
- }) as unknown as AccountSchema<Shape>;
155
- return enrichedSchema;
156
- }
157
-
158
202
  export type DefaultProfileShape = {
159
203
  name: z.core.$ZodString<string>;
160
204
  inbox: z.core.$ZodOptional<z.core.$ZodString>;
@@ -176,11 +220,3 @@ export interface CoreAccountSchema<
176
220
  export type AccountInstance<Shape extends z.core.$ZodLooseShape> = {
177
221
  readonly [key in keyof Shape]: InstanceOrPrimitiveOfSchema<Shape[key]>;
178
222
  } & Account;
179
-
180
- export type AccountInstanceCoValuesNullable<
181
- Shape extends z.core.$ZodLooseShape,
182
- > = {
183
- readonly [key in keyof Shape]: InstanceOrPrimitiveOfSchemaCoValuesNullable<
184
- Shape[key]
185
- >;
186
- } & Account;
@@ -1,9 +1,13 @@
1
1
  import {
2
2
  Account,
3
3
  AnonymousJazzAgent,
4
+ LoadedAndRequired,
4
5
  BranchDefinition,
5
6
  InstanceOfSchema,
6
- InstanceOrPrimitiveOfSchemaCoValuesNullable,
7
+ InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded,
8
+ MaybeLoaded,
9
+ RefsToResolve,
10
+ RefsToResolveStrict,
7
11
  Resolved,
8
12
  SchemaUnion,
9
13
  SchemaUnionConcreteSubclass,
@@ -12,7 +16,8 @@ import {
12
16
  } from "../../../internal.js";
13
17
  import { z } from "../zodReExport.js";
14
18
  import { CoOptionalSchema } from "./CoOptionalSchema.js";
15
- import { CoreCoValueSchema } from "./CoValueSchema.js";
19
+ import { CoreCoValueSchema, CoreResolveQuery } from "./CoValueSchema.js";
20
+ import { withSchemaResolveQuery } from "../../schemaUtils.js";
16
21
 
17
22
  export interface DiscriminableCoValueSchemaDefinition {
18
23
  discriminatorMap: z.core.$ZodDiscriminatedUnionInternals["propValues"];
@@ -42,12 +47,20 @@ export interface CoreCoDiscriminatedUnionSchema<
42
47
  }
43
48
  export class CoDiscriminatedUnionSchema<
44
49
  Options extends DiscriminableCoValueSchemas,
50
+ DefaultResolveQuery extends CoreResolveQuery = true,
45
51
  > implements CoreCoDiscriminatedUnionSchema<Options>
46
52
  {
47
53
  readonly collaborative = true as const;
48
54
  readonly builtin = "CoDiscriminatedUnion" as const;
49
55
  readonly getDefinition: () => CoDiscriminatedUnionSchemaDefinition<Options>;
50
56
 
57
+ /**
58
+ * Default resolve query to be used when loading instances of this schema.
59
+ * This resolve query will be used when no resolve query is provided to the load method.
60
+ * @default true
61
+ */
62
+ resolveQuery: DefaultResolveQuery = true as DefaultResolveQuery;
63
+
51
64
  constructor(
52
65
  coreSchema: CoreCoDiscriminatedUnionSchema<Options>,
53
66
  private coValueClass: SchemaUnionConcreteSubclass<
@@ -57,36 +70,62 @@ export class CoDiscriminatedUnionSchema<
57
70
  this.getDefinition = coreSchema.getDefinition;
58
71
  }
59
72
 
60
- load(
73
+ load<
74
+ const R extends RefsToResolve<
75
+ CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion
76
+ // @ts-expect-error
77
+ > = DefaultResolveQuery,
78
+ >(
61
79
  id: string,
62
80
  options?: {
81
+ resolve?: RefsToResolveStrict<
82
+ CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion,
83
+ R
84
+ >;
63
85
  loadAs?: Account | AnonymousJazzAgent;
64
86
  skipRetry?: boolean;
65
87
  unstable_branch?: BranchDefinition;
66
88
  },
67
- ): Promise<Resolved<
68
- CoDiscriminatedUnionInstanceCoValuesNullable<Options> & SchemaUnion,
69
- true
70
- > | null> {
71
- return this.coValueClass.load(id, options) as any;
89
+ ): Promise<
90
+ MaybeLoaded<
91
+ Resolved<
92
+ CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion,
93
+ R
94
+ >
95
+ >
96
+ > {
97
+ return this.coValueClass.load(
98
+ id,
99
+ // @ts-expect-error
100
+ withSchemaResolveQuery(options, this.resolveQuery),
101
+ ) as any;
72
102
  }
73
103
 
74
- subscribe(
104
+ subscribe<
105
+ const R extends RefsToResolve<
106
+ CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion
107
+ // @ts-expect-error
108
+ > = DefaultResolveQuery,
109
+ >(
75
110
  id: string,
76
111
  options: SubscribeListenerOptions<
77
- CoDiscriminatedUnionInstanceCoValuesNullable<Options> & SchemaUnion,
78
- true
112
+ CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion,
113
+ R
79
114
  >,
80
115
  listener: (
81
116
  value: Resolved<
82
- CoDiscriminatedUnionInstanceCoValuesNullable<Options> & SchemaUnion,
83
- true
117
+ CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion,
118
+ R
84
119
  >,
85
120
  unsubscribe: () => void,
86
121
  ) => void,
87
122
  ): () => void {
88
123
  // @ts-expect-error
89
- return this.coValueClass.subscribe(id, options, listener);
124
+ return this.coValueClass.subscribe(
125
+ id,
126
+ withSchemaResolveQuery(options, this.resolveQuery),
127
+ listener,
128
+ );
90
129
  }
91
130
 
92
131
  getCoValueClass(): SchemaUnionConcreteSubclass<
@@ -98,6 +137,34 @@ export class CoDiscriminatedUnionSchema<
98
137
  optional(): CoOptionalSchema<this> {
99
138
  return coOptionalDefiner(this);
100
139
  }
140
+
141
+ /**
142
+ * Adds a default resolve query to be used when loading instances of this schema.
143
+ * This resolve query will be used when no resolve query is provided to the load method.
144
+ */
145
+ resolved<
146
+ const R extends RefsToResolve<
147
+ CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion
148
+ > = true,
149
+ >(
150
+ resolveQuery: RefsToResolveStrict<
151
+ CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion,
152
+ R
153
+ >,
154
+ ): CoDiscriminatedUnionSchema<Options, R> {
155
+ const definition = this.getDefinition();
156
+ const coreSchema: CoreCoDiscriminatedUnionSchema<Options> =
157
+ createCoreCoDiscriminatedUnionSchema(
158
+ definition.discriminator,
159
+ definition.options,
160
+ );
161
+ const copy = new CoDiscriminatedUnionSchema<Options, R>(
162
+ coreSchema,
163
+ this.coValueClass,
164
+ );
165
+ copy.resolveQuery = resolveQuery as R;
166
+ return copy;
167
+ }
101
168
  }
102
169
 
103
170
  export function createCoreCoDiscriminatedUnionSchema<
@@ -133,9 +200,12 @@ export function createCoreCoDiscriminatedUnionSchema<
133
200
  return schemas;
134
201
  },
135
202
  }),
203
+ resolveQuery: true as const,
136
204
  };
137
205
  }
138
206
 
139
- type CoDiscriminatedUnionInstanceCoValuesNullable<
207
+ type CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<
140
208
  Options extends DiscriminableCoValueSchemas,
141
- > = NonNullable<InstanceOrPrimitiveOfSchemaCoValuesNullable<Options[number]>>;
209
+ > = LoadedAndRequired<
210
+ InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded<Options[number]>
211
+ >;
@@ -4,26 +4,38 @@ import {
4
4
  BranchDefinition,
5
5
  CoFeed,
6
6
  Group,
7
+ MaybeLoaded,
7
8
  RefsToResolve,
8
9
  RefsToResolveStrict,
9
10
  Resolved,
10
11
  SubscribeListenerOptions,
11
12
  coOptionalDefiner,
13
+ parseSubscribeRestArgs,
12
14
  unstable_mergeBranchWithResolve,
13
15
  } from "../../../internal.js";
14
16
  import { AnonymousJazzAgent } from "../../anonymousJazzAgent.js";
15
17
  import { CoFeedSchemaInit } from "../typeConverters/CoFieldSchemaInit.js";
16
18
  import { InstanceOrPrimitiveOfSchema } from "../typeConverters/InstanceOrPrimitiveOfSchema.js";
17
- import { InstanceOrPrimitiveOfSchemaCoValuesNullable } from "../typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.js";
19
+ import { InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded } from "../typeConverters/InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.js";
18
20
  import { CoOptionalSchema } from "./CoOptionalSchema.js";
19
- import { CoreCoValueSchema } from "./CoValueSchema.js";
21
+ import { CoreCoValueSchema, CoreResolveQuery } from "./CoValueSchema.js";
22
+ import { withSchemaResolveQuery } from "../../schemaUtils.js";
20
23
 
21
- export class CoFeedSchema<T extends AnyZodOrCoValueSchema>
22
- implements CoreCoFeedSchema<T>
24
+ export class CoFeedSchema<
25
+ T extends AnyZodOrCoValueSchema,
26
+ DefaultResolveQuery extends CoreResolveQuery = true,
27
+ > implements CoreCoFeedSchema<T>
23
28
  {
24
29
  collaborative = true as const;
25
30
  builtin = "CoFeed" as const;
26
31
 
32
+ /**
33
+ * Default resolve query to be used when loading instances of this schema.
34
+ * This resolve query will be used when no resolve query is provided to the load method.
35
+ * @default true
36
+ */
37
+ resolveQuery: DefaultResolveQuery = true as DefaultResolveQuery;
38
+
27
39
  constructor(
28
40
  public element: T,
29
41
  private coValueClass: typeof CoFeed,
@@ -45,52 +57,76 @@ export class CoFeedSchema<T extends AnyZodOrCoValueSchema>
45
57
  return this.coValueClass.create(init as any, options) as CoFeedInstance<T>;
46
58
  }
47
59
 
48
- load<const R extends RefsToResolve<CoFeedInstanceCoValuesNullable<T>> = true>(
60
+ load<
61
+ const R extends RefsToResolve<
62
+ CoFeedInstanceCoValuesMaybeLoaded<T>
63
+ // @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is
64
+ > = DefaultResolveQuery,
65
+ >(
49
66
  id: string,
50
67
  options?: {
51
- resolve?: RefsToResolveStrict<CoFeedInstanceCoValuesNullable<T>, R>;
68
+ resolve?: RefsToResolveStrict<CoFeedInstanceCoValuesMaybeLoaded<T>, R>;
52
69
  loadAs?: Account | AnonymousJazzAgent;
53
70
  unstable_branch?: BranchDefinition;
54
71
  },
55
- ): Promise<Resolved<CoFeedInstanceCoValuesNullable<T>, R> | null> {
72
+ ): Promise<MaybeLoaded<Resolved<CoFeedInstanceCoValuesMaybeLoaded<T>, R>>> {
56
73
  // @ts-expect-error
57
- return this.coValueClass.load(id, options);
74
+ return this.coValueClass.load(
75
+ id,
76
+ // @ts-expect-error
77
+ withSchemaResolveQuery(options, this.resolveQuery),
78
+ );
58
79
  }
59
80
 
60
81
  unstable_merge<
61
- const R extends RefsToResolve<CoFeedInstanceCoValuesNullable<T>> = true,
82
+ const R extends RefsToResolve<
83
+ CoFeedInstanceCoValuesMaybeLoaded<T>
84
+ // @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is
85
+ > = DefaultResolveQuery,
62
86
  >(
63
87
  id: string,
64
- options?: {
65
- resolve?: RefsToResolveStrict<CoFeedInstanceCoValuesNullable<T>, R>;
88
+ options: {
89
+ resolve?: RefsToResolveStrict<CoFeedInstanceCoValuesMaybeLoaded<T>, R>;
66
90
  loadAs?: Account | AnonymousJazzAgent;
67
91
  branch: BranchDefinition;
68
92
  },
69
93
  ): Promise<void> {
70
- // @ts-expect-error
71
- return unstable_mergeBranchWithResolve(this.coValueClass, id, options);
94
+ return unstable_mergeBranchWithResolve(
95
+ this.coValueClass,
96
+ id,
97
+ // @ts-expect-error
98
+ withSchemaResolveQuery(options, this.resolveQuery),
99
+ );
72
100
  }
73
101
 
74
102
  subscribe(
75
103
  id: string,
76
104
  listener: (
77
- value: Resolved<CoFeedInstanceCoValuesNullable<T>, true>,
105
+ value: Resolved<CoFeedInstanceCoValuesMaybeLoaded<T>, true>,
78
106
  unsubscribe: () => void,
79
107
  ) => void,
80
108
  ): () => void;
81
109
  subscribe<
82
- const R extends RefsToResolve<CoFeedInstanceCoValuesNullable<T>> = true,
110
+ const R extends RefsToResolve<
111
+ CoFeedInstanceCoValuesMaybeLoaded<T>
112
+ // @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is
113
+ > = DefaultResolveQuery,
83
114
  >(
84
115
  id: string,
85
- options: SubscribeListenerOptions<CoFeedInstanceCoValuesNullable<T>, R>,
116
+ options: SubscribeListenerOptions<CoFeedInstanceCoValuesMaybeLoaded<T>, R>,
86
117
  listener: (
87
- value: Resolved<CoFeedInstanceCoValuesNullable<T>, R>,
118
+ value: Resolved<CoFeedInstanceCoValuesMaybeLoaded<T>, R>,
88
119
  unsubscribe: () => void,
89
120
  ) => void,
90
121
  ): () => void;
91
- subscribe(...args: [any, ...any[]]) {
92
- // @ts-expect-error
93
- return this.coValueClass.subscribe(...args);
122
+ subscribe(id: string, ...args: any) {
123
+ const { options, listener } = parseSubscribeRestArgs(args);
124
+ return this.coValueClass.subscribe(
125
+ id,
126
+ // @ts-expect-error
127
+ withSchemaResolveQuery(options, this.resolveQuery),
128
+ listener,
129
+ );
94
130
  }
95
131
 
96
132
  getCoValueClass(): typeof CoFeed {
@@ -100,6 +136,20 @@ export class CoFeedSchema<T extends AnyZodOrCoValueSchema>
100
136
  optional(): CoOptionalSchema<this> {
101
137
  return coOptionalDefiner(this);
102
138
  }
139
+
140
+ /**
141
+ * Adds a default resolve query to be used when loading instances of this schema.
142
+ * This resolve query will be used when no resolve query is provided to the load method.
143
+ */
144
+ resolved<
145
+ const R extends RefsToResolve<CoFeedInstanceCoValuesMaybeLoaded<T>> = true,
146
+ >(
147
+ resolveQuery: RefsToResolveStrict<CoFeedInstanceCoValuesMaybeLoaded<T>, R>,
148
+ ): CoFeedSchema<T, R> {
149
+ const copy = new CoFeedSchema<T, R>(this.element, this.coValueClass);
150
+ copy.resolveQuery = resolveQuery as R;
151
+ return copy;
152
+ }
103
153
  }
104
154
 
105
155
  export function createCoreCoFeedSchema<T extends AnyZodOrCoValueSchema>(
@@ -109,6 +159,7 @@ export function createCoreCoFeedSchema<T extends AnyZodOrCoValueSchema>(
109
159
  collaborative: true as const,
110
160
  builtin: "CoFeed" as const,
111
161
  element,
162
+ resolveQuery: true as const,
112
163
  };
113
164
  }
114
165
 
@@ -124,5 +175,5 @@ export type CoFeedInstance<T extends AnyZodOrCoValueSchema> = CoFeed<
124
175
  InstanceOrPrimitiveOfSchema<T>
125
176
  >;
126
177
 
127
- export type CoFeedInstanceCoValuesNullable<T extends AnyZodOrCoValueSchema> =
128
- CoFeed<InstanceOrPrimitiveOfSchemaCoValuesNullable<T>>;
178
+ export type CoFeedInstanceCoValuesMaybeLoaded<T extends AnyZodOrCoValueSchema> =
179
+ CoFeed<InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded<T>>;