jazz-tools 0.15.7 → 0.15.9

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 (56) hide show
  1. package/.turbo/turbo-build.log +42 -42
  2. package/CHANGELOG.md +21 -0
  3. package/dist/browser/createBrowserContext.d.ts.map +1 -1
  4. package/dist/browser/index.js +9 -7
  5. package/dist/browser/index.js.map +1 -1
  6. package/dist/{chunk-AV3MKD64.js → chunk-5PFEKHX5.js} +30 -5
  7. package/dist/chunk-5PFEKHX5.js.map +1 -0
  8. package/dist/index.js +1 -1
  9. package/dist/inspector/{custom-element-I7Q6H5E5.js → custom-element-TUXKXSZU.js} +18791 -18806
  10. package/dist/inspector/custom-element-TUXKXSZU.js.map +1 -0
  11. package/dist/inspector/register-custom-element.js +1 -1
  12. package/dist/react/index.js +1 -1
  13. package/dist/react/index.js.map +1 -1
  14. package/dist/react/testing.js +1 -1
  15. package/dist/react/testing.js.map +1 -1
  16. package/dist/react-native-core/index.d.ts +1 -1
  17. package/dist/react-native-core/index.d.ts.map +1 -1
  18. package/dist/react-native-core/index.js +15 -31
  19. package/dist/react-native-core/index.js.map +1 -1
  20. package/dist/react-native-core/platform.d.ts +1 -1
  21. package/dist/react-native-core/platform.d.ts.map +1 -1
  22. package/dist/testing.js +22 -3
  23. package/dist/testing.js.map +1 -1
  24. package/dist/tools/exports.d.ts +1 -1
  25. package/dist/tools/exports.d.ts.map +1 -1
  26. package/dist/tools/implementation/createContext.d.ts +8 -4
  27. package/dist/tools/implementation/createContext.d.ts.map +1 -1
  28. package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts +12 -13
  29. package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts.map +1 -1
  30. package/dist/tools/implementation/zodSchema/zodCo.d.ts +39 -9
  31. package/dist/tools/implementation/zodSchema/zodCo.d.ts.map +1 -1
  32. package/dist/tools/subscribe/SubscriptionScope.d.ts +2 -0
  33. package/dist/tools/subscribe/SubscriptionScope.d.ts.map +1 -1
  34. package/dist/tools/testing.d.ts +3 -1
  35. package/dist/tools/testing.d.ts.map +1 -1
  36. package/package.json +7 -7
  37. package/src/browser/createBrowserContext.ts +8 -6
  38. package/src/react-core/tests/useCoState.test.ts +0 -12
  39. package/src/react-native-core/index.ts +1 -1
  40. package/src/react-native-core/platform.ts +13 -12
  41. package/src/tools/exports.ts +2 -0
  42. package/src/tools/implementation/createContext.ts +16 -0
  43. package/src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts +17 -15
  44. package/src/tools/implementation/zodSchema/zodCo.ts +54 -32
  45. package/src/tools/subscribe/SubscriptionScope.ts +20 -0
  46. package/src/tools/testing.ts +25 -2
  47. package/src/tools/tests/coFeed.test.ts +190 -239
  48. package/src/tools/tests/coMap.test.ts +0 -8
  49. package/src/tools/tests/coPlainText.test.ts +2 -1
  50. package/src/tools/tests/load.test.ts +65 -30
  51. package/src/tools/tests/subscribe.test.ts +92 -0
  52. package/dist/chunk-AV3MKD64.js.map +0 -1
  53. package/dist/inspector/custom-element-I7Q6H5E5.js.map +0 -1
  54. package/dist/react-native-core/storage/sqlite-react-native.d.ts +0 -9
  55. package/dist/react-native-core/storage/sqlite-react-native.d.ts.map +0 -1
  56. package/src/react-native-core/storage/sqlite-react-native.ts +0 -19
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tools/testing.ts"],"sourcesContent":["import { LocalNode } from \"cojson\";\nimport { cojsonInternals } from \"cojson\";\nimport { PureJSCrypto } from \"cojson/dist/crypto/PureJSCrypto\";\nimport {\n Account,\n AccountClass,\n type AnonymousJazzAgent,\n AnyAccountSchema,\n AuthCredentials,\n CoValueFromRaw,\n InstanceOfSchema,\n JazzContextManager,\n JazzContextManagerAuthProps,\n JazzContextManagerBaseProps,\n activeAccountContext,\n anySchemaToCoSchema,\n createAnonymousJazzContext,\n createJazzContext,\n randomSessionProvider,\n} from \"./internal.js\";\n\nconst syncServer: { current: LocalNode | null } = { current: null };\n\nexport class TestJSCrypto extends PureJSCrypto {\n static async create() {\n if (\"navigator\" in globalThis && navigator.userAgent?.includes(\"jsdom\")) {\n // Mocking crypto seal & encrypt to make it work with JSDom. Getting \"Error: Uint8Array expected\" there\n const crypto = new PureJSCrypto();\n\n crypto.seal = (options) =>\n `sealed_U${cojsonInternals.stableStringify(options.message)}` as any;\n crypto.unseal = (sealed) =>\n JSON.parse(sealed.substring(\"sealed_U\".length));\n crypto.encrypt = (message) =>\n `encrypted_U${cojsonInternals.stableStringify(message)}` as any;\n crypto.decryptRaw = (encrypted) =>\n encrypted.substring(\"encrypted_U\".length) as any;\n\n return crypto;\n }\n\n // For non-jsdom environments, we use the real crypto\n return new PureJSCrypto();\n }\n}\n\nexport function getPeerConnectedToTestSyncServer() {\n if (!syncServer.current) {\n throw new Error(\"Sync server not initialized\");\n }\n\n const [aPeer, bPeer] = cojsonInternals.connectedPeers(\n Math.random().toString(),\n Math.random().toString(),\n {\n peer1role: \"server\",\n peer2role: \"server\",\n },\n );\n syncServer.current.syncManager.addPeer(aPeer);\n\n return bPeer;\n}\n\nconst SecretSeedMap = new Map<string, Uint8Array>();\nlet isMigrationActive = false;\n\nexport async function createJazzTestAccount<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n>(options?: {\n isCurrentActiveAccount?: boolean;\n AccountSchema?: S;\n creationProps?: Record<string, unknown>;\n}): Promise<InstanceOfSchema<S>> {\n const AccountClass = options?.AccountSchema\n ? anySchemaToCoSchema(options.AccountSchema)\n : Account;\n const peers = [];\n if (syncServer.current) {\n peers.push(getPeerConnectedToTestSyncServer());\n }\n\n const crypto = await TestJSCrypto.create();\n const secretSeed = crypto.newRandomSecretSeed();\n\n const { node } = await LocalNode.withNewlyCreatedAccount({\n creationProps: {\n name: \"Test Account\",\n ...options?.creationProps,\n },\n initialAgentSecret: crypto.agentSecretFromSecretSeed(secretSeed),\n crypto,\n peersToLoadFrom: peers,\n migration: async (rawAccount, _node, creationProps) => {\n if (isMigrationActive) {\n throw new Error(\n \"It is not possible to create multiple accounts in parallel inside the test environment.\",\n );\n }\n\n isMigrationActive = true;\n\n // @ts-expect-error - AccountClass doesn't infer the fromRaw static method\n const account = AccountClass.fromRaw(rawAccount) as InstanceOfSchema<S>;\n\n // We need to set the account as current because the migration\n // will probably rely on the global me\n const prevActiveAccount = activeAccountContext.maybeGet();\n activeAccountContext.set(account);\n\n await account.applyMigration?.(creationProps);\n\n if (!options?.isCurrentActiveAccount) {\n activeAccountContext.set(prevActiveAccount);\n }\n\n isMigrationActive = false;\n },\n });\n\n const account = AccountClass.fromNode(node);\n SecretSeedMap.set(account.id, secretSeed);\n\n if (options?.isCurrentActiveAccount) {\n activeAccountContext.set(account);\n }\n\n return account as InstanceOfSchema<S>;\n}\n\nexport function setActiveAccount(account: Account) {\n activeAccountContext.set(account);\n}\n\nexport async function createJazzTestGuest() {\n const ctx = await createAnonymousJazzContext({\n crypto: await PureJSCrypto.create(),\n peersToLoadFrom: [],\n });\n\n return {\n guest: ctx.agent,\n };\n}\n\nexport type TestJazzContextManagerProps<Acc extends Account> =\n JazzContextManagerBaseProps<Acc> & {\n defaultProfileName?: string;\n AccountSchema?: AccountClass<Acc> & CoValueFromRaw<Acc>;\n isAuthenticated?: boolean;\n };\n\nexport class TestJazzContextManager<\n Acc extends Account,\n> extends JazzContextManager<Acc, TestJazzContextManagerProps<Acc>> {\n static fromAccountOrGuest<Acc extends Account>(\n account?: Acc | { guest: AnonymousJazzAgent },\n props?: TestJazzContextManagerProps<Acc>,\n ) {\n if (account && \"guest\" in account) {\n return this.fromGuest<Acc>(account, props);\n }\n\n return this.fromAccount<Acc>(account ?? (Account.getMe() as Acc), props);\n }\n\n static fromAccount<Acc extends Account>(\n account: Acc,\n props?: TestJazzContextManagerProps<Acc>,\n ) {\n const context = new TestJazzContextManager<Acc>();\n\n const provider = props?.isAuthenticated ? \"testProvider\" : \"anonymous\";\n const storage = context.getAuthSecretStorage();\n const node = account._raw.core.node;\n\n const credentials = {\n accountID: account.id,\n accountSecret: node.getCurrentAgent().agentSecret,\n secretSeed: SecretSeedMap.get(account.id),\n provider,\n } satisfies AuthCredentials;\n\n storage.set(credentials);\n\n context.updateContext(\n {\n AccountSchema: account.constructor as AccountClass<Acc> &\n CoValueFromRaw<Acc>,\n ...props,\n },\n {\n me: account,\n node,\n done: () => {\n node.gracefulShutdown();\n },\n logOut: async () => {\n await storage.clear();\n node.gracefulShutdown();\n },\n },\n {\n credentials,\n },\n );\n\n return context;\n }\n\n static fromGuest<Acc extends Account>(\n { guest }: { guest: AnonymousJazzAgent },\n props: TestJazzContextManagerProps<Acc> = {},\n ) {\n const context = new TestJazzContextManager<Acc>();\n const node = guest.node;\n\n context.updateContext(props, {\n guest,\n node,\n done: () => {\n node.gracefulShutdown();\n },\n logOut: async () => {\n node.gracefulShutdown();\n },\n });\n\n return context;\n }\n\n async getNewContext(\n props: TestJazzContextManagerProps<Acc>,\n authProps?: JazzContextManagerAuthProps,\n ) {\n if (!syncServer.current) {\n throw new Error(\n \"You need to setup a test sync server with setupJazzTestSync to use the Auth functions\",\n );\n }\n\n const context = await createJazzContext({\n credentials: authProps?.credentials,\n defaultProfileName: props.defaultProfileName,\n newAccountProps: authProps?.newAccountProps,\n peersToLoadFrom: [getPeerConnectedToTestSyncServer()],\n crypto: await TestJSCrypto.create(),\n sessionProvider: randomSessionProvider,\n authSecretStorage: this.getAuthSecretStorage(),\n AccountSchema: props.AccountSchema,\n });\n\n return {\n me: context.account,\n node: context.node,\n done: () => {\n context.done();\n },\n logOut: () => {\n return context.logOut();\n },\n };\n }\n}\n\nexport async function linkAccounts(\n a: Account,\n b: Account,\n aRole: \"server\" | \"client\" = \"server\",\n bRole: \"server\" | \"client\" = \"server\",\n) {\n const [aPeer, bPeer] = cojsonInternals.connectedPeers(b.id, a.id, {\n peer1role: aRole,\n peer2role: bRole,\n });\n\n a._raw.core.node.syncManager.addPeer(aPeer);\n b._raw.core.node.syncManager.addPeer(bPeer);\n\n await a.waitForAllCoValuesSync();\n await b.waitForAllCoValuesSync();\n}\n\nexport async function setupJazzTestSync() {\n if (syncServer.current) {\n syncServer.current.gracefulShutdown();\n }\n\n const account = await Account.create({\n creationProps: {\n name: \"Test Account\",\n },\n crypto: await TestJSCrypto.create(),\n });\n\n syncServer.current = account._raw.core.node;\n\n return account;\n}\n"],"mappings":"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","names":["AccountClass","account"]}
1
+ {"version":3,"sources":["../src/tools/testing.ts"],"sourcesContent":["import { LocalNode } from \"cojson\";\nimport { cojsonInternals } from \"cojson\";\nimport { PureJSCrypto } from \"cojson/dist/crypto/PureJSCrypto\";\nimport {\n Account,\n AccountClass,\n type AnonymousJazzAgent,\n AnyAccountSchema,\n AuthCredentials,\n CoValueFromRaw,\n InstanceOfSchema,\n JazzContextManager,\n JazzContextManagerAuthProps,\n JazzContextManagerBaseProps,\n activeAccountContext,\n anySchemaToCoSchema,\n createAnonymousJazzContext,\n createJazzContext,\n randomSessionProvider,\n} from \"./internal.js\";\n\nconst syncServer: { current: LocalNode | null; asyncPeers: boolean } = {\n current: null,\n asyncPeers: false,\n};\n\nexport class TestJSCrypto extends PureJSCrypto {\n static async create() {\n if (\"navigator\" in globalThis && navigator.userAgent?.includes(\"jsdom\")) {\n // Mocking crypto seal & encrypt to make it work with JSDom. Getting \"Error: Uint8Array expected\" there\n const crypto = new PureJSCrypto();\n\n crypto.seal = (options) =>\n `sealed_U${cojsonInternals.stableStringify(options.message)}` as any;\n crypto.unseal = (sealed) =>\n JSON.parse(sealed.substring(\"sealed_U\".length));\n crypto.encrypt = (message) =>\n `encrypted_U${cojsonInternals.stableStringify(message)}` as any;\n crypto.decryptRaw = (encrypted) =>\n encrypted.substring(\"encrypted_U\".length) as any;\n\n return crypto;\n }\n\n // For non-jsdom environments, we use the real crypto\n return new PureJSCrypto();\n }\n}\n\nexport function getPeerConnectedToTestSyncServer() {\n if (!syncServer.current) {\n throw new Error(\"Sync server not initialized\");\n }\n\n const [aPeer, bPeer] = cojsonInternals.connectedPeers(\n Math.random().toString(),\n Math.random().toString(),\n {\n peer1role: \"server\",\n peer2role: \"server\",\n },\n );\n\n if (syncServer.asyncPeers) {\n const push = aPeer.outgoing.push;\n\n aPeer.outgoing.push = (message) => {\n setTimeout(() => {\n push.call(aPeer.outgoing, message);\n });\n };\n\n bPeer.outgoing.push = (message) => {\n setTimeout(() => {\n push.call(bPeer.outgoing, message);\n });\n };\n }\n\n syncServer.current.syncManager.addPeer(aPeer);\n\n return bPeer;\n}\n\nconst SecretSeedMap = new Map<string, Uint8Array>();\nlet isMigrationActive = false;\n\nexport async function createJazzTestAccount<\n S extends\n | (AccountClass<Account> & CoValueFromRaw<Account>)\n | AnyAccountSchema,\n>(options?: {\n isCurrentActiveAccount?: boolean;\n AccountSchema?: S;\n creationProps?: Record<string, unknown>;\n}): Promise<InstanceOfSchema<S>> {\n const AccountClass = options?.AccountSchema\n ? anySchemaToCoSchema(options.AccountSchema)\n : Account;\n const peers = [];\n if (syncServer.current) {\n peers.push(getPeerConnectedToTestSyncServer());\n }\n\n const crypto = await TestJSCrypto.create();\n const secretSeed = crypto.newRandomSecretSeed();\n\n const { node } = await LocalNode.withNewlyCreatedAccount({\n creationProps: {\n name: \"Test Account\",\n ...options?.creationProps,\n },\n initialAgentSecret: crypto.agentSecretFromSecretSeed(secretSeed),\n crypto,\n peersToLoadFrom: peers,\n migration: async (rawAccount, _node, creationProps) => {\n if (isMigrationActive) {\n throw new Error(\n \"It is not possible to create multiple accounts in parallel inside the test environment.\",\n );\n }\n\n isMigrationActive = true;\n\n // @ts-expect-error - AccountClass doesn't infer the fromRaw static method\n const account = AccountClass.fromRaw(rawAccount) as InstanceOfSchema<S>;\n\n // We need to set the account as current because the migration\n // will probably rely on the global me\n const prevActiveAccount = activeAccountContext.maybeGet();\n activeAccountContext.set(account);\n\n await account.applyMigration?.(creationProps);\n\n if (!options?.isCurrentActiveAccount) {\n activeAccountContext.set(prevActiveAccount);\n }\n\n isMigrationActive = false;\n },\n });\n\n const account = AccountClass.fromNode(node);\n SecretSeedMap.set(account.id, secretSeed);\n\n if (options?.isCurrentActiveAccount) {\n activeAccountContext.set(account);\n }\n\n return account as InstanceOfSchema<S>;\n}\n\nexport function setActiveAccount(account: Account) {\n activeAccountContext.set(account);\n}\n\nexport async function createJazzTestGuest() {\n const ctx = await createAnonymousJazzContext({\n crypto: await PureJSCrypto.create(),\n peersToLoadFrom: [],\n });\n\n return {\n guest: ctx.agent,\n };\n}\n\nexport type TestJazzContextManagerProps<Acc extends Account> =\n JazzContextManagerBaseProps<Acc> & {\n defaultProfileName?: string;\n AccountSchema?: AccountClass<Acc> & CoValueFromRaw<Acc>;\n isAuthenticated?: boolean;\n };\n\nexport class TestJazzContextManager<\n Acc extends Account,\n> extends JazzContextManager<Acc, TestJazzContextManagerProps<Acc>> {\n static fromAccountOrGuest<Acc extends Account>(\n account?: Acc | { guest: AnonymousJazzAgent },\n props?: TestJazzContextManagerProps<Acc>,\n ) {\n if (account && \"guest\" in account) {\n return this.fromGuest<Acc>(account, props);\n }\n\n return this.fromAccount<Acc>(account ?? (Account.getMe() as Acc), props);\n }\n\n static fromAccount<Acc extends Account>(\n account: Acc,\n props?: TestJazzContextManagerProps<Acc>,\n ) {\n const context = new TestJazzContextManager<Acc>();\n\n const provider = props?.isAuthenticated ? \"testProvider\" : \"anonymous\";\n const storage = context.getAuthSecretStorage();\n const node = account._raw.core.node;\n\n const credentials = {\n accountID: account.id,\n accountSecret: node.getCurrentAgent().agentSecret,\n secretSeed: SecretSeedMap.get(account.id),\n provider,\n } satisfies AuthCredentials;\n\n storage.set(credentials);\n\n context.updateContext(\n {\n AccountSchema: account.constructor as AccountClass<Acc> &\n CoValueFromRaw<Acc>,\n ...props,\n },\n {\n me: account,\n node,\n done: () => {\n node.gracefulShutdown();\n },\n logOut: async () => {\n await storage.clear();\n node.gracefulShutdown();\n },\n },\n {\n credentials,\n },\n );\n\n return context;\n }\n\n static fromGuest<Acc extends Account>(\n { guest }: { guest: AnonymousJazzAgent },\n props: TestJazzContextManagerProps<Acc> = {},\n ) {\n const context = new TestJazzContextManager<Acc>();\n const node = guest.node;\n\n context.updateContext(props, {\n guest,\n node,\n done: () => {\n node.gracefulShutdown();\n },\n logOut: async () => {\n node.gracefulShutdown();\n },\n });\n\n return context;\n }\n\n async getNewContext(\n props: TestJazzContextManagerProps<Acc>,\n authProps?: JazzContextManagerAuthProps,\n ) {\n if (!syncServer.current) {\n throw new Error(\n \"You need to setup a test sync server with setupJazzTestSync to use the Auth functions\",\n );\n }\n\n const context = await createJazzContext({\n credentials: authProps?.credentials,\n defaultProfileName: props.defaultProfileName,\n newAccountProps: authProps?.newAccountProps,\n peersToLoadFrom: [getPeerConnectedToTestSyncServer()],\n crypto: await TestJSCrypto.create(),\n sessionProvider: randomSessionProvider,\n authSecretStorage: this.getAuthSecretStorage(),\n AccountSchema: props.AccountSchema,\n });\n\n return {\n me: context.account,\n node: context.node,\n done: () => {\n context.done();\n },\n logOut: () => {\n return context.logOut();\n },\n };\n }\n}\n\nexport async function linkAccounts(\n a: Account,\n b: Account,\n aRole: \"server\" | \"client\" = \"server\",\n bRole: \"server\" | \"client\" = \"server\",\n) {\n const [aPeer, bPeer] = cojsonInternals.connectedPeers(b.id, a.id, {\n peer1role: aRole,\n peer2role: bRole,\n });\n\n a._raw.core.node.syncManager.addPeer(aPeer);\n b._raw.core.node.syncManager.addPeer(bPeer);\n\n await a.waitForAllCoValuesSync();\n await b.waitForAllCoValuesSync();\n}\n\nexport async function setupJazzTestSync({\n asyncPeers = false,\n}: { asyncPeers?: boolean } = {}) {\n if (syncServer.current) {\n syncServer.current.gracefulShutdown();\n }\n\n const account = await Account.create({\n creationProps: {\n name: \"Test Account\",\n },\n crypto: await TestJSCrypto.create(),\n });\n\n syncServer.current = account._raw.core.node;\n syncServer.asyncPeers = asyncPeers;\n\n return account;\n}\n"],"mappings":"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","names":["AccountClass","account"]}
@@ -20,5 +20,5 @@ export { PassphraseAuth } from "./auth/PassphraseAuth.js";
20
20
  export { createInviteLink, parseInviteLink, consumeInviteLink, } from "./implementation/invites.js";
