jazz-tools 0.18.6 → 0.18.7

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 (84) hide show
  1. package/.turbo/turbo-build.log +49 -49
  2. package/CHANGELOG.md +17 -0
  3. package/dist/better-auth/auth/server.d.ts.map +1 -1
  4. package/dist/better-auth/auth/server.js +8 -4
  5. package/dist/better-auth/auth/server.js.map +1 -1
  6. package/dist/{chunk-45VKEOXG.js → chunk-CFAY3FMQ.js} +70 -21
  7. package/dist/chunk-CFAY3FMQ.js.map +1 -0
  8. package/dist/index.js +1 -1
  9. package/dist/inspector/{custom-element-IBHKHN27.js → custom-element-G6SPZEBR.js} +292 -31
  10. package/dist/inspector/custom-element-G6SPZEBR.js.map +1 -0
  11. package/dist/inspector/index.d.ts +1 -1
  12. package/dist/inspector/index.js +302 -41
  13. package/dist/inspector/index.js.map +1 -1
  14. package/dist/inspector/register-custom-element.js +1 -1
  15. package/dist/inspector/ui/button.d.ts +1 -1
  16. package/dist/inspector/ui/button.d.ts.map +1 -1
  17. package/dist/inspector/ui/heading.d.ts +2 -1
  18. package/dist/inspector/ui/heading.d.ts.map +1 -1
  19. package/dist/inspector/ui/input.d.ts.map +1 -1
  20. package/dist/inspector/ui/modal.d.ts +16 -0
  21. package/dist/inspector/ui/modal.d.ts.map +1 -0
  22. package/dist/inspector/viewer/delete-local-data.d.ts +2 -0
  23. package/dist/inspector/viewer/delete-local-data.d.ts.map +1 -0
  24. package/dist/inspector/viewer/{inpsector-button.d.ts → inspector-button.d.ts} +1 -1
  25. package/dist/inspector/viewer/{inpsector-button.d.ts.map → inspector-button.d.ts.map} +1 -1
  26. package/dist/inspector/viewer/new-app.d.ts +1 -1
  27. package/dist/inspector/viewer/new-app.d.ts.map +1 -1
  28. package/dist/react/hooks.d.ts +1 -1
  29. package/dist/react/hooks.d.ts.map +1 -1
  30. package/dist/react/index.d.ts +1 -1
  31. package/dist/react/index.d.ts.map +1 -1
  32. package/dist/react/index.js +3 -1
  33. package/dist/react/index.js.map +1 -1
  34. package/dist/react-core/hooks.d.ts +133 -0
  35. package/dist/react-core/hooks.d.ts.map +1 -1
  36. package/dist/react-core/index.js +80 -16
  37. package/dist/react-core/index.js.map +1 -1
  38. package/dist/react-core/tests/useCoStateWithSelector.test.d.ts +2 -0
  39. package/dist/react-core/tests/useCoStateWithSelector.test.d.ts.map +1 -0
  40. package/dist/react-native-core/hooks.d.ts +1 -1
  41. package/dist/react-native-core/hooks.d.ts.map +1 -1
  42. package/dist/react-native-core/index.js +3 -1
  43. package/dist/react-native-core/index.js.map +1 -1
  44. package/dist/testing.js +1 -1
  45. package/dist/tools/coValues/CoValueBase.d.ts +14 -0
  46. package/dist/tools/coValues/CoValueBase.d.ts.map +1 -1
  47. package/dist/tools/coValues/coMap.d.ts +0 -12
  48. package/dist/tools/coValues/coMap.d.ts.map +1 -1
  49. package/dist/tools/implementation/createContext.d.ts +2 -1
  50. package/dist/tools/implementation/createContext.d.ts.map +1 -1
  51. package/dist/tools/tests/utils.d.ts.map +1 -1
  52. package/dist/worker/index.d.ts +4 -0
  53. package/dist/worker/index.d.ts.map +1 -1
  54. package/dist/worker/index.js +4 -2
  55. package/dist/worker/index.js.map +1 -1
  56. package/package.json +6 -4
  57. package/src/better-auth/auth/server.ts +8 -4
  58. package/src/better-auth/auth/tests/server.test.ts +2 -2
  59. package/src/inspector/index.tsx +1 -1
  60. package/src/inspector/ui/button.tsx +15 -1
  61. package/src/inspector/ui/heading.tsx +7 -2
  62. package/src/inspector/ui/input.tsx +6 -2
  63. package/src/inspector/ui/modal.tsx +158 -0
  64. package/src/inspector/viewer/delete-local-data.tsx +101 -0
  65. package/src/inspector/viewer/new-app.tsx +3 -1
  66. package/src/react/hooks.tsx +1 -0
  67. package/src/react/index.ts +1 -0
  68. package/src/react-core/hooks.ts +162 -0
  69. package/src/react-core/tests/useCoStateWithSelector.test.ts +149 -0
  70. package/src/react-native-core/hooks.tsx +1 -0
  71. package/src/tools/coValues/CoValueBase.ts +32 -0
  72. package/src/tools/coValues/coList.ts +35 -0
  73. package/src/tools/coValues/coMap.ts +0 -18
  74. package/src/tools/implementation/createContext.ts +9 -2
  75. package/src/tools/tests/coList.test.ts +41 -0
  76. package/src/tools/tests/coPlainText.test.ts +24 -0
  77. package/src/tools/tests/createContext.test.ts +24 -0
  78. package/src/tools/tests/deepLoading.test.ts +2 -0
  79. package/src/tools/tests/patterns/requestToJoin.test.ts +14 -6
  80. package/src/tools/tests/utils.ts +1 -0
  81. package/src/worker/index.ts +6 -0
  82. package/dist/chunk-45VKEOXG.js.map +0 -1
  83. package/dist/inspector/custom-element-IBHKHN27.js.map +0 -1
  84. /package/src/inspector/viewer/{inpsector-button.tsx → inspector-button.tsx} +0 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useCoStateWithSelector.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCoStateWithSelector.test.d.ts","sourceRoot":"","sources":["../../../src/react-core/tests/useCoStateWithSelector.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, } from "jazz-tools/react-core";
2
+ export { useCoState, experimental_useInboxSender, useDemoAuth, usePassphraseAuth, useJazzContext, useAuthSecretStorage, useIsAuthenticated, useAccount, useCoStateWithSelector, } 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,GACX,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,sBAAsB,GACvB,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"}
@@ -245,7 +245,8 @@ import {
245
245
  useJazzContext as useJazzContext2,
246
246
  useAuthSecretStorage,
247
247
  useIsAuthenticated,
248
- useAccount
248
+ useAccount,
249
+ useCoStateWithSelector
249
250
  } from "jazz-tools/react-core";
