jazz-tools 0.18.38 → 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 (302) 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 +57 -57
  19. package/CHANGELOG.md +22 -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/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 +66 -36
  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 +14 -6
  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 +2 -2
  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 +5 -4
  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/zodCo.d.ts.map +1 -1
  152. package/dist/tools/implementation/zodSchema/zodSchema.d.ts +7 -6
  153. package/dist/tools/implementation/zodSchema/zodSchema.d.ts.map +1 -1
  154. package/dist/tools/internal.d.ts +3 -3
  155. package/dist/tools/internal.d.ts.map +1 -1
  156. package/dist/tools/lib/utils.d.ts +14 -0
  157. package/dist/tools/lib/utils.d.ts.map +1 -0
  158. package/dist/tools/lib/utils.test.d.ts +2 -0
  159. package/dist/tools/lib/utils.test.d.ts.map +1 -0
  160. package/dist/tools/subscribe/CoValueCoreSubscription.d.ts +3 -2
  161. package/dist/tools/subscribe/CoValueCoreSubscription.d.ts.map +1 -1
  162. package/dist/tools/subscribe/JazzError.d.ts +4 -3
  163. package/dist/tools/subscribe/JazzError.d.ts.map +1 -1
  164. package/dist/tools/subscribe/SubscriptionScope.d.ts +6 -5
  165. package/dist/tools/subscribe/SubscriptionScope.d.ts.map +1 -1
  166. package/dist/tools/subscribe/index.d.ts.map +1 -1
  167. package/dist/tools/subscribe/types.d.ts +23 -3
  168. package/dist/tools/subscribe/types.d.ts.map +1 -1
  169. package/dist/tools/subscribe/utils.d.ts.map +1 -1
  170. package/dist/tools/testing.d.ts +3 -2
  171. package/dist/tools/testing.d.ts.map +1 -1
  172. package/dist/tools/tests/schema.resolved.test.d.ts +2 -0
  173. package/dist/tools/tests/schema.resolved.test.d.ts.map +1 -0
  174. package/dist/tools/tests/utils.d.ts +2 -1
  175. package/dist/tools/tests/utils.d.ts.map +1 -1
  176. package/package.json +4 -4
  177. package/src/better-auth/database-adapter/index.ts +2 -2
  178. package/src/better-auth/database-adapter/repository/account.ts +3 -3
  179. package/src/better-auth/database-adapter/repository/generic.ts +9 -6
  180. package/src/better-auth/database-adapter/repository/user.ts +6 -2
  181. package/src/better-auth/database-adapter/schema.ts +1 -1
  182. package/src/better-auth/database-adapter/tests/index.test.ts +3 -4
  183. package/src/inspector/tests/viewer/history-view.test.tsx +6 -2
  184. package/src/media/utils.test.ts +5 -0
  185. package/src/media/utils.ts +25 -16
  186. package/src/react/hooks.tsx +2 -2
  187. package/src/react/index.ts +2 -2
  188. package/src/react/media/image.tsx +10 -2
  189. package/src/react/tests/useAcceptInvite.test.ts +3 -1
  190. package/src/react-core/hooks.ts +226 -304
  191. package/src/react-core/subscription-provider.tsx +14 -7
  192. package/src/react-core/tests/createCoValueSubscriptionContext.test.tsx +233 -0
  193. package/src/react-core/tests/subscription.bench.tsx +32 -15
  194. package/src/react-core/tests/{useAccountWithSelector.test.ts → useAccount.selector.test.ts} +72 -24
  195. package/src/react-core/tests/useAccount.test.ts +92 -106
  196. package/src/react-core/tests/{useCoStateWithSelector.test.ts → useCoState.selector.test.ts} +23 -8
  197. package/src/react-core/tests/useCoState.test.ts +173 -49
  198. package/src/react-core/tests/useInboxSender.test.ts +3 -1
  199. package/src/react-core/tests/usePassPhraseAuth.test.ts +11 -82
  200. package/src/react-core/tests/useSubscriptionSelector.test.ts +48 -14
  201. package/src/react-native-core/hooks.tsx +2 -2
  202. package/src/react-native-core/media/image.tsx +3 -1
  203. package/src/svelte/jazz.class.svelte.ts +103 -27
  204. package/src/svelte/media/image.svelte +6 -5
  205. package/src/svelte/tests/AccountCoState.svelte.test-d.ts +23 -0
  206. package/src/svelte/tests/CoState.svelte.test-d.ts +20 -0
  207. package/src/svelte/tests/CoState.svelte.test.ts +57 -0
  208. package/src/svelte/tests/TestCoStateWrapper.svelte +23 -0
  209. package/src/tools/coValues/CoValueBase.ts +12 -0
  210. package/src/tools/coValues/account.ts +17 -12
  211. package/src/tools/coValues/coFeed.ts +38 -15
  212. package/src/tools/coValues/coList.ts +16 -11
  213. package/src/tools/coValues/coMap.ts +15 -14
  214. package/src/tools/coValues/coPlainText.ts +6 -3
  215. package/src/tools/coValues/coVector.ts +6 -5
  216. package/src/tools/coValues/deepLoading.ts +98 -51
  217. package/src/tools/coValues/group.ts +3 -2
  218. package/src/tools/coValues/inbox.ts +11 -10
  219. package/src/tools/coValues/interfaces.ts +49 -27
  220. package/src/tools/coValues/request.ts +8 -6
  221. package/src/tools/coValues/schemaUnion.ts +2 -1
  222. package/src/tools/exports.ts +11 -1
  223. package/src/tools/implementation/refs.ts +19 -13
  224. package/src/tools/implementation/schema.ts +5 -4
  225. package/src/tools/implementation/schemaUtils.ts +15 -0
  226. package/src/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.ts +4 -4
  227. package/src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts +131 -95
  228. package/src/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.ts +19 -9
  229. package/src/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.ts +73 -22
  230. package/src/tools/implementation/zodSchema/schemaTypes/CoListSchema.ts +86 -28
  231. package/src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts +204 -148
  232. package/src/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.ts +1 -0
  233. package/src/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.ts +71 -27
  234. package/src/tools/implementation/zodSchema/schemaTypes/CoValueSchema.ts +7 -0
  235. package/src/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.ts +8 -6
  236. package/src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts +4 -1
  237. package/src/tools/implementation/zodSchema/schemaTypes/GroupSchema.ts +4 -1
  238. package/src/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.ts +4 -1
  239. package/src/tools/implementation/zodSchema/schemaTypes/RichTextSchema.ts +4 -1
  240. package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.ts +3 -0
  241. package/src/tools/implementation/zodSchema/typeConverters/{InstanceOfSchemaCoValuesNullable.ts → InstanceOfSchemaCoValuesMaybeLoaded.ts} +47 -39
  242. package/src/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.ts +4 -0
  243. package/src/tools/implementation/zodSchema/typeConverters/{InstanceOrPrimitiveOfSchemaCoValuesNullable.ts → InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.ts} +7 -3
  244. package/src/tools/implementation/zodSchema/zodSchema.ts +15 -7
  245. package/src/tools/internal.ts +3 -3
  246. package/src/tools/lib/utils.test.ts +56 -0
  247. package/src/tools/lib/utils.ts +32 -0
  248. package/src/tools/subscribe/CoValueCoreSubscription.ts +13 -8
  249. package/src/tools/subscribe/JazzError.ts +8 -2
  250. package/src/tools/subscribe/SubscriptionScope.ts +55 -44
  251. package/src/tools/subscribe/index.ts +12 -4
  252. package/src/tools/subscribe/types.ts +36 -2
  253. package/src/tools/subscribe/utils.ts +2 -1
  254. package/src/tools/testing.ts +5 -0
  255. package/src/tools/tests/CoValueCoreSubscription.test.ts +10 -4
  256. package/src/tools/tests/ContextManager.test.ts +12 -5
  257. package/src/tools/tests/account.test.ts +22 -12
  258. package/src/tools/tests/coDiscriminatedUnion.test.ts +8 -4
  259. package/src/tools/tests/coFeed.branch.test.ts +48 -32
  260. package/src/tools/tests/coFeed.test-d.ts +17 -10
  261. package/src/tools/tests/coFeed.test.ts +52 -30
  262. package/src/tools/tests/coList.branch.test.ts +21 -21
  263. package/src/tools/tests/coList.test-d.ts +39 -23
  264. package/src/tools/tests/coList.test.ts +51 -25
  265. package/src/tools/tests/coList.unique.test.ts +34 -29
  266. package/src/tools/tests/coMap.branch.test.ts +20 -21
  267. package/src/tools/tests/coMap.record.test-d.ts +28 -26
  268. package/src/tools/tests/coMap.record.test.ts +30 -20
  269. package/src/tools/tests/coMap.test-d.ts +31 -29
  270. package/src/tools/tests/coMap.test.ts +67 -40
  271. package/src/tools/tests/coMap.unique.test.ts +25 -24
  272. package/src/tools/tests/coVector.test.ts +29 -15
  273. package/src/tools/tests/createContext.test.ts +5 -3
  274. package/src/tools/tests/deepLoading.test.ts +314 -117
  275. package/src/tools/tests/exportImport.test.ts +16 -15
  276. package/src/tools/tests/groupsAndAccounts.test.ts +39 -16
  277. package/src/tools/tests/inbox.test.ts +3 -1
  278. package/src/tools/tests/load.test.ts +29 -23
  279. package/src/tools/tests/patterns/quest.test.ts +3 -2
  280. package/src/tools/tests/patterns/requestToJoin.test.ts +17 -17
  281. package/src/tools/tests/request.test.ts +12 -2
  282. package/src/tools/tests/schema.resolved.test.ts +723 -0
  283. package/src/tools/tests/schemaUnion.test.ts +7 -3
  284. package/src/tools/tests/subscribe.test.ts +39 -21
  285. package/src/tools/tests/testing.test.ts +3 -2
  286. package/src/tools/tests/utils.ts +15 -2
  287. package/dist/chunk-OSQ7S47Q.js.map +0 -1
  288. package/dist/media/chunk-K6GCHLQU.js.map +0 -1
  289. package/dist/react-core/tests/useAccountWithSelector.test.d.ts +0 -2
  290. package/dist/react-core/tests/useAccountWithSelector.test.d.ts.map +0 -1
  291. package/dist/react-core/tests/useCoStateWithSelector.test.d.ts +0 -2
  292. package/dist/react-core/tests/useCoStateWithSelector.test.d.ts.map +0 -1
  293. package/dist/tools/implementation/errors.d.ts +0 -2
  294. package/dist/tools/implementation/errors.d.ts.map +0 -1
  295. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts +0 -19
  296. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts.map +0 -1
  297. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts +0 -5
  298. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts.map +0 -1
  299. package/dist/tools/lib/id.d.ts +0 -2
  300. package/dist/tools/lib/id.d.ts.map +0 -1
  301. package/src/tools/implementation/errors.ts +0 -1
  302. package/src/tools/lib/id.ts +0 -3
@@ -14,9 +14,11 @@ import React, {
14
14
  } from "react";
15
15
  import {
16
16
  Account,
17
+ CoValueLoadingState,
17
18
  InboxSender,
18
19
  SubscriptionScope,
19
- coValueClassFromCoValueClassOrSchema
20
+ coValueClassFromCoValueClassOrSchema,
21
+ createUnloadedCoValue
20
22
  } from "jazz-tools";
21
23
 
22
24
  // src/react-core/utils.ts
@@ -88,10 +90,11 @@ function useCoValueSubscription(Schema, id, options) {
88
90
  Schema
89
91
  };
90
92
  }
93
+ const resolve = getResolveQuery(Schema, options?.resolve);
91
94
  const node = contextManager.getCurrentValue().node;
92
95
  const subscription2 = new SubscriptionScope(
93
96
  node,
94
- options?.resolve ?? true,
97
+ resolve,
95
98
  id,
96
99
  {
97
100
  ref: coValueClassFromCoValueClassOrSchema(Schema),
@@ -125,27 +128,31 @@ function useCoValueSubscription(Schema, id, options) {
125
128
  }, [Schema, id, contextManager, branchName, branchOwnerId]);
126
129
  return subscription.subscription;
127
130
  }