21
21
  export { AnonymousJazzAgent, createAnonymousJazzContext, createJazzContextFromExistingCredentials, createJazzContextForNewAccount, createJazzContext, randomSessionProvider, type AuthResult, type Credentials, type JazzContextWithAccount, } from "./internal.js";
22
22
  export type * from "./types.js";
23
- export { zodSchemaToCoSchema, anySchemaToCoSchema, type InstanceOfSchema, type InstanceOfSchemaCoValuesNullable, type CoValueOrZodSchema, type Loaded, type AccountSchema, type AnyAccountSchema, type CoListSchema, type CoMapSchema, type CoFeedSchema, type PlainTextSchema, type FileStreamSchema, type ResolveQuery, type ResolveQueryStrict, type InitFor, type CoRecordSchema, type CoProfileSchema, } from "./internal.js";
23
+ export { zodSchemaToCoSchema, anySchemaToCoSchema, type InstanceOfSchema, type InstanceOfSchemaCoValuesNullable, type CoValueOrZodSchema, type Loaded, type BaseAccountShape, type DefaultAccountShape, type AccountSchema, type AnyAccountSchema, type CoListSchema, type CoMapSchema, type CoFeedSchema, type PlainTextSchema, type FileStreamSchema, type ResolveQuery, type ResolveQueryStrict, type InitFor, type CoRecordSchema, type CoProfileSchema, } from "./internal.js";
24
24
  //# sourceMappingURL=exports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/tools/exports.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,WAAW,GACZ,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,CAAC,MAAM,2CAA2C,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,OAAO,EACP,YAAY,EACZ,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,MAAM,EACN,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,KAAK,2BAA2B,GACjC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,wCAAwC,EACxC,8BAA8B,EAC9B,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAEvB,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/tools/exports.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,WAAW,GACZ,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,CAAC,MAAM,2CAA2C,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,OAAO,EACP,YAAY,EACZ,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,MAAM,EACN,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,KAAK,2BAA2B,GACjC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,wCAAwC,EACxC,8BAA8B,EAC9B,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAEvB,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AgentSecret, CryptoProvider, LocalNode, Peer, RawAccountID, SessionID } from "cojson";
