jazz-tools 0.18.37 → 0.19.0

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 (309) 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 +53 -53
  19. package/CHANGELOG.md +33 -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-P3YLNFN4.js} +504 -232
  26. package/dist/chunk-P3YLNFN4.js.map +1 -0
  27. package/dist/index.js +14 -6
  28. package/dist/index.js.map +1 -1
  29. package/dist/inspector/{custom-element-SUVJ7CPN.js → custom-element-QESCMFY7.js} +13 -3
  30. package/dist/inspector/{custom-element-SUVJ7CPN.js.map → custom-element-QESCMFY7.js.map} +1 -1
  31. package/dist/inspector/index.js +12 -2
  32. package/dist/inspector/index.js.map +1 -1
  33. package/dist/inspector/register-custom-element.js +1 -1
  34. package/dist/inspector/viewer/history-view.d.ts.map +1 -1
  35. package/dist/media/{chunk-K6GCHLQU.js → chunk-3LKBM3G3.js} +23 -15
  36. package/dist/media/chunk-3LKBM3G3.js.map +1 -0
  37. package/dist/media/create-image/browser.d.ts +2 -2
  38. package/dist/media/create-image/react-native.d.ts +2 -2
  39. package/dist/media/create-image/server.d.ts +2 -2
  40. package/dist/media/create-image-factory.d.ts +2 -2
  41. package/dist/media/index.browser.js +1 -1
  42. package/dist/media/index.js +1 -1
  43. package/dist/media/index.native.js +1 -1
  44. package/dist/media/index.server.js +1 -1
  45. package/dist/media/utils.d.ts.map +1 -1
  46. package/dist/react/hooks.d.ts +1 -1
  47. package/dist/react/hooks.d.ts.map +1 -1
  48. package/dist/react/index.d.ts +1 -1
  49. package/dist/react/index.d.ts.map +1 -1
  50. package/dist/react/index.js +31 -15
  51. package/dist/react/index.js.map +1 -1
  52. package/dist/react/media/image.d.ts.map +1 -1
  53. package/dist/react-core/hooks.d.ts +126 -224
  54. package/dist/react-core/hooks.d.ts.map +1 -1
  55. package/dist/react-core/index.js +65 -63
  56. package/dist/react-core/index.js.map +1 -1
  57. package/dist/react-core/subscription-provider.d.ts.map +1 -1
  58. package/dist/react-core/tests/createCoValueSubscriptionContext.test.d.ts +2 -0
  59. package/dist/react-core/tests/createCoValueSubscriptionContext.test.d.ts.map +1 -0
  60. package/dist/react-core/tests/useAccount.selector.test.d.ts +2 -0
  61. package/dist/react-core/tests/useAccount.selector.test.d.ts.map +1 -0
  62. package/dist/react-core/tests/useCoState.selector.test.d.ts +2 -0
  63. package/dist/react-core/tests/useCoState.selector.test.d.ts.map +1 -0
  64. package/dist/react-native-core/hooks.d.ts +1 -1
  65. package/dist/react-native-core/hooks.d.ts.map +1 -1
  66. package/dist/react-native-core/index.js +7 -5
  67. package/dist/react-native-core/index.js.map +1 -1
  68. package/dist/react-native-core/media/image.d.ts.map +1 -1
  69. package/dist/svelte/jazz.class.svelte.d.ts +8 -8
  70. package/dist/svelte/jazz.class.svelte.d.ts.map +1 -1
  71. package/dist/svelte/jazz.class.svelte.js +39 -14
  72. package/dist/svelte/media/image.svelte +6 -5
  73. package/dist/svelte/media/image.svelte.d.ts.map +1 -1
  74. package/dist/svelte/tests/AccountCoState.svelte.test-d.d.ts +2 -0
  75. package/dist/svelte/tests/AccountCoState.svelte.test-d.d.ts.map +1 -0
  76. package/dist/svelte/tests/AccountCoState.svelte.test-d.js +19 -0
  77. package/dist/svelte/tests/CoState.svelte.test-d.d.ts +2 -0
  78. package/dist/svelte/tests/CoState.svelte.test-d.d.ts.map +1 -0
  79. package/dist/svelte/tests/CoState.svelte.test-d.js +16 -0
  80. package/dist/svelte/tests/CoState.svelte.test.d.ts +2 -0
  81. package/dist/svelte/tests/CoState.svelte.test.d.ts.map +1 -0
  82. package/dist/svelte/tests/CoState.svelte.test.js +42 -0
  83. package/dist/svelte/tests/TestCoStateWrapper.svelte +23 -0
  84. package/dist/svelte/tests/TestCoStateWrapper.svelte.d.ts +12 -0
  85. package/dist/svelte/tests/TestCoStateWrapper.svelte.d.ts.map +1 -0
  86. package/dist/testing.js +3 -1
  87. package/dist/testing.js.map +1 -1
  88. package/dist/tools/coValues/CoValueBase.d.ts +4 -1
  89. package/dist/tools/coValues/CoValueBase.d.ts.map +1 -1
  90. package/dist/tools/coValues/account.d.ts +6 -6
  91. package/dist/tools/coValues/account.d.ts.map +1 -1
  92. package/dist/tools/coValues/coFeed.d.ts +5 -5
  93. package/dist/tools/coValues/coFeed.d.ts.map +1 -1
  94. package/dist/tools/coValues/coList.d.ts +9 -8
  95. package/dist/tools/coValues/coList.d.ts.map +1 -1
  96. package/dist/tools/coValues/coMap.d.ts +17 -17
  97. package/dist/tools/coValues/coMap.d.ts.map +1 -1
  98. package/dist/tools/coValues/coPlainText.d.ts +3 -3
  99. package/dist/tools/coValues/coPlainText.d.ts.map +1 -1
  100. package/dist/tools/coValues/coVector.d.ts +3 -3
  101. package/dist/tools/coValues/coVector.d.ts.map +1 -1
  102. package/dist/tools/coValues/deepLoading.d.ts +66 -36
  103. package/dist/tools/coValues/deepLoading.d.ts.map +1 -1
  104. package/dist/tools/coValues/extensions/imageDef.d.ts +1 -1
  105. package/dist/tools/coValues/extensions/imageDef.d.ts.map +1 -1
  106. package/dist/tools/coValues/group.d.ts +2 -2
  107. package/dist/tools/coValues/group.d.ts.map +1 -1
  108. package/dist/tools/coValues/inbox.d.ts.map +1 -1
  109. package/dist/tools/coValues/interfaces.d.ts +14 -6
  110. package/dist/tools/coValues/interfaces.d.ts.map +1 -1
  111. package/dist/tools/coValues/request.d.ts.map +1 -1
  112. package/dist/tools/coValues/schemaUnion.d.ts +2 -2
  113. package/dist/tools/coValues/schemaUnion.d.ts.map +1 -1
  114. package/dist/tools/exports.d.ts +3 -3
  115. package/dist/tools/exports.d.ts.map +1 -1
  116. package/dist/tools/implementation/refs.d.ts +3 -3
  117. package/dist/tools/implementation/refs.d.ts.map +1 -1
  118. package/dist/tools/implementation/schema.d.ts +2 -2
  119. package/dist/tools/implementation/schema.d.ts.map +1 -1
  120. package/dist/tools/implementation/schemaUtils.d.ts +8 -0
  121. package/dist/tools/implementation/schemaUtils.d.ts.map +1 -1
  122. package/dist/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.d.ts.map +1 -1
  123. package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts +33 -18
  124. package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts.map +1 -1
  125. package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts +5 -4
  126. package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts.map +1 -1
  127. package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts +23 -12
  128. package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts.map +1 -1
  129. package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts +29 -18
  130. package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts.map +1 -1
  131. package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts +39 -22
  132. package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts.map +1 -1
  133. package/dist/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.d.ts +1 -0
  134. package/dist/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.d.ts.map +1 -1
  135. package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts +30 -19
  136. package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts.map +1 -1
  137. package/dist/tools/implementation/zodSchema/schemaTypes/CoValueSchema.d.ts +5 -0
  138. package/dist/tools/implementation/zodSchema/schemaTypes/CoValueSchema.d.ts.map +1 -1
  139. package/dist/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.d.ts +6 -5
  140. package/dist/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.d.ts.map +1 -1
  141. package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts +3 -2
  142. package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts.map +1 -1
  143. package/dist/tools/implementation/zodSchema/schemaTypes/GroupSchema.d.ts +3 -2
  144. package/dist/tools/implementation/zodSchema/schemaTypes/GroupSchema.d.ts.map +1 -1
  145. package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts +3 -2
  146. package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts.map +1 -1
  147. package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts +3 -2
  148. package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts.map +1 -1
  149. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts +3 -0
  150. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts.map +1 -1
  151. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesMaybeLoaded.d.ts +22 -0
  152. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesMaybeLoaded.d.ts.map +1 -0
  153. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts +4 -0
  154. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts.map +1 -1
  155. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.d.ts +9 -0
  156. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.d.ts.map +1 -0
  157. package/dist/tools/implementation/zodSchema/zodCo.d.ts.map +1 -1
  158. package/dist/tools/implementation/zodSchema/zodSchema.d.ts +7 -6
  159. package/dist/tools/implementation/zodSchema/zodSchema.d.ts.map +1 -1
  160. package/dist/tools/internal.d.ts +3 -3
  161. package/dist/tools/internal.d.ts.map +1 -1
  162. package/dist/tools/lib/utils.d.ts +14 -0
  163. package/dist/tools/lib/utils.d.ts.map +1 -0
  164. package/dist/tools/lib/utils.test.d.ts +2 -0
  165. package/dist/tools/lib/utils.test.d.ts.map +1 -0
  166. package/dist/tools/subscribe/CoValueCoreSubscription.d.ts +3 -2
  167. package/dist/tools/subscribe/CoValueCoreSubscription.d.ts.map +1 -1
  168. package/dist/tools/subscribe/JazzError.d.ts +4 -3
  169. package/dist/tools/subscribe/JazzError.d.ts.map +1 -1
  170. package/dist/tools/subscribe/SubscriptionScope.d.ts +6 -5
  171. package/dist/tools/subscribe/SubscriptionScope.d.ts.map +1 -1
  172. package/dist/tools/subscribe/index.d.ts.map +1 -1
  173. package/dist/tools/subscribe/types.d.ts +23 -3
  174. package/dist/tools/subscribe/types.d.ts.map +1 -1
  175. package/dist/tools/subscribe/utils.d.ts.map +1 -1
  176. package/dist/tools/testing.d.ts +3 -2
  177. package/dist/tools/testing.d.ts.map +1 -1
  178. package/dist/tools/tests/schema.resolved.test.d.ts +2 -0
  179. package/dist/tools/tests/schema.resolved.test.d.ts.map +1 -0
  180. package/dist/tools/tests/utils.d.ts +2 -1
  181. package/dist/tools/tests/utils.d.ts.map +1 -1
  182. package/package.json +4 -4
  183. package/src/better-auth/database-adapter/index.ts +2 -2
  184. package/src/better-auth/database-adapter/repository/account.ts +3 -3
  185. package/src/better-auth/database-adapter/repository/generic.ts +9 -6
  186. package/src/better-auth/database-adapter/repository/user.ts +6 -2
  187. package/src/better-auth/database-adapter/schema.ts +1 -1
  188. package/src/better-auth/database-adapter/tests/index.test.ts +3 -4
  189. package/src/inspector/tests/viewer/history-view.test.tsx +74 -10
  190. package/src/inspector/viewer/history-view.tsx +14 -5
  191. package/src/media/utils.test.ts +5 -0
  192. package/src/media/utils.ts +25 -16
  193. package/src/react/hooks.tsx +2 -2
  194. package/src/react/index.ts +2 -2
  195. package/src/react/media/image.tsx +10 -2
  196. package/src/react/tests/useAcceptInvite.test.ts +3 -1
  197. package/src/react-core/hooks.ts +226 -304
  198. package/src/react-core/subscription-provider.tsx +14 -7
  199. package/src/react-core/tests/createCoValueSubscriptionContext.test.tsx +233 -0
  200. package/src/react-core/tests/subscription.bench.tsx +32 -15
  201. package/src/react-core/tests/{useAccountWithSelector.test.ts → useAccount.selector.test.ts} +72 -24
  202. package/src/react-core/tests/useAccount.test.ts +92 -106
  203. package/src/react-core/tests/{useCoStateWithSelector.test.ts → useCoState.selector.test.ts} +23 -8
  204. package/src/react-core/tests/useCoState.test.ts +173 -49
  205. package/src/react-core/tests/useInboxSender.test.ts +3 -1
  206. package/src/react-core/tests/usePassPhraseAuth.test.ts +11 -82
  207. package/src/react-core/tests/useSubscriptionSelector.test.ts +48 -14
  208. package/src/react-native-core/hooks.tsx +2 -2
  209. package/src/react-native-core/media/image.tsx +3 -1
  210. package/src/svelte/jazz.class.svelte.ts +103 -27
  211. package/src/svelte/media/image.svelte +6 -5
  212. package/src/svelte/tests/AccountCoState.svelte.test-d.ts +23 -0
  213. package/src/svelte/tests/CoState.svelte.test-d.ts +20 -0
  214. package/src/svelte/tests/CoState.svelte.test.ts +57 -0
  215. package/src/svelte/tests/TestCoStateWrapper.svelte +23 -0
  216. package/src/tools/coValues/CoValueBase.ts +12 -0
  217. package/src/tools/coValues/account.ts +17 -12
  218. package/src/tools/coValues/coFeed.ts +38 -15
  219. package/src/tools/coValues/coList.ts +16 -11
  220. package/src/tools/coValues/coMap.ts +15 -14
  221. package/src/tools/coValues/coPlainText.ts +6 -3
  222. package/src/tools/coValues/coVector.ts +6 -5
  223. package/src/tools/coValues/deepLoading.ts +98 -51
  224. package/src/tools/coValues/group.ts +3 -2
  225. package/src/tools/coValues/inbox.ts +11 -10
  226. package/src/tools/coValues/interfaces.ts +49 -27
  227. package/src/tools/coValues/request.ts +8 -6
  228. package/src/tools/coValues/schemaUnion.ts +2 -1
  229. package/src/tools/exports.ts +11 -1
  230. package/src/tools/implementation/refs.ts +19 -13
  231. package/src/tools/implementation/schema.ts +5 -4
  232. package/src/tools/implementation/schemaUtils.ts +15 -0
  233. package/src/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.ts +4 -4
  234. package/src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts +131 -95
  235. package/src/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.ts +19 -9
  236. package/src/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.ts +73 -22
  237. package/src/tools/implementation/zodSchema/schemaTypes/CoListSchema.ts +86 -28
  238. package/src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts +204 -148
  239. package/src/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.ts +1 -0
  240. package/src/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.ts +71 -27
  241. package/src/tools/implementation/zodSchema/schemaTypes/CoValueSchema.ts +7 -0
  242. package/src/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.ts +8 -6
  243. package/src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts +4 -1
  244. package/src/tools/implementation/zodSchema/schemaTypes/GroupSchema.ts +4 -1
  245. package/src/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.ts +4 -1
  246. package/src/tools/implementation/zodSchema/schemaTypes/RichTextSchema.ts +4 -1
  247. package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.ts +3 -0
  248. package/src/tools/implementation/zodSchema/typeConverters/{InstanceOfSchemaCoValuesNullable.ts → InstanceOfSchemaCoValuesMaybeLoaded.ts} +47 -39
  249. package/src/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.ts +4 -0
  250. package/src/tools/implementation/zodSchema/typeConverters/{InstanceOrPrimitiveOfSchemaCoValuesNullable.ts → InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.ts} +7 -3
  251. package/src/tools/implementation/zodSchema/zodSchema.ts +15 -7
  252. package/src/tools/internal.ts +3 -3
  253. package/src/tools/lib/utils.test.ts +56 -0
  254. package/src/tools/lib/utils.ts +32 -0
  255. package/src/tools/subscribe/CoValueCoreSubscription.ts +13 -8
  256. package/src/tools/subscribe/JazzError.ts +8 -2
  257. package/src/tools/subscribe/SubscriptionScope.ts +55 -44
  258. package/src/tools/subscribe/index.ts +12 -4
  259. package/src/tools/subscribe/types.ts +36 -2
  260. package/src/tools/subscribe/utils.ts +2 -1
  261. package/src/tools/testing.ts +5 -0
  262. package/src/tools/tests/CoValueCoreSubscription.test.ts +10 -4
  263. package/src/tools/tests/ContextManager.test.ts +12 -5
  264. package/src/tools/tests/account.test.ts +22 -12
  265. package/src/tools/tests/coDiscriminatedUnion.test.ts +8 -4
  266. package/src/tools/tests/coFeed.branch.test.ts +48 -32
  267. package/src/tools/tests/coFeed.test-d.ts +17 -10
  268. package/src/tools/tests/coFeed.test.ts +52 -30
  269. package/src/tools/tests/coList.branch.test.ts +21 -21
  270. package/src/tools/tests/coList.test-d.ts +39 -23
  271. package/src/tools/tests/coList.test.ts +51 -25
  272. package/src/tools/tests/coList.unique.test.ts +34 -29
  273. package/src/tools/tests/coMap.branch.test.ts +20 -21
  274. package/src/tools/tests/coMap.record.test-d.ts +28 -26
  275. package/src/tools/tests/coMap.record.test.ts +30 -20
  276. package/src/tools/tests/coMap.test-d.ts +31 -29
  277. package/src/tools/tests/coMap.test.ts +67 -40
  278. package/src/tools/tests/coMap.unique.test.ts +25 -24
  279. package/src/tools/tests/coVector.test.ts +29 -15
  280. package/src/tools/tests/createContext.test.ts +5 -3
  281. package/src/tools/tests/deepLoading.test.ts +314 -117
  282. package/src/tools/tests/exportImport.test.ts +16 -15
  283. package/src/tools/tests/groupsAndAccounts.test.ts +39 -16
  284. package/src/tools/tests/inbox.test.ts +3 -1
  285. package/src/tools/tests/load.test.ts +29 -23
  286. package/src/tools/tests/patterns/quest.test.ts +3 -2
  287. package/src/tools/tests/patterns/requestToJoin.test.ts +17 -17
  288. package/src/tools/tests/request.test.ts +12 -2
  289. package/src/tools/tests/schema.resolved.test.ts +723 -0
  290. package/src/tools/tests/schemaUnion.test.ts +7 -3
  291. package/src/tools/tests/subscribe.test.ts +39 -21
  292. package/src/tools/tests/testing.test.ts +3 -2
  293. package/src/tools/tests/utils.ts +15 -2
  294. package/dist/chunk-OSQ7S47Q.js.map +0 -1
  295. package/dist/media/chunk-K6GCHLQU.js.map +0 -1
  296. package/dist/react-core/tests/useAccountWithSelector.test.d.ts +0 -2
  297. package/dist/react-core/tests/useAccountWithSelector.test.d.ts.map +0 -1
  298. package/dist/react-core/tests/useCoStateWithSelector.test.d.ts +0 -2
  299. package/dist/react-core/tests/useCoStateWithSelector.test.d.ts.map +0 -1
  300. package/dist/tools/implementation/errors.d.ts +0 -2
  301. package/dist/tools/implementation/errors.d.ts.map +0 -1
  302. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts +0 -19
  303. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts.map +0 -1
  304. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts +0 -5
  305. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts.map +0 -1
  306. package/dist/tools/lib/id.d.ts +0 -2
  307. package/dist/tools/lib/id.d.ts.map +0 -1
  308. package/src/tools/implementation/errors.ts +0 -1
  309. package/src/tools/lib/id.ts +0 -3