128
- function useCoState(Schema, id, options) {
129
- const subscription = useCoValueSubscription(Schema, id, options);
130
- const value = React.useSyncExternalStore(
131
- React.useCallback(
132
- (callback) => {
133
- if (!subscription) {
134
- return () => {
135
- };
136
- }
137
- return subscription.subscribe(callback);
138
- },
139
- [subscription]
140
- ),
141
- () => subscription ? subscription.getCurrentValue() : null,
142
- () => subscription ? subscription.getCurrentValue() : null
143
- );
131
+ function getSubscriptionValue(subscription) {
132
+ if (!subscription) {
133
+ return createUnloadedCoValue("", CoValueLoadingState.UNAVAILABLE);
134
+ }
135
+ const value = subscription.getCurrentValue();
136
+ if (typeof value === "string") {
137
+ return createUnloadedCoValue(subscription.id, value);
138
+ }
144
139
  return value;
145
140
  }
146
- function useCoStateWithSelector(Schema, id, options) {
141
+ function useGetCurrentValue(subscription) {
142
+ const previousValue = useRef(void 0);
143
+ return useCallback(() => {
144
+ const currentValue = getSubscriptionValue(subscription);
145
+ if (previousValue.current !== void 0 && previousValue.current.$jazz.id === currentValue.$jazz.id && !previousValue.current.$isLoaded && !currentValue.$isLoaded && previousValue.current.$jazz.loadingState === currentValue.$jazz.loadingState) {
146
+ return previousValue.current;
147
+ }
148
+ previousValue.current = currentValue;
149
+ return currentValue;
150
+ }, [subscription]);
151
+ }
152
+ function useCoState(Schema, id, options) {
147
153
  const subscription = useCoValueSubscription(Schema, id, options);
148
- return useSyncExternalStoreWithSelector(
154
+ const getCurrentValue = useGetCurrentValue(subscription);
155
+ const value = useSyncExternalStoreWithSelector(
149
156
  React.useCallback(
150
157
  (callback) => {
151
158
  if (!subscription) {
@@ -156,13 +163,15 @@ function useCoStateWithSelector(Schema, id, options) {
156
163
  },
157
164
  [subscription]
158
165
  ),
159
- () => subscription ? subscription.getCurrentValue() : null,
160
- () => subscription ? subscription.getCurrentValue() : null,
161
- options.select,
162
- options.equalityFn ?? Object.is
166
+ getCurrentValue,
167
+ getCurrentValue,
168
+ options?.select ?? ((value2) => value2),
169
+ options?.equalityFn ?? Object.is
163
170
  );
171
+ return value;
164
172
  }
165
173
  function useSubscriptionSelector(subscription, options) {
174
+ const getCurrentValue = useGetCurrentValue(subscription);
166
175
  return useSyncExternalStoreWithSelector(
167
176
  React.useCallback(
168
177
  (callback) => {
@@ -174,8 +183,8 @@ function useSubscriptionSelector(subscription, options) {
174
183
  },
175
184
  [subscription]
176
185
  ),
177
- () => subscription ? subscription.getCurrentValue() : null,
178
- () => subscription ? subscription.getCurrentValue() : null,
186
+ getCurrentValue,
187
+ getCurrentValue,
179
188
  options?.select ?? ((value) => value),
180
189
  options?.equalityFn ?? Object.is
181
190
  );
@@ -191,7 +200,7 @@ function useAccountSubscription(Schema, options) {
191
200
  agent
192
201
  };
193
202
  }
194
- const resolve = options?.resolve ?? true;
203
+ const resolve = getResolveQuery(Schema, options?.resolve);
195
204
  const node = contextManager.getCurrentValue().node;
196
205
  const subscription2 = new SubscriptionScope(
197
206
  node,
@@ -229,31 +238,8 @@ function useAccountSubscription(Schema, options) {
229
238
  return subscription.subscription;
230
239
  }
231
240
  function useAccount(AccountSchema = Account, options) {
232
- const contextManager = useJazzContextManager();
233
- const subscription = useAccountSubscription(AccountSchema, options);
234
- const agent = getCurrentAccountFromContextManager(contextManager);
235
- const value = React.useSyncExternalStore(
236
- React.useCallback(
237
- (callback) => {
238
- if (!subscription) {
239
- return () => {
240
- };
241
- }
242
- return subscription.subscribe(callback);
243
- },
244
- [subscription]
245
- ),
246
- () => subscription ? subscription.getCurrentValue() : null,
247
- () => subscription ? subscription.getCurrentValue() : null
248
- );
249
- return {
250
- me: value,
251
- agent,
252
- logOut: contextManager.logOut
253
- };
254
- }
255
- function useAccountWithSelector(AccountSchema = Account, options) {
256
241
  const subscription = useAccountSubscription(AccountSchema, options);
242
+ const getCurrentValue = useGetCurrentValue(subscription);
257
243
  return useSyncExternalStoreWithSelector(
258
244
  React.useCallback(
259
245
  (callback) => {
@@ -265,16 +251,21 @@ function useAccountWithSelector(AccountSchema = Account, options) {
265
251
  },
266
252
  [subscription]
267
253
  ),
268
- () => subscription ? subscription.getCurrentValue() : null,
269
- () => subscription ? subscription.getCurrentValue() : null,
270
- options.select,
271
- options.equalityFn ?? Object.is
254
+ getCurrentValue,
255
+ getCurrentValue,
256
+ options?.select ?? ((value) => value),
257
+ options?.equalityFn ?? Object.is
272
258
  );
273
259
  }
274
260
  function useLogOut() {
275
261
  const contextManager = useJazzContextManager();
276
262
  return contextManager.logOut;
277
263
  }
264
+ function useAgent() {
265
+ const contextManager = useJazzContextManager();
266
+ const agent = getCurrentAccountFromContextManager(contextManager);
267
+ return agent;
268
+ }
278
269
  function experimental_useInboxSender(inboxOwnerID) {
279
270
  const context = useJazzContext();
280
271
  if (!("me" in context)) {
@@ -317,9 +308,21 @@ function useSyncConnectionStatus() {
317
308
  );
318
309
  return connected;
319
310
  }
311
+ function getResolveQuery(Schema, resolveQuery) {
312
+ if (resolveQuery) {
313
+ return resolveQuery;
314
+ }
315
+ if ("resolveQuery" in Schema) {
316
+ return Schema.resolveQuery;
317
+ }
318
+ return true;
319
+ }
320
320
 
321
321
  // src/react-core/subscription-provider.tsx
322
322
  import React2 from "react";
323
+ import {
324
+ CoValueLoadingState as CoValueLoadingState2
325
+ } from "jazz-tools";
323
326
  import { jsx } from "react/jsx-runtime";
324
327
  function createCoValueSubscriptionContext(schema, resolve) {
325
328
  const Context = React2.createContext(null);
@@ -336,12 +339,12 @@ function createCoValueSubscriptionContext(schema, resolve) {
336
339
  resolve
337
340
  });
338
341
  const loadState = useSubscriptionSelector(subscription, {
339
- select: (value) => !value ? value : true
342
+ select: (value) => value.$jazz.loadingState
340
343
  });
341
- if (loadState === void 0) {
344
+ if (loadState === CoValueLoadingState2.LOADING) {
342
345
  return loadingFallback ?? null;
343
346
  }
344
- if (loadState === null) {
347
+ if (loadState === CoValueLoadingState2.UNAUTHORIZED || loadState === CoValueLoadingState2.UNAVAILABLE) {
345
348
  return unavailableFallback ?? null;
346
349
  }
347
350
  return /* @__PURE__ */ jsx(Context.Provider, { value: subscription, children });
@@ -374,12 +377,12 @@ function createAccountSubscriptionContext(schema, resolve) {
374
377
  resolve
375
378
  });
376
379
  const loadState = useSubscriptionSelector(subscription, {
377
- select: (value) => !value ? value : true
380
+ select: (value) => value.$jazz.loadingState
378
381
  });
379
- if (loadState === void 0) {
382
+ if (loadState === CoValueLoadingState2.LOADING) {
380
383
  return loadingFallback ?? null;
381
384
  }
382
- if (loadState === null) {
385
+ if (loadState === CoValueLoadingState2.UNAUTHORIZED || loadState === CoValueLoadingState2.UNAVAILABLE) {
383
386
  return unavailableFallback ?? null;
384
387
  }
385
388
  return /* @__PURE__ */ jsx(Context.Provider, { value: subscription, children });
@@ -475,10 +478,9 @@ export {
475
478
  experimental_useInboxSender,
476
479
  useAccount,
477
480
  useAccountSubscription,
478
- useAccountWithSelector,
481
+ useAgent,
479
482
  useAuthSecretStorage,
480
483
  useCoState,
481
- useCoStateWithSelector,
482
484
  useCoValueSubscription,
483
485
  useDemoAuth,
484
486
  useIsAuthenticated,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react-core/hooks.ts","../../src/react-core/utils.ts","../../src/react-core/subscription-provider.tsx","../../src/react-core/auth/DemoAuth.tsx","../../src/react-core/auth/PassphraseAuth.tsx"],"sourcesContent":["import { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector\";\nimport React, {\n useCallback,\n useContext,\n useRef,\n useSyncExternalStore,\n} from \"react\";\n\nimport {\n Account,\n AccountClass,\n AnonymousJazzAgent,\n AnyAccountSchema,\n CoValue,\n CoValueClassOrSchema,\n InboxSender,\n InstanceOfSchema,\n JazzContextManager,\n JazzContextType,\n Loaded,\n ResolveQuery,\n ResolveQueryStrict,\n SubscriptionScope,\n coValueClassFromCoValueClassOrSchema,\n type BranchDefinition,\n} from \"jazz-tools\";\nimport { JazzContext, JazzContextManagerContext } from \"./provider.js\";\nimport { getCurrentAccountFromContextManager } from \"./utils.js\";\nimport { CoValueSubscription } from \"./types.js\";\n\nexport function useJazzContext<Acc extends Account>() {\n const value = useContext(JazzContext) as JazzContextType<Acc>;\n\n if (!value) {\n throw new Error(\n \"You need to set up a JazzProvider on top of your app to use this hook.\",\n );\n }\n\n return value;\n}\n\nexport function useJazzContextManager<Acc extends Account>() {\n const value = useContext(JazzContextManagerContext) as JazzContextManager<\n Acc,\n {}\n >;\n\n if (!value) {\n throw new Error(\n \"You need to set up a JazzProvider on top of your app to use this hook.\",\n );\n }\n\n return value;\n}\n\nexport function useAuthSecretStorage() {\n const value = useContext(JazzContextManagerContext);\n\n if (!value) {\n throw new Error(\n \"You need to set up a JazzProvider on top of your app to use this useAuthSecretStorage.\",\n );\n }\n\n return value.getAuthSecretStorage();\n}\n\nexport function useIsAuthenticated() {\n const authSecretStorage = useAuthSecretStorage();\n\n return useSyncExternalStore(\n useCallback(\n (callback) => {\n return authSecretStorage.onUpdate(callback);\n },\n [authSecretStorage],\n ),\n () => authSecretStorage.isAuthenticated,\n () => authSecretStorage.isAuthenticated,\n );\n}\n\nexport function useCoValueSubscription<\n S extends CoValueClassOrSchema,\n const R extends ResolveQuery<S>,\n>(\n Schema: S,\n id: string | undefined | null,\n options?: {\n resolve?: ResolveQueryStrict<S, R>;\n unstable_branch?: BranchDefinition;\n },\n) {\n const contextManager = useJazzContextManager();\n\n const createSubscription = () => {\n if (!id) {\n return {\n subscription: null,\n contextManager,\n id,\n Schema,\n };\n }\n\n if (options?.unstable_branch?.owner === null) {\n return {\n subscription: null,\n contextManager,\n id,\n Schema,\n };\n }\n\n const node = contextManager.getCurrentValue()!.node;\n const subscription = new SubscriptionScope<any>(\n node,\n options?.resolve ?? true,\n id,\n {\n ref: coValueClassFromCoValueClassOrSchema(Schema),\n optional: true,\n },\n false,\n false,\n options?.unstable_branch,\n );\n\n return {\n subscription,\n contextManager,\n id,\n Schema,\n branchName: options?.unstable_branch?.name,\n branchOwnerId: options?.unstable_branch?.owner?.$jazz.id,\n };\n };\n\n const [subscription, setSubscription] = React.useState(createSubscription);\n\n const branchName = options?.unstable_branch?.name;\n const branchOwnerId = options?.unstable_branch?.owner?.$jazz.id;\n\n React.useLayoutEffect(() => {\n if (\n subscription.contextManager !== contextManager ||\n subscription.id !== id ||\n subscription.Schema !== Schema ||\n subscription.branchName !== branchName ||\n subscription.branchOwnerId !== branchOwnerId\n ) {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n }\n\n return contextManager.subscribe(() => {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n });\n }, [Schema, id, contextManager, branchName, branchOwnerId]);\n\n return subscription.subscription as CoValueSubscription<S, R>;\n}\n\n/**\n * React hook for subscribing to CoValues and handling loading states.\n *\n * This hook provides a convenient way to subscribe to CoValues and automatically\n * handles the subscription lifecycle (subscribe on mount, unsubscribe on unmount).\n * It also supports deep loading of nested CoValues through resolve queries.\n *\n * @returns The loaded CoValue, or `undefined` if loading, or `null` if not found/not accessible\n *\n * @example\n * ```tsx\n * // Deep loading with resolve queries\n * const Project = co.map({\n * name: z.string(),\n * tasks: co.list(Task),\n * owner: TeamMember,\n * });\n *\n * function ProjectView({ projectId }: { projectId: string }) {\n * const project = useCoState(Project, projectId, {\n * resolve: {\n * tasks: { $each: true },\n * owner: true,\n * },\n * });\n *\n * if (!project) {\n * return project === null\n * ? \"Project not found or not accessible\"\n * : \"Loading project...\";\n * }\n *\n * return (\n * <div>\n * <h1>{project.name}</h1>\n * <p>Owner: {project.owner.name}</p>\n * <ul>\n * {project.tasks.map((task) => (\n * <li key={task.id}>{task.title}</li>\n * ))}\n * </ul>\n * </div>\n * );\n * }\n * ```\n *\n * @example\n * ```tsx\n * // Using with optional references and error handling\n * const Task = co.map({\n * title: z.string(),\n * assignee: co.optional(TeamMember),\n * subtasks: co.list(Task),\n * });\n *\n * function TaskDetail({ taskId }: { taskId: string }) {\n * const task = useCoState(Task, taskId, {\n * resolve: {\n * assignee: true,\n * subtasks: { $each: { $onError: null } },\n * },\n * });\n *\n * if (!task) {\n * return task === null\n * ? \"Task not found or not accessible\"\n * : \"Loading task...\";\n * }\n *\n * return (\n * <div>\n * <h2>{task.title}</h2>\n * {task.assignee && <p>Assigned to: {task.assignee.name}</p>}\n * <ul>\n * {task.subtasks.map((subtask, index) => (\n * subtask ? <li key={subtask.id}>{subtask.title}</li> : <li key={index}>Inaccessible subtask</li>\n * ))}\n * </ul>\n * </div>\n * );\n * }\n * ```\n *\n * For more examples, see the [subscription and deep loading](https://jazz.tools/docs/react/using-covalues/subscription-and-loading) documentation.\n */\nexport function useCoState<\n S extends CoValueClassOrSchema,\n const R extends ResolveQuery<S> = true,\n>(\n /** The CoValue schema or class constructor */\n Schema: S,\n /** The ID of the CoValue to subscribe to. If `undefined`, returns `null` */\n id: string | undefined,\n /** Optional configuration for the subscription */\n options?: {\n /** Resolve query to specify which nested CoValues to load */\n resolve?: ResolveQueryStrict<S, R>;\n /**\n * Create or load a branch for isolated editing.\n *\n * Branching lets you take a snapshot of the current state and start modifying it without affecting the canonical/shared version.\n * It's a fork of your data graph: the same schema, but with diverging values.\n *\n * The checkout of the branch is applied on all the resolved values.\n *\n * @param name - A unique name for the branch. This identifies the branch\n * and can be used to switch between different branches of the same CoValue.\n * @param owner - The owner of the branch. Determines who can access and modify\n * the branch. If not provided, the branch is owned by the current user.\n *\n * For more info see the [branching](https://jazz.tools/docs/react/using-covalues/version-control) documentation.\n */\n unstable_branch?: BranchDefinition;\n },\n): Loaded<S, R> | undefined | null {\n const subscription = useCoValueSubscription(Schema, id, options);\n\n const value = React.useSyncExternalStore<Loaded<S, R> | undefined | null>(\n React.useCallback(\n (callback) => {\n if (!subscription) {\n return () => {};\n }\n\n return subscription.subscribe(callback);\n },\n [subscription],\n ),\n () => (subscription ? subscription.getCurrentValue() : null),\n () => (subscription ? subscription.getCurrentValue() : null),\n );\n\n return value;\n}\n\n/**\n * React hook for subscribing to CoValues with selective data extraction and custom equality checking.\n *\n * This hook extends `useCoState` by allowing you to select only specific parts of the CoValue data\n * through a selector function, which helps reduce unnecessary re-renders by narrowing down the\n * returned data. Additionally, you can provide a custom equality function to further optimize\n * performance by controlling when the component should re-render based on the selected data.\n *\n * The hook automatically handles the subscription lifecycle and supports deep loading of nested\n * CoValues through resolve queries, just like `useCoState`.\n *\n * @returns The result of the selector function applied to the loaded CoValue data\n *\n * @example\n * ```tsx\n * // Select only specific fields to reduce re-renders\n * const Project = co.map({\n * name: z.string(),\n * description: z.string(),\n * tasks: co.list(Task),\n * lastModified: z.date(),\n * });\n *\n * function ProjectTitle({ projectId }: { projectId: string }) {\n * // Only re-render when the project name changes, not other fields\n * const projectName = useCoStateWithSelector(\n * Project,\n * projectId,\n * {\n * select: (project) => project?.name ?? \"Loading...\",\n * }\n * );\n *\n * return <h1>{projectName}</h1>;\n * }\n * ```\n *\n * @example\n * ```tsx\n * // Use custom equality function for complex data structures\n * const TaskList = co.list(Task);\n *\n * function TaskCount({ listId }: { listId: string }) {\n * const taskStats = useCoStateWithSelector(\n * TaskList,\n * listId,\n * {\n * resolve: { $each: true },\n * select: (tasks) => {\n * if (!tasks) return { total: 0, completed: 0 };\n * return {\n * total: tasks.length,\n * completed: tasks.filter(task => task.completed).length,\n * };\n * },\n * // Custom equality to prevent re-renders when stats haven't changed\n * equalityFn: (a, b) => a.total === b.total && a.completed === b.completed,\n * }\n * );\n *\n * return (\n * <div>\n * {taskStats.completed} of {taskStats.total} tasks completed\n * </div>\n * );\n * }\n * ```\n *\n * @example\n * ```tsx\n * // Combine with deep loading and complex selectors\n * const Team = co.map({\n * name: z.string(),\n * members: co.list(TeamMember),\n * projects: co.list(Project),\n * });\n *\n * function TeamSummary({ teamId }: { teamId: string }) {\n * const summary = useCoStateWithSelector(\n * Team,\n * teamId,\n * {\n * resolve: {\n * members: { $each: true },\n * projects: { $each: { tasks: { $each: true } } },\n * },\n * select: (team) => {\n * if (!team) return null;\n *\n * const totalTasks = team.projects.reduce(\n * (sum, project) => sum + project.tasks.length,\n * 0\n * );\n *\n * return {\n * teamName: team.name,\n * memberCount: team.members.length,\n * projectCount: team.projects.length,\n * totalTasks,\n * };\n * },\n * }\n * );\n *\n * if (!summary) return <div>Loading team summary...</div>;\n *\n * return (\n * <div>\n * <h2>{summary.teamName}</h2>\n * <p>{summary.memberCount} members</p>\n * <p>{summary.projectCount} projects</p>\n * <p>{summary.totalTasks} total tasks</p>\n * </div>\n * );\n * }\n * ```\n *\n * For more examples, see the [subscription and deep loading](https://jazz.tools/docs/react/using-covalues/subscription-and-loading) documentation.\n */\nexport function useCoStateWithSelector<\n S extends CoValueClassOrSchema,\n TSelectorReturn,\n const R extends ResolveQuery<S> = true,\n>(\n /** The CoValue schema or class constructor */\n Schema: S,\n /** The ID of the CoValue to subscribe to. If `undefined`, returns the result of selector called with `null` */\n id: string | undefined,\n /** Optional configuration for the subscription */\n options: {\n /** Resolve query to specify which nested CoValues to load */\n resolve?: ResolveQueryStrict<S, R>;\n /** Select which value to return */\n select: (value: Loaded<S, R> | undefined | null) => TSelectorReturn;\n /** Equality function to determine if the selected value has changed, defaults to `Object.is` */\n equalityFn?: (a: TSelectorReturn, b: TSelectorReturn) => boolean;\n /**\n * Create or load a branch for isolated editing.\n *\n * Branching lets you take a snapshot of the current state and start modifying it without affecting the canonical/shared version.\n * It's a fork of your data graph: the same schema, but with diverging values.\n *\n * The checkout of the branch is applied on all the resolved values.\n *\n * @param name - A unique name for the branch. This identifies the branch\n * and can be used to switch between different branches of the same CoValue.\n * @param owner - The owner of the branch. Determines who can access and modify\n * the branch. If not provided, the branch is owned by the current user.\n *\n * For more info see the [branching](https://jazz.tools/docs/react/using-covalues/version-control) documentation.\n */\n unstable_branch?: BranchDefinition;\n },\n): TSelectorReturn {\n const subscription = useCoValueSubscription(Schema, id, options);\n\n return useSyncExternalStoreWithSelector<\n Loaded<S, R> | undefined | null,\n TSelectorReturn\n >(\n React.useCallback(\n (callback) => {\n if (!subscription) {\n return () => {};\n }\n\n return subscription.subscribe(callback);\n },\n [subscription],\n ),\n () => (subscription ? subscription.getCurrentValue() : null),\n () => (subscription ? subscription.getCurrentValue() : null),\n options.select,\n options.equalityFn ?? Object.is,\n );\n}\n\nexport function useSubscriptionSelector<\n S extends CoValueClassOrSchema,\n R extends ResolveQuery<S>,\n TSelectorReturn = Loaded<S, R> | undefined | null,\n>(\n subscription: CoValueSubscription<S, R>,\n options?: {\n select?: (value: Loaded<S, R> | undefined | null) => TSelectorReturn;\n equalityFn?: (a: TSelectorReturn, b: TSelectorReturn) => boolean;\n },\n) {\n return useSyncExternalStoreWithSelector<\n Loaded<S, R> | undefined | null,\n TSelectorReturn\n >(\n React.useCallback(\n (callback) => {\n if (!subscription) {\n return () => {};\n }\n\n return subscription.subscribe(callback);\n },\n [subscription],\n ),\n () => (subscription ? subscription.getCurrentValue() : null),\n () => (subscription ? subscription.getCurrentValue() : null),\n options?.select ?? ((value) => value as TSelectorReturn),\n options?.equalityFn ?? Object.is,\n );\n}\n\nexport function useAccountSubscription<\n S extends AccountClass<Account> | AnyAccountSchema,\n const R extends ResolveQuery<S>,\n>(\n Schema: S,\n options?: {\n resolve?: ResolveQueryStrict<S, R>;\n unstable_branch?: BranchDefinition;\n },\n) {\n const contextManager = useJazzContextManager();\n\n const createSubscription = () => {\n const agent = getCurrentAccountFromContextManager(contextManager);\n\n if (agent.$type$ === \"Anonymous\") {\n return {\n subscription: null,\n contextManager,\n agent,\n };\n }\n\n // We don't need type validation here, since it's mostly to help users on public API\n const resolve: any = options?.resolve ?? true;\n\n const node = contextManager.getCurrentValue()!.node;\n const subscription = new SubscriptionScope<any>(\n node,\n resolve,\n agent.$jazz.id,\n {\n ref: coValueClassFromCoValueClassOrSchema(Schema),\n optional: true,\n },\n false,\n false,\n options?.unstable_branch,\n );\n\n return {\n subscription,\n contextManager,\n Schema,\n branchName: options?.unstable_branch?.name,\n branchOwnerId: options?.unstable_branch?.owner?.$jazz.id,\n };\n };\n\n const [subscription, setSubscription] = React.useState(createSubscription);\n\n const branchName = options?.unstable_branch?.name;\n const branchOwnerId = options?.unstable_branch?.owner?.$jazz.id;\n\n React.useLayoutEffect(() => {\n if (\n subscription.contextManager !== contextManager ||\n subscription.Schema !== Schema ||\n subscription.branchName !== options?.unstable_branch?.name ||\n subscription.branchOwnerId !== options?.unstable_branch?.owner?.$jazz.id\n ) {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n }\n\n return contextManager.subscribe(() => {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n });\n }, [Schema, contextManager, branchName, branchOwnerId]);\n\n return subscription.subscription as CoValueSubscription<S, R>;\n}\n\n/**\n * React hook for accessing the current user's account and authentication state.\n * \n * This hook provides access to the current user's account profile and root data,\n * along with authentication utilities. It automatically handles subscription to\n * the user's account data and provides a logout function.\n * \n * @returns An object containing:\n * - `me`: The loaded account data, or `undefined` if loading, or `null` if not authenticated\n * - `agent`: The current agent (anonymous or authenticated user). Can be used as `loadAs` parameter for load and subscribe methods.\n * - `logOut`: Function to log out the current user\n\n * @example\n * ```tsx\n * // Deep loading with resolve queries\n * function ProjectListWithDetails() {\n * const { me } = useAccount(MyAppAccount, {\n * resolve: {\n * profile: true,\n * root: {\n * myProjects: {\n * $each: {\n * tasks: true,\n * },\n * },\n * },\n * },\n * });\n * \n * if (!me) {\n * return me === null\n * ? <div>Failed to load your projects</div>\n * : <div>Loading...</div>;\n * }\n * \n * return (\n * <div>\n * <h1>{me.profile.name}'s projects</h1>\n * <ul>\n * {me.root.myProjects.map((project) => (\n * <li key={project.id}>\n * {project.name} ({project.tasks.length} tasks)\n * </li>\n * ))}\n * </ul>\n * </div>\n * );\n * }\n * ```\n * \n */\nexport function useAccount<\n A extends AccountClass<Account> | AnyAccountSchema,\n R extends ResolveQuery<A> = true,\n>(\n /** The account schema to use. Defaults to the base Account schema */\n AccountSchema: A = Account as unknown as A,\n /** Optional configuration for the subscription */\n options?: {\n /** Resolve query to specify which nested CoValues to load from the account */\n resolve?: ResolveQueryStrict<A, R>;\n /**\n * Create or load a branch for isolated editing.\n *\n * Branching lets you take a snapshot of the current state and start modifying it without affecting the canonical/shared version.\n * It's a fork of your data graph: the same schema, but with diverging values.\n *\n * The checkout of the branch is applied on all the resolved values.\n *\n * @param name - A unique name for the branch. This identifies the branch\n * and can be used to switch between different branches of the same CoValue.\n * @param owner - The owner of the branch. Determines who can access and modify\n * the branch. If not provided, the branch is owned by the current user.\n *\n * For more info see the [branching](https://jazz.tools/docs/react/using-covalues/version-control) documentation.\n */\n unstable_branch?: BranchDefinition;\n },\n): {\n me: Loaded<A, R> | undefined | null;\n agent: AnonymousJazzAgent | Loaded<A, true>;\n logOut: () => void;\n} {\n const contextManager = useJazzContextManager<InstanceOfSchema<A>>();\n const subscription = useAccountSubscription(AccountSchema, options);\n\n const agent = getCurrentAccountFromContextManager(contextManager);\n\n const value = React.useSyncExternalStore<Loaded<A, R> | undefined | null>(\n React.useCallback(\n (callback) => {\n if (!subscription) {\n return () => {};\n }\n\n return subscription.subscribe(callback);\n },\n [subscription],\n ),\n () => (subscription ? subscription.getCurrentValue() : null),\n () => (subscription ? subscription.getCurrentValue() : null),\n );\n\n return {\n me: value,\n agent,\n logOut: contextManager.logOut,\n };\n}\n\n/**\n * React hook for accessing the current user's account with selective data extraction and custom equality checking.\n *\n * This hook extends `useAccount` by allowing you to select only specific parts of the account data\n * through a selector function, which helps reduce unnecessary re-renders by narrowing down the\n * returned data. Additionally, you can provide a custom equality function to further optimize\n * performance by controlling when the component should re-render based on the selected data.\n *\n * The hook automatically handles the subscription lifecycle and supports deep loading of nested\n * CoValues through resolve queries, just like `useAccount`.\n *\n * @returns The result of the selector function applied to the loaded account data\n *\n * @example\n * ```tsx\n * // Select only specific fields to reduce re-renders\n * const MyAppAccount = co.account({\n * profile: co.profile(),\n * root: co.map({\n * name: z.string(),\n * email: z.string(),\n * lastLogin: z.date(),\n * }),\n * });\n *\n * function UserProfile({ accountId }: { accountId: string }) {\n * // Only re-render when the profile name changes, not other fields\n * const profileName = useAccountWithSelector(\n * MyAppAccount,\n * {\n * resolve: {\n * profile: true,\n * root: true,\n * },\n * select: (account) => account?.profile?.name ?? \"Loading...\",\n * }\n * );\n *\n * return <h1>{profileName}</h1>;\n * }\n * ```\n *\n * For more examples, see the [subscription and deep loading](https://jazz.tools/docs/react/using-covalues/subscription-and-loading) documentation.\n */\nexport function useAccountWithSelector<\n A extends AccountClass<Account> | AnyAccountSchema,\n TSelectorReturn,\n R extends ResolveQuery<A> = true,\n>(\n /** The account schema to use. Defaults to the base Account schema */\n AccountSchema: A = Account as unknown as A,\n /** Configuration for the subscription and selection */\n options: {\n /** Resolve query to specify which nested CoValues to load from the account */\n resolve?: ResolveQueryStrict<A, R>;\n /** Select which value to return from the account data */\n select: (account: Loaded<A, R> | undefined | null) => TSelectorReturn;\n /** Equality function to determine if the selected value has changed, defaults to `Object.is` */\n equalityFn?: (a: TSelectorReturn, b: TSelectorReturn) => boolean;\n /**\n * Create or load a branch for isolated editing.\n *\n * Branching lets you take a snapshot of the current state and start modifying it without affecting the canonical/shared version.\n * It's a fork of your data graph: the same schema, but with diverging values.\n *\n * The checkout of the branch is applied on all the resolved values.\n *\n * @param name - A unique name for the branch. This identifies the branch\n * and can be used to switch between different branches of the same CoValue.\n * @param owner - The owner of the branch. Determines who can access and modify\n * the branch. If not provided, the branch is owned by the current user.\n *\n * For more info see the [branching](https://jazz.tools/docs/react/using-covalues/version-control) documentation.\n */\n unstable_branch?: BranchDefinition;\n },\n): TSelectorReturn {\n const subscription = useAccountSubscription(AccountSchema, options);\n\n return useSyncExternalStoreWithSelector<\n Loaded<A, R> | undefined | null,\n TSelectorReturn\n >(\n React.useCallback(\n (callback) => {\n if (!subscription) {\n return () => {};\n }\n\n return subscription.subscribe(callback);\n },\n [subscription],\n ),\n () => (subscription ? subscription.getCurrentValue() : null),\n () => (subscription ? subscription.getCurrentValue() : null),\n options.select,\n options.equalityFn ?? Object.is,\n );\n}\n\n/**\n * Returns a function for logging out of the current account.\n */\nexport function useLogOut(): () => void {\n const contextManager = useJazzContextManager();\n return contextManager.logOut;\n}\n\nexport function experimental_useInboxSender<\n I extends CoValue,\n O extends CoValue | undefined,\n>(inboxOwnerID: string | undefined) {\n const context = useJazzContext();\n\n if (!(\"me\" in context)) {\n throw new Error(\n \"useInboxSender can't be used in a JazzProvider with auth === 'guest'.\",\n );\n }\n\n const me = context.me;\n const inboxRef = useRef<Promise<InboxSender<I, O>> | undefined>(undefined);\n\n const sendMessage = useCallback(\n async (message: I) => {\n if (!inboxOwnerID) throw new Error(\"Inbox owner ID is required\");\n\n if (!inboxRef.current) {\n const inbox = InboxSender.load<I, O>(inboxOwnerID, me);\n inboxRef.current = inbox;\n }\n\n let inbox = await inboxRef.current;\n\n // Regenerate the InboxSender if the inbox owner or current account changes\n if (inbox.owner.id !== inboxOwnerID || inbox.currentAccount !== me) {\n const req = InboxSender.load<I, O>(inboxOwnerID, me);\n inboxRef.current = req;\n inbox = await req;\n }\n\n return inbox.sendMessage(message);\n },\n [inboxOwnerID, me.$jazz.id],\n );\n\n return sendMessage;\n}\n\n/**\n * Hook that returns the current connection status to the Jazz sync server.\n *\n * @returns `true` when connected to the server, `false` when disconnected\n *\n * @remarks\n * On connection drop, this hook will return `false` only when Jazz detects the disconnection\n * after 5 seconds of not receiving a ping from the server.\n */\nexport function useSyncConnectionStatus() {\n const context = useJazzContext();\n\n const connected = useSyncExternalStore(\n useCallback(\n (callback) => {\n return context.addConnectionListener(callback);\n },\n [context],\n ),\n () => context.connected(),\n () => context.connected(),\n );\n\n return connected;\n}\n","import { Account, JazzContextManager } from \"jazz-tools\";\n\nexport function getCurrentAccountFromContextManager<Acc extends Account>(\n contextManager: JazzContextManager<Acc, any>,\n) {\n const context = contextManager.getCurrentValue();\n\n if (!context) {\n throw new Error(\"No context found\");\n }\n\n return \"me\" in context ? context.me : context.guest;\n}\n\nexport function subscribeToContextManager<Acc extends Account>(\n contextManager: JazzContextManager<Acc, any>,\n callback: () => () => void,\n) {\n let unsub = () => {};\n\n const handler = () => {\n unsub();\n unsub = callback();\n };\n\n handler();\n return contextManager.subscribe(handler);\n}\n","import React from \"react\";\nimport {\n Account,\n AccountClass,\n AnyAccountSchema,\n CoValueClassOrSchema,\n Loaded,\n ResolveQuery,\n ResolveQueryStrict,\n} from \"jazz-tools\";\nimport {\n useAccountSubscription,\n useCoValueSubscription,\n useSubscriptionSelector,\n} from \"./hooks.js\";\nimport type { CoValueSubscription } from \"./types.js\";\n\nexport function createCoValueSubscriptionContext<\n S extends CoValueClassOrSchema,\n const R extends ResolveQuery<S> = true,\n>(schema: S, resolve?: ResolveQueryStrict<S, R>) {\n const Context = React.createContext<CoValueSubscription<S, R>>(null);\n\n return {\n Provider: ({\n id,\n options,\n loadingFallback,\n unavailableFallback,\n children,\n }: React.PropsWithChildren<{\n id: string | undefined | null;\n options?: Omit<\n Parameters<typeof useCoValueSubscription<S, R>>[2],\n \"resolve\"\n >;\n loadingFallback?: React.ReactNode;\n unavailableFallback?: React.ReactNode;\n }>) => {\n const subscription = useCoValueSubscription(schema, id, {\n ...options,\n resolve: resolve,\n });\n\n const loadState = useSubscriptionSelector(subscription, {\n select: (value) => (!value ? value : true),\n });\n\n if (loadState === undefined) {\n return loadingFallback ?? null;\n }\n\n if (loadState === null) {\n return unavailableFallback ?? null;\n }\n\n return (\n <Context.Provider value={subscription}>{children}</Context.Provider>\n );\n },\n useSelector: <TSelectorReturn = Loaded<S, R>>(options?: {\n select?: (value: Loaded<S, R>) => TSelectorReturn;\n equalityFn?: (a: TSelectorReturn, b: TSelectorReturn) => boolean;\n }) => {\n const subscription = React.useContext(Context);\n\n if (!subscription) {\n throw new Error(\n \"useSelector must be used within a coValue subscription provider\",\n );\n }\n\n return useSubscriptionSelector<S, R, TSelectorReturn>(\n subscription,\n options as Parameters<\n typeof useSubscriptionSelector<S, R, TSelectorReturn>\n >[1],\n );\n },\n };\n}\n\nexport function createAccountSubscriptionContext<\n A extends AccountClass<Account> | AnyAccountSchema,\n const R extends ResolveQuery<A> = true,\n>(schema: A, resolve?: ResolveQueryStrict<A, R>) {\n const Context = React.createContext<CoValueSubscription<A, R>>(null);\n\n return {\n Provider: ({\n options,\n loadingFallback,\n unavailableFallback,\n children,\n }: React.PropsWithChildren<{\n options?: Omit<\n Parameters<typeof useAccountSubscription<A, R>>[1],\n \"resolve\"\n >;\n loadingFallback?: React.ReactNode;\n unavailableFallback?: React.ReactNode;\n }>) => {\n const subscription = useAccountSubscription(schema, {\n ...options,\n resolve: resolve,\n });\n\n const loadState = useSubscriptionSelector(subscription, {\n select: (value) => (!value ? value : true),\n });\n\n if (loadState === undefined) {\n return loadingFallback ?? null;\n }\n\n if (loadState === null) {\n return unavailableFallback ?? null;\n }\n\n return (\n <Context.Provider value={subscription}>{children}</Context.Provider>\n );\n },\n useSelector: <TSelectorReturn = Loaded<A, R>>(options?: {\n select?: (value: Loaded<A, R>) => TSelectorReturn;\n equalityFn?: (a: TSelectorReturn, b: TSelectorReturn) => boolean;\n }) => {\n const subscription = React.useContext(Context);\n\n if (!subscription) {\n throw new Error(\n \"useSelector must be used within an account subscription provider\",\n );\n }\n\n return useSubscriptionSelector<A, R, TSelectorReturn>(\n subscription,\n options as Parameters<\n typeof useSubscriptionSelector<A, R, TSelectorReturn>\n >[1],\n );\n },\n };\n}\n","import { DemoAuth } from \"jazz-tools\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useAuthSecretStorage, useJazzContext } from \"../hooks.js\";\nimport { useIsAuthenticated } from \"../hooks.js\";\n\n/**\n * `useDemoAuth` is a hook that provides a `JazzAuth` object for demo authentication.\n *\n *\n * ```ts\n * const { state, logIn, signUp, existingUsers } = useDemoAuth();\n * ```\n *\n * @category Auth Providers\n */\nexport function useDemoAuth() {\n const context = useJazzContext();\n const authSecretStorage = useAuthSecretStorage();\n\n if (\"guest\" in context) {\n throw new Error(\"Demo auth is not supported in guest mode\");\n }\n\n const authMethod = useMemo(() => {\n return new DemoAuth(context.authenticate, authSecretStorage);\n }, []);\n\n const isAuthenticated = useIsAuthenticated();\n const [existingUsers, setExistingUsers] = useState<string[]>([]);\n\n useEffect(() => {\n authMethod.getExistingUsers().then(setExistingUsers);\n }, [authMethod]);\n\n function handleSignUp(username: string) {\n return authMethod.signUp(username).then(() => {\n setExistingUsers(existingUsers.concat([username]));\n });\n }\n\n return {\n state: isAuthenticated ? \"signedIn\" : \"anonymous\",\n logIn: authMethod.logIn,\n signUp: handleSignUp,\n existingUsers,\n } as const;\n}\n","import { PassphraseAuth } from \"jazz-tools\";\nimport { useCallback, useMemo, useSyncExternalStore } from \"react\";\nimport { useAuthSecretStorage, useJazzContext } from \"../hooks.js\";\nimport { useIsAuthenticated } from \"../hooks.js\";\n\n/**\n * `usePassphraseAuth` hook provides a `JazzAuth` object for passphrase authentication.\n *\n * @example\n * ```ts\n * const auth = usePassphraseAuth({ appName, appHostname, wordlist });\n * ```\n *\n * @category Auth Providers\n */\nexport function usePassphraseAuth({ wordlist }: { wordlist: string[] }) {\n const context = useJazzContext();\n const authSecretStorage = useAuthSecretStorage();\n\n if (\"guest\" in context) {\n throw new Error(\"Passphrase auth is not supported in guest mode\");\n }\n\n const authMethod = useMemo(() => {\n return new PassphraseAuth(\n context.node.crypto,\n context.authenticate,\n context.register,\n authSecretStorage,\n wordlist,\n );\n }, [wordlist]);\n\n const passphrase = useSyncExternalStore(\n useCallback(\n (callback) => {\n authMethod.loadCurrentAccountPassphrase();\n return authMethod.subscribe(callback);\n },\n [authMethod],\n ),\n () => authMethod.passphrase,\n );\n\n const isAuthenticated = useIsAuthenticated();\n return {\n state: isAuthenticated ? \"signedIn\" : \"anonymous\",\n logIn: authMethod.logIn,\n signUp: authMethod.signUp,\n registerNewAccount: authMethod.registerNewAccount,\n generateRandomPassphrase: authMethod.generateRandomPassphrase,\n passphrase,\n } as const;\n}\n"],"mappings":";;;;;;;AAAA,SAAS,wCAAwC;AACjD,OAAO;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EAMA;AAAA,EAOA;AAAA,EACA;AAAA,OAEK;;;ACvBA,SAAS,oCACd,gBACA;AACA,QAAM,UAAU,eAAe,gBAAgB;AAE/C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,kBAAkB;AAAA,EACpC;AAEA,SAAO,QAAQ,UAAU,QAAQ,KAAK,QAAQ;AAChD;;;ADkBO,SAAS,iBAAsC;AACpD,QAAM,QAAQ,WAAW,WAAW;AAEpC,MAAI,CAAC,OAAO;AACV,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,wBAA6C;AAC3D,QAAM,QAAQ,WAAW,yBAAyB;AAKlD,MAAI,CAAC,OAAO;AACV,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,uBAAuB;AACrC,QAAM,QAAQ,WAAW,yBAAyB;AAElD,MAAI,CAAC,OAAO;AACV,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,MAAM,qBAAqB;AACpC;AAEO,SAAS,qBAAqB;AACnC,QAAM,oBAAoB,qBAAqB;AAE/C,SAAO;AAAA,IACL;AAAA,MACE,CAAC,aAAa;AACZ,eAAO,kBAAkB,SAAS,QAAQ;AAAA,MAC5C;AAAA,MACA,CAAC,iBAAiB;AAAA,IACpB;AAAA,IACA,MAAM,kBAAkB;AAAA,IACxB,MAAM,kBAAkB;AAAA,EAC1B;AACF;AAEO,SAAS,uBAId,QACA,IACA,SAIA;AACA,QAAM,iBAAiB,sBAAsB;AAE7C,QAAM,qBAAqB,MAAM;AAC/B,QAAI,CAAC,IAAI;AACP,aAAO;AAAA,QACL,cAAc;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,QAAI,SAAS,iBAAiB,UAAU,MAAM;AAC5C,aAAO;AAAA,QACL,cAAc;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,OAAO,eAAe,gBAAgB,EAAG;AAC/C,UAAMA,gBAAe,IAAI;AAAA,MACvB;AAAA,MACA,SAAS,WAAW;AAAA,MACpB;AAAA,MACA;AAAA,QACE,KAAK,qCAAqC,MAAM;AAAA,QAChD,UAAU;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,IACX;AAEA,WAAO;AAAA,MACL,cAAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY,SAAS,iBAAiB;AAAA,MACtC,eAAe,SAAS,iBAAiB,OAAO,MAAM;AAAA,IACxD;AAAA,EACF;AAEA,QAAM,CAAC,cAAc,eAAe,IAAI,MAAM,SAAS,kBAAkB;AAEzE,QAAM,aAAa,SAAS,iBAAiB;AAC7C,QAAM,gBAAgB,SAAS,iBAAiB,OAAO,MAAM;AAE7D,QAAM,gBAAgB,MAAM;AAC1B,QACE,aAAa,mBAAmB,kBAChC,aAAa,OAAO,MACpB,aAAa,WAAW,UACxB,aAAa,eAAe,cAC5B,aAAa,kBAAkB,eAC/B;AACA,mBAAa,cAAc,QAAQ;AACnC,sBAAgB,mBAAmB,CAAC;AAAA,IACtC;AAEA,WAAO,eAAe,UAAU,MAAM;AACpC,mBAAa,cAAc,QAAQ;AACnC,sBAAgB,mBAAmB,CAAC;AAAA,IACtC,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,IAAI,gBAAgB,YAAY,aAAa,CAAC;AAE1D,SAAO,aAAa;AACtB;AAuFO,SAAS,WAKd,QAEA,IAEA,SAoBiC;AACjC,QAAM,eAAe,uBAAuB,QAAQ,IAAI,OAAO;AAE/D,QAAM,QAAQ,MAAM;AAAA,IAClB,MAAM;AAAA,MACJ,CAAC,aAAa;AACZ,YAAI,CAAC,cAAc;AACjB,iBAAO,MAAM;AAAA,UAAC;AAAA,QAChB;AAEA,eAAO,aAAa,UAAU,QAAQ;AAAA,MACxC;AAAA,MACA,CAAC,YAAY;AAAA,IACf;AAAA,IACA,MAAO,eAAe,aAAa,gBAAgB,IAAI;AAAA,IACvD,MAAO,eAAe,aAAa,gBAAgB,IAAI;AAAA,EACzD;AAEA,SAAO;AACT;AAyHO,SAAS,uBAMd,QAEA,IAEA,SAwBiB;AACjB,QAAM,eAAe,uBAAuB,QAAQ,IAAI,OAAO;AAE/D,SAAO;AAAA,IAIL,MAAM;AAAA,MACJ,CAAC,aAAa;AACZ,YAAI,CAAC,cAAc;AACjB,iBAAO,MAAM;AAAA,UAAC;AAAA,QAChB;AAEA,eAAO,aAAa,UAAU,QAAQ;AAAA,MACxC;AAAA,MACA,CAAC,YAAY;AAAA,IACf;AAAA,IACA,MAAO,eAAe,aAAa,gBAAgB,IAAI;AAAA,IACvD,MAAO,eAAe,aAAa,gBAAgB,IAAI;AAAA,IACvD,QAAQ;AAAA,IACR,QAAQ,cAAc,OAAO;AAAA,EAC/B;AACF;AAEO,SAAS,wBAKd,cACA,SAIA;AACA,SAAO;AAAA,IAIL,MAAM;AAAA,MACJ,CAAC,aAAa;AACZ,YAAI,CAAC,cAAc;AACjB,iBAAO,MAAM;AAAA,UAAC;AAAA,QAChB;AAEA,eAAO,aAAa,UAAU,QAAQ;AAAA,MACxC;AAAA,MACA,CAAC,YAAY;AAAA,IACf;AAAA,IACA,MAAO,eAAe,aAAa,gBAAgB,IAAI;AAAA,IACvD,MAAO,eAAe,aAAa,gBAAgB,IAAI;AAAA,IACvD,SAAS,WAAW,CAAC,UAAU;AAAA,IAC/B,SAAS,cAAc,OAAO;AAAA,EAChC;AACF;AAEO,SAAS,uBAId,QACA,SAIA;AACA,QAAM,iBAAiB,sBAAsB;AAE7C,QAAM,qBAAqB,MAAM;AAC/B,UAAM,QAAQ,oCAAoC,cAAc;AAEhE,QAAI,MAAM,WAAW,aAAa;AAChC,aAAO;AAAA,QACL,cAAc;AAAA,QACd;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAGA,UAAM,UAAe,SAAS,WAAW;AAEzC,UAAM,OAAO,eAAe,gBAAgB,EAAG;AAC/C,UAAMA,gBAAe,IAAI;AAAA,MACvB;AAAA,MACA;AAAA,MACA,MAAM,MAAM;AAAA,MACZ;AAAA,QACE,KAAK,qCAAqC,MAAM;AAAA,QAChD,UAAU;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,IACX;AAEA,WAAO;AAAA,MACL,cAAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY,SAAS,iBAAiB;AAAA,MACtC,eAAe,SAAS,iBAAiB,OAAO,MAAM;AAAA,IACxD;AAAA,EACF;AAEA,QAAM,CAAC,cAAc,eAAe,IAAI,MAAM,SAAS,kBAAkB;AAEzE,QAAM,aAAa,SAAS,iBAAiB;AAC7C,QAAM,gBAAgB,SAAS,iBAAiB,OAAO,MAAM;AAE7D,QAAM,gBAAgB,MAAM;AAC1B,QACE,aAAa,mBAAmB,kBAChC,aAAa,WAAW,UACxB,aAAa,eAAe,SAAS,iBAAiB,QACtD,aAAa,kBAAkB,SAAS,iBAAiB,OAAO,MAAM,IACtE;AACA,mBAAa,cAAc,QAAQ;AACnC,sBAAgB,mBAAmB,CAAC;AAAA,IACtC;AAEA,WAAO,eAAe,UAAU,MAAM;AACpC,mBAAa,cAAc,QAAQ;AACnC,sBAAgB,mBAAmB,CAAC;AAAA,IACtC,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,gBAAgB,YAAY,aAAa,CAAC;AAEtD,SAAO,aAAa;AACtB;AAqDO,SAAS,WAKd,gBAAmB,SAEnB,SAwBA;AACA,QAAM,iBAAiB,sBAA2C;AAClE,QAAM,eAAe,uBAAuB,eAAe,OAAO;AAElE,QAAM,QAAQ,oCAAoC,cAAc;AAEhE,QAAM,QAAQ,MAAM;AAAA,IAClB,MAAM;AAAA,MACJ,CAAC,aAAa;AACZ,YAAI,CAAC,cAAc;AACjB,iBAAO,MAAM;AAAA,UAAC;AAAA,QAChB;AAEA,eAAO,aAAa,UAAU,QAAQ;AAAA,MACxC;AAAA,MACA,CAAC,YAAY;AAAA,IACf;AAAA,IACA,MAAO,eAAe,aAAa,gBAAgB,IAAI;AAAA,IACvD,MAAO,eAAe,aAAa,gBAAgB,IAAI;AAAA,EACzD;AAEA,SAAO;AAAA,IACL,IAAI;AAAA,IACJ;AAAA,IACA,QAAQ,eAAe;AAAA,EACzB;AACF;AA8CO,SAAS,uBAMd,gBAAmB,SAEnB,SAwBiB;AACjB,QAAM,eAAe,uBAAuB,eAAe,OAAO;AAElE,SAAO;AAAA,IAIL,MAAM;AAAA,MACJ,CAAC,aAAa;AACZ,YAAI,CAAC,cAAc;AACjB,iBAAO,MAAM;AAAA,UAAC;AAAA,QAChB;AAEA,eAAO,aAAa,UAAU,QAAQ;AAAA,MACxC;AAAA,MACA,CAAC,YAAY;AAAA,IACf;AAAA,IACA,MAAO,eAAe,aAAa,gBAAgB,IAAI;AAAA,IACvD,MAAO,eAAe,aAAa,gBAAgB,IAAI;AAAA,IACvD,QAAQ;AAAA,IACR,QAAQ,cAAc,OAAO;AAAA,EAC/B;AACF;AAKO,SAAS,YAAwB;AACtC,QAAM,iBAAiB,sBAAsB;AAC7C,SAAO,eAAe;AACxB;AAEO,SAAS,4BAGd,cAAkC;AAClC,QAAM,UAAU,eAAe;AAE/B,MAAI,EAAE,QAAQ,UAAU;AACtB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,KAAK,QAAQ;AACnB,QAAM,WAAW,OAA+C,MAAS;AAEzE,QAAM,cAAc;AAAA,IAClB,OAAO,YAAe;AACpB,UAAI,CAAC,aAAc,OAAM,IAAI,MAAM,4BAA4B;AAE/D,UAAI,CAAC,SAAS,SAAS;AACrB,cAAMC,SAAQ,YAAY,KAAW,cAAc,EAAE;AACrD,iBAAS,UAAUA;AAAA,MACrB;AAEA,UAAI,QAAQ,MAAM,SAAS;AAG3B,UAAI,MAAM,MAAM,OAAO,gBAAgB,MAAM,mBAAmB,IAAI;AAClE,cAAM,MAAM,YAAY,KAAW,cAAc,EAAE;AACnD,iBAAS,UAAU;AACnB,gBAAQ,MAAM;AAAA,MAChB;AAEA,aAAO,MAAM,YAAY,OAAO;AAAA,IAClC;AAAA,IACA,CAAC,cAAc,GAAG,MAAM,EAAE;AAAA,EAC5B;AAEA,SAAO;AACT;AAWO,SAAS,0BAA0B;AACxC,QAAM,UAAU,eAAe;AAE/B,QAAM,YAAY;AAAA,IAChB;AAAA,MACE,CAAC,aAAa;AACZ,eAAO,QAAQ,sBAAsB,QAAQ;AAAA,MAC/C;AAAA,MACA,CAAC,OAAO;AAAA,IACV;AAAA,IACA,MAAM,QAAQ,UAAU;AAAA,IACxB,MAAM,QAAQ,UAAU;AAAA,EAC1B;AAEA,SAAO;AACT;;;AEn2BA,OAAOC,YAAW;AAyDV;AAxCD,SAAS,iCAGd,QAAW,SAAoC;AAC/C,QAAM,UAAUC,OAAM,cAAyC,IAAI;AAEnE,SAAO;AAAA,IACL,UAAU,CAAC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,MAQO;AACL,YAAM,eAAe,uBAAuB,QAAQ,IAAI;AAAA,QACtD,GAAG;AAAA,QACH;AAAA,MACF,CAAC;AAED,YAAM,YAAY,wBAAwB,cAAc;AAAA,QACtD,QAAQ,CAAC,UAAW,CAAC,QAAQ,QAAQ;AAAA,MACvC,CAAC;AAED,UAAI,cAAc,QAAW;AAC3B,eAAO,mBAAmB;AAAA,MAC5B;AAEA,UAAI,cAAc,MAAM;AACtB,eAAO,uBAAuB;AAAA,MAChC;AAEA,aACE,oBAAC,QAAQ,UAAR,EAAiB,OAAO,cAAe,UAAS;AAAA,IAErD;AAAA,IACA,aAAa,CAAiC,YAGxC;AACJ,YAAM,eAAeA,OAAM,WAAW,OAAO;AAE7C,UAAI,CAAC,cAAc;AACjB,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAEA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MAGF;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,iCAGd,QAAW,SAAoC;AAC/C,QAAM,UAAUA,OAAM,cAAyC,IAAI;AAEnE,SAAO;AAAA,IACL,UAAU,CAAC;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,MAOO;AACL,YAAM,eAAe,uBAAuB,QAAQ;AAAA,QAClD,GAAG;AAAA,QACH;AAAA,MACF,CAAC;AAED,YAAM,YAAY,wBAAwB,cAAc;AAAA,QACtD,QAAQ,CAAC,UAAW,CAAC,QAAQ,QAAQ;AAAA,MACvC,CAAC;AAED,UAAI,cAAc,QAAW;AAC3B,eAAO,mBAAmB;AAAA,MAC5B;AAEA,UAAI,cAAc,MAAM;AACtB,eAAO,uBAAuB;AAAA,MAChC;AAEA,aACE,oBAAC,QAAQ,UAAR,EAAiB,OAAO,cAAe,UAAS;AAAA,IAErD;AAAA,IACA,aAAa,CAAiC,YAGxC;AACJ,YAAM,eAAeA,OAAM,WAAW,OAAO;AAE7C,UAAI,CAAC,cAAc;AACjB,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAEA,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MAGF;AAAA,IACF;AAAA,EACF;AACF;;;AC/IA,SAAS,gBAAgB;AACzB,SAAS,WAAW,SAAS,gBAAgB;AActC,SAAS,cAAc;AAC5B,QAAM,UAAU,eAAe;AAC/B,QAAM,oBAAoB,qBAAqB;AAE/C,MAAI,WAAW,SAAS;AACtB,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC5D;AAEA,QAAM,aAAa,QAAQ,MAAM;AAC/B,WAAO,IAAI,SAAS,QAAQ,cAAc,iBAAiB;AAAA,EAC7D,GAAG,CAAC,CAAC;AAEL,QAAM,kBAAkB,mBAAmB;AAC3C,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAmB,CAAC,CAAC;AAE/D,YAAU,MAAM;AACd,eAAW,iBAAiB,EAAE,KAAK,gBAAgB;AAAA,EACrD,GAAG,CAAC,UAAU,CAAC;AAEf,WAAS,aAAa,UAAkB;AACtC,WAAO,WAAW,OAAO,QAAQ,EAAE,KAAK,MAAM;AAC5C,uBAAiB,cAAc,OAAO,CAAC,QAAQ,CAAC,CAAC;AAAA,IACnD,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL,OAAO,kBAAkB,aAAa;AAAA,IACtC,OAAO,WAAW;AAAA,IAClB,QAAQ;AAAA,IACR;AAAA,EACF;AACF;;;AC9CA,SAAS,sBAAsB;AAC/B,SAAS,eAAAC,cAAa,WAAAC,UAAS,wBAAAC,6BAA4B;AAcpD,SAAS,kBAAkB,EAAE,SAAS,GAA2B;AACtE,QAAM,UAAU,eAAe;AAC/B,QAAM,oBAAoB,qBAAqB;AAE/C,MAAI,WAAW,SAAS;AACtB,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AAEA,QAAM,aAAaC,SAAQ,MAAM;AAC/B,WAAO,IAAI;AAAA,MACT,QAAQ,KAAK;AAAA,MACb,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,aAAaC;AAAA,IACjBC;AAAA,MACE,CAAC,aAAa;AACZ,mBAAW,6BAA6B;AACxC,eAAO,WAAW,UAAU,QAAQ;AAAA,MACtC;AAAA,MACA,CAAC,UAAU;AAAA,IACb;AAAA,IACA,MAAM,WAAW;AAAA,EACnB;AAEA,QAAM,kBAAkB,mBAAmB;AAC3C,SAAO;AAAA,IACL,OAAO,kBAAkB,aAAa;AAAA,IACtC,OAAO,WAAW;AAAA,IAClB,QAAQ,WAAW;AAAA,IACnB,oBAAoB,WAAW;AAAA,IAC/B,0BAA0B,WAAW;AAAA,IACrC;AAAA,EACF;AACF;","names":["subscription","inbox","React","React","useCallback","useMemo","useSyncExternalStore","useMemo","useSyncExternalStore","useCallback"]}
1
+ {"version":3,"sources":["../../src/react-core/hooks.ts","../../src/react-core/utils.ts","../../src/react-core/subscription-provider.tsx","../../src/react-core/auth/DemoAuth.tsx","../../src/react-core/auth/PassphraseAuth.tsx"],"sourcesContent":["import { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector\";\nimport React, {\n useCallback,\n useContext,\n useRef,\n useSyncExternalStore,\n} from \"react\";\n\nimport {\n Account,\n AccountClass,\n AnonymousJazzAgent,\n AnyAccountSchema,\n CoValue,\n CoValueClassOrSchema,\n CoValueLoadingState,\n InboxSender,\n InstanceOfSchema,\n JazzContextManager,\n JazzContextType,\n Loaded,\n MaybeLoaded,\n NotLoaded,\n ResolveQuery,\n ResolveQueryStrict,\n SchemaResolveQuery,\n SubscriptionScope,\n coValueClassFromCoValueClassOrSchema,\n createUnloadedCoValue,\n type BranchDefinition,\n} from \"jazz-tools\";\nimport { JazzContext, JazzContextManagerContext } from \"./provider.js\";\nimport { getCurrentAccountFromContextManager } from \"./utils.js\";\nimport { CoValueSubscription } from \"./types.js\";\n\nexport function useJazzContext<Acc extends Account>() {\n const value = useContext(JazzContext) as JazzContextType<Acc>;\n\n if (!value) {\n throw new Error(\n \"You need to set up a JazzProvider on top of your app to use this hook.\",\n );\n }\n\n return value;\n}\n\nexport function useJazzContextManager<Acc extends Account>() {\n const value = useContext(JazzContextManagerContext) as JazzContextManager<\n Acc,\n {}\n >;\n\n if (!value) {\n throw new Error(\n \"You need to set up a JazzProvider on top of your app to use this hook.\",\n );\n }\n\n return value;\n}\n\nexport function useAuthSecretStorage() {\n const value = useContext(JazzContextManagerContext);\n\n if (!value) {\n throw new Error(\n \"You need to set up a JazzProvider on top of your app to use this useAuthSecretStorage.\",\n );\n }\n\n return value.getAuthSecretStorage();\n}\n\nexport function useIsAuthenticated() {\n const authSecretStorage = useAuthSecretStorage();\n\n return useSyncExternalStore(\n useCallback(\n (callback) => {\n return authSecretStorage.onUpdate(callback);\n },\n [authSecretStorage],\n ),\n () => authSecretStorage.isAuthenticated,\n () => authSecretStorage.isAuthenticated,\n );\n}\n\nexport function useCoValueSubscription<\n S extends CoValueClassOrSchema,\n // @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is\n const R extends ResolveQuery<S> = SchemaResolveQuery<S>,\n>(\n Schema: S,\n id: string | undefined | null,\n options?: {\n resolve?: ResolveQueryStrict<S, R>;\n unstable_branch?: BranchDefinition;\n },\n) {\n const contextManager = useJazzContextManager();\n\n const createSubscription = () => {\n if (!id) {\n return {\n subscription: null,\n contextManager,\n id,\n Schema,\n };\n }\n\n if (options?.unstable_branch?.owner === null) {\n return {\n subscription: null,\n contextManager,\n id,\n Schema,\n };\n }\n\n const resolve = getResolveQuery(Schema, options?.resolve);\n\n const node = contextManager.getCurrentValue()!.node;\n const subscription = new SubscriptionScope<any>(\n node,\n resolve,\n id,\n {\n ref: coValueClassFromCoValueClassOrSchema(Schema),\n optional: true,\n },\n false,\n false,\n options?.unstable_branch,\n );\n\n return {\n subscription,\n contextManager,\n id,\n Schema,\n branchName: options?.unstable_branch?.name,\n branchOwnerId: options?.unstable_branch?.owner?.$jazz.id,\n };\n };\n\n const [subscription, setSubscription] = React.useState(createSubscription);\n\n const branchName = options?.unstable_branch?.name;\n const branchOwnerId = options?.unstable_branch?.owner?.$jazz.id;\n\n React.useLayoutEffect(() => {\n if (\n subscription.contextManager !== contextManager ||\n subscription.id !== id ||\n subscription.Schema !== Schema ||\n subscription.branchName !== branchName ||\n subscription.branchOwnerId !== branchOwnerId\n ) {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n }\n\n return contextManager.subscribe(() => {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n });\n }, [Schema, id, contextManager, branchName, branchOwnerId]);\n\n return subscription.subscription as CoValueSubscription<S, R>;\n}\n\nfunction getSubscriptionValue<C extends CoValue>(\n subscription: SubscriptionScope<C> | null,\n): MaybeLoaded<C> {\n if (!subscription) {\n return createUnloadedCoValue(\"\", CoValueLoadingState.UNAVAILABLE);\n }\n const value = subscription.getCurrentValue();\n if (typeof value === \"string\") {\n return createUnloadedCoValue(subscription.id, value);\n }\n return value;\n}\n\nfunction useGetCurrentValue<C extends CoValue>(\n subscription: SubscriptionScope<C> | null,\n) {\n const previousValue = useRef<MaybeLoaded<CoValue> | undefined>(undefined);\n\n return useCallback(() => {\n const currentValue = getSubscriptionValue(subscription);\n // Avoid re-renders if the value is not loaded and didn't change\n if (\n previousValue.current !== undefined &&\n previousValue.current.$jazz.id === currentValue.$jazz.id &&\n !previousValue.current.$isLoaded &&\n !currentValue.$isLoaded &&\n previousValue.current.$jazz.loadingState ===\n currentValue.$jazz.loadingState\n ) {\n return previousValue.current as MaybeLoaded<C>;\n }\n previousValue.current = currentValue;\n return currentValue;\n }, [subscription]);\n}\n\n/**\n * React hook for subscribing to CoValues and handling loading states.\n *\n * This hook provides a convenient way to subscribe to CoValues and automatically\n * handles the subscription lifecycle (subscribe on mount, unsubscribe on unmount).\n * It also supports deep loading of nested CoValues through resolve queries.\n *\n * The {@param options.select} function allows returning only specific parts of the CoValue data,\n * which helps reduce unnecessary re-renders by narrowing down the returned data.\n * Additionally, you can provide a custom {@param options.equalityFn} to further optimize\n * performance by controlling when the component should re-render based on the selected data.\n *\n * @returns The loaded CoValue, or an {@link NotLoaded} value. Use `$isLoaded` to check whether the\n * CoValue is loaded, or use {@link MaybeLoaded.$jazz.loadingState} to get the detailed loading state.\n * If a selector function is provided, returns the result of the selector function.\n *\n * @example\n * ```tsx\n * // Select only specific fields to reduce re-renders\n * const Project = co.map({\n * name: z.string(),\n * description: z.string(),\n * tasks: co.list(Task),\n * lastModified: z.date(),\n * });\n *\n * function ProjectTitle({ projectId }: { projectId: string }) {\n * // Only re-render when the project name changes, not other fields\n * const projectName = useCoState(\n * Project,\n * projectId,\n * {\n * select: (project) => !project.$isLoading ? project.name : \"Loading...\",\n * }\n * );\n *\n * return <h1>{projectName}</h1>;\n * }\n * ```\n *\n * @example\n * ```tsx\n * // Deep loading with resolve queries\n * const Project = co.map({\n * name: z.string(),\n * tasks: co.list(Task),\n * owner: TeamMember,\n * });\n *\n * function ProjectView({ projectId }: { projectId: string }) {\n * const project = useCoState(Project, projectId, {\n * resolve: {\n * tasks: { $each: true },\n * owner: true,\n * },\n * });\n *\n * if (!project.$isLoaded) {\n * switch (project.$jazz.loadingState) {\n * case \"unauthorized\":\n * return \"Project not accessible\";\n * case \"unavailable\":\n * return \"Project not found\";\n * case \"loading\":\n * return \"Loading project...\";\n * }\n * }\n *\n * return (\n * <div>\n * <h1>{project.name}</h1>\n * <p>Owner: {project.owner.name}</p>\n * <ul>\n * {project.tasks.map((task) => (\n * <li key={task.id}>{task.title}</li>\n * ))}\n * </ul>\n * </div>\n * );\n * }\n * ```\n *\n * @example\n * ```tsx\n * // Using with optional references and error handling\n * const Task = co.map({\n * title: z.string(),\n * assignee: co.optional(TeamMember),\n * subtasks: co.list(Task),\n * });\n *\n * function TaskDetail({ taskId }: { taskId: string }) {\n * const task = useCoState(Task, taskId, {\n * resolve: {\n * assignee: true,\n * subtasks: { $each: { $onError: 'catch' } },\n * },\n * });\n *\n * if (!task.$isLoaded) {\n * switch (task.$jazz.loadingState) {\n * case \"unauthorized\":\n * return \"Task not accessible\";\n * case \"unavailable\":\n * return \"Task not found\";\n * case \"loading\":\n * return \"Loading task...\";\n * }\n * }\n *\n * return (\n * <div>\n * <h2>{task.title}</h2>\n * {task.assignee && <p>Assigned to: {task.assignee.name}</p>}\n * <ul>\n * {task.subtasks.map((subtask, index) => (\n * subtask.$isLoaded ? <li key={subtask.id}>{subtask.title}</li> : <li key={index}>Inaccessible subtask</li>\n * ))}\n * </ul>\n * </div>\n * );\n * }\n * ```\n *\n * @example\n * ```tsx\n * // Use custom equality function for complex data structures\n * const TaskList = co.list(Task);\n *\n * function TaskCount({ listId }: { listId: string }) {\n * const taskStats = useCoState(\n * TaskList,\n * listId,\n * {\n * resolve: { $each: true },\n * select: (tasks) => {\n * if (!tasks.$isLoaded) return { total: 0, completed: 0 };\n * return {\n * total: tasks.length,\n * completed: tasks.filter(task => task.completed).length,\n * };\n * },\n * // Custom equality to prevent re-renders when stats haven't changed\n * equalityFn: (a, b) => a.total === b.total && a.completed === b.completed,\n * }\n * );\n *\n * return (\n * <div>\n * {taskStats.completed} of {taskStats.total} tasks completed\n * </div>\n * );\n * }\n * ```\n *\n * For more examples, see the [subscription and deep loading](https://jazz.tools/docs/react/using-covalues/subscription-and-loading) documentation.\n */\nexport function useCoState<\n S extends CoValueClassOrSchema,\n // @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is\n const R extends ResolveQuery<S> = SchemaResolveQuery<S>,\n TSelectorReturn = MaybeLoaded<Loaded<S, R>>,\n>(\n /** The CoValue schema or class constructor */\n Schema: S,\n /** The ID of the CoValue to subscribe to. If `undefined`, returns an `unavailable` value */\n id: string | undefined,\n /** Optional configuration for the subscription */\n options?: {\n /** Resolve query to specify which nested CoValues to load */\n resolve?: ResolveQueryStrict<S, R>;\n /** Select which value to return */\n select?: (value: MaybeLoaded<Loaded<S, R>>) => TSelectorReturn;\n /** Equality function to determine if the selected value has changed, defaults to `Object.is` */\n equalityFn?: (a: TSelectorReturn, b: TSelectorReturn) => boolean;\n /**\n * Create or load a branch for isolated editing.\n *\n * Branching lets you take a snapshot of the current state and start modifying it without affecting the canonical/shared version.\n * It's a fork of your data graph: the same schema, but with diverging values.\n *\n * The checkout of the branch is applied on all the resolved values.\n *\n * @param name - A unique name for the branch. This identifies the branch\n * and can be used to switch between different branches of the same CoValue.\n * @param owner - The owner of the branch. Determines who can access and modify\n * the branch. If not provided, the branch is owned by the current user.\n *\n * For more info see the [branching](https://jazz.tools/docs/react/using-covalues/version-control) documentation.\n */\n unstable_branch?: BranchDefinition;\n },\n): TSelectorReturn {\n const subscription = useCoValueSubscription(Schema, id, options);\n const getCurrentValue = useGetCurrentValue(subscription);\n\n const value = useSyncExternalStoreWithSelector<\n MaybeLoaded<Loaded<S, R>>,\n TSelectorReturn\n >(\n React.useCallback(\n (callback) => {\n if (!subscription) {\n return () => {};\n }\n\n return subscription.subscribe(callback);\n },\n [subscription],\n ),\n getCurrentValue,\n getCurrentValue,\n options?.select ?? ((value) => value as TSelectorReturn),\n options?.equalityFn ?? Object.is,\n );\n\n return value;\n}\n\nexport function useSubscriptionSelector<\n S extends CoValueClassOrSchema,\n // @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is\n const R extends ResolveQuery<S> = SchemaResolveQuery<S>,\n TSelectorReturn = MaybeLoaded<Loaded<S, R>>,\n>(\n subscription: CoValueSubscription<S, R>,\n options?: {\n select?: (value: MaybeLoaded<Loaded<S, R>>) => TSelectorReturn;\n equalityFn?: (a: TSelectorReturn, b: TSelectorReturn) => boolean;\n },\n) {\n const getCurrentValue = useGetCurrentValue(subscription);\n\n return useSyncExternalStoreWithSelector<\n MaybeLoaded<Loaded<S, R>>,\n TSelectorReturn\n >(\n React.useCallback(\n (callback) => {\n if (!subscription) {\n return () => {};\n }\n\n return subscription.subscribe(callback);\n },\n [subscription],\n ),\n getCurrentValue,\n getCurrentValue,\n options?.select ?? ((value) => value as TSelectorReturn),\n options?.equalityFn ?? Object.is,\n );\n}\n\nexport function useAccountSubscription<\n S extends AccountClass<Account> | AnyAccountSchema,\n // @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is\n const R extends ResolveQuery<S> = SchemaResolveQuery<S>,\n>(\n Schema: S,\n options?: {\n resolve?: ResolveQueryStrict<S, R>;\n unstable_branch?: BranchDefinition;\n },\n) {\n const contextManager = useJazzContextManager();\n\n const createSubscription = () => {\n const agent = getCurrentAccountFromContextManager(contextManager);\n\n if (agent.$type$ === \"Anonymous\") {\n return {\n subscription: null,\n contextManager,\n agent,\n };\n }\n\n const resolve = getResolveQuery(Schema, options?.resolve);\n\n const node = contextManager.getCurrentValue()!.node;\n const subscription = new SubscriptionScope<any>(\n node,\n resolve,\n agent.$jazz.id,\n {\n ref: coValueClassFromCoValueClassOrSchema(Schema),\n optional: true,\n },\n false,\n false,\n options?.unstable_branch,\n );\n\n return {\n subscription,\n contextManager,\n Schema,\n branchName: options?.unstable_branch?.name,\n branchOwnerId: options?.unstable_branch?.owner?.$jazz.id,\n };\n };\n\n const [subscription, setSubscription] = React.useState(createSubscription);\n\n const branchName = options?.unstable_branch?.name;\n const branchOwnerId = options?.unstable_branch?.owner?.$jazz.id;\n\n React.useLayoutEffect(() => {\n if (\n subscription.contextManager !== contextManager ||\n subscription.Schema !== Schema ||\n subscription.branchName !== options?.unstable_branch?.name ||\n subscription.branchOwnerId !== options?.unstable_branch?.owner?.$jazz.id\n ) {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n }\n\n return contextManager.subscribe(() => {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n });\n }, [Schema, contextManager, branchName, branchOwnerId]);\n\n return subscription.subscription as CoValueSubscription<S, R>;\n}\n\n/**\n * React hook for accessing the current user's account.\n *\n * This hook provides access to the current user's account profile and root data.\n * It automatically handles the subscription lifecycle and supports deep loading of nested\n * CoValues through resolve queries.\n *\n * The {@param options.select} function allows returning only specific parts of the account data,\n * which helps reduce unnecessary re-renders by narrowing down the returned data.\n * Additionally, you can provide a custom {@param options.equalityFn} to further optimize\n * performance by controlling when the component should re-render based on the selected data.\n *\n * @returns The account data, or an {@link NotLoaded} value. Use `$isLoaded` to check whether the\n * CoValue is loaded, or use {@link MaybeLoaded.$jazz.loadingState} to get the detailed loading state.\n * If a selector function is provided, returns the result of the selector function.\n *\n * @example\n * ```tsx\n * // Select only specific fields to reduce re-renders\n * const MyAppAccount = co.account({\n * profile: co.profile(),\n * root: co.map({\n * name: z.string(),\n * email: z.string(),\n * lastLogin: z.date(),\n * }),\n * });\n *\n * function UserProfile({ accountId }: { accountId: string }) {\n * // Only re-render when the profile name changes, not other fields\n * const profileName = useAccount(\n * MyAppAccount,\n * {\n * resolve: {\n * profile: true,\n * root: true,\n * },\n * select: (account) => account.$isLoaded ? account.profile.name : \"Loading...\",\n * }\n * );\n *\n * return <h1>{profileName}</h1>;\n * }\n * ```\n *\n * @example\n * ```tsx\n * // Deep loading with resolve queries\n * function ProjectListWithDetails() {\n * const me = useAccount(MyAppAccount, {\n * resolve: {\n * profile: true,\n * root: {\n * myProjects: {\n * $each: {\n * tasks: true,\n * },\n * },\n * },\n * },\n * });\n *\n * if (!me.$isLoaded) {\n * switch (me.$jazz.loadingState) {\n * case \"unauthorized\":\n * return \"Account not accessible\";\n * case \"unavailable\":\n * return \"Account not found\";\n * case \"loading\":\n * return \"Loading account...\";\n * }\n * }\n *\n * return (\n * <div>\n * <h1>{me.profile.name}'s projects</h1>\n * <ul>\n * {me.root.myProjects.map((project) => (\n * <li key={project.id}>\n * {project.name} ({project.tasks.length} tasks)\n * </li>\n * ))}\n * </ul>\n * </div>\n * );\n * }\n * ```\n *\n */\nexport function useAccount<\n A extends AccountClass<Account> | AnyAccountSchema,\n // @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is\n const R extends ResolveQuery<A> = SchemaResolveQuery<A>,\n TSelectorReturn = MaybeLoaded<Loaded<A, R>>,\n>(\n /** The account schema to use. Defaults to the base Account schema */\n AccountSchema: A = Account as unknown as A,\n /** Optional configuration for the subscription */\n options?: {\n /** Resolve query to specify which nested CoValues to load from the account */\n resolve?: ResolveQueryStrict<A, R>;\n /** Select which value to return from the account data */\n select?: (account: MaybeLoaded<Loaded<A, R>>) => TSelectorReturn;\n /** Equality function to determine if the selected value has changed, defaults to `Object.is` */\n equalityFn?: (a: TSelectorReturn, b: TSelectorReturn) => boolean;\n /**\n * Create or load a branch for isolated editing.\n *\n * Branching lets you take a snapshot of the current state and start modifying it without affecting the canonical/shared version.\n * It's a fork of your data graph: the same schema, but with diverging values.\n *\n * The checkout of the branch is applied on all the resolved values.\n *\n * @param name - A unique name for the branch. This identifies the branch\n * and can be used to switch between different branches of the same CoValue.\n * @param owner - The owner of the branch. Determines who can access and modify\n * the branch. If not provided, the branch is owned by the current user.\n *\n * For more info see the [branching](https://jazz.tools/docs/react/using-covalues/version-control) documentation.\n */\n unstable_branch?: BranchDefinition;\n },\n): TSelectorReturn {\n const subscription = useAccountSubscription(AccountSchema, options);\n const getCurrentValue = useGetCurrentValue(subscription);\n\n return useSyncExternalStoreWithSelector<\n MaybeLoaded<Loaded<A, R>>,\n TSelectorReturn\n >(\n React.useCallback(\n (callback) => {\n if (!subscription) {\n return () => {};\n }\n\n return subscription.subscribe(callback);\n },\n [subscription],\n ),\n getCurrentValue,\n getCurrentValue,\n options?.select ?? ((value) => value as TSelectorReturn),\n options?.equalityFn ?? Object.is,\n );\n}\n\n/**\n * Returns a function for logging out of the current account.\n */\nexport function useLogOut(): () => void {\n const contextManager = useJazzContextManager();\n return contextManager.logOut;\n}\n\n/**\n * React hook for accessing the current agent. An agent can either be:\n * - an Authenticated Account, if the user is logged in\n * - an Anonymous Account, if the user didn't log in\n * - or an anonymous agent, if in guest mode\n *\n * The agent can be used as the `loadAs` parameter for load and subscribe methods.\n */\nexport function useAgent<\n A extends AccountClass<Account> | AnyAccountSchema = typeof Account,\n>(): AnonymousJazzAgent | Loaded<A, true> {\n const contextManager = useJazzContextManager<InstanceOfSchema<A>>();\n const agent = getCurrentAccountFromContextManager(contextManager);\n return agent as AnonymousJazzAgent | Loaded<A, true>;\n}\n\nexport function experimental_useInboxSender<\n I extends CoValue,\n O extends CoValue | undefined,\n>(inboxOwnerID: string | undefined) {\n const context = useJazzContext();\n\n if (!(\"me\" in context)) {\n throw new Error(\n \"useInboxSender can't be used in a JazzProvider with auth === 'guest'.\",\n );\n }\n\n const me = context.me;\n const inboxRef = useRef<Promise<InboxSender<I, O>> | undefined>(undefined);\n\n const sendMessage = useCallback(\n async (message: I) => {\n if (!inboxOwnerID) throw new Error(\"Inbox owner ID is required\");\n\n if (!inboxRef.current) {\n const inbox = InboxSender.load<I, O>(inboxOwnerID, me);\n inboxRef.current = inbox;\n }\n\n let inbox = await inboxRef.current;\n\n // Regenerate the InboxSender if the inbox owner or current account changes\n if (inbox.owner.id !== inboxOwnerID || inbox.currentAccount !== me) {\n const req = InboxSender.load<I, O>(inboxOwnerID, me);\n inboxRef.current = req;\n inbox = await req;\n }\n\n return inbox.sendMessage(message);\n },\n [inboxOwnerID, me.$jazz.id],\n );\n\n return sendMessage;\n}\n\n/**\n * Hook that returns the current connection status to the Jazz sync server.\n *\n * @returns `true` when connected to the server, `false` when disconnected\n *\n * @remarks\n * On connection drop, this hook will return `false` only when Jazz detects the disconnection\n * after 5 seconds of not receiving a ping from the server.\n */\nexport function useSyncConnectionStatus() {\n const context = useJazzContext();\n\n const connected = useSyncExternalStore(\n useCallback(\n (callback) => {\n return context.addConnectionListener(callback);\n },\n [context],\n ),\n () => context.connected(),\n () => context.connected(),\n );\n\n return connected;\n}\n\nfunction getResolveQuery(\n Schema: CoValueClassOrSchema,\n // We don't need type validation here, since this is an internal API\n resolveQuery?: ResolveQuery<any>,\n): ResolveQuery<any> {\n if (resolveQuery) {\n return resolveQuery;\n }\n // Check the schema is a CoValue schema (and not a CoValue class)\n if (\"resolveQuery\" in Schema) {\n return Schema.resolveQuery;\n }\n return true;\n}\n","import { Account, JazzContextManager } from \"jazz-tools\";\n\nexport function getCurrentAccountFromContextManager<Acc extends Account>(\n contextManager: JazzContextManager<Acc, any>,\n) {\n const context = contextManager.getCurrentValue();\n\n if (!context) {\n throw new Error(\"No context found\");\n }\n\n return \"me\" in context ? context.me : context.guest;\n}\n\nexport function subscribeToContextManager<Acc extends Account>(\n contextManager: JazzContextManager<Acc, any>,\n callback: () => () => void,\n) {\n let unsub = () => {};\n\n const handler = () => {\n unsub();\n unsub = callback();\n };\n\n handler();\n return contextManager.subscribe(handler);\n}\n","import React from \"react\";\nimport {\n Account,\n AccountClass,\n AnyAccountSchema,\n CoValueClassOrSchema,\n CoValueLoadingState,\n Loaded,\n MaybeLoaded,\n ResolveQuery,\n ResolveQueryStrict,\n} from \"jazz-tools\";\nimport {\n useAccountSubscription,\n useCoValueSubscription,\n useSubscriptionSelector,\n} from \"./hooks.js\";\nimport type { CoValueSubscription } from \"./types.js\";\n\nexport function createCoValueSubscriptionContext<\n S extends CoValueClassOrSchema,\n const R extends ResolveQuery<S> = true,\n>(schema: S, resolve?: ResolveQueryStrict<S, R>) {\n const Context = React.createContext<CoValueSubscription<S, R>>(null);\n\n return {\n Provider: ({\n id,\n options,\n loadingFallback,\n unavailableFallback,\n children,\n }: React.PropsWithChildren<{\n id: string | undefined | null;\n options?: Omit<\n Parameters<typeof useCoValueSubscription<S, R>>[2],\n \"resolve\"\n >;\n loadingFallback?: React.ReactNode;\n unavailableFallback?: React.ReactNode;\n }>) => {\n const subscription = useCoValueSubscription(schema, id, {\n ...options,\n resolve: resolve,\n });\n\n const loadState = useSubscriptionSelector(subscription, {\n select: (value) => value.$jazz.loadingState,\n });\n\n if (loadState === CoValueLoadingState.LOADING) {\n return loadingFallback ?? null;\n }\n if (\n loadState === CoValueLoadingState.UNAUTHORIZED ||\n loadState === CoValueLoadingState.UNAVAILABLE\n ) {\n return unavailableFallback ?? null;\n }\n\n return (\n <Context.Provider value={subscription}>{children}</Context.Provider>\n );\n },\n useSelector: <TSelectorReturn = Loaded<S, R>>(options?: {\n select?: (value: Loaded<S, R>) => TSelectorReturn;\n equalityFn?: (a: TSelectorReturn, b: TSelectorReturn) => boolean;\n }) => {\n const subscription = React.useContext(Context);\n\n if (!subscription) {\n throw new Error(\n \"useSelector must be used within a coValue subscription provider\",\n );\n }\n\n return useSubscriptionSelector<S, R, TSelectorReturn>(\n subscription,\n options as Parameters<\n typeof useSubscriptionSelector<S, R, TSelectorReturn>\n >[1],\n );\n },\n };\n}\n\nexport function createAccountSubscriptionContext<\n A extends AccountClass<Account> | AnyAccountSchema,\n const R extends ResolveQuery<A> = true,\n>(schema: A, resolve?: ResolveQueryStrict<A, R>) {\n const Context = React.createContext<CoValueSubscription<A, R>>(null);\n\n return {\n Provider: ({\n options,\n loadingFallback,\n unavailableFallback,\n children,\n }: React.PropsWithChildren<{\n options?: Omit<\n Parameters<typeof useAccountSubscription<A, R>>[1],\n \"resolve\"\n >;\n loadingFallback?: React.ReactNode;\n unavailableFallback?: React.ReactNode;\n }>) => {\n const subscription = useAccountSubscription(schema, {\n ...options,\n resolve: resolve,\n });\n\n const loadState = useSubscriptionSelector(subscription, {\n select: (value) => value.$jazz.loadingState,\n });\n\n if (loadState === CoValueLoadingState.LOADING) {\n return loadingFallback ?? null;\n }\n\n if (\n loadState === CoValueLoadingState.UNAUTHORIZED ||\n loadState === CoValueLoadingState.UNAVAILABLE\n ) {\n return unavailableFallback ?? null;\n }\n\n return (\n <Context.Provider value={subscription}>{children}</Context.Provider>\n );\n },\n useSelector: <TSelectorReturn = Loaded<A, R>>(options?: {\n select?: (value: Loaded<A, R>) => TSelectorReturn;\n equalityFn?: (a: TSelectorReturn, b: TSelectorReturn) => boolean;\n }) => {\n const subscription = React.useContext(Context);\n\n if (!subscription) {\n throw new Error(\n \"useSelector must be used within an account subscription provider\",\n );\n }\n\n return useSubscriptionSelector<A, R, TSelectorReturn>(\n subscription,\n options as Parameters<\n typeof useSubscriptionSelector<A, R, TSelectorReturn>\n >[1],\n );\n },\n };\n}\n","import { DemoAuth } from \"jazz-tools\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useAuthSecretStorage, useJazzContext } from \"../hooks.js\";\nimport { useIsAuthenticated } from \"../hooks.js\";\n\n/**\n * `useDemoAuth` is a hook that provides a `JazzAuth` object for demo authentication.\n *\n *\n * ```ts\n * const { state, logIn, signUp, existingUsers } = useDemoAuth();\n * ```\n *\n * @category Auth Providers\n */\nexport function useDemoAuth() {\n const context = useJazzContext();\n const authSecretStorage = useAuthSecretStorage();\n\n if (\"guest\" in context) {\n throw new Error(\"Demo auth is not supported in guest mode\");\n }\n\n const authMethod = useMemo(() => {\n return new DemoAuth(context.authenticate, authSecretStorage);\n }, []);\n\n const isAuthenticated = useIsAuthenticated();\n const [existingUsers, setExistingUsers] = useState<string[]>([]);\n\n useEffect(() => {\n authMethod.getExistingUsers().then(setExistingUsers);\n }, [authMethod]);\n\n function handleSignUp(username: string) {\n return authMethod.signUp(username).then(() => {\n setExistingUsers(existingUsers.concat([username]));\n });\n }\n\n return {\n state: isAuthenticated ? \"signedIn\" : \"anonymous\",\n logIn: authMethod.logIn,\n signUp: handleSignUp,\n existingUsers,\n } as const;\n}\n","import { PassphraseAuth } from \"jazz-tools\";\nimport { useCallback, useMemo, useSyncExternalStore } from \"react\";\nimport { useAuthSecretStorage, useJazzContext } from \"../hooks.js\";\nimport { useIsAuthenticated } from \"../hooks.js\";\n\n/**\n * `usePassphraseAuth` hook provides a `JazzAuth` object for passphrase authentication.\n *\n * @example\n * ```ts\n * const auth = usePassphraseAuth({ appName, appHostname, wordlist });\n * ```\n *\n * @category Auth Providers\n */\nexport function usePassphraseAuth({ wordlist }: { wordlist: string[] }) {\n const context = useJazzContext();\n const authSecretStorage = useAuthSecretStorage();\n\n if (\"guest\" in context) {\n throw new Error(\"Passphrase auth is not supported in guest mode\");\n }\n\n const authMethod = useMemo(() => {\n return new PassphraseAuth(\n context.node.crypto,\n context.authenticate,\n context.register,\n authSecretStorage,\n wordlist,\n );\n }, [wordlist]);\n\n const passphrase = useSyncExternalStore(\n useCallback(\n (callback) => {\n authMethod.loadCurrentAccountPassphrase();\n return authMethod.subscribe(callback);\n },\n [authMethod],\n ),\n () => authMethod.passphrase,\n );\n\n const isAuthenticated = useIsAuthenticated();\n return {\n state: isAuthenticated ? \"signedIn\" : \"anonymous\",\n logIn: authMethod.logIn,\n signUp: authMethod.signUp,\n registerNewAccount: authMethod.registerNewAccount,\n generateRandomPassphrase: authMethod.generateRandomPassphrase,\n passphrase,\n } as const;\n}\n"],"mappings":"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","names":["subscription","value","inbox","React","CoValueLoadingState","React","CoValueLoadingState","useCallback","useMemo","useSyncExternalStore","useMemo","useSyncExternalStore","useCallback"]}
@@ -1 +1 @@
1
- {"version":3,"file":"subscription-provider.d.ts","sourceRoot":"","sources":["../../src/react-core/subscription-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,EACN,YAAY,EACZ,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAGpB,wBAAgB,gCAAgC,CAC9C,CAAC,SAAS,oBAAoB,EAC9B,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,EACtC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;iFAUxC,KAAK,CAAC,iBAAiB,CAAC;QACzB,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;QAC9B,OAAO,CAAC,EAAE,IAAI,CACZ,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAClD,SAAS,CACV,CAAC;QACF,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAClC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KACvC,CAAC;kBAsBY,eAAe,2BAA2B;QACtD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC;QAClD,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC;KAClE;EAiBJ;AAED,wBAAgB,gCAAgC,CAC9C,CAAC,SAAS,YAAY,CAAC,OAAO,CAAC,GAAG,gBAAgB,EAClD,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,EACtC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;6EASxC,KAAK,CAAC,iBAAiB,CAAC;QACzB,OAAO,CAAC,EAAE,IAAI,CACZ,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAClD,SAAS,CACV,CAAC;QACF,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAClC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KACvC,CAAC;kBAsBY,eAAe,2BAA2B;QACtD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC;QAClD,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC;KAClE;EAiBJ"}
1
+ {"version":3,"file":"subscription-provider.d.ts","sourceRoot":"","sources":["../../src/react-core/subscription-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EAEpB,MAAM,EAEN,YAAY,EACZ,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAGpB,wBAAgB,gCAAgC,CAC9C,CAAC,SAAS,oBAAoB,EAC9B,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,EACtC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;iFAUxC,KAAK,CAAC,iBAAiB,CAAC;QACzB,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;QAC9B,OAAO,CAAC,EAAE,IAAI,CACZ,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAClD,SAAS,CACV,CAAC;QACF,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAClC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KACvC,CAAC;kBAwBY,eAAe,2BAA2B;QACtD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC;QAClD,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC;KAClE;EAiBJ;AAED,wBAAgB,gCAAgC,CAC9C,CAAC,SAAS,YAAY,CAAC,OAAO,CAAC,GAAG,gBAAgB,EAClD,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,EACtC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;6EASxC,KAAK,CAAC,iBAAiB,CAAC;QACzB,OAAO,CAAC,EAAE,IAAI,CACZ,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAClD,SAAS,CACV,CAAC;QACF,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QAClC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;KACvC,CAAC;kBAyBY,eAAe,2BAA2B;QACtD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC;QAClD,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC;KAClE;EAiBJ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=createCoValueSubscriptionContext.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCoValueSubscriptionContext.test.d.ts","sourceRoot":"","sources":["../../../src/react-core/tests/createCoValueSubscriptionContext.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useAccount.selector.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAccount.selector.test.d.ts","sourceRoot":"","sources":["../../../src/react-core/tests/useAccount.selector.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useCoState.selector.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCoState.selector.test.d.ts","sourceRoot":"","sources":["../../../src/react-core/tests/useCoState.selector.test.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import { CoValueClassOrSchema } from "jazz-tools";
2
- export { useCoState, experimental_useInboxSender, useDemoAuth, usePassphraseAuth, useJazzContext, useAuthSecretStorage, useIsAuthenticated, useAccount, useCoStateWithSelector, useAccountWithSelector, useSyncConnectionStatus, useCoValueSubscription, useAccountSubscription, useSubscriptionSelector, } from "jazz-tools/react-core";
2
+ export { useCoState, experimental_useInboxSender, useDemoAuth, usePassphraseAuth, useJazzContext, useAuthSecretStorage, useIsAuthenticated, useAccount, useAgent, useLogOut, useSyncConnectionStatus, useCoValueSubscription, useAccountSubscription, useSubscriptionSelector, } from "jazz-tools/react-core";
3
3
  export declare function useAcceptInviteNative<S extends CoValueClassOrSchema>({ invitedObjectSchema, onAccept, forValueHint, }: {
4
4
  invitedObjectSchema: S;
5
5
  onAccept: (projectID: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react-native-core/hooks.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,YAAY,CAAC;AAInE,OAAO,EACL,UAAU,EACV,2BAA2B,EAC3B,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,oBAAoB,EAAE,EACpE,mBAAmB,EACnB,QAAQ,EACR,YAAY,GACb,EAAE;IACD,mBAAmB,EAAE,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CAsCP"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react-native-core/hooks.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,YAAY,CAAC;AAInE,OAAO,EACL,UAAU,EACV,2BAA2B,EAC3B,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,oBAAoB,EAAE,EACpE,mBAAmB,EACnB,QAAQ,EACR,YAAY,GACb,EAAE;IACD,mBAAmB,EAAE,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CAsCP"}
@@ -246,8 +246,8 @@ import {
246
246
  useAuthSecretStorage,
247
247
  useIsAuthenticated,
248
248
  useAccount,
249
- useCoStateWithSelector,
250
- useAccountWithSelector,
249
+ useAgent,
250
+ useLogOut,
251
251
  useSyncConnectionStatus,
252
252
  useCoValueSubscription,
253
253
  useAccountSubscription,
@@ -597,7 +597,9 @@ import { forwardRef, useEffect as useEffect3, useMemo, useState as useState2 } f
597
597
  import { Image as RNImage } from "react-native";
598
598
  import { jsx as jsx3 } from "react/jsx-runtime";
599
599
  var Image = forwardRef(function Image2({ imageId, width, height, placeholder, ...props }, ref) {
600
- const image = useCoState(ImageDefinition, imageId);
600
+ const image = useCoState(ImageDefinition, imageId, {
601
+ select: (image2) => image2.$isLoaded ? image2 : null
602
+ });
601
603
  const [src, setSrc] = useState2(
602
604
  image?.placeholderDataURL ?? "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="
603
605
  );
@@ -692,14 +694,14 @@ export {
692
694
  useAcceptInviteNative,
693
695
  useAccount,
694
696
  useAccountSubscription,
695
- useAccountWithSelector,
697
+ useAgent,
696
698
  useAuthSecretStorage,
697
699
  useCoState,
698
- useCoStateWithSelector,
699
700
  useCoValueSubscription,
700
701
  useDemoAuth,
701
702
  useIsAuthenticated,
702
703
  useJazzContext2 as useJazzContext,
704
+ useLogOut,
703
705
  usePassphraseAuth,
704
706
  useSubscriptionSelector,
705
707
  useSyncConnectionStatus