1
+ import { AgentSecret, CryptoProvider, LocalNode, Peer, RawAccountID, SessionID, StorageAPI } from "cojson";
2
2
  import { AuthSecretStorage } from "../auth/AuthSecretStorage.js";
3
3
  import { type Account, type AccountClass } from "../coValues/account.js";
4
4
  import { type AnyAccountSchema, CoValueFromRaw, type ID, type InstanceOfSchema } from "../internal.js";
@@ -49,15 +49,16 @@ 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>) | AnyAccountSchema>({ credentials, peersToLoadFrom, crypto, AccountSchema: PropsAccountSchema, sessionProvider, onLogOut, }: {
52
+ export declare function createJazzContextFromExistingCredentials<S extends (AccountClass<Account> & CoValueFromRaw<Account>) | AnyAccountSchema>({ credentials, peersToLoadFrom, crypto, storage, AccountSchema: PropsAccountSchema, sessionProvider, onLogOut, }: {
53
53
  credentials: Credentials;
54
54
  peersToLoadFrom: Peer[];
55
55
  crypto: CryptoProvider;
56
56
  AccountSchema?: S;
57
57
  sessionProvider: SessionProvider;
58
58
  onLogOut?: () => void;
59
+ storage?: StorageAPI;
59
60
  }): Promise<JazzContextWithAccount<InstanceOfSchema<S>>>;
60
- export declare function createJazzContextForNewAccount<S extends (AccountClass<Account> & CoValueFromRaw<Account>) | AnyAccountSchema>({ creationProps, initialAgentSecret, peersToLoadFrom, crypto, AccountSchema: PropsAccountSchema, onLogOut, }: {
61
+ export declare function createJazzContextForNewAccount<S extends (AccountClass<Account> & CoValueFromRaw<Account>) | AnyAccountSchema>({ creationProps, initialAgentSecret, peersToLoadFrom, crypto, AccountSchema: PropsAccountSchema, onLogOut, storage, }: {
61
62
  creationProps: {
62
63
  name: string;
63
64
  };
@@ -66,6 +67,7 @@ export declare function createJazzContextForNewAccount<S extends (AccountClass<A
66
67
  crypto: CryptoProvider;
67
68
  AccountSchema?: S;
68
69
  onLogOut?: () => Promise<void>;
70
+ storage?: StorageAPI;
69
71
  }): Promise<JazzContextWithAccount<InstanceOfSchema<S>>>;
70
72
  export declare function createJazzContext<S extends (AccountClass<Account> & CoValueFromRaw<Account>) | AnyAccountSchema>(options: {
71
73
  credentials?: AuthCredentials;
@@ -76,6 +78,7 @@ export declare function createJazzContext<S extends (AccountClass<Account> & CoV
76
78
  AccountSchema?: S;
77
79
  sessionProvider: SessionProvider;
78
80
  authSecretStorage: AuthSecretStorage;
81
+ storage?: StorageAPI;
79
82
  }): Promise<{
80
83
  authSecretStorage: AuthSecretStorage;
81
84
  node: LocalNode;
@@ -83,9 +86,10 @@ export declare function createJazzContext<S extends (AccountClass<Account> & CoV
83
86
  done: () => void;
84
87
  logOut: () => Promise<void>;
85
88
  }>;
86
- export declare function createAnonymousJazzContext({ peersToLoadFrom, crypto, }: {
89
+ export declare function createAnonymousJazzContext({ peersToLoadFrom, crypto, storage, }: {
87
90
  peersToLoadFrom: Peer[];
88
91
  crypto: CryptoProvider;
92
+ storage?: StorageAPI;
89
93
  }): JazzContextWithAgent;
90
94
  export {};
91
95
  //# sourceMappingURL=createContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createContext.d.ts","sourceRoot":"","sources":["../../../src/tools/implementation/createContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createContext.d.ts","sourceRoot":"","sources":["../../../src/tools/implementation/createContext.ts"],"names":[],"mappings":"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"}
@@ -6,21 +6,20 @@ import { InstanceOrPrimitiveOfSchemaCoValuesNullable } from "../typeConverters/I
6
6
  import { z } from "../zodReExport.js";
7
7
  import { Loaded, ResolveQuery } from "../zodSchema.js";
8
8
  import { AnyCoMapSchema, CoMapSchema } from "./CoMapSchema.js";
9
- export type AccountSchema<Shape extends {
10
- profile: AnyCoMapSchema<{
11
- name: z.core.$ZodString<string>;
12
- inbox?: z.core.$ZodOptional<z.core.$ZodString>;
13
- inboxInvite?: z.core.$ZodOptional<z.core.$ZodString>;
14
- }>;
9
+ export type BaseProfileShape = {
10
+ name: z.core.$ZodString<string>;
11
+ inbox?: z.core.$ZodOptional<z.core.$ZodString>;
12
+ inboxInvite?: z.core.$ZodOptional<z.core.$ZodString>;
13
+ };
14
+ export type BaseAccountShape = {
15
+ profile: AnyCoMapSchema<BaseProfileShape>;
15
16
  root: AnyCoMapSchema;
16
- } = {
17
- profile: CoMapSchema<{
18
- name: z.core.$ZodString<string>;
19
- inbox?: z.core.$ZodOptional<z.core.$ZodString>;
20
- inboxInvite?: z.core.$ZodOptional<z.core.$ZodString>;
21
- }>;
17
+ };
18
+ export type DefaultAccountShape = {
19
+ profile: CoMapSchema<BaseProfileShape>;
22
20
  root: CoMapSchema<{}>;
23
- }> = Omit<CoMapSchema<Shape>, "create" | "load" | "withMigration"> & {
21
+ };
22
+ export type AccountSchema<Shape extends BaseAccountShape = DefaultAccountShape> = Omit<CoMapSchema<Shape>, "create" | "load" | "withMigration"> & {
24
23
  builtin: "Account";
25
24
  create: (options: {
26
25
  creationProps?: {
@@ -1 +1 @@
1
- {"version":3,"file":"AccountSchema.d.ts","sourceRoot":"","sources":["../../../../../src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAC/F,OAAO,EAAE,2CAA2C,EAAE,MAAM,kEAAkE,CAAC;AAC/H,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,MAAM,aAAa,CACvB,KAAK,SAAS;IACZ,OAAO,EAAE,cAAc,CAAC;QACtB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACtD,CAAC,CAAC;IACH,IAAI,EAAE,cAAc,CAAC;CACtB,GAAG;IACF,OAAO,EAAE,WAAW,CAAC;QACnB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACtD,CAAC,CAAC;IACH,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;CACvB,IACC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,eAAe,CAAC,GAAG;IAClE,OAAO,EAAE,SAAS,CAAC;IAEnB,MAAM,EAAE,CAAC,OAAO,EAAE;QAChB,aAAa,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QACjC,MAAM,CAAC,EAAE,cAAc,CAAC;KACzB,KAAK,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAEtC,IAAI,EAAE,CAAC,CAAC,SAAS,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EACjD,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;QACtC,OAAO,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;KACxD,KACE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAErD,QAAQ,EAAE,CACR,EAAE,EAAE,OAAO,EACX,OAAO,EAAE;QACP,aAAa,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAClC,KACE,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAErC,KAAK,EAAE,MAAM,+BAA+B,CAAC,KAAK,CAAC,CAAC;IAEpD,aAAa,CACX,SAAS,EAAE,CACT,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EACrC,aAAa,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAC7B,IAAI,GACR,aAAa,CAAC,KAAK,CAAC,CAAC;IAExB,WAAW,EAAE,MAAM,OAAO,OAAO,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,eAAe,CACzB,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,EACzD,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAC9D,WAAW,CAAC,KAAK,GAAG,mBAAmB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAG5D,MAAM,MAAM,gBAAgB,CAC1B,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,IACzD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG;IAC7B,aAAa,EAAE,IAAI,CAAC;IACpB,OAAO,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI;IACjE,CAAC,UAAU,GAAG,IAAI,MAAM,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;CACxE,GAAG,OAAO,CAAC;AAEZ,MAAM,MAAM,+BAA+B,CACzC,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,IACjC;IACF,CAAC,UAAU,GAAG,IAAI,MAAM,KAAK,GAAG,2CAA2C,CACzE,KAAK,CAAC,GAAG,CAAC,CACX;CACF,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"AccountSchema.d.ts","sourceRoot":"","sources":["../../../../../src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,45 @@
1
- import { AccountSchema, AnyCoMapSchema, CoFeedSchema, CoListSchema, CoMapSchema, CoProfileSchema, CoRecordSchema, FileStreamSchema, ImageDefinition, PlainTextSchema } from "../../internal.js";
1
+ import { type AccountSchema, BaseAccountShape, type CoFeedSchema, type CoListSchema, type CoMapSchema, type CoProfileSchema, type CoRecordSchema, type FileStreamSchema, ImageDefinition, type PlainTextSchema } from "../../internal.js";
2
2
  import { RichTextSchema } from "./schemaTypes/RichTextSchema.js";
3
3
  import { z } from "./zodReExport.js";
4
4
  export declare const coMapDefiner: <Shape extends z.core.$ZodLooseShape>(shape: Shape) => CoMapSchema<Shape>;
5
- export declare const coAccountDefiner: <Shape extends {
6
- profile: AnyCoMapSchema<{
7
- name: z.core.$ZodString<string>;
8
- inbox?: z.core.$ZodOptional<z.core.$ZodString>;
9
- inboxInvite?: z.core.$ZodOptional<z.core.$ZodString>;
10
- }>;
11
- root: AnyCoMapSchema;
12
- }>(shape?: Shape) => AccountSchema<Shape>;
5
+ /**
6
+ * Defines a collaborative account schema for Jazz applications.
7
+ *
8
+ * Creates an account schema that represents a user account with profile and root data.
9
+ * Accounts are the primary way to identify and manage users in Jazz applications.
10
+ *
11
+ * @template Shape - The shape of the account schema extending BaseAccountShape
12
+ * @param shape - The account schema shape. Defaults to a basic profile with name, inbox, and inboxInvite fields, plus an empty root object.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * // Basic account with default profile
17
+ * const BasicAccount = co.account();
18
+ *
19
+ * // Custom account with specific profile and root structure
20
+ * const JazzAccount = co.account({
21
+ * profile: co.profile({
22
+ * name: z.string(),
23
+ * avatar: z.optional(z.string()),
24
+ * }),
25
+ * root: co.map({
26
+ * organizations: co.list(Organization),
27
+ * draftOrganization: DraftOrganization,
28
+ * }),
29
+ * }).withMigration(async (account) => {
30
+ * // Migration logic for existing accounts
31
+ * if (account.profile === undefined) {
32
+ * const group = Group.create();
33
+ * account.profile = co.profile().create(
34
+ * { name: getRandomUsername() },
35
+ * group
36
+ * );
37
+ * group.addMember("everyone", "reader");
38
+ * }
39
+ * });
40
+ * ```
41
+ */
42
+ export declare const coAccountDefiner: <Shape extends BaseAccountShape>(shape?: Shape) => AccountSchema<Shape>;
13
43
  export declare const coRecordDefiner: <K extends z.core.$ZodString<string>, V extends z.core.$ZodType>(_keyType: K, valueType: V) => CoRecordSchema<K, V>;
14
44
  export declare const coListDefiner: <T extends z.core.$ZodType>(element: T) => CoListSchema<T>;
15
45
  export declare const coProfileDefiner: <Shape extends z.core.$ZodLooseShape = {
@@ -1 +1 @@
1
- {"version":3,"file":"zodCo.d.ts","sourceRoot":"","sources":["../../../../src/tools/implementation/zodSchema/zodCo.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EACb,cAAc,EAEd,YAAY,EACZ,YAAY,EACZ,WAAW,EAEX,eAAe,EACf,cAAc,EAId,gBAAgB,EAChB,eAAe,EACf,eAAe,EAGhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAoDrC,eAAO,MAAM,YAAY,GAAI,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,SACvD,KAAK,KACX,WAAW,CAAC,KAAK,CAMnB,CAAC;AA8DF,eAAO,MAAM,gBAAgB,GAC3B,KAAK,SAAS;IACZ,OAAO,EAAE,cAAc,CAAC;QACtB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACtD,CAAC,CAAC;IACH,IAAI,EAAE,cAAc,CAAC;CACtB,UAEM,KAAK,KAQX,aAAa,CAAC,KAAK,CAMrB,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EACnC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,YAEf,CAAC,aACA,CAAC,KACX,cAAc,CAAC,CAAC,EAAE,CAAC,CAKrB,CAAC;AA4BF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,WAC5C,CAAC,KACT,YAAY,CAAC,CAAC,CAMhB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc;UAhJf,EAAG,IACxB,CAAC,UAAU;WAAkB,EAAG,IAAI,CAAC,YAClC,CAAC,EAAE,IAAI,CAAC,UAAU;iBAGf,EAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,UAEnC;WA2IS,KAAK,GAAG;IACb,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;CACtD,KACA,eAAe,CAAC,KAAK,CAQvB,CAAC;AAiCF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,WAC5C,CAAC,KACT,YAAY,CAAC,CAAC,CAEhB,CAAC;AAgCF,eAAO,MAAM,mBAAmB,QAAO,gBAEtC,CAAC;AA6BF,eAAO,MAAM,kBAAkB,QAAO,eAErC,CAAC;AA0BF,eAAO,MAAM,iBAAiB,QAAO,cAEpC,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,OAAO,eAExC,CAAC"}
1
+ {"version":3,"file":"zodCo.d.ts","sourceRoot":"","sources":["../../../../src/tools/implementation/zodSchema/zodCo.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAElB,gBAAgB,EAEhB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEhB,KAAK,eAAe,EACpB,KAAK,cAAc,EAInB,KAAK,gBAAgB,EACrB,eAAe,EACf,KAAK,eAAe,EAGrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAoDrC,eAAO,MAAM,YAAY,GAAI,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,SACvD,KAAK,KACX,WAAW,CAAC,KAAK,CAMnB,CAAC;AAuDF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,SAAS,gBAAgB,UACtD,KAAK,KAQX,aAAa,CAAC,KAAK,CAMrB,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EACnC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,YAEf,CAAC,aACA,CAAC,KACX,cAAc,CAAC,CAAC,EAAE,CAAC,CAKrB,CAAC;AA4BF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,WAC5C,CAAC,KACT,YAAY,CAAC,CAAC,CAMhB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc;UAvK7B,EAAG,IAAI,CAAC,UAAU;WAAkB,EAAG,IAAI,CAAC,YAAY,CAAC,EAC/D,IAAE,CAAC,UAAU;iBACC,EAAG,IAAI,CAAE,YAChB,CAAC,EAAE,IAAI,CAAC,UAAU;WAsKlB,KAAK,GAAG;IACb,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;CACtD,KACA,eAAe,CAAC,KAAK,CAQvB,CAAC;AAiCF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,WAC5C,CAAC,KACT,YAAY,CAAC,CAAC,CAEhB,CAAC;AAgCF,eAAO,MAAM,mBAAmB,QAAO,gBAEtC,CAAC;AA6BF,eAAO,MAAM,kBAAkB,QAAO,eAErC,CAAC;AA0BF,eAAO,MAAM,iBAAiB,QAAO,cAEpC,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,OAAO,eAExC,CAAC"}
@@ -32,6 +32,8 @@ export declare class SubscriptionScope<D extends CoValue> {
32
32
  handleChildUpdate: (id: string, value: SubscriptionValue<any, any> | Unloaded, key?: string) => void;
33
33
  shouldSendUpdates(): boolean;
34
34
  getCurrentValue(): D | null | undefined;
35
+ isStreaming(): boolean;
36
+ isFileStream(): boolean;
35
37
  triggerUpdate(): void;
36
38
  subscribers: Set<(value: SubscriptionValue<D, any>) => void>;
37
39
  subscribe(listener: (value: SubscriptionValue<D, any>) => void): () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionScope.d.ts","sourceRoot":"","sources":["../../../src/tools/subscribe/SubscriptionScope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubscriptionScope.d.ts","sourceRoot":"","sources":["../../../src/tools/subscribe/SubscriptionScope.ts"],"names":[],"mappings":"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"}
@@ -39,5 +39,7 @@ export declare class TestJazzContextManager<Acc extends Account> extends JazzCon
39
39
  }>;
40
40
  }
41
41
  export declare function linkAccounts(a: Account, b: Account, aRole?: "server" | "client", bRole?: "server" | "client"): Promise<void>;
42
- export declare function setupJazzTestSync(): Promise<Account>;
42
+ export declare function setupJazzTestSync({ asyncPeers, }?: {
43
+ asyncPeers?: boolean;
44
+ }): Promise<Account>;
43
45
  //# sourceMappingURL=testing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/tools/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EACL,OAAO,EACP,YAAY,EACZ,KAAK,kBAAkB,EACvB,gBAAgB,EAEhB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAM5B,MAAM,eAAe,CAAC;AAIvB,qBAAa,YAAa,SAAQ,YAAY;WAC/B,MAAM;CAoBpB;AAED,wBAAgB,gCAAgC,0BAgB/C;AAKD,wBAAsB,qBAAqB,CACzC,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,gBAAgB,EACpB,OAAO,CAAC,EAAE;IACV,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAuD/B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAEhD;AAED,wBAAsB,mBAAmB;;GASxC;AAED,MAAM,MAAM,2BAA2B,CAAC,GAAG,SAAS,OAAO,IACzD,2BAA2B,CAAC,GAAG,CAAC,GAAG;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEJ,qBAAa,sBAAsB,CACjC,GAAG,SAAS,OAAO,CACnB,SAAQ,kBAAkB,CAAC,GAAG,EAAE,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,CAAC,kBAAkB,CAAC,GAAG,SAAS,OAAO,EAC3C,OAAO,CAAC,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,EAC7C,KAAK,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC;IAS1C,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,OAAO,EACpC,OAAO,EAAE,GAAG,EACZ,KAAK,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC;IA0C1C,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,OAAO,EAClC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,EACxC,KAAK,GAAE,2BAA2B,CAAC,GAAG,CAAM;IAmBxC,aAAa,CACjB,KAAK,EAAE,2BAA2B,CAAC,GAAG,CAAC,EACvC,SAAS,CAAC,EAAE,2BAA2B;;uBAkE20L,cAAc;;;;;;;;CApCn4L;AAED,wBAAsB,YAAY,CAChC,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,KAAK,GAAE,QAAQ,GAAG,QAAmB,EACrC,KAAK,GAAE,QAAQ,GAAG,QAAmB,iBAYtC;AAED,wBAAsB,iBAAiB,qBAetC"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/tools/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EACL,OAAO,EACP,YAAY,EACZ,KAAK,kBAAkB,EACvB,gBAAgB,EAEhB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAM5B,MAAM,eAAe,CAAC;AAOvB,qBAAa,YAAa,SAAQ,YAAY;WAC/B,MAAM;CAoBpB;AAED,wBAAgB,gCAAgC,0BAiC/C;AAKD,wBAAsB,qBAAqB,CACzC,CAAC,SACG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GACjD,gBAAgB,EACpB,OAAO,CAAC,EAAE;IACV,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAuD/B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAEhD;AAED,wBAAsB,mBAAmB;;GASxC;AAED,MAAM,MAAM,2BAA2B,CAAC,GAAG,SAAS,OAAO,IACzD,2BAA2B,CAAC,GAAG,CAAC,GAAG;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEJ,qBAAa,sBAAsB,CACjC,GAAG,SAAS,OAAO,CACnB,SAAQ,kBAAkB,CAAC,GAAG,EAAE,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,CAAC,kBAAkB,CAAC,GAAG,SAAS,OAAO,EAC3C,OAAO,CAAC,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,EAC7C,KAAK,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC;IAS1C,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,OAAO,EACpC,OAAO,EAAE,GAAG,EACZ,KAAK,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC;IA0C1C,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,OAAO,EAClC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,EACxC,KAAK,GAAE,2BAA2B,CAAC,GAAG,CAAM;IAmBxC,aAAa,CACjB,KAAK,EAAE,2BAA2B,CAAC,GAAG,CAAC,EACvC,SAAS,CAAC,EAAE,2BAA2B;;uBAqEq3K,cAAc;;;;;;;;CAvC76K;AAED,wBAAsB,YAAY,CAChC,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,KAAK,GAAE,QAAQ,GAAG,QAAmB,EACrC,KAAK,GAAE,QAAQ,GAAG,QAAmB,iBAYtC;AAED,wBAAsB,iBAAiB,CAAC,EACtC,UAAkB,GACnB,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,oBAgB/B"}
package/package.json CHANGED
@@ -139,7 +139,7 @@
139
139
  },
140
140
  "type": "module",
141
141
  "license": "MIT",
142
- "version": "0.15.7",
142
+ "version": "0.15.9",
143
143
  "dependencies": {
144
144
  "@manuscripts/prosemirror-recreate-steps": "^0.1.4",
145
145
  "@scure/base": "1.2.1",
@@ -158,10 +158,9 @@
158
158
  "prosemirror-state": "^1.4.3",
159
159
  "prosemirror-transform": "^1.9.0",
160
160
  "zod": "3.25.28",
161
- "cojson": "0.15.7",
162
- "cojson-storage": "0.15.7",
163
- "cojson-storage-indexeddb": "0.15.7",
164
- "cojson-transport-ws": "0.15.7"
161
+ "cojson": "0.15.9",
162
+ "cojson-storage-indexeddb": "0.15.9",
163
+ "cojson-transport-ws": "0.15.9"
165
164
  },
166
165
  "devDependencies": {
167
166
  "@scure/bip39": "^1.3.0",
@@ -169,9 +168,10 @@
169
168
  "@testing-library/dom": "^10.4.0",
170
169
  "@testing-library/jest-dom": "^6.6.3",
171
170
  "@testing-library/react": "16.2.0",
172
- "@types/react": "19.0.0",
173
- "@types/react-dom": "19.0.0",
171
+ "@types/react": "19.1.0",
172
+ "@types/react-dom": "19.1.0",
174
173
  "@vitest/browser": "^3.2.4",
174
+ "queueueue": "^4.1.2",
175
175
  "playwright": "^1.50.1",
176
176
  "tsup": "8.5.0",
177
177
  "typescript": "5.6.2",
@@ -1,5 +1,5 @@
1
1
  import { LocalNode, Peer, RawAccountID } from "cojson";
2
- import { IDBStorage } from "cojson-storage-indexeddb";
2
+ import { getIndexedDBStorage } from "cojson-storage-indexeddb";
3
3
  import { WebSocketPeerWithReconnection } from "cojson-transport-ws";
4
4
  import { WasmCrypto } from "cojson/crypto/WasmCrypto";
5
5
  import {
@@ -55,14 +55,13 @@ async function setupPeers(options: BaseBrowserContextOptions) {
55
55
 
56
56
  const peersToLoadFrom: Peer[] = [];
57
57
 
58
- if (useIndexedDB) {
59
- peersToLoadFrom.push(await IDBStorage.asPeer());
60
- }
58
+ const storage = useIndexedDB ? await getIndexedDBStorage() : undefined;
61
59
 
62
60
  if (options.sync.when === "never") {
63
61
  return {
64
62
  toggleNetwork: () => {},
65
63
  peersToLoadFrom,
64
+ storage,
66
65
  setNode: () => {},
67
66
  crypto,
68
67
  };
@@ -102,6 +101,7 @@ async function setupPeers(options: BaseBrowserContextOptions) {
102
101
  return {
103
102
  toggleNetwork,
104
103
  peersToLoadFrom,
104
+ storage,
105
105
  setNode,
106
106
  crypto,
107
107
  };
@@ -110,12 +110,13 @@ async function setupPeers(options: BaseBrowserContextOptions) {
110
110
  export async function createJazzBrowserGuestContext(
111
111
  options: BaseBrowserContextOptions,
112
112
  ) {
113
- const { toggleNetwork, peersToLoadFrom, setNode, crypto } =
113
+ const { toggleNetwork, peersToLoadFrom, setNode, crypto, storage } =
114
114
  await setupPeers(options);
115
115
 
116
116
  const context = await createAnonymousJazzContext({
117
117
  crypto,
118
118
  peersToLoadFrom,
119
+ storage,
119
120
  });
120
121
 
121
122
  setNode(context.agent.node);
@@ -152,7 +153,7 @@ export async function createJazzBrowserContext<
152
153
  | (AccountClass<Account> & CoValueFromRaw<Account>)
153
154
  | AnyAccountSchema,
154
155
  >(options: BrowserContextOptions<S>) {
155
- const { toggleNetwork, peersToLoadFrom, setNode, crypto } =
156
+ const { toggleNetwork, peersToLoadFrom, setNode, crypto, storage } =
156
157
  await setupPeers(options);
157
158
 
158
159
  let unsubscribeAuthUpdate = () => {};
@@ -177,6 +178,7 @@ export async function createJazzBrowserContext<
177
178
  credentials: options.credentials,
178
179
  newAccountProps: options.newAccountProps,
179
180
  peersToLoadFrom,
181
+ storage,
180
182
  crypto,
181
183
  defaultProfileName: options.defaultProfileName,
182
184
  AccountSchema: options.AccountSchema,
@@ -160,8 +160,6 @@ describe("useCoState", () => {
160
160
  account,
161
161
  });
162
162
 
163
- expect(result.current).toBeUndefined();
164
-
165
163
  await waitFor(() => {
166
164
  expect(result.current).toBeNull();
167
165
  });
@@ -191,8 +189,6 @@ describe("useCoState", () => {
191
189
  account,
192
190
  });
193
191
 
194
- expect(result.current).toBeUndefined();
195
-
196
192
  await waitFor(() => {
197
193
  expect(result.current).toBeNull();
198
194
  });
@@ -225,8 +221,6 @@ describe("useCoState", () => {
225
221
  account,
226
222
  });
227
223
 
228
- expect(result.current).toBeUndefined();
229
-
230
224
  await waitFor(() => {
231
225
  expect(result.current?.value).toBe("123");
232
226
  });
@@ -258,8 +252,6 @@ describe("useCoState", () => {
258
252
  account,
259
253
  });
260
254
 
261
- expect(result.current).toBeUndefined();
262
-
263
255
  await waitFor(() => {
264
256
  expect(result.current).toBeNull();
265
257
  });
@@ -303,8 +295,6 @@ describe("useCoState", () => {
303
295
  account,
304
296
  });
305
297
 
306
- expect(result.current).toBeUndefined();
307
-
308
298
  await waitFor(() => {
309
299
  expect(result.current).not.toBeUndefined();
310
300
  });
@@ -371,8 +361,6 @@ describe("useCoState", () => {
371
361
  },
372
362
  );
373
363
 
374
- expect(result.current).toBeUndefined();
375
-
376
364
  await waitFor(() => {
377
365
  expect(result.current).not.toBeUndefined();
378
366
  });
@@ -4,6 +4,6 @@ export * from "./media.js";
4
4
  export * from "./provider.js";
5
5
  export * from "./storage/kv-store-context.js";
6
6
 
7
- export { SQLiteDatabaseDriverAsync } from "cojson-storage";
7
+ export { SQLiteDatabaseDriverAsync } from "cojson";
8
8
  export { parseInviteLink } from "jazz-tools";
9
9
  export { createInviteLink, setupKvStore } from "./platform.js";
@@ -1,5 +1,5 @@
1
1
  import NetInfo from "@react-native-community/netinfo";
2
- import { LocalNode, Peer, RawAccountID } from "cojson";
2
+ import { LocalNode, Peer, RawAccountID, getSqliteStorageAsync } from "cojson";
3
3
  import { PureJSCrypto } from "cojson/dist/crypto/PureJSCrypto"; // Importing from dist to not rely on the exports field
4
4
  import {
5
5
  Account,
@@ -20,9 +20,8 @@ import {
20
20
  createJazzContext,
21
21
  } from "jazz-tools";
22
22
  import { KvStore, KvStoreContext } from "./storage/kv-store-context.js";
23
- import { SQLiteReactNative } from "./storage/sqlite-react-native.js";
24
23
 
25
- import { SQLiteDatabaseDriverAsync } from "cojson-storage";
24
+ import { SQLiteDatabaseDriverAsync } from "cojson";
26
25
  import { WebSocketPeerWithReconnection } from "cojson-transport-ws";
27
26
  import type { RNQuickCrypto } from "jazz-tools/react-native-core/crypto";
28
27
 
@@ -49,12 +48,10 @@ async function setupPeers(options: BaseReactNativeContextOptions) {
49
48
 
50
49
  const peersToLoadFrom: Peer[] = [];
51
50
 
52
- if (options.storage && options.storage !== "disabled") {
53
- const storage = await SQLiteReactNative.asPeer({
54
- adapter: options.storage,
55
- });
56
- peersToLoadFrom.push(storage);
57
- }
51
+ const storage =
52
+ options.storage && options.storage !== "disabled"
53
+ ? await getSqliteStorageAsync(options.storage)
54
+ : undefined;
58
55
 
59
56
  if (options.sync.when === "never") {
60
57
  return {
@@ -62,6 +59,7 @@ async function setupPeers(options: BaseReactNativeContextOptions) {
62
59
  peersToLoadFrom,
63
60
  setNode: () => {},
64
61
  crypto,
62
+ storage,
65
63
  };
66
64
  }
67
65
 
@@ -101,18 +99,20 @@ async function setupPeers(options: BaseReactNativeContextOptions) {
101
99
  peersToLoadFrom,
102
100
  setNode,
103
101
  crypto,
102
+ storage,
104
103
  };
105
104
  }
106
105
 
107
106
  export async function createJazzReactNativeGuestContext(
108
107
  options: BaseReactNativeContextOptions,
109
108
  ) {
110
- const { toggleNetwork, peersToLoadFrom, setNode, crypto } =
109
+ const { toggleNetwork, peersToLoadFrom, setNode, crypto, storage } =
111
110
  await setupPeers(options);
112
111
 
113
- const context = await createAnonymousJazzContext({
112
+ const context = createAnonymousJazzContext({
114
113
  crypto,
115
114
  peersToLoadFrom,
115
+ storage,
116
116
  });
117
117
 
118
118
  setNode(context.agent.node);
@@ -149,7 +149,7 @@ export async function createJazzReactNativeContext<
149
149
  | (AccountClass<Account> & CoValueFromRaw<Account>)
150
150
  | AnyAccountSchema,
151
151
  >(options: ReactNativeContextOptions<S>) {
152
- const { toggleNetwork, peersToLoadFrom, setNode, crypto } =
152
+ const { toggleNetwork, peersToLoadFrom, setNode, crypto, storage } =
153
153
  await setupPeers(options);
154
154
 
155
155
  let unsubscribeAuthUpdate = () => {};
@@ -182,6 +182,7 @@ export async function createJazzReactNativeContext<
182
182
  AccountSchema: options.AccountSchema,
183
183
  sessionProvider: provideLockSession,
184
184
  authSecretStorage: options.authSecretStorage,
185
+ storage,
185
186
  });
186
187
 
187
188
  setNode(context.node);
@@ -102,6 +102,8 @@ export {
102
102
  type InstanceOfSchemaCoValuesNullable,
103
103
  type CoValueOrZodSchema,
104
104
  type Loaded,
105
+ type BaseAccountShape,
106
+ type DefaultAccountShape,
105
107
  type AccountSchema,
106
108
  type AnyAccountSchema,
107
109
  type CoListSchema,