@@ -1,15 +1,21 @@
1
1
  // @vitest-environment happy-dom
2
2
 
3
- import { Group, RefsToResolve, co, z } from "jazz-tools";
3
+ import { CoValueLoadingState, Group, RefsToResolve, co, z } from "jazz-tools";
4
+ import { assertLoaded } from "jazz-tools/testing";
4
5
  import { assert, beforeEach, describe, expect, it } from "vitest";
5
- import { useAccount, useJazzContextManager } from "../hooks.js";
6
+ import {
7
+ useAccount,
8
+ useAgent,
9
+ useJazzContextManager,
10
+ useLogOut,
11
+ } from "../hooks.js";
6
12
  import { useIsAuthenticated } from "../index.js";
7
13
  import {
8
14
  createJazzTestAccount,
9
15
  createJazzTestGuest,
10
16
  setupJazzTestSync,
11
17
  } from "../testing.js";
12
- import { act, renderHook } from "./testUtils.js";
18
+ import { act, renderHook, waitFor } from "./testUtils.js";
13
19
 
14
20
  beforeEach(async () => {
15
21
  await setupJazzTestSync();
@@ -23,7 +29,7 @@ describe("useAccount", () => {
23
29
  account,
24
30
  });
25
31
 
26
- expect(result.current?.me).toEqual(account);
32
+ expect(result.current).toEqual(account);
27
33
  });
