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
@@ -4,7 +4,7 @@ import { assert, beforeEach, describe, expect, test, vi } from "vitest";
4
4
  import { Group, co, subscribeToCoValue, z } from "../exports.js";
5
5
 
6
6
  import { createJazzTestAccount, setupJazzTestSync } from "../testing.js";
7
- import { waitFor } from "./utils.js";
7
+ import { assertLoaded, waitFor } from "./utils.js";
8
8
 
9
9
  beforeEach(async () => {
10
10
  cojsonInternals.CO_VALUE_LOADING_CONFIG.RETRY_DELAY = 1000;
@@ -45,7 +45,7 @@ describe("CoMap Branching", async () => {
45
45
  unstable_branch: { name: "feature-branch" },
46
46
  });
47
47
 
48
- assert(branchPerson);
48
+ assertLoaded(branchPerson);
49
49
 
50
50
  // Edit the branch
51
51
  branchPerson.$jazz.applyDiff({
@@ -107,7 +107,7 @@ describe("CoMap Branching", async () => {
107
107
  unstable_branch: { name: "feature-branch" },
108
108
  });
109
109
 
110
- assert(branchPerson);
110
+ assertLoaded(branchPerson);
111
111
 
112
112
  // Edit the branch
113
113
  branchPerson.$jazz.applyDiff({
@@ -161,7 +161,7 @@ describe("CoMap Branching", async () => {
161
161
  unstable_branch: { name: "no-changes-branch" },
162
162
  });
163
163
 
164
- assert(branchPerson);
164
+ assertLoaded(branchPerson);
165
165
 
166
166
  // Verify branch has same values as original
167
167
  expect(branchPerson.name).toBe("John Doe");
@@ -201,7 +201,7 @@ describe("CoMap Branching", async () => {
201
201
  unstable_branch: { name: "shared-branch" },
202
202
  });
203
203
 
204
- assert(branch1);
204
+ assertLoaded(branch1);
205
205
 
206
206
  branch1.$jazz.applyDiff({
207
207
  name: "John Smith",
@@ -213,7 +213,7 @@ describe("CoMap Branching", async () => {
213
213
  unstable_branch: { name: "shared-branch" },
214
214
  });
215
215
 
216
- assert(branch2);
216
+ assertLoaded(branch2);
217
217
 
218
218
  // Both branches should have the same changes
219
219
  expect(branch1.name).toBe("John Smith");
@@ -267,7 +267,7 @@ describe("CoMap Branching", async () => {
267
267
  loadAs: alice,
268
268
  });
269
269
 
270
- assert(branch1);
270
+ assertLoaded(branch1);
271
271
 
272
272
  originalPerson.$jazz.applyDiff({
273
273
  name: "John Smith",
@@ -280,7 +280,7 @@ describe("CoMap Branching", async () => {
280
280
  loadAs: bob,
281
281
  });
282
282
 
283
- assert(branch2);
283
+ assertLoaded(branch2);
284
284
 
285
285
  // Both branches should have the same changes
286
286
  expect(branch1.name).toBe("John Doe");
@@ -337,7 +337,7 @@ describe("CoMap Branching", async () => {
337
337
  unstable_branch: { name: "double-merge-branch" },
338
338
  });
339
339
 
340
- assert(branch);
340
+ assertLoaded(branch);
341
341
 
342
342
  branch.$jazz.applyDiff({
343
343
  name: "John Smith",
@@ -392,7 +392,7 @@ describe("CoMap Branching", async () => {
392
392
  loadAs: alice,
393
393
  });
394
394
 
395
- assert(branch1);
395
+ assertLoaded(branch1);
396
396
 
397
397
  branch1.$jazz.applyDiff({
398
398
  name: "John Smith",
@@ -404,7 +404,7 @@ describe("CoMap Branching", async () => {
404
404
  loadAs: bob,
405
405
  });
406
406
 
407
- assert(branch2);
407
+ assertLoaded(branch2);
408
408
 
409
409
  branch2.$jazz.applyDiff({
410
410
  age: 31,
@@ -464,8 +464,7 @@ describe("CoMap Branching", async () => {
464
464
  unstable_branch: { name: "load-by-id-branch" },
465
465
  });
466
466
 
467
- assert(branch);
468
-
467
+ assertLoaded(branch);
469
468
  expect(branch.$jazz.id).toBe(originalPerson.$jazz.id);
470
469
  });
471
470
 
@@ -492,7 +491,7 @@ describe("CoMap Branching", async () => {
492
491
  unstable_branch: { name: "conflict-branch" },
493
492
  });
494
493
 
495
- assert(branch);
494
+ assertLoaded(branch);
496
495
 
497
496
  // User 1 creates a branch and makes changes
498
497
  branch.$jazz.applyDiff({
@@ -544,7 +543,7 @@ describe("CoMap Branching", async () => {
544
543
  unstable_branch: { name: "align-branch" },
545
544
  });
546
545
 
547
- assert(branch);
546
+ assertLoaded(branch);
548
547
 
549
548
  branch.$jazz.applyDiff({
550
549
  name: "John Smith",
@@ -565,7 +564,7 @@ describe("CoMap Branching", async () => {
565
564
  unstable_branch: { name: "align-branch" },
566
565
  });
567
566
 
568
- assert(loadedBranch);
567
+ assertLoaded(loadedBranch);
569
568
 
570
569
  expect(loadedBranch.name).toBe("John Smith");
571
570
  expect(loadedBranch.age).toBe(30);
@@ -623,7 +622,7 @@ describe("CoMap Branching", async () => {
623
622
  unstable_branch: { name: "large-doc-edit" },
624
623
  });
625
624
 
626
- assert(branch);
625
+ assertLoaded(branch);
627
626
 
628
627
  // Make extensive changes to the branch
629
628
  branch.$jazz.applyDiff({
@@ -646,7 +645,7 @@ describe("CoMap Branching", async () => {
646
645
  },
647
646
  });
648
647
 
649
- assert(loadedLargeDoc);
648
+ assertLoaded(loadedLargeDoc);
650
649
 
651
650
  // Verify original is unchanged
652
651
  expect(loadedLargeDoc.title).toBe("Large Document");
@@ -703,7 +702,7 @@ describe("CoMap Branching", async () => {
703
702
  unstable_branch: { name: "subscribe-branch" },
704
703
  });
705
704
 
706
- assert(branch);
705
+ assertLoaded(branch);
707
706
 
708
707
  const spy = vi.fn();
709
708
  branch.$jazz.subscribe(
@@ -774,7 +773,7 @@ describe("CoMap Branching", async () => {
774
773
  unstable_branch: { name: "ensure-loaded-branch" },
775
774
  });
776
775
 
777
- assert(branch);
776
+ assertLoaded(branch);
778
777
 
779
778
  branch.$jazz.applyDiff({
780
779
  name: "John Smith",
@@ -834,7 +833,7 @@ describe("CoMap Branching", async () => {
834
833
  unstable_branch: { name: "schema-subscribe-branch" },
835
834
  });
836
835
 
837
- assert(branch);
836
+ assertLoaded(branch);
838
837
 
839
838
  branch.$jazz.applyDiff({
840
839
  name: "John Smith",
@@ -1,7 +1,8 @@
1
1
  import { describe, expectTypeOf, test } from "vitest";
2
2
  import { Group, co, z } from "../exports.js";
3
3
  import { Account } from "../index.js";
4
- import { Loaded } from "../internal.js";
4
+ import { Loaded, MaybeLoaded, LoadedAndRequired } from "../internal.js";
5
+ import { assertLoaded } from "./utils.js";
5
6
 
6
7
  describe("CoMap.Record", () => {
7
8
  describe("init", () => {
@@ -180,9 +181,9 @@ describe("CoMap.Record", () => {
180
181
  },
181
182
  });
182
183
 
183
- type ExpectedType = {
184
+ type ExpectedType = MaybeLoaded<{
184
185
  [key: string]: Loaded<typeof Dog>;
185
- } | null;
186
+ }>;
186
187
 
187
188
  function matches(value: ExpectedType) {
188
189
  return value;
@@ -210,17 +211,16 @@ describe("CoMap.Record", () => {
210
211
  },
211
212
  });
212
213
 
213
- type Expect = NonNullable<typeof loadedPerson> extends never
214
+ type Expect = LoadedAndRequired<typeof loadedPerson> extends never
214
215
  ? "error: is never"
215
216
  : "ok";
216
217
 
217
218
  expectTypeOf("ok" as const).toEqualTypeOf<Expect>();
218
219
 
219
- expectTypeOf(loadedPerson?.pet1).toEqualTypeOf<
220
- Loaded<typeof Dog> | undefined
221
- >();
222
- expectTypeOf(loadedPerson?.pet3).toEqualTypeOf<
223
- Loaded<typeof Dog> | undefined | null
220
+ assertLoaded(loadedPerson);
221
+ expectTypeOf(loadedPerson.pet1).toEqualTypeOf<Loaded<typeof Dog>>();
222
+ expectTypeOf(loadedPerson.pet3).branded.toEqualTypeOf<
223
+ MaybeLoaded<Loaded<typeof Dog>> | undefined
224
224
  >();
225
225
  });
226
226
 
@@ -245,25 +245,26 @@ describe("CoMap.Record", () => {
245
245
  [userId]: true,
246
246
  pet2: true,
247
247
  [userId2]: {
248
- $onError: null,
248
+ $onError: "catch",
249
249
  },
250
250
  },
251
251
  });
252
252
 
253
- type Expect = NonNullable<typeof loadedPerson> extends never
253
+ type Expect = LoadedAndRequired<typeof loadedPerson> extends never
254
254
  ? "error: is never"
255
255
  : "ok";
256
256
 
257
257
  expectTypeOf("ok" as const).toEqualTypeOf<Expect>();
258
258
 
259
- expectTypeOf(loadedPerson?.pet1).toEqualTypeOf<
260
- Loaded<typeof Dog> | undefined | null
259
+ assertLoaded(loadedPerson);
260
+ expectTypeOf(loadedPerson.pet1).branded.toEqualTypeOf<
261
+ MaybeLoaded<Loaded<typeof Dog>> | undefined
261
262
  >();
262
- expectTypeOf(loadedPerson?.pet2).toEqualTypeOf<
263
- Loaded<typeof Dog> | undefined | null
263
+ expectTypeOf(loadedPerson.pet2).branded.toEqualTypeOf<
264
+ MaybeLoaded<Loaded<typeof Dog>> | undefined
264
265
  >();
265
- expectTypeOf(loadedPerson?.pet3).toEqualTypeOf<
266
- Loaded<typeof Dog> | undefined | null
266
+ expectTypeOf(loadedPerson.pet3).branded.toEqualTypeOf<
267
+ MaybeLoaded<Loaded<typeof Dog>> | undefined
267
268
  >();
268
269
  });
269
270
 
@@ -282,17 +283,18 @@ describe("CoMap.Record", () => {
282
283
 
283
284
  const loadedPerson = await Person.load(person.$jazz.id);
284
285
 
285
- type Expect = NonNullable<typeof loadedPerson> extends never
286
+ type Expect = LoadedAndRequired<typeof loadedPerson> extends never
286
287
  ? "error: is never"
287
288
  : "ok";
288
289
 
289
290
  expectTypeOf("ok" as const).toEqualTypeOf<Expect>();
290
291
 
291
- expectTypeOf(loadedPerson?.pet1).toEqualTypeOf<
292
- Loaded<typeof Dog> | undefined | null
292
+ assertLoaded(loadedPerson);
293
+ expectTypeOf(loadedPerson.pet1).branded.toEqualTypeOf<
294
+ MaybeLoaded<Loaded<typeof Dog>> | undefined
293
295
  >();
294
- expectTypeOf(loadedPerson?.pet3).toEqualTypeOf<
295
- Loaded<typeof Dog> | undefined | null
296
+ expectTypeOf(loadedPerson.pet3).branded.toEqualTypeOf<
297
+ MaybeLoaded<Loaded<typeof Dog>> | undefined
296
298
  >();
297
299
  });
298
300
 
@@ -311,13 +313,13 @@ describe("CoMap.Record", () => {
311
313
 
312
314
  const loadedPerson = await Person.load(person.$jazz.id, {
313
315
  resolve: {
314
- $each: { $onError: null },
316
+ $each: { $onError: "catch" },
315
317
  },
316
318
  });
317
319
 
318
- type ExpectedType = {
319
- [key: string]: Loaded<typeof Dog> | null;
320
- } | null;
320
+ type ExpectedType = MaybeLoaded<{
321
+ [key: string]: MaybeLoaded<Loaded<typeof Dog>>;
322
+ }>;
321
323
 
322
324
  function matches(value: ExpectedType) {
323
325
  return value;
@@ -12,8 +12,8 @@ import { FileStream, Group, co, z } from "../exports.js";
12
12
  import { Loaded } from "../implementation/zodSchema/zodSchema.js";
13
13
  import { Account } from "../index.js";
14
14
  import { createJazzTestAccount, setupJazzTestSync } from "../testing.js";
15
- import { waitFor } from "./utils.js";
16
- import { TypeSym } from "../internal.js";
15
+ import { assertLoaded, waitFor } from "./utils.js";
16
+ import { CoValueLoadingState, TypeSym } from "../internal.js";
17
17
 
18
18
  const Crypto = await WasmCrypto.create();
19
19
 
@@ -216,7 +216,7 @@ describe("CoMap.Record", async () => {
216
216
  },
217
217
  });
218
218
 
219
- assert(loadedPerson);
219
+ assertLoaded(loadedPerson);
220
220
  expect(loadedPerson.pet1?.name).toEqual("Rex");
221
221
  expect(loadedPerson.pet2?.name).toEqual("Fido");
222
222
  });
@@ -240,7 +240,7 @@ describe("CoMap.Record", async () => {
240
240
  },
241
241
  });
242
242
 
243
- assert(loadedPerson);
243
+ assertLoaded(loadedPerson);
244
244
  expect(loadedPerson.pet1?.name).toEqual("Rex");
245
245
  });
246
246
 
@@ -263,7 +263,9 @@ describe("CoMap.Record", async () => {
263
263
  },
264
264
  });
265
265
 
266
- expect(loadedPerson).toEqual(null);
266
+ expect(loadedPerson.$jazz.loadingState).toBe(
267
+ CoValueLoadingState.UNAVAILABLE,
268
+ );
267
269
  });
268
270
 
269
271
  test("loading a locally available record using autoload for the refs", async () => {
@@ -281,8 +283,12 @@ describe("CoMap.Record", async () => {
281
283
 
282
284
  const loadedPerson = await Person.load(person.$jazz.id);
283
285
 
284
- assert(loadedPerson);
286
+ assertLoaded(loadedPerson);
287
+ assert(loadedPerson.pet1);
288
+ assertLoaded(loadedPerson.pet1);
285
289
  expect(loadedPerson.pet1?.name).toEqual("Rex");
290
+ assert(loadedPerson.pet2);
291
+ assertLoaded(loadedPerson.pet2);
286
292
  expect(loadedPerson.pet2?.name).toEqual("Fido");
287
293
  });
288
294
 
@@ -484,12 +490,13 @@ describe("CoRecord unique methods", () => {
484
490
  "test-record",
485
491
  group.$jazz.id,
486
492
  );
493
+ assertLoaded(foundRecord);
487
494
  expect(foundRecord).toEqual(originalRecord);
488
- expect(foundRecord?.item1).toBe(1);
489
- expect(foundRecord?.item2).toBe(2);
495
+ expect(foundRecord.item1).toBe(1);
496
+ expect(foundRecord.item2).toBe(2);
490
497
  });
491
498
 
492
- test("loadUnique returns null for non-existent record", async () => {
499
+ test("loadUnique returns 'unavailable' for non-existent record", async () => {
493
500
  const ItemRecord = co.record(z.string(), z.number());
494
501
  const group = Group.create();
495
502
 
@@ -497,7 +504,9 @@ describe("CoRecord unique methods", () => {
497
504
  "non-existent",
498
505
  group.$jazz.id,
499
506
  );
500
- expect(foundRecord).toBeNull();
507
+ expect(foundRecord.$jazz.loadingState).toBe(
508
+ CoValueLoadingState.UNAVAILABLE,
509
+ );
501
510
  });
502
511
 
503
512
  test("upsertUnique creates new record when none exists", async () => {
@@ -512,10 +521,10 @@ describe("CoRecord unique methods", () => {
512
521
  owner: group,
513
522
  });
514
523
 
515
- expect(result).not.toBeNull();
516
- expect(result?.item1).toBe(1);
517
- expect(result?.item2).toBe(2);
518
- expect(result?.item3).toBe(3);
524
+ assertLoaded(result);
525
+ expect(result.item1).toBe(1);
526
+ expect(result.item2).toBe(2);
527
+ expect(result.item3).toBe(3);
519
528
  });
520
529
 
521
530
  test("upsertUnique updates existing record", async () => {
@@ -535,10 +544,11 @@ describe("CoRecord unique methods", () => {
535
544
  owner: group,
536
545
  });
537
546
 
547
+ assertLoaded(updatedRecord);
538
548
  expect(updatedRecord).toEqual(originalRecord); // Should be the same instance
539
- expect(updatedRecord?.updated1).toBe(10);
540
- expect(updatedRecord?.updated2).toBe(20);
541
- expect(updatedRecord?.updated3).toBe(30);
549
+ expect(updatedRecord.updated1).toBe(10);
550
+ expect(updatedRecord.updated2).toBe(20);
551
+ expect(updatedRecord.updated3).toBe(30);
542
552
  });
543
553
 
544
554
  test("upsertUnique with CoValue items", async () => {
@@ -561,9 +571,9 @@ describe("CoRecord unique methods", () => {
561
571
  resolve: { first: true, second: true },
562
572
  });
563
573
 
564
- expect(result).not.toBeNull();
565
- expect(result?.first?.name).toBe("First");
566
- expect(result?.second?.name).toBe("Second");
574
+ assertLoaded(result);
575
+ expect(result.first?.name).toBe("First");
576
+ expect(result.second?.name).toBe("Second");
567
577
  });
568
578
 
569
579
  test("findUnique returns correct ID", async () => {
@@ -2,7 +2,8 @@ import { assert, describe, expectTypeOf, test } from "vitest";
2
2
  import { ZodNumber, ZodOptional, ZodString } from "zod/v4";
3
3
  import { Group, co, z } from "../exports.js";
4
4
  import { Account } from "../index.js";
5
- import { CoMap, Loaded } from "../internal.js";
5
+ import { CoMap, Loaded, MaybeLoaded } from "../internal.js";
6
+ import { assertLoaded } from "./utils.js";
6
7
 
7
8
  describe("CoMap", async () => {
8
9
  describe("init", () => {
@@ -562,12 +563,12 @@ describe("CoMap resolution", async () => {
562
563
  },
563
564
  });
564
565
 
565
- type ExpectedType = {
566
+ type ExpectedType = MaybeLoaded<{
566
567
  name: string;
567
568
  age: number;
568
569
  dog1: Loaded<typeof Dog>;
569
- dog2: Loaded<typeof Dog> | null;
570
- } | null;
570
+ dog2: MaybeLoaded<Loaded<typeof Dog>>;
571
+ }>;
571
572
 
572
573
  function matches(value: ExpectedType) {
573
574
  return value;
@@ -575,11 +576,11 @@ describe("CoMap resolution", async () => {
575
576
 
576
577
  matches(loadedPerson);
577
578
 
578
- assert(loadedPerson);
579
+ assertLoaded(loadedPerson);
579
580
  expectTypeOf<typeof loadedPerson.dog1.name>().toEqualTypeOf<string>();
580
- expectTypeOf<typeof loadedPerson.dog2>().toEqualTypeOf<Loaded<
581
- typeof Dog
582
- > | null>();
581
+ expectTypeOf<typeof loadedPerson.dog2>().branded.toEqualTypeOf<
582
+ MaybeLoaded<Loaded<typeof Dog>>
583
+ >();
583
584
  });
584
585
 
585
586
  test("partial loading a map with string resolve", async () => {
@@ -610,12 +611,12 @@ describe("CoMap resolution", async () => {
610
611
  },
611
612
  });
612
613
 
613
- type ExpectedType = {
614
+ type ExpectedType = MaybeLoaded<{
614
615
  name: string;
615
616
  age: number;
616
- dog1: Loaded<typeof Dog> | null;
617
- dog2: Loaded<typeof Dog> | null;
618
- } | null;
617
+ dog1: MaybeLoaded<Loaded<typeof Dog>>;
618
+ dog2: MaybeLoaded<Loaded<typeof Dog>>;
619
+ }>;
619
620
 
620
621
  function matches(value: ExpectedType) {
621
622
  return value;
@@ -623,13 +624,13 @@ describe("CoMap resolution", async () => {
623
624
 
624
625
  matches(loadedPerson);
625
626
 
626
- assert(loadedPerson);
627
- expectTypeOf<typeof loadedPerson.dog1>().toEqualTypeOf<Loaded<
628
- typeof Dog
629
- > | null>();
630
- expectTypeOf<typeof loadedPerson.dog2>().toEqualTypeOf<Loaded<
631
- typeof Dog
632
- > | null>();
627
+ assertLoaded(loadedPerson);
628
+ expectTypeOf<typeof loadedPerson.dog1>().branded.toEqualTypeOf<
629
+ MaybeLoaded<Loaded<typeof Dog>>
630
+ >();
631
+ expectTypeOf<typeof loadedPerson.dog2>().branded.toEqualTypeOf<
632
+ MaybeLoaded<Loaded<typeof Dog>>
633
+ >();
633
634
  });
634
635
 
635
636
  test("loading a map with deep resolve and $onError", async () => {
@@ -655,16 +656,16 @@ describe("CoMap resolution", async () => {
655
656
  const loadedPerson = await Person.load(person.$jazz.id, {
656
657
  resolve: {
657
658
  dog1: true,
658
- dog2: { $onError: null },
659
+ dog2: { $onError: "catch" },
659
660
  },
660
661
  });
661
662
 
662
- type ExpectedType = {
663
+ type ExpectedType = MaybeLoaded<{
663
664
  name: string;
664
665
  age: number;
665
666
  dog1: Loaded<typeof Dog>;
666
- dog2: Loaded<typeof Dog> | null;
667
- } | null;
667
+ dog2: MaybeLoaded<Loaded<typeof Dog>>;
668
+ }>;
668
669
 
669
670
  function matches(value: ExpectedType) {
670
671
  return value;
@@ -672,11 +673,11 @@ describe("CoMap resolution", async () => {
672
673
 
673
674
  matches(loadedPerson);
674
675
 
675
- assert(loadedPerson);
676
+ assertLoaded(loadedPerson);
676
677
  expectTypeOf<typeof loadedPerson.dog1.name>().toEqualTypeOf<string>();
677
- expectTypeOf<typeof loadedPerson.dog2>().branded.toEqualTypeOf<Loaded<
678
- typeof Dog
679
- > | null>();
678
+ expectTypeOf<typeof loadedPerson.dog2>().branded.toEqualTypeOf<
679
+ MaybeLoaded<Loaded<typeof Dog>>
680
+ >();
680
681
  });
681
682
 
682
683
  test("loading a map with a nullable field", async () => {
@@ -698,11 +699,12 @@ describe("CoMap resolution", async () => {
698
699
 
699
700
  const loadedPerson = await Person.load(person.$jazz.id);
700
701
 
701
- expectTypeOf(loadedPerson!).toEqualTypeOf<
702
+ assertLoaded(loadedPerson);
703
+ expectTypeOf(loadedPerson).branded.toEqualTypeOf<
702
704
  {
703
705
  readonly name: string;
704
706
  readonly age: number | null;
705
- readonly dog: Loaded<typeof Dog> | null;
707
+ readonly dog: MaybeLoaded<Loaded<typeof Dog>>;
706
708
  } & CoMap
707
709
  >();
708
710
  });