250
251
  function useAcceptInviteNative({
251
252
  invitedObjectSchema,
@@ -647,6 +648,7 @@ export {
647
648
  useAccount,
648
649
  useAuthSecretStorage,
649
650
  useCoState,
651
+ useCoStateWithSelector,
650
652
  useDemoAuth,
651
653
  useIsAuthenticated,
652
654
  useJazzContext2 as useJazzContext,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react-native-core/storage/kv-store-context.ts","../../src/react-native-core/auth/DemoAuthUI.tsx","../../src/react-native-core/auth/auth.ts","../../src/react-native-core/hooks.tsx","../../src/react-native-core/provider.tsx","../../src/react-native-core/ReactNativeContextManager.ts","../../src/react-native-core/platform.ts","../../src/react-native-core/media/image.tsx","../../src/react-native-core/index.ts"],"sourcesContent":["export interface KvStore {\n get(key: string): Promise<string | null>;\n set(key: string, value: string): Promise<void>;\n delete(key: string): Promise<void>;\n clearAll(): Promise<void>;\n}\n\nexport class KvStoreContext {\n private static instance: KvStoreContext;\n private storageInstance: KvStore | null = null;\n\n private constructor() {}\n\n public static getInstance(): KvStoreContext {\n if (!KvStoreContext.instance) {\n KvStoreContext.instance = new KvStoreContext();\n }\n return KvStoreContext.instance;\n }\n\n public isInitialized(): boolean {\n return this.storageInstance !== null;\n }\n\n public initialize(store: KvStore): void {\n if (!this.storageInstance) {\n this.storageInstance = store;\n }\n }\n\n public getStorage(): KvStore {\n if (!this.storageInstance) {\n throw new Error(\"Storage instance is not initialized.\");\n }\n return this.storageInstance;\n }\n}\n\nexport default KvStoreContext;\n","import { useDemoAuth } from \"jazz-tools/react-core\";\nimport React, { useState } from \"react\";\nimport {\n StyleSheet,\n Text,\n TextInput,\n TouchableOpacity,\n View,\n useColorScheme,\n} from \"react-native\";\n\nexport const DemoAuthBasicUI = ({\n appName,\n auth,\n children,\n}: {\n appName: string;\n auth: ReturnType<typeof useDemoAuth>;\n children: React.ReactNode;\n}) => {\n const colorScheme = useColorScheme();\n const darkMode = colorScheme === \"dark\";\n const [username, setUsername] = useState<string>(\"\");\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n const handleSignUp = () => {\n setErrorMessage(null);\n\n auth.signUp(username).catch((error) => {\n setErrorMessage(error.message);\n });\n };\n\n const handleLogIn = (username: string) => {\n setErrorMessage(null);\n\n auth.logIn(username).catch((error) => {\n setErrorMessage(error.message);\n });\n };\n\n if (auth.state === \"signedIn\") {\n return children;\n }\n\n return (\n <View\n style={[\n styles.container,\n darkMode ? styles.darkBackground : styles.lightBackground,\n ]}\n >\n <View style={styles.formContainer}>\n <Text\n style={[\n styles.headerText,\n darkMode ? styles.darkText : styles.lightText,\n ]}\n >\n {appName}\n </Text>\n\n {errorMessage && <Text style={styles.errorText}>{errorMessage}</Text>}\n\n <TextInput\n placeholder=\"Display name\"\n value={username}\n onChangeText={setUsername}\n placeholderTextColor={darkMode ? \"#fff\" : \"#000\"}\n style={[\n styles.textInput,\n darkMode ? styles.darkInput : styles.lightInput,\n ]}\n />\n\n <TouchableOpacity\n onPress={handleSignUp}\n style={[\n styles.button,\n darkMode ? styles.darkButton : styles.lightButton,\n ]}\n >\n <Text\n style={darkMode ? styles.darkButtonText : styles.lightButtonText}\n >\n Sign Up as new account\n </Text>\n </TouchableOpacity>\n\n <View style={styles.existingUsersContainer}>\n {auth.existingUsers.map((user) => (\n <TouchableOpacity\n key={user}\n onPress={() => handleLogIn(user)}\n style={[\n styles.existingUserButton,\n darkMode ? styles.darkUserButton : styles.lightUserButton,\n ]}\n >\n <Text style={darkMode ? styles.darkText : styles.lightText}>\n Log In as \"{user}\"\n </Text>\n </TouchableOpacity>\n ))}\n </View>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: 20,\n },\n formContainer: {\n width: \"80%\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n headerText: {\n fontSize: 24,\n marginBottom: 20,\n },\n errorText: {\n color: \"red\",\n marginVertical: 5,\n textAlign: \"center\",\n },\n textInput: {\n borderWidth: 1,\n padding: 10,\n marginVertical: 10,\n width: \"100%\",\n borderRadius: 6,\n },\n darkInput: {\n borderColor: \"#444\",\n backgroundColor: \"#000\",\n color: \"#fff\",\n },\n lightInput: {\n borderColor: \"#ddd\",\n backgroundColor: \"#fff\",\n color: \"#000\",\n },\n button: {\n paddingVertical: 15,\n paddingHorizontal: 10,\n borderRadius: 6,\n width: \"100%\",\n marginVertical: 10,\n },\n darkButton: {\n backgroundColor: \"#444\",\n },\n lightButton: {\n backgroundColor: \"#ddd\",\n },\n darkButtonText: {\n color: \"#fff\",\n textAlign: \"center\",\n },\n lightButtonText: {\n color: \"#000\",\n textAlign: \"center\",\n },\n existingUsersContainer: {\n width: \"100%\",\n marginTop: 20,\n },\n existingUserButton: {\n paddingVertical: 15,\n paddingHorizontal: 10,\n borderRadius: 6,\n marginVertical: 5,\n },\n darkUserButton: {\n backgroundColor: \"#222\",\n },\n lightUserButton: {\n backgroundColor: \"#eee\",\n },\n loadingText: {\n fontSize: 18,\n color: \"#888\",\n },\n darkText: {\n color: \"#fff\",\n },\n lightText: {\n color: \"#000\",\n },\n darkBackground: {\n backgroundColor: \"#000\",\n },\n lightBackground: {\n backgroundColor: \"#fff\",\n },\n});\n","import { KvStoreContext } from \"../storage/kv-store-context.js\";\n\nexport * from \"./DemoAuthUI.js\";\n\nexport function clearUserCredentials() {\n const kvStore = KvStoreContext.getInstance().getStorage();\n\n // TODO: Migrate the Auth methods to use the same storage key/interface\n return Promise.all([\n kvStore.delete(\"demo-auth-logged-in-secret\"),\n kvStore.delete(\"jazz-clerk-auth\"),\n kvStore.delete(\"jazz-logged-in-secret\"),\n ]);\n}\n","import { useEffect } from \"react\";\n\nimport { CoValueClassOrSchema, parseInviteLink } from \"jazz-tools\";\nimport { useJazzContext } from \"jazz-tools/react-core\";\nimport { Linking } from \"react-native\";\n\nexport {\n useCoState,\n experimental_useInboxSender,\n useDemoAuth,\n usePassphraseAuth,\n useJazzContext,\n useAuthSecretStorage,\n useIsAuthenticated,\n useAccount,\n} from \"jazz-tools/react-core\";\n\nexport function useAcceptInviteNative<S extends CoValueClassOrSchema>({\n invitedObjectSchema,\n onAccept,\n forValueHint,\n}: {\n invitedObjectSchema: S;\n onAccept: (projectID: string) => void;\n forValueHint?: string;\n}): void {\n const context = useJazzContext();\n\n if (!(\"me\" in context)) {\n throw new Error(\n \"useAcceptInviteNative can't be used in a JazzProvider with auth === 'guest'.\",\n );\n }\n\n useEffect(() => {\n const handleDeepLink = ({ url }: { url: string }) => {\n const result = parseInviteLink(url);\n if (result && result.valueHint === forValueHint) {\n context.me\n .acceptInvite(\n result.valueID,\n result.inviteSecret,\n invitedObjectSchema,\n )\n .then(() => {\n onAccept(result.valueID);\n })\n .catch((e) => {\n console.error(\"Failed to accept invite\", e);\n });\n }\n };\n\n const linkingListener = Linking.addEventListener(\"url\", handleDeepLink);\n\n void Linking.getInitialURL().then((url) => {\n if (url) handleDeepLink({ url });\n });\n\n return () => {\n linkingListener.remove();\n };\n }, [context, onAccept, invitedObjectSchema, forValueHint]);\n}\n","import {\n Account,\n AccountClass,\n AnyAccountSchema,\n CoValueFromRaw,\n InstanceOfSchema,\n JazzContextType,\n KvStore,\n} from \"jazz-tools\";\nimport { JazzContext, JazzContextManagerContext } from \"jazz-tools/react-core\";\nimport React, { useEffect, useRef } from \"react\";\nimport type { JazzContextManagerProps } from \"./ReactNativeContextManager.js\";\nimport { ReactNativeContextManager } from \"./ReactNativeContextManager.js\";\nimport { setupKvStore } from \"./platform.js\";\n\nexport type JazzProviderProps<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> = {\n children: React.ReactNode;\n kvStore?: KvStore;\n} & JazzContextManagerProps<S>;\n\n/** @category Context & Hooks */\nexport function JazzProviderCore<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n>({\n children,\n guestMode,\n sync,\n storage,\n AccountSchema,\n defaultProfileName,\n onLogOut,\n logOutReplacement,\n onAnonymousAccountDiscarded,\n kvStore,\n CryptoProvider,\n}: JazzProviderProps<S>) {\n setupKvStore(kvStore);\n\n const [contextManager] = React.useState(\n () => new ReactNativeContextManager<S>(),\n );\n\n const onLogOutRefCallback = useRefCallback(onLogOut);\n const logOutReplacementRefCallback = useRefCallback(logOutReplacement);\n const onAnonymousAccountDiscardedRefCallback = useRefCallback(\n onAnonymousAccountDiscarded,\n );\n const logoutReplacementActiveRef = useRef(false);\n logoutReplacementActiveRef.current = Boolean(logOutReplacement);\n\n const value = React.useSyncExternalStore<\n JazzContextType<InstanceOfSchema<S>> | undefined\n >(\n React.useCallback(\n (callback) => {\n const props = {\n AccountSchema,\n guestMode,\n sync,\n storage,\n defaultProfileName,\n onLogOut: onLogOutRefCallback,\n logOutReplacement: logoutReplacementActiveRef.current\n ? logOutReplacementRefCallback\n : undefined,\n onAnonymousAccountDiscarded: onAnonymousAccountDiscardedRefCallback,\n CryptoProvider,\n } satisfies JazzContextManagerProps<S>;\n\n if (contextManager.propsChanged(props)) {\n contextManager.createContext(props).catch((error) => {\n console.log(error.stack);\n console.error(\"Error creating Jazz React Native context:\", error);\n });\n }\n\n return contextManager.subscribe(callback);\n },\n [sync, guestMode].concat(storage as any),\n ),\n () => contextManager.getCurrentValue(),\n () => contextManager.getCurrentValue(),\n );\n\n useEffect(() => {\n // In development mode we don't return a cleanup function because otherwise\n // the double effect execution would mark the context as done immediately.\n if (process.env.NODE_ENV === \"development\") return;\n\n return () => {\n contextManager.done();\n };\n }, []);\n\n return (\n <JazzContext.Provider value={value}>\n <JazzContextManagerContext.Provider value={contextManager}>\n {value && children}\n </JazzContextManagerContext.Provider>\n </JazzContext.Provider>\n );\n}\n\nfunction useRefCallback<T extends (...args: any[]) => any>(callback?: T) {\n const callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n return useRef(\n (...args: Parameters<T>): ReturnType<T> => callbackRef.current?.(...args),\n ).current;\n}\n","import {\n Account,\n AccountClass,\n CoValueFromRaw,\n JazzContextManager,\n KvStore,\n SyncConfig,\n} from \"jazz-tools\";\nimport type {\n AnyAccountSchema,\n InstanceOfSchema,\n JazzContextManagerAuthProps,\n} from \"jazz-tools\";\nimport {\n BaseReactNativeContextOptions,\n createJazzReactNativeContext,\n createJazzReactNativeGuestContext,\n} from \"./platform.js\";\nimport { KvStoreContext } from \"./storage/kv-store-context.js\";\n\nexport type JazzContextManagerProps<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> = {\n guestMode?: boolean;\n sync: SyncConfig;\n onLogOut?: () => void;\n logOutReplacement?: () => void;\n storage?: BaseReactNativeContextOptions[\"storage\"];\n AccountSchema?: S;\n defaultProfileName?: string;\n onAnonymousAccountDiscarded?: (\n anonymousAccount: InstanceOfSchema<S>,\n ) => Promise<void>;\n CryptoProvider?: BaseReactNativeContextOptions[\"CryptoProvider\"];\n};\n\nexport class ReactNativeContextManager<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> extends JazzContextManager<InstanceOfSchema<S>, JazzContextManagerProps<S>> {\n async getNewContext(\n props: JazzContextManagerProps<S>,\n authProps?: JazzContextManagerAuthProps,\n ) {\n if (props.guestMode) {\n return createJazzReactNativeGuestContext({\n sync: props.sync,\n storage: props.storage,\n authSecretStorage: this.authSecretStorage,\n CryptoProvider: props.CryptoProvider,\n });\n } else {\n return createJazzReactNativeContext<S>({\n sync: props.sync,\n storage: props.storage,\n AccountSchema: props.AccountSchema,\n credentials: authProps?.credentials,\n newAccountProps: authProps?.newAccountProps,\n defaultProfileName: props.defaultProfileName,\n authSecretStorage: this.authSecretStorage,\n CryptoProvider: props.CryptoProvider,\n });\n }\n }\n\n getKvStore(): KvStore {\n return KvStoreContext.getInstance().getStorage();\n }\n\n propsChanged(props: JazzContextManagerProps<S>) {\n if (!this.props) {\n return true;\n }\n\n return (\n this.props.sync.when !== props.sync.when ||\n this.props.sync.peer !== props.sync.peer ||\n this.props.guestMode !== props.guestMode\n );\n }\n}\n","import NetInfo from \"@react-native-community/netinfo\";\nimport { LocalNode, Peer, RawAccountID, getSqliteStorageAsync } from \"cojson\";\nimport { PureJSCrypto } from \"cojson/dist/crypto/PureJSCrypto\"; // Importing from dist to not rely on the exports field\nimport {\n Account,\n AccountClass,\n AgentID,\n AnyAccountSchema,\n AuthCredentials,\n AuthSecretStorage,\n CoValue,\n CoValueFromRaw,\n CryptoProvider,\n ID,\n NewAccountProps,\n SessionID,\n SyncConfig,\n createInviteLink as baseCreateInviteLink,\n createAnonymousJazzContext,\n createJazzContext,\n} from \"jazz-tools\";\nimport { KvStore, KvStoreContext } from \"./storage/kv-store-context.js\";\n\nimport { SQLiteDatabaseDriverAsync } from \"cojson\";\nimport { WebSocketPeerWithReconnection } from \"cojson-transport-ws\";\nimport type { RNQuickCrypto } from \"jazz-tools/react-native-core/crypto\";\n\nexport type BaseReactNativeContextOptions = {\n sync: SyncConfig;\n reconnectionTimeout?: number;\n storage?: SQLiteDatabaseDriverAsync | \"disabled\";\n CryptoProvider?: typeof PureJSCrypto | typeof RNQuickCrypto;\n authSecretStorage: AuthSecretStorage;\n};\n\nclass ReactNativeWebSocketPeerWithReconnection extends WebSocketPeerWithReconnection {\n onNetworkChange(callback: (connected: boolean) => void): () => void {\n return NetInfo.addEventListener((state) =>\n callback(state.isConnected ?? false),\n );\n }\n}\n\nasync function setupPeers(options: BaseReactNativeContextOptions) {\n const CryptoProvider = options.CryptoProvider || PureJSCrypto;\n const crypto = await CryptoProvider.create();\n let node: LocalNode | undefined = undefined;\n\n const peersToLoadFrom: Peer[] = [];\n\n const storage =\n options.storage && options.storage !== \"disabled\"\n ? await getSqliteStorageAsync(options.storage)\n : undefined;\n\n if (options.sync.when === \"never\") {\n return {\n toggleNetwork: () => {},\n peersToLoadFrom,\n setNode: () => {},\n crypto,\n storage,\n };\n }\n\n const wsPeer = new ReactNativeWebSocketPeerWithReconnection({\n peer: options.sync.peer,\n reconnectionTimeout: options.reconnectionTimeout,\n addPeer: (peer) => {\n if (node) {\n node.syncManager.addPeer(peer);\n } else {\n peersToLoadFrom.push(peer);\n }\n },\n removePeer: (peer) => {\n peersToLoadFrom.splice(peersToLoadFrom.indexOf(peer), 1);\n },\n });\n\n function toggleNetwork(enabled: boolean) {\n if (enabled) {\n wsPeer.enable();\n } else {\n wsPeer.disable();\n }\n }\n\n function setNode(value: LocalNode) {\n node = value;\n }\n\n if (options.sync.when === \"always\" || !options.sync.when) {\n toggleNetwork(true);\n }\n\n return {\n toggleNetwork,\n peersToLoadFrom,\n setNode,\n crypto,\n storage,\n };\n}\n\nexport async function createJazzReactNativeGuestContext(\n options: BaseReactNativeContextOptions,\n) {\n const { toggleNetwork, peersToLoadFrom, setNode, crypto, storage } =\n await setupPeers(options);\n\n const context = createAnonymousJazzContext({\n crypto,\n peersToLoadFrom,\n storage,\n });\n\n setNode(context.agent.node);\n\n options.authSecretStorage.emitUpdate(null);\n\n return {\n guest: context.agent,\n node: context.agent.node,\n done: () => {\n // TODO: Sync all the covalues before closing the connection & context\n toggleNetwork(false);\n context.done();\n },\n logOut: () => {\n return context.logOut();\n },\n };\n}\n\nexport type ReactNativeContextOptions<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> = {\n credentials?: AuthCredentials;\n AccountSchema?: S;\n newAccountProps?: NewAccountProps;\n defaultProfileName?: string;\n} & BaseReactNativeContextOptions;\n\nexport async function createJazzReactNativeContext<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n>(options: ReactNativeContextOptions<S>) {\n const { toggleNetwork, peersToLoadFrom, setNode, crypto, storage } =\n await setupPeers(options);\n\n let unsubscribeAuthUpdate = () => {};\n\n if (options.sync.when === \"signedUp\") {\n const authSecretStorage = options.authSecretStorage;\n const credentials = options.credentials ?? (await authSecretStorage.get());\n\n // To update the internal state with the current credentials\n authSecretStorage.emitUpdate(credentials);\n\n function handleAuthUpdate(isAuthenticated: boolean) {\n if (isAuthenticated) {\n toggleNetwork(true);\n } else {\n toggleNetwork(false);\n }\n }\n\n unsubscribeAuthUpdate = authSecretStorage.onUpdate(handleAuthUpdate);\n handleAuthUpdate(authSecretStorage.isAuthenticated);\n }\n\n const context = await createJazzContext({\n credentials: options.credentials,\n newAccountProps: options.newAccountProps,\n peersToLoadFrom,\n crypto,\n defaultProfileName: options.defaultProfileName,\n AccountSchema: options.AccountSchema,\n sessionProvider: provideLockSession,\n authSecretStorage: options.authSecretStorage,\n storage,\n });\n\n setNode(context.node);\n\n return {\n me: context.account,\n node: context.node,\n authSecretStorage: context.authSecretStorage,\n done: () => {\n // TODO: Sync all the covalues before closing the connection & context\n toggleNetwork(false);\n unsubscribeAuthUpdate();\n context.done();\n },\n logOut: () => {\n unsubscribeAuthUpdate();\n return context.logOut();\n },\n };\n}\n\n/** @category Auth Providers */\nexport type SessionProvider = (\n accountID: ID<Account> | AgentID,\n) => Promise<SessionID>;\n\nexport async function provideLockSession(\n accountID: ID<Account> | AgentID,\n crypto: CryptoProvider,\n) {\n const sessionDone = () => {};\n\n const kvStore = KvStoreContext.getInstance().getStorage();\n\n const sessionID =\n ((await kvStore.get(accountID)) as SessionID) ||\n crypto.newRandomSessionID(accountID as RawAccountID | AgentID);\n await kvStore.set(accountID, sessionID);\n\n return Promise.resolve({\n sessionID,\n sessionDone,\n });\n}\n\n/** @category Invite Links */\nexport function createInviteLink<C extends CoValue>(\n value: C,\n role: \"reader\" | \"writer\" | \"admin\",\n { baseURL, valueHint }: { baseURL?: string; valueHint?: string } = {},\n): string {\n return baseCreateInviteLink(value, role, baseURL ?? \"\", valueHint);\n}\n\nexport function setupKvStore(\n kvStore: KvStore | undefined,\n): KvStore | undefined {\n if (!kvStore) {\n return undefined;\n }\n KvStoreContext.getInstance().initialize(kvStore);\n return kvStore;\n}\n","import { FileStream, ImageDefinition } from \"jazz-tools\";\nimport { highestResAvailable } from \"jazz-tools/media\";\nimport { forwardRef, useEffect, useMemo, useState } from \"react\";\nimport { Image as RNImage, ImageProps as RNImageProps } from \"react-native\";\nimport { useCoState } from \"../hooks.js\";\n\nexport type ImageProps = Omit<RNImageProps, \"width\" | \"height\" | \"source\"> & {\n /** The ID of the ImageDefinition to display */\n imageId: string;\n /**\n * Width of the image. Can be a number or \"original\" to use the original image width.\n * When set to \"original\", the component will calculate the appropriate height to maintain aspect ratio.\n *\n * @example\n * ```tsx\n * // Fixed width, auto-calculated height\n * <Image imageId=\"123\" width={600} />\n *\n * // Original width\n * <Image imageId=\"123\" width=\"original\" />\n * ```\n */\n width?: number | \"original\";\n /**\n * Height of the image. Can be a number or \"original\" to use the original image height.\n * When set to \"original\", the component will calculate the appropriate width to maintain aspect ratio.\n *\n * @example\n * ```tsx\n * // Fixed height, auto-calculated width\n * <Image imageId=\"123\" height={400} />\n *\n * // Original height\n * <Image imageId=\"123\" height=\"original\" />\n * ```\n */\n height?: number | \"original\";\n};\n\n/**\n * A React Native Image component that integrates with Jazz's ImageDefinition system.\n *\n * @example\n * ```tsx\n * import { Image } from \"jazz-tools/react-native\";\n * import { StyleSheet } from \"react-native\";\n *\n * function ProfilePicture({ imageId }) {\n * return (\n * <Image\n * imageId={imageId}\n * style={styles.profilePic}\n * width={100}\n * height={100}\n * resizeMode=\"cover\"\n * />\n * );\n * }\n *\n * const styles = StyleSheet.create({\n * profilePic: {\n * borderRadius: 50,\n * }\n * });\n * ```\n */\nexport const Image = forwardRef<RNImage, ImageProps>(function Image(\n { imageId, width, height, ...props },\n ref,\n) {\n const image = useCoState(ImageDefinition, imageId);\n const [src, setSrc] = useState<string | undefined>(image?.placeholderDataURL);\n\n const dimensions: { width: number | undefined; height: number | undefined } =\n useMemo(() => {\n const originalWidth = image?.originalSize?.[0];\n const originalHeight = image?.originalSize?.[1];\n\n // Both width and height are \"original\"\n if (width === \"original\" && height === \"original\") {\n return { width: originalWidth, height: originalHeight };\n }\n\n // Width is \"original\", height is a number\n if (width === \"original\" && typeof height === \"number\") {\n if (originalWidth && originalHeight) {\n return {\n width: Math.round((height * originalWidth) / originalHeight),\n height,\n };\n }\n return { width: undefined, height };\n }\n\n // Height is \"original\", width is a number\n if (height === \"original\" && typeof width === \"number\") {\n if (originalWidth && originalHeight) {\n return {\n width,\n height: Math.round((width * originalHeight) / originalWidth),\n };\n }\n return { width, height: undefined };\n }\n\n // In all other cases, use the property value:\n return {\n width: width === \"original\" ? originalWidth : width,\n height: height === \"original\" ? originalHeight : height,\n };\n }, [image?.originalSize, width, height]);\n\n useEffect(() => {\n if (!image) return;\n\n let lastBestImage: FileStream | string | undefined =\n image.placeholderDataURL;\n\n const unsub = image.$jazz.subscribe({}, (update) => {\n if (lastBestImage === undefined && update.placeholderDataURL) {\n setSrc(update.placeholderDataURL);\n lastBestImage = update.placeholderDataURL;\n }\n\n const bestImage = highestResAvailable(\n update,\n dimensions.width || dimensions.height || 9999,\n dimensions.height || dimensions.width || 9999,\n );\n\n if (!bestImage) return;\n\n if (lastBestImage === bestImage.image) return;\n\n const url = bestImage.image.asBase64({ dataURL: true });\n\n if (url) {\n setSrc(url);\n lastBestImage = bestImage.image;\n }\n });\n\n return unsub;\n }, [image]);\n\n if (!image) {\n return null;\n }\n\n return (\n <RNImage\n ref={ref}\n source={{ uri: src }}\n width={dimensions.width}\n height={dimensions.height}\n {...props}\n />\n );\n});\n","export * from \"./auth/auth.js\";\nexport * from \"./hooks.js\";\nexport * from \"./provider.js\";\nexport * from \"./storage/kv-store-context.js\";\nexport * from \"./media/image.js\";\n\nexport { SQLiteDatabaseDriverAsync } from \"cojson\";\nexport { parseInviteLink } from \"jazz-tools\";\nexport { createInviteLink, setupKvStore } from \"./platform.js\";\n"],"mappings":"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","names":["username","useJazzContext","React","useEffect","CryptoProvider","handleAuthUpdate","jsx","CryptoProvider","React","useEffect","useEffect","useState","jsx","Image","useState","useEffect","parseInviteLink"]}
1
+ {"version":3,"sources":["../../src/react-native-core/storage/kv-store-context.ts","../../src/react-native-core/auth/DemoAuthUI.tsx","../../src/react-native-core/auth/auth.ts","../../src/react-native-core/hooks.tsx","../../src/react-native-core/provider.tsx","../../src/react-native-core/ReactNativeContextManager.ts","../../src/react-native-core/platform.ts","../../src/react-native-core/media/image.tsx","../../src/react-native-core/index.ts"],"sourcesContent":["export interface KvStore {\n get(key: string): Promise<string | null>;\n set(key: string, value: string): Promise<void>;\n delete(key: string): Promise<void>;\n clearAll(): Promise<void>;\n}\n\nexport class KvStoreContext {\n private static instance: KvStoreContext;\n private storageInstance: KvStore | null = null;\n\n private constructor() {}\n\n public static getInstance(): KvStoreContext {\n if (!KvStoreContext.instance) {\n KvStoreContext.instance = new KvStoreContext();\n }\n return KvStoreContext.instance;\n }\n\n public isInitialized(): boolean {\n return this.storageInstance !== null;\n }\n\n public initialize(store: KvStore): void {\n if (!this.storageInstance) {\n this.storageInstance = store;\n }\n }\n\n public getStorage(): KvStore {\n if (!this.storageInstance) {\n throw new Error(\"Storage instance is not initialized.\");\n }\n return this.storageInstance;\n }\n}\n\nexport default KvStoreContext;\n","import { useDemoAuth } from \"jazz-tools/react-core\";\nimport React, { useState } from \"react\";\nimport {\n StyleSheet,\n Text,\n TextInput,\n TouchableOpacity,\n View,\n useColorScheme,\n} from \"react-native\";\n\nexport const DemoAuthBasicUI = ({\n appName,\n auth,\n children,\n}: {\n appName: string;\n auth: ReturnType<typeof useDemoAuth>;\n children: React.ReactNode;\n}) => {\n const colorScheme = useColorScheme();\n const darkMode = colorScheme === \"dark\";\n const [username, setUsername] = useState<string>(\"\");\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n const handleSignUp = () => {\n setErrorMessage(null);\n\n auth.signUp(username).catch((error) => {\n setErrorMessage(error.message);\n });\n };\n\n const handleLogIn = (username: string) => {\n setErrorMessage(null);\n\n auth.logIn(username).catch((error) => {\n setErrorMessage(error.message);\n });\n };\n\n if (auth.state === \"signedIn\") {\n return children;\n }\n\n return (\n <View\n style={[\n styles.container,\n darkMode ? styles.darkBackground : styles.lightBackground,\n ]}\n >\n <View style={styles.formContainer}>\n <Text\n style={[\n styles.headerText,\n darkMode ? styles.darkText : styles.lightText,\n ]}\n >\n {appName}\n </Text>\n\n {errorMessage && <Text style={styles.errorText}>{errorMessage}</Text>}\n\n <TextInput\n placeholder=\"Display name\"\n value={username}\n onChangeText={setUsername}\n placeholderTextColor={darkMode ? \"#fff\" : \"#000\"}\n style={[\n styles.textInput,\n darkMode ? styles.darkInput : styles.lightInput,\n ]}\n />\n\n <TouchableOpacity\n onPress={handleSignUp}\n style={[\n styles.button,\n darkMode ? styles.darkButton : styles.lightButton,\n ]}\n >\n <Text\n style={darkMode ? styles.darkButtonText : styles.lightButtonText}\n >\n Sign Up as new account\n </Text>\n </TouchableOpacity>\n\n <View style={styles.existingUsersContainer}>\n {auth.existingUsers.map((user) => (\n <TouchableOpacity\n key={user}\n onPress={() => handleLogIn(user)}\n style={[\n styles.existingUserButton,\n darkMode ? styles.darkUserButton : styles.lightUserButton,\n ]}\n >\n <Text style={darkMode ? styles.darkText : styles.lightText}>\n Log In as \"{user}\"\n </Text>\n </TouchableOpacity>\n ))}\n </View>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: 20,\n },\n formContainer: {\n width: \"80%\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n headerText: {\n fontSize: 24,\n marginBottom: 20,\n },\n errorText: {\n color: \"red\",\n marginVertical: 5,\n textAlign: \"center\",\n },\n textInput: {\n borderWidth: 1,\n padding: 10,\n marginVertical: 10,\n width: \"100%\",\n borderRadius: 6,\n },\n darkInput: {\n borderColor: \"#444\",\n backgroundColor: \"#000\",\n color: \"#fff\",\n },\n lightInput: {\n borderColor: \"#ddd\",\n backgroundColor: \"#fff\",\n color: \"#000\",\n },\n button: {\n paddingVertical: 15,\n paddingHorizontal: 10,\n borderRadius: 6,\n width: \"100%\",\n marginVertical: 10,\n },\n darkButton: {\n backgroundColor: \"#444\",\n },\n lightButton: {\n backgroundColor: \"#ddd\",\n },\n darkButtonText: {\n color: \"#fff\",\n textAlign: \"center\",\n },\n lightButtonText: {\n color: \"#000\",\n textAlign: \"center\",\n },\n existingUsersContainer: {\n width: \"100%\",\n marginTop: 20,\n },\n existingUserButton: {\n paddingVertical: 15,\n paddingHorizontal: 10,\n borderRadius: 6,\n marginVertical: 5,\n },\n darkUserButton: {\n backgroundColor: \"#222\",\n },\n lightUserButton: {\n backgroundColor: \"#eee\",\n },\n loadingText: {\n fontSize: 18,\n color: \"#888\",\n },\n darkText: {\n color: \"#fff\",\n },\n lightText: {\n color: \"#000\",\n },\n darkBackground: {\n backgroundColor: \"#000\",\n },\n lightBackground: {\n backgroundColor: \"#fff\",\n },\n});\n","import { KvStoreContext } from \"../storage/kv-store-context.js\";\n\nexport * from \"./DemoAuthUI.js\";\n\nexport function clearUserCredentials() {\n const kvStore = KvStoreContext.getInstance().getStorage();\n\n // TODO: Migrate the Auth methods to use the same storage key/interface\n return Promise.all([\n kvStore.delete(\"demo-auth-logged-in-secret\"),\n kvStore.delete(\"jazz-clerk-auth\"),\n kvStore.delete(\"jazz-logged-in-secret\"),\n ]);\n}\n","import { useEffect } from \"react\";\n\nimport { CoValueClassOrSchema, parseInviteLink } from \"jazz-tools\";\nimport { useJazzContext } from \"jazz-tools/react-core\";\nimport { Linking } from \"react-native\";\n\nexport {\n useCoState,\n experimental_useInboxSender,\n useDemoAuth,\n usePassphraseAuth,\n useJazzContext,\n useAuthSecretStorage,\n useIsAuthenticated,\n useAccount,\n useCoStateWithSelector,\n} from \"jazz-tools/react-core\";\n\nexport function useAcceptInviteNative<S extends CoValueClassOrSchema>({\n invitedObjectSchema,\n onAccept,\n forValueHint,\n}: {\n invitedObjectSchema: S;\n onAccept: (projectID: string) => void;\n forValueHint?: string;\n}): void {\n const context = useJazzContext();\n\n if (!(\"me\" in context)) {\n throw new Error(\n \"useAcceptInviteNative can't be used in a JazzProvider with auth === 'guest'.\",\n );\n }\n\n useEffect(() => {\n const handleDeepLink = ({ url }: { url: string }) => {\n const result = parseInviteLink(url);\n if (result && result.valueHint === forValueHint) {\n context.me\n .acceptInvite(\n result.valueID,\n result.inviteSecret,\n invitedObjectSchema,\n )\n .then(() => {\n onAccept(result.valueID);\n })\n .catch((e) => {\n console.error(\"Failed to accept invite\", e);\n });\n }\n };\n\n const linkingListener = Linking.addEventListener(\"url\", handleDeepLink);\n\n void Linking.getInitialURL().then((url) => {\n if (url) handleDeepLink({ url });\n });\n\n return () => {\n linkingListener.remove();\n };\n }, [context, onAccept, invitedObjectSchema, forValueHint]);\n}\n","import {\n Account,\n AccountClass,\n AnyAccountSchema,\n CoValueFromRaw,\n InstanceOfSchema,\n JazzContextType,\n KvStore,\n} from \"jazz-tools\";\nimport { JazzContext, JazzContextManagerContext } from \"jazz-tools/react-core\";\nimport React, { useEffect, useRef } from \"react\";\nimport type { JazzContextManagerProps } from \"./ReactNativeContextManager.js\";\nimport { ReactNativeContextManager } from \"./ReactNativeContextManager.js\";\nimport { setupKvStore } from \"./platform.js\";\n\nexport type JazzProviderProps<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> = {\n children: React.ReactNode;\n kvStore?: KvStore;\n} & JazzContextManagerProps<S>;\n\n/** @category Context & Hooks */\nexport function JazzProviderCore<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n>({\n children,\n guestMode,\n sync,\n storage,\n AccountSchema,\n defaultProfileName,\n onLogOut,\n logOutReplacement,\n onAnonymousAccountDiscarded,\n kvStore,\n CryptoProvider,\n}: JazzProviderProps<S>) {\n setupKvStore(kvStore);\n\n const [contextManager] = React.useState(\n () => new ReactNativeContextManager<S>(),\n );\n\n const onLogOutRefCallback = useRefCallback(onLogOut);\n const logOutReplacementRefCallback = useRefCallback(logOutReplacement);\n const onAnonymousAccountDiscardedRefCallback = useRefCallback(\n onAnonymousAccountDiscarded,\n );\n const logoutReplacementActiveRef = useRef(false);\n logoutReplacementActiveRef.current = Boolean(logOutReplacement);\n\n const value = React.useSyncExternalStore<\n JazzContextType<InstanceOfSchema<S>> | undefined\n >(\n React.useCallback(\n (callback) => {\n const props = {\n AccountSchema,\n guestMode,\n sync,\n storage,\n defaultProfileName,\n onLogOut: onLogOutRefCallback,\n logOutReplacement: logoutReplacementActiveRef.current\n ? logOutReplacementRefCallback\n : undefined,\n onAnonymousAccountDiscarded: onAnonymousAccountDiscardedRefCallback,\n CryptoProvider,\n } satisfies JazzContextManagerProps<S>;\n\n if (contextManager.propsChanged(props)) {\n contextManager.createContext(props).catch((error) => {\n console.log(error.stack);\n console.error(\"Error creating Jazz React Native context:\", error);\n });\n }\n\n return contextManager.subscribe(callback);\n },\n [sync, guestMode].concat(storage as any),\n ),\n () => contextManager.getCurrentValue(),\n () => contextManager.getCurrentValue(),\n );\n\n useEffect(() => {\n // In development mode we don't return a cleanup function because otherwise\n // the double effect execution would mark the context as done immediately.\n if (process.env.NODE_ENV === \"development\") return;\n\n return () => {\n contextManager.done();\n };\n }, []);\n\n return (\n <JazzContext.Provider value={value}>\n <JazzContextManagerContext.Provider value={contextManager}>\n {value && children}\n </JazzContextManagerContext.Provider>\n </JazzContext.Provider>\n );\n}\n\nfunction useRefCallback<T extends (...args: any[]) => any>(callback?: T) {\n const callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n return useRef(\n (...args: Parameters<T>): ReturnType<T> => callbackRef.current?.(...args),\n ).current;\n}\n","import {\n Account,\n AccountClass,\n CoValueFromRaw,\n JazzContextManager,\n KvStore,\n SyncConfig,\n} from \"jazz-tools\";\nimport type {\n AnyAccountSchema,\n InstanceOfSchema,\n JazzContextManagerAuthProps,\n} from \"jazz-tools\";\nimport {\n BaseReactNativeContextOptions,\n createJazzReactNativeContext,\n createJazzReactNativeGuestContext,\n} from \"./platform.js\";\nimport { KvStoreContext } from \"./storage/kv-store-context.js\";\n\nexport type JazzContextManagerProps<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> = {\n guestMode?: boolean;\n sync: SyncConfig;\n onLogOut?: () => void;\n logOutReplacement?: () => void;\n storage?: BaseReactNativeContextOptions[\"storage\"];\n AccountSchema?: S;\n defaultProfileName?: string;\n onAnonymousAccountDiscarded?: (\n anonymousAccount: InstanceOfSchema<S>,\n ) => Promise<void>;\n CryptoProvider?: BaseReactNativeContextOptions[\"CryptoProvider\"];\n};\n\nexport class ReactNativeContextManager<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> extends JazzContextManager<InstanceOfSchema<S>, JazzContextManagerProps<S>> {\n async getNewContext(\n props: JazzContextManagerProps<S>,\n authProps?: JazzContextManagerAuthProps,\n ) {\n if (props.guestMode) {\n return createJazzReactNativeGuestContext({\n sync: props.sync,\n storage: props.storage,\n authSecretStorage: this.authSecretStorage,\n CryptoProvider: props.CryptoProvider,\n });\n } else {\n return createJazzReactNativeContext<S>({\n sync: props.sync,\n storage: props.storage,\n AccountSchema: props.AccountSchema,\n credentials: authProps?.credentials,\n newAccountProps: authProps?.newAccountProps,\n defaultProfileName: props.defaultProfileName,\n authSecretStorage: this.authSecretStorage,\n CryptoProvider: props.CryptoProvider,\n });\n }\n }\n\n getKvStore(): KvStore {\n return KvStoreContext.getInstance().getStorage();\n }\n\n propsChanged(props: JazzContextManagerProps<S>) {\n if (!this.props) {\n return true;\n }\n\n return (\n this.props.sync.when !== props.sync.when ||\n this.props.sync.peer !== props.sync.peer ||\n this.props.guestMode !== props.guestMode\n );\n }\n}\n","import NetInfo from \"@react-native-community/netinfo\";\nimport { LocalNode, Peer, RawAccountID, getSqliteStorageAsync } from \"cojson\";\nimport { PureJSCrypto } from \"cojson/dist/crypto/PureJSCrypto\"; // Importing from dist to not rely on the exports field\nimport {\n Account,\n AccountClass,\n AgentID,\n AnyAccountSchema,\n AuthCredentials,\n AuthSecretStorage,\n CoValue,\n CoValueFromRaw,\n CryptoProvider,\n ID,\n NewAccountProps,\n SessionID,\n SyncConfig,\n createInviteLink as baseCreateInviteLink,\n createAnonymousJazzContext,\n createJazzContext,\n} from \"jazz-tools\";\nimport { KvStore, KvStoreContext } from \"./storage/kv-store-context.js\";\n\nimport { SQLiteDatabaseDriverAsync } from \"cojson\";\nimport { WebSocketPeerWithReconnection } from \"cojson-transport-ws\";\nimport type { RNQuickCrypto } from \"jazz-tools/react-native-core/crypto\";\n\nexport type BaseReactNativeContextOptions = {\n sync: SyncConfig;\n reconnectionTimeout?: number;\n storage?: SQLiteDatabaseDriverAsync | \"disabled\";\n CryptoProvider?: typeof PureJSCrypto | typeof RNQuickCrypto;\n authSecretStorage: AuthSecretStorage;\n};\n\nclass ReactNativeWebSocketPeerWithReconnection extends WebSocketPeerWithReconnection {\n onNetworkChange(callback: (connected: boolean) => void): () => void {\n return NetInfo.addEventListener((state) =>\n callback(state.isConnected ?? false),\n );\n }\n}\n\nasync function setupPeers(options: BaseReactNativeContextOptions) {\n const CryptoProvider = options.CryptoProvider || PureJSCrypto;\n const crypto = await CryptoProvider.create();\n let node: LocalNode | undefined = undefined;\n\n const peersToLoadFrom: Peer[] = [];\n\n const storage =\n options.storage && options.storage !== \"disabled\"\n ? await getSqliteStorageAsync(options.storage)\n : undefined;\n\n if (options.sync.when === \"never\") {\n return {\n toggleNetwork: () => {},\n peersToLoadFrom,\n setNode: () => {},\n crypto,\n storage,\n };\n }\n\n const wsPeer = new ReactNativeWebSocketPeerWithReconnection({\n peer: options.sync.peer,\n reconnectionTimeout: options.reconnectionTimeout,\n addPeer: (peer) => {\n if (node) {\n node.syncManager.addPeer(peer);\n } else {\n peersToLoadFrom.push(peer);\n }\n },\n removePeer: (peer) => {\n peersToLoadFrom.splice(peersToLoadFrom.indexOf(peer), 1);\n },\n });\n\n function toggleNetwork(enabled: boolean) {\n if (enabled) {\n wsPeer.enable();\n } else {\n wsPeer.disable();\n }\n }\n\n function setNode(value: LocalNode) {\n node = value;\n }\n\n if (options.sync.when === \"always\" || !options.sync.when) {\n toggleNetwork(true);\n }\n\n return {\n toggleNetwork,\n peersToLoadFrom,\n setNode,\n crypto,\n storage,\n };\n}\n\nexport async function createJazzReactNativeGuestContext(\n options: BaseReactNativeContextOptions,\n) {\n const { toggleNetwork, peersToLoadFrom, setNode, crypto, storage } =\n await setupPeers(options);\n\n const context = createAnonymousJazzContext({\n crypto,\n peersToLoadFrom,\n storage,\n });\n\n setNode(context.agent.node);\n\n options.authSecretStorage.emitUpdate(null);\n\n return {\n guest: context.agent,\n node: context.agent.node,\n done: () => {\n // TODO: Sync all the covalues before closing the connection & context\n toggleNetwork(false);\n context.done();\n },\n logOut: () => {\n return context.logOut();\n },\n };\n}\n\nexport type ReactNativeContextOptions<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> = {\n credentials?: AuthCredentials;\n AccountSchema?: S;\n newAccountProps?: NewAccountProps;\n defaultProfileName?: string;\n} & BaseReactNativeContextOptions;\n\nexport async function createJazzReactNativeContext<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n>(options: ReactNativeContextOptions<S>) {\n const { toggleNetwork, peersToLoadFrom, setNode, crypto, storage } =\n await setupPeers(options);\n\n let unsubscribeAuthUpdate = () => {};\n\n if (options.sync.when === \"signedUp\") {\n const authSecretStorage = options.authSecretStorage;\n const credentials = options.credentials ?? (await authSecretStorage.get());\n\n // To update the internal state with the current credentials\n authSecretStorage.emitUpdate(credentials);\n\n function handleAuthUpdate(isAuthenticated: boolean) {\n if (isAuthenticated) {\n toggleNetwork(true);\n } else {\n toggleNetwork(false);\n }\n }\n\n unsubscribeAuthUpdate = authSecretStorage.onUpdate(handleAuthUpdate);\n handleAuthUpdate(authSecretStorage.isAuthenticated);\n }\n\n const context = await createJazzContext({\n credentials: options.credentials,\n newAccountProps: options.newAccountProps,\n peersToLoadFrom,\n crypto,\n defaultProfileName: options.defaultProfileName,\n AccountSchema: options.AccountSchema,\n sessionProvider: provideLockSession,\n authSecretStorage: options.authSecretStorage,\n storage,\n });\n\n setNode(context.node);\n\n return {\n me: context.account,\n node: context.node,\n authSecretStorage: context.authSecretStorage,\n done: () => {\n // TODO: Sync all the covalues before closing the connection & context\n toggleNetwork(false);\n unsubscribeAuthUpdate();\n context.done();\n },\n logOut: () => {\n unsubscribeAuthUpdate();\n return context.logOut();\n },\n };\n}\n\n/** @category Auth Providers */\nexport type SessionProvider = (\n accountID: ID<Account> | AgentID,\n) => Promise<SessionID>;\n\nexport async function provideLockSession(\n accountID: ID<Account> | AgentID,\n crypto: CryptoProvider,\n) {\n const sessionDone = () => {};\n\n const kvStore = KvStoreContext.getInstance().getStorage();\n\n const sessionID =\n ((await kvStore.get(accountID)) as SessionID) ||\n crypto.newRandomSessionID(accountID as RawAccountID | AgentID);\n await kvStore.set(accountID, sessionID);\n\n return Promise.resolve({\n sessionID,\n sessionDone,\n });\n}\n\n/** @category Invite Links */\nexport function createInviteLink<C extends CoValue>(\n value: C,\n role: \"reader\" | \"writer\" | \"admin\",\n { baseURL, valueHint }: { baseURL?: string; valueHint?: string } = {},\n): string {\n return baseCreateInviteLink(value, role, baseURL ?? \"\", valueHint);\n}\n\nexport function setupKvStore(\n kvStore: KvStore | undefined,\n): KvStore | undefined {\n if (!kvStore) {\n return undefined;\n }\n KvStoreContext.getInstance().initialize(kvStore);\n return kvStore;\n}\n","import { FileStream, ImageDefinition } from \"jazz-tools\";\nimport { highestResAvailable } from \"jazz-tools/media\";\nimport { forwardRef, useEffect, useMemo, useState } from \"react\";\nimport { Image as RNImage, ImageProps as RNImageProps } from \"react-native\";\nimport { useCoState } from \"../hooks.js\";\n\nexport type ImageProps = Omit<RNImageProps, \"width\" | \"height\" | \"source\"> & {\n /** The ID of the ImageDefinition to display */\n imageId: string;\n /**\n * Width of the image. Can be a number or \"original\" to use the original image width.\n * When set to \"original\", the component will calculate the appropriate height to maintain aspect ratio.\n *\n * @example\n * ```tsx\n * // Fixed width, auto-calculated height\n * <Image imageId=\"123\" width={600} />\n *\n * // Original width\n * <Image imageId=\"123\" width=\"original\" />\n * ```\n */\n width?: number | \"original\";\n /**\n * Height of the image. Can be a number or \"original\" to use the original image height.\n * When set to \"original\", the component will calculate the appropriate width to maintain aspect ratio.\n *\n * @example\n * ```tsx\n * // Fixed height, auto-calculated width\n * <Image imageId=\"123\" height={400} />\n *\n * // Original height\n * <Image imageId=\"123\" height=\"original\" />\n * ```\n */\n height?: number | \"original\";\n};\n\n/**\n * A React Native Image component that integrates with Jazz's ImageDefinition system.\n *\n * @example\n * ```tsx\n * import { Image } from \"jazz-tools/react-native\";\n * import { StyleSheet } from \"react-native\";\n *\n * function ProfilePicture({ imageId }) {\n * return (\n * <Image\n * imageId={imageId}\n * style={styles.profilePic}\n * width={100}\n * height={100}\n * resizeMode=\"cover\"\n * />\n * );\n * }\n *\n * const styles = StyleSheet.create({\n * profilePic: {\n * borderRadius: 50,\n * }\n * });\n * ```\n */\nexport const Image = forwardRef<RNImage, ImageProps>(function Image(\n { imageId, width, height, ...props },\n ref,\n) {\n const image = useCoState(ImageDefinition, imageId);\n const [src, setSrc] = useState<string | undefined>(image?.placeholderDataURL);\n\n const dimensions: { width: number | undefined; height: number | undefined } =\n useMemo(() => {\n const originalWidth = image?.originalSize?.[0];\n const originalHeight = image?.originalSize?.[1];\n\n // Both width and height are \"original\"\n if (width === \"original\" && height === \"original\") {\n return { width: originalWidth, height: originalHeight };\n }\n\n // Width is \"original\", height is a number\n if (width === \"original\" && typeof height === \"number\") {\n if (originalWidth && originalHeight) {\n return {\n width: Math.round((height * originalWidth) / originalHeight),\n height,\n };\n }\n return { width: undefined, height };\n }\n\n // Height is \"original\", width is a number\n if (height === \"original\" && typeof width === \"number\") {\n if (originalWidth && originalHeight) {\n return {\n width,\n height: Math.round((width * originalHeight) / originalWidth),\n };\n }\n return { width, height: undefined };\n }\n\n // In all other cases, use the property value:\n return {\n width: width === \"original\" ? originalWidth : width,\n height: height === \"original\" ? originalHeight : height,\n };\n }, [image?.originalSize, width, height]);\n\n useEffect(() => {\n if (!image) return;\n\n let lastBestImage: FileStream | string | undefined =\n image.placeholderDataURL;\n\n const unsub = image.$jazz.subscribe({}, (update) => {\n if (lastBestImage === undefined && update.placeholderDataURL) {\n setSrc(update.placeholderDataURL);\n lastBestImage = update.placeholderDataURL;\n }\n\n const bestImage = highestResAvailable(\n update,\n dimensions.width || dimensions.height || 9999,\n dimensions.height || dimensions.width || 9999,\n );\n\n if (!bestImage) return;\n\n if (lastBestImage === bestImage.image) return;\n\n const url = bestImage.image.asBase64({ dataURL: true });\n\n if (url) {\n setSrc(url);\n lastBestImage = bestImage.image;\n }\n });\n\n return unsub;\n }, [image]);\n\n if (!image) {\n return null;\n }\n\n return (\n <RNImage\n ref={ref}\n source={{ uri: src }}\n width={dimensions.width}\n height={dimensions.height}\n {...props}\n />\n );\n});\n","export * from \"./auth/auth.js\";\nexport * from \"./hooks.js\";\nexport * from \"./provider.js\";\nexport * from \"./storage/kv-store-context.js\";\nexport * from \"./media/image.js\";\n\nexport { SQLiteDatabaseDriverAsync } from \"cojson\";\nexport { parseInviteLink } from \"jazz-tools\";\nexport { createInviteLink, setupKvStore } from \"./platform.js\";\n"],"mappings":"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","names":["username","useJazzContext","React","useEffect","CryptoProvider","handleAuthUpdate","jsx","CryptoProvider","React","useEffect","useEffect","useState","jsx","Image","useState","useEffect","parseInviteLink"]}
package/dist/testing.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  createAnonymousJazzContext,
7
7
  createJazzContext,
8
8
  randomSessionProvider
9
- } from "./chunk-45VKEOXG.js";
9
+ } from "./chunk-CFAY3FMQ.js";
10
10
 
11
11
  // src/tools/testing.ts
12
12
  import { LocalNode } from "cojson";
@@ -22,5 +22,19 @@ export declare abstract class CoValueJazzApi<V extends CoValue> {
22
22
  get localNode(): LocalNode;
23
23
  /** @private */
24
24
  get loadedAs(): import("./account.js").Account | AnonymousJazzAgent;
25
+ /**
26
+ * The timestamp of the creation time of the CoValue
27
+ *
28
+ * @category Content
29
+ */
30
+ get createdAt(): number;
31
+ /**
32
+ * The timestamp of the last updated time of the CoValue
33
+ *
34
+ * Returns the creation time if there are no updates.
35
+ *
36
+ * @category Content
37
+ */
38
+ get lastUpdatedAt(): number;
25
39
  }
26
40
  //# sourceMappingURL=CoValueBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CoValueBase.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/CoValueBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEvE,OAAO,EACL,kBAAkB,EAClB,OAAO,EACP,YAAY,EAEZ,EAAE,EAIF,OAAO,EACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,KAAK,EAEL,OAAO,EACR,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,8BAAsB,WAAY,YAAW,OAAO;IAC1C,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,SAAiB,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAE7C,0BAA0B;IAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC;IAK5E,MAAM,IAAI,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM;IAQjC,CAAC,OAAO,CAAC;CAGV;AAED,8BAAsB,cAAc,CAAC,CAAC,SAAS,OAAO;IAIxC,OAAO,CAAC,OAAO;IAH3B,0BAA0B;IAClB,WAAW,EAAE,MAAM,CAAC;gBAER,OAAO,EAAE,CAAC;IAO9B,QAAQ,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,QAAQ,KAAK,GAAG,IAAI,UAAU,CAAC;IAC/B,QAAQ,KAAK,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC;IAExC,gBAAgB;IAChB,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,eAAe;IACf,IAAI,QAAQ,wDAYX;CACF"}
1
+ {"version":3,"file":"CoValueBase.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/CoValueBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEvE,OAAO,EACL,kBAAkB,EAClB,OAAO,EACP,YAAY,EAEZ,EAAE,EAIF,OAAO,EACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,KAAK,EAEL,OAAO,EACR,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,8BAAsB,WAAY,YAAW,OAAO;IAC1C,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,SAAiB,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAE7C,0BAA0B;IAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,CAAC;IAK5E,MAAM,IAAI,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM;IAQjC,CAAC,OAAO,CAAC;CAGV;AAED,8BAAsB,cAAc,CAAC,CAAC,SAAS,OAAO;IAIxC,OAAO,CAAC,OAAO;IAH3B,0BAA0B;IAClB,WAAW,EAAE,MAAM,CAAC;gBAER,OAAO,EAAE,CAAC;IAO9B,QAAQ,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,QAAQ,KAAK,GAAG,IAAI,UAAU,CAAC;IAC/B,QAAQ,KAAK,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC;IAExC,gBAAgB;IAChB,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,eAAe;IACf,IAAI,QAAQ,wDAYX;IAED;;;;OAIG;IACH,IAAI,SAAS,IAAI,MAAM,CAQtB;IAED;;;;;;OAMG;IACH,IAAI,aAAa,IAAI,MAAM,CAQ1B;CACF"}
@@ -562,18 +562,6 @@ declare class CoMapJazzApi<M extends CoMap> extends CoValueJazzApi<M> {
562
562
  get raw(): RawCoMap<{
563
563
  [key: string]: JsonValue | undefined;
564
564
  }, import("cojson").JsonObject | null>;
565
- /**
566
- * The timestamp of the creation time of the CoMap
567
- *
568
- * @category Content
569
- */
570
- get createdAt(): number;
571
- /**
572
- * The timestamp of the last updated time of the CoMap
573
- *
574
- * @category Content
575
- */
576
- get lastUpdatedAt(): number;
577
565
  /** @internal */
578
566
  get schema(): CoMapFieldSchema;
579
567
  }
@@ -1 +1 @@
1
- {"version":3,"file":"coMap.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/coMap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coMap.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/coMap.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,7 @@ export type JazzContextWithAgent = {
49
49
  logOut: () => Promise<void>;
50
50
  };
51
51
  export type JazzContext<Acc extends Account> = JazzContextWithAccount<Acc> | JazzContextWithAgent;
52
- export declare function createJazzContextFromExistingCredentials<S extends (AccountClass<Account> & CoValueFromRaw<Account>) | CoreAccountSchema>({ credentials, peersToLoadFrom, crypto, storage, AccountSchema: PropsAccountSchema, sessionProvider, onLogOut, }: {
52
+ export declare function createJazzContextFromExistingCredentials<S extends (AccountClass<Account> & CoValueFromRaw<Account>) | CoreAccountSchema>({ credentials, peersToLoadFrom, crypto, storage, AccountSchema: PropsAccountSchema, sessionProvider, onLogOut, asActiveAccount, }: {
53
53
  credentials: Credentials;
54
54
  peersToLoadFrom: Peer[];
55
55
  crypto: CryptoProvider;
@@ -57,6 +57,7 @@ export declare function createJazzContextFromExistingCredentials<S extends (Acco
57
57
  sessionProvider: SessionProvider;
58
58
  onLogOut?: () => void;
59
59
  storage?: StorageAPI;
60
+ asActiveAccount: boolean;
60
61
  }): Promise<JazzContextWithAccount<InstanceOfSchema<S>>>;
61
62
  export declare function createJazzContextForNewAccount<S extends (AccountClass<Account> & CoValueFromRaw<Account>) | CoreAccountSchema>({ creationProps, initialAgentSecret, peersToLoadFrom, crypto, AccountSchema: PropsAccountSchema, onLogOut, storage, }: {
62
63
  creationProps: {
@@ -1 +1 @@
1
- {"version":3,"file":"createContext.d.ts","sourceRoot":"","sources":["../../../src/tools/implementation/createContext.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,cAAc,EACd,SAAS,EACT,IAAI,EAEJ,YAAY,EACZ,SAAS,EACT,UAAU,EACX,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EACL,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,EAAE,EACP,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,KAAK,eAAe,GAAG,CACrB,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,EACtB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAAC;AAEhE,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC;IACzC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,GACD;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,aAAa,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;IACF,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,eAAe,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC;IACzC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;AAEN,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,EACtB,MAAM,EAAE,cAAc;;;GAMvB;AAED,MAAM,MAAM,sBAAsB,CAAC,GAAG,SAAS,OAAO,IAAI;IACxD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,GAAG,SAAS,OAAO,IACvC,sBAAsB,CAAC,GAAG,CAAC,GAC3B,oBAAoB,CAAC;AAEzB,wBAAsB,wCAAwC,CAC5D,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,iBAAiB,EACrB,EACA,WAAW,EACX,eAAe,EACf,MAAM,EACN,OAAO,EACP,aAAa,EAAE,kBAAkB,EACjC,eAAe,EACf,QAAQ,GACT,EAAE;IACD,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,EAAE,IAAI,EAAE,CAAC;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB,GAAG,OAAO,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CA2CvD;AAED,wBAAsB,8BAA8B,CAClD,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,iBAAiB,EACrB,EACA,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,MAAM,EACN,aAAa,EAAE,kBAAkB,EACjC,QAAQ,EACR,OAAO,GACR,EAAE;IACD,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,eAAe,EAAE,IAAI,EAAE,CAAC;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB,GAAG,OAAO,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAmCvD;AAED,wBAAsB,iBAAiB,CACrC,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,iBAAiB,EACrB,OAAO,EAAE;IACT,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,EAAE,IAAI,EAAE,CAAC;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;;UAxJO,SAAS;;UAET,MAAM,IAAI;YACR,MAAM,OAAO,CAAC,IAAI,CAAC;GAoN5B;AAED,wBAAgB,0BAA0B,CAAC,EACzC,eAAe,EACf,MAAM,EACN,OAAO,GACR,EAAE;IACD,eAAe,EAAE,IAAI,EAAE,CAAC;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB,GAAG,oBAAoB,CAwBvB"}
1
+ {"version":3,"file":"createContext.d.ts","sourceRoot":"","sources":["../../../src/tools/implementation/createContext.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tools/tests/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGrD,OAAO,EACL,OAAO,EAGR,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,wBAAsB,YAAY;;;;;GA+BjC;AAED,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE;IAC5C,mBAAmB,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;CACvE;;;;;GAgDA;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,MAAM,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,iBA2BzD;AAED,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,UAAU,EAC1D,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GACV,OAAO,CAAC,CAAC,CAAC,CAMZ"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tools/tests/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGrD,OAAO,EACL,OAAO,EAGR,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,wBAAsB,YAAY;;;;;GAgCjC;AAED,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE;IAC5C,mBAAmB,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;CACvE;;;;;GAgDA;AAED,wBAAgB,OAAO,CACrB,QAAQ,EAAE,MAAM,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,iBA2BzD;AAED,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,UAAU,EAC1D,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GACV,OAAO,CAAC,CAAC,CAAC,CAMZ"}
@@ -12,6 +12,10 @@ type WorkerOptions<S extends (AccountClass<Account> & CoValueFromRaw<Account>) |
12
12
  * If true, the inbox will not be loaded.
13
13
  */
14
14
  skipInboxLoad?: boolean;
15
+ /**
16
+ * If false, the worker will not set in the global account context
17
+ */
18
+ asActiveAccount?: boolean;
15
19
  };
16
20
  /** @category Context Creation */
17
21
  export declare function startWorker<S extends (AccountClass<Account> & CoValueFromRaw<Account>) | AnyAccountSchema>(options: WorkerOptions<S>): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAmB,MAAM,QAAQ,CAAC;AACtE,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,KAAK,EAEL,MAAM,EAGP,MAAM,YAAY,CAAC;AAEpB,KAAK,aAAa,CAChB,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,gBAAgB,IAClB;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,iCAAiC;AACjC,wBAAsB,WAAW,CAC/B,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,gBAAgB,EACpB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;YA+EI,MAAM,CAAC,CAAC,CAAC;;;uBAPU,KAAK,CAAC,WAAW,CAAC;;;;;;0CAc1B,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;;GASrE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAmB,MAAM,QAAQ,CAAC;AACtE,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,OAAO,EACP,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,KAAK,EAEL,MAAM,EAGP,MAAM,YAAY,CAAC;AAEpB,KAAK,aAAa,CAChB,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,gBAAgB,IAClB;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,iCAAiC;AACjC,wBAAsB,WAAW,CAC/B,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,gBAAgB,EACpB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;YAiFI,MAAM,CAAC,CAAC,CAAC;;;uBAPU,KAAK,CAAC,WAAW,CAAC;;;;;;0CAc1B,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;;GASrE"}
@@ -15,7 +15,8 @@ async function startWorker(options) {
15
15
  accountSecret = process.env.JAZZ_WORKER_SECRET,
16
16
  syncServer = "wss://cloud.jazz.tools",
17
17
  AccountSchema = Account,
18
- skipInboxLoad = false
18
+ skipInboxLoad = false,
19
+ asActiveAccount = true
19
20
  } = options;
20
21
  let node = void 0;
21
22
  const peersToLoadFrom = [];
@@ -55,7 +56,8 @@ async function startWorker(options) {
55
56
  // TODO: locked sessions similar to browser
56
57
  sessionProvider: randomSessionProvider,
57
58
  peersToLoadFrom,
58
- crypto: options.crypto ?? await WasmCrypto.create()
59
+ crypto: options.crypto ?? await WasmCrypto.create(),
60
+ asActiveAccount
59
61
  });
60
62
  const account = context.account;
61
63
  node = account.$jazz.localNode;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/worker/index.ts"],"sourcesContent":["import { AgentSecret, CryptoProvider, LocalNode, Peer } from \"cojson\";\nimport {\n type AnyWebSocketConstructor,\n WebSocketPeerWithReconnection,\n} from \"cojson-transport-ws\";\nimport { WasmCrypto } from \"cojson/crypto/WasmCrypto\";\nimport {\n Account,\n AccountClass,\n AnyAccountSchema,\n CoValueFromRaw,\n Inbox,\n InstanceOfSchema,\n Loaded,\n createJazzContextFromExistingCredentials,\n randomSessionProvider,\n} from \"jazz-tools\";\n\ntype WorkerOptions<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> = {\n accountID?: string;\n accountSecret?: string;\n syncServer?: string;\n WebSocket?: AnyWebSocketConstructor;\n AccountSchema?: S;\n crypto?: CryptoProvider;\n /**\n * If true, the inbox will not be loaded.\n */\n skipInboxLoad?: boolean;\n};\n\n/** @category Context Creation */\nexport async function startWorker<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n>(options: WorkerOptions<S>) {\n const {\n accountID = process.env.JAZZ_WORKER_ACCOUNT,\n accountSecret = process.env.JAZZ_WORKER_SECRET,\n syncServer = \"wss://cloud.jazz.tools\",\n AccountSchema = Account as unknown as S,\n skipInboxLoad = false,\n } = options;\n\n let node: LocalNode | undefined = undefined;\n\n const peersToLoadFrom: Peer[] = [];\n\n const wsPeer = new WebSocketPeerWithReconnection({\n peer: syncServer,\n reconnectionTimeout: 100,\n addPeer: (peer) => {\n if (node) {\n node.syncManager.addPeer(peer);\n } else {\n peersToLoadFrom.push(peer);\n }\n },\n removePeer: () => {},\n WebSocketConstructor: options.WebSocket,\n });\n\n wsPeer.enable();\n\n if (!accountID) {\n throw new Error(\"No accountID provided\");\n }\n if (!accountSecret) {\n throw new Error(\"No accountSecret provided\");\n }\n if (!accountID.startsWith(\"co_\")) {\n throw new Error(\"Invalid accountID\");\n }\n if (!accountSecret?.startsWith(\"sealerSecret_\")) {\n throw new Error(\"Invalid accountSecret\");\n }\n\n const context = await createJazzContextFromExistingCredentials({\n credentials: {\n accountID: accountID,\n secret: accountSecret as AgentSecret,\n },\n AccountSchema,\n // TODO: locked sessions similar to browser\n sessionProvider: randomSessionProvider,\n peersToLoadFrom,\n crypto: options.crypto ?? (await WasmCrypto.create()),\n });\n\n const account = context.account as InstanceOfSchema<S>;\n node = account.$jazz.localNode;\n\n if (!account.$jazz.refs.profile?.id) {\n throw new Error(\"Account has no profile\");\n }\n\n const inbox = skipInboxLoad ? undefined : await Inbox.load(account);\n\n async function done() {\n await context.account.$jazz.waitForAllCoValuesSync();\n\n wsPeer.disable();\n context.done();\n }\n\n const inboxPublicApi = inbox\n ? {\n subscribe: inbox.subscribe.bind(inbox) as Inbox[\"subscribe\"],\n }\n : {\n subscribe: () => {},\n };\n\n return {\n worker: context.account as Loaded<S>,\n experimental: {\n inbox: inboxPublicApi,\n },\n waitForConnection() {\n return wsPeer.waitUntilConnected();\n },\n subscribeToConnectionChange(listener: (connected: boolean) => void) {\n wsPeer.subscribe(listener);\n\n return () => {\n wsPeer.unsubscribe(listener);\n };\n },\n done,\n };\n}\n"],"mappings":";AACA;AAAA,EAEE;AAAA,OACK;AACP,SAAS,kBAAkB;AAC3B;AAAA,EACE;AAAA,EAIA;AAAA,EAGA;AAAA,EACA;AAAA,OACK;AAoBP,eAAsB,YAIpB,SAA2B;AAC3B,QAAM;AAAA,IACJ,YAAY,QAAQ,IAAI;AAAA,IACxB,gBAAgB,QAAQ,IAAI;AAAA,IAC5B,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,EAClB,IAAI;AAEJ,MAAI,OAA8B;AAElC,QAAM,kBAA0B,CAAC;AAEjC,QAAM,SAAS,IAAI,8BAA8B;AAAA,IAC/C,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,SAAS,CAAC,SAAS;AACjB,UAAI,MAAM;AACR,aAAK,YAAY,QAAQ,IAAI;AAAA,MAC/B,OAAO;AACL,wBAAgB,KAAK,IAAI;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,YAAY,MAAM;AAAA,IAAC;AAAA,IACnB,sBAAsB,QAAQ;AAAA,EAChC,CAAC;AAED,SAAO,OAAO;AAEd,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AACA,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AACA,MAAI,CAAC,UAAU,WAAW,KAAK,GAAG;AAChC,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACrC;AACA,MAAI,CAAC,eAAe,WAAW,eAAe,GAAG;AAC/C,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AAEA,QAAM,UAAU,MAAM,yCAAyC;AAAA,IAC7D,aAAa;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,IACV;AAAA,IACA;AAAA;AAAA,IAEA,iBAAiB;AAAA,IACjB;AAAA,IACA,QAAQ,QAAQ,UAAW,MAAM,WAAW,OAAO;AAAA,EACrD,CAAC;AAED,QAAM,UAAU,QAAQ;AACxB,SAAO,QAAQ,MAAM;AAErB,MAAI,CAAC,QAAQ,MAAM,KAAK,SAAS,IAAI;AACnC,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,QAAM,QAAQ,gBAAgB,SAAY,MAAM,MAAM,KAAK,OAAO;AAElE,iBAAe,OAAO;AACpB,UAAM,QAAQ,QAAQ,MAAM,uBAAuB;AAEnD,WAAO,QAAQ;AACf,YAAQ,KAAK;AAAA,EACf;AAEA,QAAM,iBAAiB,QACnB;AAAA,IACE,WAAW,MAAM,UAAU,KAAK,KAAK;AAAA,EACvC,IACA;AAAA,IACE,WAAW,MAAM;AAAA,IAAC;AAAA,EACpB;AAEJ,SAAO;AAAA,IACL,QAAQ,QAAQ;AAAA,IAChB,cAAc;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IACA,oBAAoB;AAClB,aAAO,OAAO,mBAAmB;AAAA,IACnC;AAAA,IACA,4BAA4B,UAAwC;AAClE,aAAO,UAAU,QAAQ;AAEzB,aAAO,MAAM;AACX,eAAO,YAAY,QAAQ;AAAA,MAC7B;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/worker/index.ts"],"sourcesContent":["import { AgentSecret, CryptoProvider, LocalNode, Peer } from \"cojson\";\nimport {\n type AnyWebSocketConstructor,\n WebSocketPeerWithReconnection,\n} from \"cojson-transport-ws\";\nimport { WasmCrypto } from \"cojson/crypto/WasmCrypto\";\nimport {\n Account,\n AccountClass,\n AnyAccountSchema,\n CoValueFromRaw,\n Inbox,\n InstanceOfSchema,\n Loaded,\n createJazzContextFromExistingCredentials,\n randomSessionProvider,\n} from \"jazz-tools\";\n\ntype WorkerOptions<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n> = {\n accountID?: string;\n accountSecret?: string;\n syncServer?: string;\n WebSocket?: AnyWebSocketConstructor;\n AccountSchema?: S;\n crypto?: CryptoProvider;\n /**\n * If true, the inbox will not be loaded.\n */\n skipInboxLoad?: boolean;\n /**\n * If false, the worker will not set in the global account context\n */\n asActiveAccount?: boolean;\n};\n\n/** @category Context Creation */\nexport async function startWorker<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n>(options: WorkerOptions<S>) {\n const {\n accountID = process.env.JAZZ_WORKER_ACCOUNT,\n accountSecret = process.env.JAZZ_WORKER_SECRET,\n syncServer = \"wss://cloud.jazz.tools\",\n AccountSchema = Account as unknown as S,\n skipInboxLoad = false,\n asActiveAccount = true,\n } = options;\n\n let node: LocalNode | undefined = undefined;\n\n const peersToLoadFrom: Peer[] = [];\n\n const wsPeer = new WebSocketPeerWithReconnection({\n peer: syncServer,\n reconnectionTimeout: 100,\n addPeer: (peer) => {\n if (node) {\n node.syncManager.addPeer(peer);\n } else {\n peersToLoadFrom.push(peer);\n }\n },\n removePeer: () => {},\n WebSocketConstructor: options.WebSocket,\n });\n\n wsPeer.enable();\n\n if (!accountID) {\n throw new Error(\"No accountID provided\");\n }\n if (!accountSecret) {\n throw new Error(\"No accountSecret provided\");\n }\n if (!accountID.startsWith(\"co_\")) {\n throw new Error(\"Invalid accountID\");\n }\n if (!accountSecret?.startsWith(\"sealerSecret_\")) {\n throw new Error(\"Invalid accountSecret\");\n }\n\n const context = await createJazzContextFromExistingCredentials({\n credentials: {\n accountID: accountID,\n secret: accountSecret as AgentSecret,\n },\n AccountSchema,\n // TODO: locked sessions similar to browser\n sessionProvider: randomSessionProvider,\n peersToLoadFrom,\n crypto: options.crypto ?? (await WasmCrypto.create()),\n asActiveAccount,\n });\n\n const account = context.account as InstanceOfSchema<S>;\n node = account.$jazz.localNode;\n\n if (!account.$jazz.refs.profile?.id) {\n throw new Error(\"Account has no profile\");\n }\n\n const inbox = skipInboxLoad ? undefined : await Inbox.load(account);\n\n async function done() {\n await context.account.$jazz.waitForAllCoValuesSync();\n\n wsPeer.disable();\n context.done();\n }\n\n const inboxPublicApi = inbox\n ? {\n subscribe: inbox.subscribe.bind(inbox) as Inbox[\"subscribe\"],\n }\n : {\n subscribe: () => {},\n };\n\n return {\n worker: context.account as Loaded<S>,\n experimental: {\n inbox: inboxPublicApi,\n },\n waitForConnection() {\n return wsPeer.waitUntilConnected();\n },\n subscribeToConnectionChange(listener: (connected: boolean) => void) {\n wsPeer.subscribe(listener);\n\n return () => {\n wsPeer.unsubscribe(listener);\n };\n },\n done,\n };\n}\n"],"mappings":";AACA;AAAA,EAEE;AAAA,OACK;AACP,SAAS,kBAAkB;AAC3B;AAAA,EACE;AAAA,EAIA;AAAA,EAGA;AAAA,EACA;AAAA,OACK;AAwBP,eAAsB,YAIpB,SAA2B;AAC3B,QAAM;AAAA,IACJ,YAAY,QAAQ,IAAI;AAAA,IACxB,gBAAgB,QAAQ,IAAI;AAAA,IAC5B,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,EACpB,IAAI;AAEJ,MAAI,OAA8B;AAElC,QAAM,kBAA0B,CAAC;AAEjC,QAAM,SAAS,IAAI,8BAA8B;AAAA,IAC/C,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,SAAS,CAAC,SAAS;AACjB,UAAI,MAAM;AACR,aAAK,YAAY,QAAQ,IAAI;AAAA,MAC/B,OAAO;AACL,wBAAgB,KAAK,IAAI;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,YAAY,MAAM;AAAA,IAAC;AAAA,IACnB,sBAAsB,QAAQ;AAAA,EAChC,CAAC;AAED,SAAO,OAAO;AAEd,MAAI,CAAC,WAAW;AACd,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AACA,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AACA,MAAI,CAAC,UAAU,WAAW,KAAK,GAAG;AAChC,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACrC;AACA,MAAI,CAAC,eAAe,WAAW,eAAe,GAAG;AAC/C,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AAEA,QAAM,UAAU,MAAM,yCAAyC;AAAA,IAC7D,aAAa;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,IACV;AAAA,IACA;AAAA;AAAA,IAEA,iBAAiB;AAAA,IACjB;AAAA,IACA,QAAQ,QAAQ,UAAW,MAAM,WAAW,OAAO;AAAA,IACnD;AAAA,EACF,CAAC;AAED,QAAM,UAAU,QAAQ;AACxB,SAAO,QAAQ,MAAM;AAErB,MAAI,CAAC,QAAQ,MAAM,KAAK,SAAS,IAAI;AACnC,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,QAAM,QAAQ,gBAAgB,SAAY,MAAM,MAAM,KAAK,OAAO;AAElE,iBAAe,OAAO;AACpB,UAAM,QAAQ,QAAQ,MAAM,uBAAuB;AAEnD,WAAO,QAAQ;AACf,YAAQ,KAAK;AAAA,EACf;AAEA,QAAM,iBAAiB,QACnB;AAAA,IACE,WAAW,MAAM,UAAU,KAAK,KAAK;AAAA,EACvC,IACA;AAAA,IACE,WAAW,MAAM;AAAA,IAAC;AAAA,EACpB;AAEJ,SAAO;AAAA,IACL,QAAQ,QAAQ;AAAA,IAChB,cAAc;AAAA,MACZ,OAAO;AAAA,IACT;AAAA,IACA,oBAAoB;AAClB,aAAO,OAAO,mBAAmB;AAAA,IACnC;AAAA,IACA,4BAA4B,UAAwC;AAClE,aAAO,UAAU,QAAQ;AAEzB,aAAO,MAAM;AACX,eAAO,YAAY,QAAQ;AAAA,MAC7B;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
package/package.json CHANGED
@@ -167,7 +167,7 @@
167
167
  },
168
168
  "type": "module",
169
169
  "license": "MIT",
170
- "version": "0.18.6",
170
+ "version": "0.18.7",
171
171
  "dependencies": {
172
172
  "@manuscripts/prosemirror-recreate-steps": "^0.1.4",
173
173
  "@scure/base": "1.2.1",
@@ -182,10 +182,11 @@
182
182
  "prosemirror-schema-basic": "^1.2.2",
183
183
  "prosemirror-state": "^1.4.3",
184
184
  "prosemirror-transform": "^1.9.0",
185
+ "use-sync-external-store": "^1.5.0",
185
186
  "zod": "3.25.76",
186
- "cojson": "0.18.6",
187
- "cojson-storage-indexeddb": "0.18.6",
188
- "cojson-transport-ws": "0.18.6"
187
+ "cojson": "0.18.7",
188
+ "cojson-storage-indexeddb": "0.18.7",
189
+ "cojson-transport-ws": "0.18.7"
189
190
  },
190
191
  "devDependencies": {
191
192
  "@scure/bip39": "^1.3.0",
@@ -197,6 +198,7 @@
197
198
  "@testing-library/svelte": "^5.2.6",
198
199
  "@types/react": "19.1.0",
199
200
  "@types/react-dom": "19.1.0",
201
+ "@types/use-sync-external-store": "^1.5.0",
200
202
  "@vitest/browser": "^3.2.4",
201
203
  "msw": "^2.10.3",
202
204
  "oauth2-mock-server": "^8.1.0",
@@ -95,10 +95,14 @@ export const jazzPlugin: () => JazzPlugin = () => {
95
95
  contextContainsJazzAuth(context) &&
96
96
  verification.identifier.startsWith("sign-in-otp-")
97
97
  ) {
98
+ const identifier = `jazz-auth-${verification.identifier}`;
99
+ await context.context.internalAdapter.deleteVerificationValue(
100
+ identifier,
101
+ );
98
102
  await context.context.internalAdapter.createVerificationValue(
99
103
  {
100
104
  value: JSON.stringify({ jazzAuth: context.jazzAuth }),
101
- identifier: `${verification.identifier}-jazz-auth`,
105
+ identifier: identifier,
102
106
  expiresAt: verification.expiresAt,
103
107
  },
104
108
  );
@@ -166,7 +170,7 @@ export const jazzPlugin: () => JazzPlugin = () => {
166
170
  handler: createAuthMiddleware(async (ctx) => {
167
171
  const state = ctx.query?.state || ctx.body?.state;
168
172
 
169
- const identifier = `${state}-jazz-auth`;
173
+ const identifier = `jazz-auth-${state}`;
170
174
 
171
175
  const data =
172
176
  await ctx.context.internalAdapter.findVerificationValue(
@@ -207,7 +211,7 @@ export const jazzPlugin: () => JazzPlugin = () => {
207
211
  },
208
212
  handler: createAuthMiddleware(async (ctx) => {
209
213
  const email = ctx.body.email;
210
- const identifier = `sign-in-otp-${email}-jazz-auth`;
214
+ const identifier = `jazz-auth-sign-in-otp-${email}`;
211
215
 
212
216
  const data =
213
217
  await ctx.context.internalAdapter.findVerificationValue(
@@ -292,7 +296,7 @@ export const jazzPlugin: () => JazzPlugin = () => {
292
296
 
293
297
  await ctx.context.internalAdapter.createVerificationValue({
294
298
  value,
295
- identifier: `${state}-jazz-auth`,
299
+ identifier: `jazz-auth-${state}`,
296
300
  expiresAt,
297
301
  });
298
302
  }),
@@ -293,7 +293,7 @@ describe("Better-Auth server plugin", async () => {
293
293
 
294
294
  expect(verificationCreationSpy).toHaveBeenCalledTimes(2);
295
295
  expect(verificationCreationSpy.mock.calls[1]?.[0]).toMatchObject({
296
- identifier: expect.stringMatching("-jazz-auth"),
296
+ identifier: expect.stringMatching("jazz-auth-"),
297
297
  value: expect.stringContaining('"accountID":"123"'),
298
298
  });
299
299
  });
@@ -412,7 +412,7 @@ describe("Better-Auth server plugin", async () => {
412
412
  expect(verificationCreationSpy).toHaveBeenCalledTimes(2);
413
413
  expect(verificationCreationSpy.mock.calls[0]?.[0]).toMatchObject(
414
414
  expect.objectContaining({
415
- identifier: "sign-in-otp-email@email.it-jazz-auth",
415
+ identifier: "jazz-auth-sign-in-otp-email@email.it",
416
416
  value: expect.stringContaining('"accountID":"123"'),
417
417
  }),
418
418
  );
@@ -23,7 +23,7 @@ import { useJazzContext } from "jazz-tools/react-core";
23
23
  import { Account } from "jazz-tools";
24
24
 
25
25
  import { JazzInspectorInternal } from "./viewer/new-app.js";
26
- import { Position } from "./viewer/inpsector-button.js";
26
+ import { Position } from "./viewer/inspector-button.js";
27
27
 
28
28
  export function JazzInspector({ position = "right" }: { position?: Position }) {
29
29
  const context = useJazzContext<Account>();
@@ -2,7 +2,7 @@ import { styled } from "goober";
2
2
  import { forwardRef } from "react";
3
3
 
4
4
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
5
- variant?: "primary" | "secondary" | "link" | "plain";
5
+ variant?: "primary" | "secondary" | "link" | "plain" | "destructive";
6
6
  children?: React.ReactNode;
7
7
  className?: string;
8
8
  disabled?: boolean;
@@ -29,6 +29,9 @@ const StyledButton = styled("button")<{ variant: string; disabled?: boolean }>`
29
29
  border-color: var(--j-primary-color);
30
30
  color: white;
31
31
  font-weight: 500;
32
+ &:hover {
33
+ opacity: 0.8;
34
+ }
32
35
  `;
33
36
  case "secondary":
34
37
  return `
@@ -47,6 +50,17 @@ const StyledButton = styled("button")<{ variant: string; disabled?: boolean }>`
47
50
  text-decoration: underline;
48
51
  }
49
52
  `;
53
+ case "destructive":
54
+ return `
55
+ padding: 0.375rem 0.75rem;
56
+ background-color: var(--j-destructive-color);
57
+ border-color: var(--j-destructive-color);
58
+ color: white;
59
+ font-weight: 500;
60
+ &:hover {
61
+ opacity: 0.8;
62
+ }
63
+ `;
50
64
  default:
51
65
  return "";
52
66
  }