28
34
 
29
35
  it("should load nested values if requested", async () => {
@@ -48,83 +54,21 @@ describe("useAccount", () => {
48
54
 
49
55
  const { result } = renderHook(
50
56
  () =>
51
- useAccount<typeof AccountSchema, RefsToResolve<{ root: true }>>(
52
- AccountSchema,
53
- {
54
- resolve: {
55
- root: true,
56
- },
57
+ useAccount(AccountSchema, {
58
+ resolve: {
59
+ root: true,
57
60
  },
58
- ),
59
- {
60
- account,
61
- },
62
- );
63
-
64
- expect(result.current?.me?.root?.value).toBe("123");
65
- });
66
-
67
- it("should be in sync with useIsAuthenticated when logOut (from useAccount.logOut) is called", async () => {
68
- const account = await createJazzTestAccount({});
69
-
70
- const accounts: string[] = [];
71
- const updates: { isAuthenticated: boolean; accountIndex: number }[] = [];
72
-
73
- const { result } = renderHook(
74
- () => {
75
- const isAuthenticated = useIsAuthenticated();
76
- const account = useAccount();
77
-
78
- if (account.me) {
79
- if (!accounts.includes(account.me.$jazz.id)) {
80
- accounts.push(account.me.$jazz.id);
81
- }
82
-
83
- updates.push({
84
- isAuthenticated,
85
- accountIndex: accounts.indexOf(account.me.$jazz.id),
86
- });
87
- }
88
-
89
- return { isAuthenticated, account };
90
- },
61
+ }),
91
62
  {
92
63
  account,
93
- isAuthenticated: true,
94
64
  },
95
65
  );
96
66
 
97
- expect(result.current?.isAuthenticated).toBe(true);
98
- expect(result.current?.account?.me).toBeDefined();
99
-
100
- const id = result.current?.account?.me?.$jazz.id;
101
-
102
- await act(async () => {
103
- await result.current?.account?.logOut();
104
- });
105
-
106
- expect(result.current?.isAuthenticated).toBe(false);
107
- expect(result.current?.account?.me?.$jazz.id).not.toBe(id);
108
-
109
- expect(updates).toMatchInlineSnapshot(`
110
- [
111
- {
112
- "accountIndex": 0,
113
- "isAuthenticated": true,
114
- },
115
- {
116
- "accountIndex": 0,
117
- "isAuthenticated": false,
118
- },
119
- {
120
- "accountIndex": 1,
121
- "isAuthenticated": false,
122
- },
123
- ]
124
- `);
67
+ assertLoaded(result.current);
68
+ expect(result.current.root.value).toBe("123");
125
69
  });
126
70
 
127
- it("should be in sync with useIsAuthenticated when logOut (from useLogOut) is called", async () => {
71
+ it("should be in sync with useIsAuthenticated when logOut is called", async () => {
128
72
  const account = await createJazzTestAccount({});
129
73
 
130
74
  const accounts: string[] = [];
@@ -134,19 +78,20 @@ describe("useAccount", () => {
134
78
  () => {
135
79
  const isAuthenticated = useIsAuthenticated();
136
80
  const account = useAccount();
81
+ const logOut = useLogOut();
137
82
 
138
- if (account.me) {
139
- if (!accounts.includes(account.me.$jazz.id)) {
140
- accounts.push(account.me.$jazz.id);
83
+ if (account) {
84
+ if (!accounts.includes(account.$jazz.id)) {
85
+ accounts.push(account.$jazz.id);
141
86
  }
142
87
 
143
88
  updates.push({
144
89
  isAuthenticated,
145
- accountIndex: accounts.indexOf(account.me.$jazz.id),
90
+ accountIndex: accounts.indexOf(account.$jazz.id),
146
91
  });
147
92
  }
148
93
 
149
- return { isAuthenticated, account };
94
+ return { isAuthenticated, account, logOut };
150
95
  },
151
96
  {
152
97
  account,
@@ -155,16 +100,16 @@ describe("useAccount", () => {
155
100
  );
156
101
 
157
102
  expect(result.current?.isAuthenticated).toBe(true);
158
- expect(result.current?.account?.me).toBeDefined();
103
+ expect(result.current?.account).toBeDefined();
159
104
 
160
- const id = result.current?.account?.me?.$jazz.id;
105
+ const id = result.current?.account.$jazz.id;
161
106
 
162
107
  await act(async () => {
163
- await result.current?.account?.logOut();
108
+ await result.current?.logOut();
164
109
  });
165
110
 
166
111
  expect(result.current?.isAuthenticated).toBe(false);
167
- expect(result.current?.account?.me?.$jazz.id).not.toBe(id);
112
+ expect(result.current?.account?.$jazz.id).not.toBe(id);
168
113
 
169
114
  expect(updates).toMatchInlineSnapshot(`
170
115
  [
@@ -197,14 +142,14 @@ describe("useAccount", () => {
197
142
  const account = useAccount();
198
143
  const contextManager = useJazzContextManager();
199
144
 
200
- if (account.me) {
201
- if (!accounts.includes(account.me.$jazz.id)) {
202
- accounts.push(account.me.$jazz.id);
145
+ if (account) {
146
+ if (!accounts.includes(account.$jazz.id)) {
147
+ accounts.push(account.$jazz.id);
203
148
  }
204
149
 
205
150
  updates.push({
206
151
  isAuthenticated,
207
- accountIndex: accounts.indexOf(account.me.$jazz.id),
152
+ accountIndex: accounts.indexOf(account.$jazz.id),
208
153
  });
209
154
  }
210
155
 
@@ -217,9 +162,9 @@ describe("useAccount", () => {
217
162
  );
218
163
 
219
164
  expect(result.current?.isAuthenticated).toBe(false);
220
- expect(result.current?.account?.me).toBeDefined();
165
+ expect(result.current?.account).toBeDefined();
221
166
 
222
- const id = result.current?.account?.me?.$jazz.id;
167
+ const id = result.current?.account.$jazz.id;
223
168
 
224
169
  await act(async () => {
225
170
  await result.current?.contextManager?.authenticate({
@@ -230,7 +175,7 @@ describe("useAccount", () => {
230
175
  });
231
176
 
232
177
  expect(result.current?.isAuthenticated).toBe(true);
233
- expect(result.current?.account?.me?.$jazz.id).not.toBe(id);
178
+ expect(result.current?.account.$jazz.id).not.toBe(id);
234
179
 
235
180
  expect(updates).toMatchInlineSnapshot(`
236
181
  [
@@ -265,21 +210,62 @@ describe("useAccount", () => {
265
210
  const account = await createJazzTestGuest();
266
211
 
267
212
  const { result } = renderHook(
268
- () =>
269
- useAccount(AccountSchema, {
213
+ () => {
214
+ const me = useAccount(AccountSchema, {
270
215
  resolve: {
271
216
  root: true,
272
217
  },
273
- }),
218
+ });
219
+ const agent = useAgent();
220
+ return { account: me, agent };
221
+ },
274
222
  {
275
223
  account,
276
224
  },
277
225
  );
278
226
 
279
- expect(result.current.me).toBe(null);
227
+ expect(result.current.account.$jazz.loadingState).toBe(
228
+ CoValueLoadingState.UNAVAILABLE,
229
+ );
280
230
  expect(result.current.agent).toBe(account.guest);
281
231
  });
282
232
 
233
+ it("should use the schema's resolve query if no resolve query is provided", async () => {
234
+ const AccountRoot = co.map({
235
+ name: co.plainText(),
236
+ });
237
+
238
+ const AccountSchema = co
239
+ .account({
240
+ root: AccountRoot,
241
+ profile: co.profile(),
242
+ })
243
+ .withMigration((account, creationProps) => {
244
+ if (!account.$jazz.refs.root) {
245
+ account.$jazz.set("root", { name: "John Doe" });
246
+ }
247
+ })
248
+ .resolved({
249
+ root: { name: true },
250
+ });
251
+
252
+ const account = await createJazzTestAccount({
253
+ AccountSchema,
254
+ isCurrentActiveAccount: true,
255
+ });
256
+
257
+ const { result } = renderHook(() => useAccount(AccountSchema), {
258
+ account,
259
+ });
260
+
261
+ await waitFor(() => {
262
+ expect(result.current).not.toBeNull();
263
+ });
264
+
265
+ assertLoaded(result.current);
266
+ expect(result.current.root.name.toUpperCase()).toBe("JOHN DOE");
267
+ });
268
+
283
269
  it("should work with branches - create branch, edit and merge", async () => {
284
270
  const AccountRoot = co.map({
285
271
  name: z.string(),
@@ -342,11 +328,11 @@ describe("useAccount", () => {
342
328
  const branchAccount = result.current.branchAccount;
343
329
  const mainAccount = result.current.mainAccount;
344
330
 
345
- assert(branchAccount?.me);
346
- assert(mainAccount?.me);
331
+ assertLoaded(branchAccount);
332
+ assertLoaded(mainAccount);
347
333
 
348
334
  act(() => {
349
- branchAccount.me?.root.$jazz.applyDiff({
335
+ branchAccount.root.$jazz.applyDiff({
350
336
  name: "John Smith",
351
337
  age: 31,
352
338
  email: "john.smith@example.com",
@@ -354,21 +340,21 @@ describe("useAccount", () => {
354
340
  });
355
341
 
356
342
  // Verify the branch has the changes
357
- expect(branchAccount.me.root?.name).toBe("John Smith");
358
- expect(branchAccount.me.root?.age).toBe(31);
359
- expect(branchAccount.me.root?.email).toBe("john.smith@example.com");
343
+ expect(branchAccount.root.name).toBe("John Smith");
344
+ expect(branchAccount.root.age).toBe(31);
345
+ expect(branchAccount.root.email).toBe("john.smith@example.com");
360
346
 
361
347
  // Verify the original is unchanged
362
- expect(mainAccount.me.root?.name).toBe("John Doe");
363
- expect(mainAccount.me.root?.age).toBe(30);
364
- expect(mainAccount.me.root?.email).toBe("john@example.com");
348
+ expect(mainAccount.root.name).toBe("John Doe");
349
+ expect(mainAccount.root.age).toBe(30);
350
+ expect(mainAccount.root.email).toBe("john@example.com");
365
351
 
366
352
  // Merge the branch back
367
- branchAccount.me.root.$jazz.unstable_merge();
353
+ branchAccount.root.$jazz.unstable_merge();
368
354
 
369
355
  // Verify the original now has the merged changes
370
- expect(mainAccount.me.root?.name).toBe("John Smith");
371
- expect(mainAccount.me.root?.age).toBe(31);
372
- expect(mainAccount.me.root?.email).toBe("john.smith@example.com");
356
+ expect(mainAccount.root.name).toBe("John Smith");
357
+ expect(mainAccount.root.age).toBe(31);
358
+ expect(mainAccount.root.email).toBe("john.smith@example.com");
373
359
  });
374
360
  });
@@ -3,7 +3,7 @@
3
3
  import { cojsonInternals } from "cojson";
4
4
  import { Account, co, Loaded, z } from "jazz-tools";
5
5
  import { beforeEach, describe, expect, expectTypeOf, it } from "vitest";
6
- import { useCoStateWithSelector } from "../index.js";
6
+ import { useCoState } from "../index.js";
7
7
  import { createJazzTestAccount, setupJazzTestSync } from "../testing.js";
8
8
  import { renderHook, waitFor } from "./testUtils.js";
9
9
  import { useRef } from "react";
@@ -28,7 +28,7 @@ const useRenderCount = <T>(hook: () => T) => {
28
28
  };
29
29
  };
30
30
 
31
- describe("useCoStateWithSelector", () => {
31
+ describe("useCoState", () => {
32
32
  it("should not re-render when a nested coValue is updated and not selected", async () => {
33
33
  const TestMap = co.map({
34
34
  value: z.string(),
@@ -46,11 +46,16 @@ describe("useCoStateWithSelector", () => {
46
46
 
47
47
  const { result } = renderHook(() =>
48
48
  useRenderCount(() =>
49
- useCoStateWithSelector(TestMap, map.$jazz.id, {
49
+ useCoState(TestMap, map.$jazz.id, {
50
50
  resolve: {
51
51
  nested: true,
52
52
  },
53
- select: (v) => v?.value,
53
+ select: (v) => {
54
+ if (!v.$isLoaded) {
55
+ return undefined;
56
+ }
57
+ return v.value;
58
+ },
54
59
  }),
55
60
  ),
56
61
  );
@@ -85,11 +90,16 @@ describe("useCoStateWithSelector", () => {
85
90
 
86
91
  const { result } = renderHook(() =>
87
92
  useRenderCount(() =>
88
- useCoStateWithSelector(TestMap, map.$jazz.id, {
93
+ useCoState(TestMap, map.$jazz.id, {
89
94
  resolve: {
90
95
  nested: true,
91
96
  },
92
- select: (v) => v?.nested?.value,
97
+ select: (v) => {
98
+ if (!v.$isLoaded) {
99
+ return undefined;
100
+ }
101
+ return v.nested?.value;
102
+ },
93
103
  }),
94
104
  ),
95
105
  );
@@ -128,11 +138,16 @@ describe("useCoStateWithSelector", () => {
128
138
 
129
139
  const { result } = renderHook(() =>
130
140
  useRenderCount(() =>
131
- useCoStateWithSelector(TestMap, map.$jazz.id, {
141
+ useCoState(TestMap, map.$jazz.id, {
132
142
  resolve: {
133
143
  nested: true,
134
144
  },
135
- select: (v) => v?.nested?.value,
145
+ select: (v) => {
146
+ if (!v.$isLoaded) {
147
+ return undefined;
148
+ }
149
+ return v.nested?.value;
150
+ },
136
151
  equalityFn: () => true,
137
152
  }),
138
153
  ),