jazz-tools 0.16.5 → 0.16.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.
- package/.turbo/turbo-build.log +38 -38
- package/CHANGELOG.md +25 -0
- package/dist/{chunk-H3BIFFQG.js → chunk-R2VNCMG6.js} +3 -3
- package/dist/chunk-R2VNCMG6.js.map +1 -0
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/inspector/{custom-element-TUXKXSZU.js → custom-element-I7L56H6B.js} +3 -5
- package/dist/inspector/{custom-element-TUXKXSZU.js.map → custom-element-I7L56H6B.js.map} +1 -1
- package/dist/inspector/index.js +2 -4
- package/dist/inspector/index.js.map +1 -1
- package/dist/inspector/register-custom-element.js +1 -1
- package/dist/inspector/viewer/co-plain-text-view.d.ts +1 -1
- package/dist/inspector/viewer/co-plain-text-view.d.ts.map +1 -1
- package/dist/inspector/viewer/role-display.d.ts.map +1 -1
- package/dist/react/ssr.d.ts.map +1 -1
- package/dist/react/ssr.js.map +1 -1
- package/dist/react/tests/testUtils.d.ts.map +1 -1
- package/dist/react-core/auth/PassphraseAuth.d.ts +1 -1
- package/dist/react-core/auth/PassphraseAuth.d.ts.map +1 -1
- package/dist/react-core/index.js +1 -3
- package/dist/react-core/index.js.map +1 -1
- package/dist/react-core/tests/testUtils.d.ts.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/dist/tools/coValues/coFeed.d.ts.map +1 -1
- package/dist/tools/coValues/deepLoading.d.ts +10 -10
- package/dist/tools/coValues/deepLoading.d.ts.map +1 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/testing.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/inspector/viewer/co-plain-text-view.tsx +1 -5
- package/src/inspector/viewer/co-stream-view.tsx +1 -1
- package/src/inspector/viewer/role-display.tsx +4 -1
- package/src/react/ssr.ts +1 -3
- package/src/react/tests/testUtils.tsx +2 -10
- package/src/react-core/auth/PassphraseAuth.tsx +1 -5
- package/src/react-core/tests/testUtils.tsx +2 -10
- package/src/tools/coValues/coFeed.ts +3 -2
- package/src/tools/coValues/deepLoading.ts +46 -32
- package/src/tools/index.ts +0 -1
- package/src/tools/testing.ts +3 -1
- package/src/tools/tests/coList.test.ts +1 -1
- package/src/tools/tests/coMap.record.test-d.ts +105 -0
- package/src/tools/tests/coMap.record.test.ts +45 -0
- package/src/tools/tests/coMap.test-d.ts +50 -0
- package/vitest.config.ts +1 -21
- package/dist/browser-media-images/index.test.browser.d.ts +0 -2
- package/dist/browser-media-images/index.test.browser.d.ts.map +0 -1
- package/dist/chunk-H3BIFFQG.js.map +0 -1
- package/src/browser-media-images/index.test.browser.ts +0 -73
@@ -1,5 +1,5 @@
|
|
1
1
|
import { JsonObject } from "cojson";
|
2
|
-
export declare function CoPlainTextView({ data
|
2
|
+
export declare function CoPlainTextView({ data }: {
|
3
3
|
data: JsonObject;
|
4
4
|
}): import("react/jsx-runtime").JSX.Element | undefined;
|
5
5
|
//# sourceMappingURL=co-plain-text-view.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"co-plain-text-view.d.ts","sourceRoot":"","sources":["../../../src/inspector/viewer/co-plain-text-view.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGpC,wBAAgB,eAAe,CAAC,
|
1
|
+
{"version":3,"file":"co-plain-text-view.d.ts","sourceRoot":"","sources":["../../../src/inspector/viewer/co-plain-text-view.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGpC,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,uDAS7D"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"role-display.d.ts","sourceRoot":"","sources":["../../../src/inspector/viewer/role-display.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAI/C,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,KAAK,GACN,EAAE;
|
1
|
+
{"version":3,"file":"role-display.d.ts","sourceRoot":"","sources":["../../../src/inspector/viewer/role-display.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAI/C,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,KAAK,GACN,EAAE;IACD,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;CACnB,kDAoBA"}
|
package/dist/react/ssr.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../../src/react/ssr.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;
|
1
|
+
{"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../../src/react/ssr.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,2CAkBxD"}
|
package/dist/react/ssr.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/react/ssr.ts"],"sourcesContent":["import { WebSocketPeerWithReconnection } from \"cojson-transport-ws\";\nimport { PureJSCrypto } from \"cojson/dist/crypto/PureJSCrypto\";\nimport { createAnonymousJazzContext } from \"jazz-tools\";\n\nexport function createSSRJazzAgent(opts: {
|
1
|
+
{"version":3,"sources":["../../src/react/ssr.ts"],"sourcesContent":["import { WebSocketPeerWithReconnection } from \"cojson-transport-ws\";\nimport { PureJSCrypto } from \"cojson/dist/crypto/PureJSCrypto\";\nimport { createAnonymousJazzContext } from \"jazz-tools\";\n\nexport function createSSRJazzAgent(opts: { peer: string }) {\n const ssrNode = createAnonymousJazzContext({\n crypto: new PureJSCrypto(),\n peersToLoadFrom: [],\n });\n\n const wsPeer = new WebSocketPeerWithReconnection({\n peer: opts.peer,\n reconnectionTimeout: 100,\n addPeer: (peer) => {\n ssrNode.agent.node.syncManager.addPeer(peer);\n },\n removePeer: () => {},\n });\n\n wsPeer.enable();\n\n return ssrNode.agent;\n}\n"],"mappings":";AAAA,SAAS,qCAAqC;AAC9C,SAAS,oBAAoB;AAC7B,SAAS,kCAAkC;AAEpC,SAAS,mBAAmB,MAAwB;AACzD,QAAM,UAAU,2BAA2B;AAAA,IACzC,QAAQ,IAAI,aAAa;AAAA,IACzB,iBAAiB,CAAC;AAAA,EACpB,CAAC;AAED,QAAM,SAAS,IAAI,8BAA8B;AAAA,IAC/C,MAAM,KAAK;AAAA,IACX,qBAAqB;AAAA,IACrB,SAAS,CAAC,SAAS;AACjB,cAAQ,MAAM,KAAK,YAAY,QAAQ,IAAI;AAAA,IAC7C;AAAA,IACA,YAAY,MAAM;AAAA,IAAC;AAAA,EACrB,CAAC;AAED,SAAO,OAAO;AAEd,SAAO,QAAQ;AACjB;","names":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../../src/react/tests/testUtils.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EAGd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC;CAClD,CAAC;AAEF,QAAA,MAAM,YAAY,OACZ,KAAK,CAAC,SAAS,WACV,aAAa,GAAG,mBAAmB,
|
1
|
+
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../../src/react/tests/testUtils.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EAGd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC;CAClD,CAAC;AAEF,QAAA,MAAM,YAAY,OACZ,KAAK,CAAC,SAAS,WACV,aAAa,GAAG,mBAAmB,oIAS7C,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAI,MAAM,EAAE,OAAO,YAC7B,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,WAC3B,iBAAiB,CAAC,MAAM,CAAC,GAAG,mBAAmB,uEASzD,CAAC;AAGF,cAAc,wBAAwB,CAAC;AAGvC,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,CAAC;AAClC,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PassphraseAuth.d.ts","sourceRoot":"","sources":["../../../src/react-core/auth/PassphraseAuth.tsx"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,
|
1
|
+
{"version":3,"file":"PassphraseAuth.d.ts","sourceRoot":"","sources":["../../../src/react-core/auth/PassphraseAuth.tsx"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE;;;;;;;EAsCrE"}
|
package/dist/react-core/index.js
CHANGED
@@ -249,9 +249,7 @@ function useDemoAuth() {
|
|
249
249
|
// src/react-core/auth/PassphraseAuth.tsx
|
250
250
|
import { PassphraseAuth } from "jazz-tools";
|
251
251
|
import { useCallback as useCallback2, useMemo as useMemo2, useSyncExternalStore as useSyncExternalStore2 } from "react";
|
252
|
-
function usePassphraseAuth({
|
253
|
-
wordlist
|
254
|
-
}) {
|
252
|
+
function usePassphraseAuth({ wordlist }) {
|
255
253
|
const context = useJazzContext();
|
256
254
|
const authSecretStorage = useAuthSecretStorage();
|
257
255
|
if ("guest" in context) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/react-core/hooks.ts","../../src/react-core/utils.ts","../../src/react-core/auth/DemoAuth.tsx","../../src/react-core/auth/PassphraseAuth.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useRef,\n useSyncExternalStore,\n} from \"react\";\n\nimport {\n Account,\n AccountClass,\n AnonymousJazzAgent,\n AnyAccountSchema,\n CoValue,\n CoValueClassOrSchema,\n InboxSender,\n InstanceOfSchema,\n JazzContextManager,\n JazzContextType,\n Loaded,\n ResolveQuery,\n ResolveQueryStrict,\n SubscriptionScope,\n coValueClassFromCoValueClassOrSchema,\n} from \"jazz-tools\";\nimport { JazzContext, JazzContextManagerContext } from \"./provider.js\";\nimport { getCurrentAccountFromContextManager } from \"./utils.js\";\n\nexport function useJazzContext<Acc extends Account>() {\n const value = useContext(JazzContext) as JazzContextType<Acc>;\n\n if (!value) {\n throw new Error(\n \"You need to set up a JazzProvider on top of your app to use this hook.\",\n );\n }\n\n return value;\n}\n\nexport function useJazzContextManager<Acc extends Account>() {\n const value = useContext(JazzContextManagerContext) as JazzContextManager<\n Acc,\n {}\n >;\n\n if (!value) {\n throw new Error(\n \"You need to set up a JazzProvider on top of your app to use this hook.\",\n );\n }\n\n return value;\n}\n\nexport function useAuthSecretStorage() {\n const value = useContext(JazzContextManagerContext);\n\n if (!value) {\n throw new Error(\n \"You need to set up a JazzProvider on top of your app to use this useAuthSecretStorage.\",\n );\n }\n\n return value.getAuthSecretStorage();\n}\n\nexport function useIsAuthenticated() {\n const authSecretStorage = useAuthSecretStorage();\n\n return useSyncExternalStore(\n useCallback(\n (callback) => {\n return authSecretStorage.onUpdate(callback);\n },\n [authSecretStorage],\n ),\n () => authSecretStorage.isAuthenticated,\n () => authSecretStorage.isAuthenticated,\n );\n}\n\nfunction useCoValueSubscription<\n S extends CoValueClassOrSchema,\n const R extends ResolveQuery<S>,\n>(\n Schema: S,\n id: string | undefined | null,\n options?: {\n resolve?: ResolveQueryStrict<S, R>;\n },\n) {\n const contextManager = useJazzContextManager();\n\n const createSubscription = () => {\n if (!id) {\n return {\n subscription: null,\n contextManager,\n id,\n Schema,\n };\n }\n\n const node = contextManager.getCurrentValue()!.node;\n const subscription = new SubscriptionScope<any>(\n node,\n options?.resolve ?? true,\n id,\n {\n ref: coValueClassFromCoValueClassOrSchema(Schema),\n optional: true,\n },\n );\n\n return {\n subscription,\n contextManager,\n id,\n Schema,\n };\n };\n\n const [subscription, setSubscription] = React.useState(createSubscription);\n\n React.useLayoutEffect(() => {\n if (\n subscription.contextManager !== contextManager ||\n subscription.id !== id ||\n subscription.Schema !== Schema\n ) {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n }\n\n return contextManager.subscribe(() => {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n });\n }, [Schema, id, contextManager]);\n\n return subscription.subscription;\n}\n\n/**\n * React hook for subscribing to CoValues and handling loading states.\n *\n * This hook provides a convenient way to subscribe to CoValues and automatically\n * handles the subscription lifecycle (subscribe on mount, unsubscribe on unmount).\n * It also supports deep loading of nested CoValues through resolve queries.\n *\n * @returns The loaded CoValue, or `undefined` if loading, or `null` if not found/not accessible\n *\n * @example\n * ```tsx\n * // Deep loading with resolve queries\n * const Project = co.map({\n * name: z.string(),\n * tasks: co.list(Task),\n * owner: TeamMember,\n * });\n *\n * function ProjectView({ projectId }: { projectId: string }) {\n * const project = useCoState(Project, projectId, {\n * resolve: {\n * tasks: { $each: true },\n * owner: true,\n * },\n * });\n *\n * if (!project) {\n * return project === null\n * ? \"Project not found or not accessible\"\n * : \"Loading project...\";\n * }\n *\n * return (\n * <div>\n * <h1>{project.name}</h1>\n * <p>Owner: {project.owner.name}</p>\n * <ul>\n * {project.tasks.map((task) => (\n * <li key={task.id}>{task.title}</li>\n * ))}\n * </ul>\n * </div>\n * );\n * }\n * ```\n *\n * @example\n * ```tsx\n * // Using with optional references and error handling\n * const Task = co.map({\n * title: z.string(),\n * assignee: co.optional(TeamMember),\n * subtasks: co.list(Task),\n * });\n *\n * function TaskDetail({ taskId }: { taskId: string }) {\n * const task = useCoState(Task, taskId, {\n * resolve: {\n * assignee: true,\n * subtasks: { $each: { $onError: null } },\n * },\n * });\n *\n * if (!task) {\n * return task === null\n * ? \"Task not found or not accessible\"\n * : \"Loading task...\";\n * }\n *\n * return (\n * <div>\n * <h2>{task.title}</h2>\n * {task.assignee && <p>Assigned to: {task.assignee.name}</p>}\n * <ul>\n * {task.subtasks.map((subtask, index) => (\n * subtask ? <li key={subtask.id}>{subtask.title}</li> : <li key={index}>Inaccessible subtask</li>\n * ))}\n * </ul>\n * </div>\n * );\n * }\n * ```\n *\n * For more examples, see the [subscription and deep loading](https://jazz.tools/docs/react/using-covalues/subscription-and-loading) documentation.\n */\nexport function useCoState<\n S extends CoValueClassOrSchema,\n const R extends ResolveQuery<S> = true,\n>(\n /** The CoValue schema or class constructor */\n Schema: S,\n /** The ID of the CoValue to subscribe to. If `undefined`, returns `null` */\n id: string | undefined,\n /** Optional configuration for the subscription */\n options?: {\n /** Resolve query to specify which nested CoValues to load */\n resolve?: ResolveQueryStrict<S, R>;\n },\n): Loaded<S, R> | undefined | null {\n const subscription = useCoValueSubscription(Schema, id, options);\n\n const value = React.useSyncExternalStore<Loaded<S, R> | undefined | null>(\n React.useCallback(\n (callback) => {\n if (!subscription) {\n return () => {};\n }\n\n return subscription.subscribe(callback);\n },\n [subscription],\n ),\n () => (subscription ? subscription.getCurrentValue() : null),\n () => (subscription ? subscription.getCurrentValue() : null),\n );\n\n return value;\n}\n\nfunction useAccountSubscription<\n S extends AccountClass<Account> | AnyAccountSchema,\n const R extends ResolveQuery<S>,\n>(\n Schema: S,\n options?: {\n resolve?: ResolveQueryStrict<S, R>;\n },\n) {\n const contextManager = useJazzContextManager();\n\n const createSubscription = () => {\n const agent = getCurrentAccountFromContextManager(contextManager);\n\n if (agent._type === \"Anonymous\") {\n return {\n subscription: null,\n contextManager,\n agent,\n };\n }\n\n // We don't need type validation here, since it's mostly to help users on public API\n const resolve: any = options?.resolve ?? true;\n\n const node = contextManager.getCurrentValue()!.node;\n const subscription = new SubscriptionScope<any>(node, resolve, agent.id, {\n ref: coValueClassFromCoValueClassOrSchema(Schema),\n optional: true,\n });\n\n return {\n subscription,\n contextManager,\n Schema,\n };\n };\n\n const [subscription, setSubscription] = React.useState(createSubscription);\n\n React.useLayoutEffect(() => {\n if (\n subscription.contextManager !== contextManager ||\n subscription.Schema !== Schema\n ) {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n }\n\n return contextManager.subscribe(() => {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n });\n }, [Schema, contextManager]);\n\n return subscription.subscription;\n}\n\n/**\n * React hook for accessing the current user's account and authentication state.\n * \n * This hook provides access to the current user's account profile and root data,\n * along with authentication utilities. It automatically handles subscription to\n * the user's account data and provides a logout function.\n * \n * @returns An object containing:\n * - `me`: The loaded account data, or `undefined` if loading, or `null` if not authenticated\n * - `agent`: The current agent (anonymous or authenticated user). Can be used as `loadAs` parameter for load and subscribe methods.\n * - `logOut`: Function to log out the current user\n\n * @example\n * ```tsx\n * // Deep loading with resolve queries\n * function ProjectListWithDetails() {\n * const { me } = useAccount(MyAppAccount, {\n * resolve: {\n * profile: true,\n * root: {\n * myProjects: {\n * $each: {\n * tasks: true,\n * },\n * },\n * },\n * },\n * });\n * \n * if (!me) {\n * return me === null\n * ? <div>Failed to load your projects</div>\n * : <div>Loading...</div>;\n * }\n * \n * return (\n * <div>\n * <h1>{me.profile.name}'s projects</h1>\n * <ul>\n * {me.root.myProjects.map((project) => (\n * <li key={project.id}>\n * {project.name} ({project.tasks.length} tasks)\n * </li>\n * ))}\n * </ul>\n * </div>\n * );\n * }\n * ```\n * \n */\nexport function useAccount<\n A extends AccountClass<Account> | AnyAccountSchema,\n R extends ResolveQuery<A> = true,\n>(\n /** The account schema to use. Defaults to the base Account schema */\n AccountSchema: A = Account as unknown as A,\n /** Optional configuration for the subscription */\n options?: {\n /** Resolve query to specify which nested CoValues to load from the account */\n resolve?: ResolveQueryStrict<A, R>;\n },\n): {\n me: Loaded<A, R> | undefined | null;\n agent: AnonymousJazzAgent | Loaded<A, true>;\n logOut: () => void;\n} {\n const contextManager = useJazzContextManager<InstanceOfSchema<A>>();\n const subscription = useAccountSubscription(AccountSchema, options);\n\n const agent = getCurrentAccountFromContextManager(contextManager);\n\n const value = React.useSyncExternalStore<Loaded<A, R> | undefined | null>(\n React.useCallback(\n (callback) => {\n if (!subscription) {\n return () => {};\n }\n\n return subscription.subscribe(callback);\n },\n [subscription],\n ),\n () => (subscription ? subscription.getCurrentValue() : null),\n () => (subscription ? subscription.getCurrentValue() : null),\n );\n\n return {\n me: value,\n agent,\n logOut: contextManager.logOut,\n };\n}\n\nexport function experimental_useInboxSender<\n I extends CoValue,\n O extends CoValue | undefined,\n>(inboxOwnerID: string | undefined) {\n const context = useJazzContext();\n\n if (!(\"me\" in context)) {\n throw new Error(\n \"useInboxSender can't be used in a JazzProvider with auth === 'guest'.\",\n );\n }\n\n const me = context.me;\n const inboxRef = useRef<Promise<InboxSender<I, O>> | undefined>(undefined);\n\n const sendMessage = useCallback(\n async (message: I) => {\n if (!inboxOwnerID) throw new Error(\"Inbox owner ID is required\");\n\n if (!inboxRef.current) {\n const inbox = InboxSender.load<I, O>(inboxOwnerID, me);\n inboxRef.current = inbox;\n }\n\n let inbox = await inboxRef.current;\n\n if (inbox.owner.id !== inboxOwnerID) {\n const req = InboxSender.load<I, O>(inboxOwnerID, me);\n inboxRef.current = req;\n inbox = await req;\n }\n\n return inbox.sendMessage(message);\n },\n [inboxOwnerID],\n );\n\n return sendMessage;\n}\n","import { Account, JazzContextManager } from \"jazz-tools\";\n\nexport function getCurrentAccountFromContextManager<Acc extends Account>(\n contextManager: JazzContextManager<Acc, any>,\n) {\n const context = contextManager.getCurrentValue();\n\n if (!context) {\n throw new Error(\"No context found\");\n }\n\n return \"me\" in context ? context.me : context.guest;\n}\n\nexport function subscribeToContextManager<Acc extends Account>(\n contextManager: JazzContextManager<Acc, any>,\n callback: () => () => void,\n) {\n let unsub = () => {};\n\n const handler = () => {\n unsub();\n unsub = callback();\n };\n\n handler();\n return contextManager.subscribe(handler);\n}\n","import { DemoAuth } from \"jazz-tools\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useAuthSecretStorage, useJazzContext } from \"../hooks.js\";\nimport { useIsAuthenticated } from \"../hooks.js\";\n\n/**\n * `useDemoAuth` is a hook that provides a `JazzAuth` object for demo authentication.\n *\n *\n * ```ts\n * const { state, logIn, signUp, existingUsers } = useDemoAuth();\n * ```\n *\n * @category Auth Providers\n */\nexport function useDemoAuth() {\n const context = useJazzContext();\n const authSecretStorage = useAuthSecretStorage();\n\n if (\"guest\" in context) {\n throw new Error(\"Demo auth is not supported in guest mode\");\n }\n\n const authMethod = useMemo(() => {\n return new DemoAuth(context.authenticate, authSecretStorage);\n }, []);\n\n const isAuthenticated = useIsAuthenticated();\n const [existingUsers, setExistingUsers] = useState<string[]>([]);\n\n useEffect(() => {\n authMethod.getExistingUsers().then(setExistingUsers);\n }, [authMethod]);\n\n function handleSignUp(username: string) {\n return authMethod.signUp(username).then(() => {\n setExistingUsers(existingUsers.concat([username]));\n });\n }\n\n return {\n state: isAuthenticated ? \"signedIn\" : \"anonymous\",\n logIn: authMethod.logIn,\n signUp: handleSignUp,\n existingUsers,\n } as const;\n}\n","import { PassphraseAuth } from \"jazz-tools\";\nimport { useCallback, useMemo, useSyncExternalStore } from \"react\";\nimport { useAuthSecretStorage, useJazzContext } from \"../hooks.js\";\nimport { useIsAuthenticated } from \"../hooks.js\";\n\n/**\n * `usePassphraseAuth` hook provides a `JazzAuth` object for passphrase authentication.\n *\n * @example\n * ```ts\n * const auth = usePassphraseAuth({ appName, appHostname, wordlist });\n * ```\n *\n * @category Auth Providers\n */\nexport function usePassphraseAuth({\n wordlist,\n}: {\n wordlist: string[];\n}) {\n const context = useJazzContext();\n const authSecretStorage = useAuthSecretStorage();\n\n if (\"guest\" in context) {\n throw new Error(\"Passphrase auth is not supported in guest mode\");\n }\n\n const authMethod = useMemo(() => {\n return new PassphraseAuth(\n context.node.crypto,\n context.authenticate,\n context.register,\n authSecretStorage,\n wordlist,\n );\n }, [wordlist]);\n\n const passphrase = useSyncExternalStore(\n useCallback(\n (callback) => {\n authMethod.loadCurrentAccountPassphrase();\n return authMethod.subscribe(callback);\n },\n [authMethod],\n ),\n () => authMethod.passphrase,\n );\n\n const isAuthenticated = useIsAuthenticated();\n return {\n state: isAuthenticated ? \"signedIn\" : \"anonymous\",\n logIn: authMethod.logIn,\n signUp: authMethod.signUp,\n registerNewAccount: authMethod.registerNewAccount,\n generateRandomPassphrase: authMethod.generateRandomPassphrase,\n passphrase,\n } as const;\n}\n"],"mappings":"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","names":["subscription","inbox","useCallback","useMemo","useSyncExternalStore","useMemo","useSyncExternalStore","useCallback"]}
|
1
|
+
{"version":3,"sources":["../../src/react-core/hooks.ts","../../src/react-core/utils.ts","../../src/react-core/auth/DemoAuth.tsx","../../src/react-core/auth/PassphraseAuth.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useRef,\n useSyncExternalStore,\n} from \"react\";\n\nimport {\n Account,\n AccountClass,\n AnonymousJazzAgent,\n AnyAccountSchema,\n CoValue,\n CoValueClassOrSchema,\n InboxSender,\n InstanceOfSchema,\n JazzContextManager,\n JazzContextType,\n Loaded,\n ResolveQuery,\n ResolveQueryStrict,\n SubscriptionScope,\n coValueClassFromCoValueClassOrSchema,\n} from \"jazz-tools\";\nimport { JazzContext, JazzContextManagerContext } from \"./provider.js\";\nimport { getCurrentAccountFromContextManager } from \"./utils.js\";\n\nexport function useJazzContext<Acc extends Account>() {\n const value = useContext(JazzContext) as JazzContextType<Acc>;\n\n if (!value) {\n throw new Error(\n \"You need to set up a JazzProvider on top of your app to use this hook.\",\n );\n }\n\n return value;\n}\n\nexport function useJazzContextManager<Acc extends Account>() {\n const value = useContext(JazzContextManagerContext) as JazzContextManager<\n Acc,\n {}\n >;\n\n if (!value) {\n throw new Error(\n \"You need to set up a JazzProvider on top of your app to use this hook.\",\n );\n }\n\n return value;\n}\n\nexport function useAuthSecretStorage() {\n const value = useContext(JazzContextManagerContext);\n\n if (!value) {\n throw new Error(\n \"You need to set up a JazzProvider on top of your app to use this useAuthSecretStorage.\",\n );\n }\n\n return value.getAuthSecretStorage();\n}\n\nexport function useIsAuthenticated() {\n const authSecretStorage = useAuthSecretStorage();\n\n return useSyncExternalStore(\n useCallback(\n (callback) => {\n return authSecretStorage.onUpdate(callback);\n },\n [authSecretStorage],\n ),\n () => authSecretStorage.isAuthenticated,\n () => authSecretStorage.isAuthenticated,\n );\n}\n\nfunction useCoValueSubscription<\n S extends CoValueClassOrSchema,\n const R extends ResolveQuery<S>,\n>(\n Schema: S,\n id: string | undefined | null,\n options?: {\n resolve?: ResolveQueryStrict<S, R>;\n },\n) {\n const contextManager = useJazzContextManager();\n\n const createSubscription = () => {\n if (!id) {\n return {\n subscription: null,\n contextManager,\n id,\n Schema,\n };\n }\n\n const node = contextManager.getCurrentValue()!.node;\n const subscription = new SubscriptionScope<any>(\n node,\n options?.resolve ?? true,\n id,\n {\n ref: coValueClassFromCoValueClassOrSchema(Schema),\n optional: true,\n },\n );\n\n return {\n subscription,\n contextManager,\n id,\n Schema,\n };\n };\n\n const [subscription, setSubscription] = React.useState(createSubscription);\n\n React.useLayoutEffect(() => {\n if (\n subscription.contextManager !== contextManager ||\n subscription.id !== id ||\n subscription.Schema !== Schema\n ) {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n }\n\n return contextManager.subscribe(() => {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n });\n }, [Schema, id, contextManager]);\n\n return subscription.subscription;\n}\n\n/**\n * React hook for subscribing to CoValues and handling loading states.\n *\n * This hook provides a convenient way to subscribe to CoValues and automatically\n * handles the subscription lifecycle (subscribe on mount, unsubscribe on unmount).\n * It also supports deep loading of nested CoValues through resolve queries.\n *\n * @returns The loaded CoValue, or `undefined` if loading, or `null` if not found/not accessible\n *\n * @example\n * ```tsx\n * // Deep loading with resolve queries\n * const Project = co.map({\n * name: z.string(),\n * tasks: co.list(Task),\n * owner: TeamMember,\n * });\n *\n * function ProjectView({ projectId }: { projectId: string }) {\n * const project = useCoState(Project, projectId, {\n * resolve: {\n * tasks: { $each: true },\n * owner: true,\n * },\n * });\n *\n * if (!project) {\n * return project === null\n * ? \"Project not found or not accessible\"\n * : \"Loading project...\";\n * }\n *\n * return (\n * <div>\n * <h1>{project.name}</h1>\n * <p>Owner: {project.owner.name}</p>\n * <ul>\n * {project.tasks.map((task) => (\n * <li key={task.id}>{task.title}</li>\n * ))}\n * </ul>\n * </div>\n * );\n * }\n * ```\n *\n * @example\n * ```tsx\n * // Using with optional references and error handling\n * const Task = co.map({\n * title: z.string(),\n * assignee: co.optional(TeamMember),\n * subtasks: co.list(Task),\n * });\n *\n * function TaskDetail({ taskId }: { taskId: string }) {\n * const task = useCoState(Task, taskId, {\n * resolve: {\n * assignee: true,\n * subtasks: { $each: { $onError: null } },\n * },\n * });\n *\n * if (!task) {\n * return task === null\n * ? \"Task not found or not accessible\"\n * : \"Loading task...\";\n * }\n *\n * return (\n * <div>\n * <h2>{task.title}</h2>\n * {task.assignee && <p>Assigned to: {task.assignee.name}</p>}\n * <ul>\n * {task.subtasks.map((subtask, index) => (\n * subtask ? <li key={subtask.id}>{subtask.title}</li> : <li key={index}>Inaccessible subtask</li>\n * ))}\n * </ul>\n * </div>\n * );\n * }\n * ```\n *\n * For more examples, see the [subscription and deep loading](https://jazz.tools/docs/react/using-covalues/subscription-and-loading) documentation.\n */\nexport function useCoState<\n S extends CoValueClassOrSchema,\n const R extends ResolveQuery<S> = true,\n>(\n /** The CoValue schema or class constructor */\n Schema: S,\n /** The ID of the CoValue to subscribe to. If `undefined`, returns `null` */\n id: string | undefined,\n /** Optional configuration for the subscription */\n options?: {\n /** Resolve query to specify which nested CoValues to load */\n resolve?: ResolveQueryStrict<S, R>;\n },\n): Loaded<S, R> | undefined | null {\n const subscription = useCoValueSubscription(Schema, id, options);\n\n const value = React.useSyncExternalStore<Loaded<S, R> | undefined | null>(\n React.useCallback(\n (callback) => {\n if (!subscription) {\n return () => {};\n }\n\n return subscription.subscribe(callback);\n },\n [subscription],\n ),\n () => (subscription ? subscription.getCurrentValue() : null),\n () => (subscription ? subscription.getCurrentValue() : null),\n );\n\n return value;\n}\n\nfunction useAccountSubscription<\n S extends AccountClass<Account> | AnyAccountSchema,\n const R extends ResolveQuery<S>,\n>(\n Schema: S,\n options?: {\n resolve?: ResolveQueryStrict<S, R>;\n },\n) {\n const contextManager = useJazzContextManager();\n\n const createSubscription = () => {\n const agent = getCurrentAccountFromContextManager(contextManager);\n\n if (agent._type === \"Anonymous\") {\n return {\n subscription: null,\n contextManager,\n agent,\n };\n }\n\n // We don't need type validation here, since it's mostly to help users on public API\n const resolve: any = options?.resolve ?? true;\n\n const node = contextManager.getCurrentValue()!.node;\n const subscription = new SubscriptionScope<any>(node, resolve, agent.id, {\n ref: coValueClassFromCoValueClassOrSchema(Schema),\n optional: true,\n });\n\n return {\n subscription,\n contextManager,\n Schema,\n };\n };\n\n const [subscription, setSubscription] = React.useState(createSubscription);\n\n React.useLayoutEffect(() => {\n if (\n subscription.contextManager !== contextManager ||\n subscription.Schema !== Schema\n ) {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n }\n\n return contextManager.subscribe(() => {\n subscription.subscription?.destroy();\n setSubscription(createSubscription());\n });\n }, [Schema, contextManager]);\n\n return subscription.subscription;\n}\n\n/**\n * React hook for accessing the current user's account and authentication state.\n * \n * This hook provides access to the current user's account profile and root data,\n * along with authentication utilities. It automatically handles subscription to\n * the user's account data and provides a logout function.\n * \n * @returns An object containing:\n * - `me`: The loaded account data, or `undefined` if loading, or `null` if not authenticated\n * - `agent`: The current agent (anonymous or authenticated user). Can be used as `loadAs` parameter for load and subscribe methods.\n * - `logOut`: Function to log out the current user\n\n * @example\n * ```tsx\n * // Deep loading with resolve queries\n * function ProjectListWithDetails() {\n * const { me } = useAccount(MyAppAccount, {\n * resolve: {\n * profile: true,\n * root: {\n * myProjects: {\n * $each: {\n * tasks: true,\n * },\n * },\n * },\n * },\n * });\n * \n * if (!me) {\n * return me === null\n * ? <div>Failed to load your projects</div>\n * : <div>Loading...</div>;\n * }\n * \n * return (\n * <div>\n * <h1>{me.profile.name}'s projects</h1>\n * <ul>\n * {me.root.myProjects.map((project) => (\n * <li key={project.id}>\n * {project.name} ({project.tasks.length} tasks)\n * </li>\n * ))}\n * </ul>\n * </div>\n * );\n * }\n * ```\n * \n */\nexport function useAccount<\n A extends AccountClass<Account> | AnyAccountSchema,\n R extends ResolveQuery<A> = true,\n>(\n /** The account schema to use. Defaults to the base Account schema */\n AccountSchema: A = Account as unknown as A,\n /** Optional configuration for the subscription */\n options?: {\n /** Resolve query to specify which nested CoValues to load from the account */\n resolve?: ResolveQueryStrict<A, R>;\n },\n): {\n me: Loaded<A, R> | undefined | null;\n agent: AnonymousJazzAgent | Loaded<A, true>;\n logOut: () => void;\n} {\n const contextManager = useJazzContextManager<InstanceOfSchema<A>>();\n const subscription = useAccountSubscription(AccountSchema, options);\n\n const agent = getCurrentAccountFromContextManager(contextManager);\n\n const value = React.useSyncExternalStore<Loaded<A, R> | undefined | null>(\n React.useCallback(\n (callback) => {\n if (!subscription) {\n return () => {};\n }\n\n return subscription.subscribe(callback);\n },\n [subscription],\n ),\n () => (subscription ? subscription.getCurrentValue() : null),\n () => (subscription ? subscription.getCurrentValue() : null),\n );\n\n return {\n me: value,\n agent,\n logOut: contextManager.logOut,\n };\n}\n\nexport function experimental_useInboxSender<\n I extends CoValue,\n O extends CoValue | undefined,\n>(inboxOwnerID: string | undefined) {\n const context = useJazzContext();\n\n if (!(\"me\" in context)) {\n throw new Error(\n \"useInboxSender can't be used in a JazzProvider with auth === 'guest'.\",\n );\n }\n\n const me = context.me;\n const inboxRef = useRef<Promise<InboxSender<I, O>> | undefined>(undefined);\n\n const sendMessage = useCallback(\n async (message: I) => {\n if (!inboxOwnerID) throw new Error(\"Inbox owner ID is required\");\n\n if (!inboxRef.current) {\n const inbox = InboxSender.load<I, O>(inboxOwnerID, me);\n inboxRef.current = inbox;\n }\n\n let inbox = await inboxRef.current;\n\n if (inbox.owner.id !== inboxOwnerID) {\n const req = InboxSender.load<I, O>(inboxOwnerID, me);\n inboxRef.current = req;\n inbox = await req;\n }\n\n return inbox.sendMessage(message);\n },\n [inboxOwnerID],\n );\n\n return sendMessage;\n}\n","import { Account, JazzContextManager } from \"jazz-tools\";\n\nexport function getCurrentAccountFromContextManager<Acc extends Account>(\n contextManager: JazzContextManager<Acc, any>,\n) {\n const context = contextManager.getCurrentValue();\n\n if (!context) {\n throw new Error(\"No context found\");\n }\n\n return \"me\" in context ? context.me : context.guest;\n}\n\nexport function subscribeToContextManager<Acc extends Account>(\n contextManager: JazzContextManager<Acc, any>,\n callback: () => () => void,\n) {\n let unsub = () => {};\n\n const handler = () => {\n unsub();\n unsub = callback();\n };\n\n handler();\n return contextManager.subscribe(handler);\n}\n","import { DemoAuth } from \"jazz-tools\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useAuthSecretStorage, useJazzContext } from \"../hooks.js\";\nimport { useIsAuthenticated } from \"../hooks.js\";\n\n/**\n * `useDemoAuth` is a hook that provides a `JazzAuth` object for demo authentication.\n *\n *\n * ```ts\n * const { state, logIn, signUp, existingUsers } = useDemoAuth();\n * ```\n *\n * @category Auth Providers\n */\nexport function useDemoAuth() {\n const context = useJazzContext();\n const authSecretStorage = useAuthSecretStorage();\n\n if (\"guest\" in context) {\n throw new Error(\"Demo auth is not supported in guest mode\");\n }\n\n const authMethod = useMemo(() => {\n return new DemoAuth(context.authenticate, authSecretStorage);\n }, []);\n\n const isAuthenticated = useIsAuthenticated();\n const [existingUsers, setExistingUsers] = useState<string[]>([]);\n\n useEffect(() => {\n authMethod.getExistingUsers().then(setExistingUsers);\n }, [authMethod]);\n\n function handleSignUp(username: string) {\n return authMethod.signUp(username).then(() => {\n setExistingUsers(existingUsers.concat([username]));\n });\n }\n\n return {\n state: isAuthenticated ? \"signedIn\" : \"anonymous\",\n logIn: authMethod.logIn,\n signUp: handleSignUp,\n existingUsers,\n } as const;\n}\n","import { PassphraseAuth } from \"jazz-tools\";\nimport { useCallback, useMemo, useSyncExternalStore } from \"react\";\nimport { useAuthSecretStorage, useJazzContext } from \"../hooks.js\";\nimport { useIsAuthenticated } from \"../hooks.js\";\n\n/**\n * `usePassphraseAuth` hook provides a `JazzAuth` object for passphrase authentication.\n *\n * @example\n * ```ts\n * const auth = usePassphraseAuth({ appName, appHostname, wordlist });\n * ```\n *\n * @category Auth Providers\n */\nexport function usePassphraseAuth({ wordlist }: { wordlist: string[] }) {\n const context = useJazzContext();\n const authSecretStorage = useAuthSecretStorage();\n\n if (\"guest\" in context) {\n throw new Error(\"Passphrase auth is not supported in guest mode\");\n }\n\n const authMethod = useMemo(() => {\n return new PassphraseAuth(\n context.node.crypto,\n context.authenticate,\n context.register,\n authSecretStorage,\n wordlist,\n );\n }, [wordlist]);\n\n const passphrase = useSyncExternalStore(\n useCallback(\n (callback) => {\n authMethod.loadCurrentAccountPassphrase();\n return authMethod.subscribe(callback);\n },\n [authMethod],\n ),\n () => authMethod.passphrase,\n );\n\n const isAuthenticated = useIsAuthenticated();\n return {\n state: isAuthenticated ? \"signedIn\" : \"anonymous\",\n logIn: authMethod.logIn,\n signUp: authMethod.signUp,\n registerNewAccount: authMethod.registerNewAccount,\n generateRandomPassphrase: authMethod.generateRandomPassphrase,\n passphrase,\n } as const;\n}\n"],"mappings":"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","names":["subscription","inbox","useCallback","useMemo","useSyncExternalStore","useMemo","useSyncExternalStore","useCallback"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../../src/react-core/tests/testUtils.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EAGd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAqB,MAAM,YAAY,CAAC;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,KAAK,mBAAmB,GAAG;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,YAAY,OACZ,KAAK,CAAC,SAAS,YACV,aAAa,GAAG,mBAAmB,
|
1
|
+
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../../src/react-core/tests/testUtils.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,aAAa,EAGd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAqB,MAAM,YAAY,CAAC;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,KAAK,mBAAmB,GAAG;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,YAAY,OACZ,KAAK,CAAC,SAAS,YACV,aAAa,GAAG,mBAAmB,oIAc7C,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAI,MAAM,EAAE,OAAO,YAC7B,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,YAC3B,iBAAiB,CAAC,MAAM,CAAC,GAAG,mBAAmB,uEAczD,CAAC;AAGF,cAAc,wBAAwB,CAAC;AAGvC,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,CAAC;AAClC,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,CAAC"}
|
package/dist/testing.js
CHANGED
package/dist/testing.js.map
CHANGED
@@ -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 AuthCredentials,\n CoValueFromRaw,\n CoreAccountSchema,\n InstanceOfSchema,\n JazzContextManager,\n JazzContextManagerAuthProps,\n JazzContextManagerBaseProps,\n activeAccountContext,\n coValueClassFromCoValueClassOrSchema,\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 | CoreAccountSchema,\n>(options?: {\n isCurrentActiveAccount?: boolean;\n AccountSchema?: S;\n creationProps?: Record<string, unknown>;\n}): Promise<InstanceOfSchema<S>> {\n const AccountClass = options?.AccountSchema\n ? coValueClassFromCoValueClassOrSchema(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"]}
|
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 AuthCredentials,\n CoValueFromRaw,\n CoreAccountSchema,\n InstanceOfSchema,\n JazzContextManager,\n JazzContextManagerAuthProps,\n JazzContextManagerBaseProps,\n activeAccountContext,\n coValueClassFromCoValueClassOrSchema,\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 | CoreAccountSchema,\n>(options?: {\n isCurrentActiveAccount?: boolean;\n AccountSchema?: S;\n creationProps?: Record<string, unknown>;\n}): Promise<InstanceOfSchema<S>> {\n const AccountClass = options?.AccountSchema\n ? coValueClassFromCoValueClassOrSchema(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}: {\n asyncPeers?: boolean;\n} = {}) {\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"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"coFeed.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/coFeed.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"coFeed.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/coFeed.ts"],"names":[],"mappings":"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"}
|
@@ -51,6 +51,12 @@ export type Resolved<T, R extends RefsToResolve<T> | undefined = true> = DeeplyL
|
|
51
51
|
type onErrorNullEnabled<Depth> = Depth extends {
|
52
52
|
$onError: null;
|
53
53
|
} ? null : never;
|
54
|
+
type CoMapLikeLoaded<V extends object, Depth, DepthLimit extends number, CurrentDepth extends number[]> = {
|
55
|
+
-readonly [Key in keyof Depth]-?: Key extends CoKeys<V> ? NonNullable<V[Key]> extends CoValue ? DeeplyLoaded<NonNullable<V[Key]>, Depth[Key], DepthLimit, [
|
56
|
+
0,
|
57
|
+
...CurrentDepth
|
58
|
+
]> | (undefined extends V[Key] ? undefined : never) | onErrorNullEnabled<Depth[Key]> : never : never;
|
59
|
+
} & V;
|
54
60
|
export type DeeplyLoaded<V, Depth, DepthLimit extends number = 10, CurrentDepth extends number[] = []> = DepthLimit extends CurrentDepth["length"] ? V : Depth extends boolean | undefined ? V : [
|
55
61
|
V
|
56
62
|
] extends [Array<infer Item>] ? NotNull<Item> extends CoValue ? Depth extends {
|
@@ -63,21 +69,15 @@ export type DeeplyLoaded<V, Depth, DepthLimit extends number = 10, CurrentDepth
|
|
63
69
|
V
|
64
70
|
] extends [{
|
65
71
|
_type: "CoMap" | "Group" | "Account";
|
66
|
-
}] ? ItemsSym extends keyof V ? Depth extends {
|
72
|
+
}] ? keyof Depth extends never ? V : ItemsSym extends keyof V ? Depth extends {
|
67
73
|
$each: infer ItemDepth;
|
68
|
-
} ?
|
69
|
-
{
|
74
|
+
} ? {
|
70
75
|
[key: string]: DeeplyLoaded<NonNullable<V[ItemsSym]>, ItemDepth, DepthLimit, [
|
71
76
|
0,
|
72
77
|
...CurrentDepth
|
73
78
|
]> | onErrorNullEnabled<Depth["$each"]>;
|
74
|
-
} & V :
|
75
|
-
{
|
76
|
-
-readonly [Key in keyof Depth]-?: Key extends CoKeys<V> ? NonNullable<V[Key]> extends CoValue ? DeeplyLoaded<NonNullable<V[Key]>, Depth[Key], DepthLimit, [
|
77
|
-
0,
|
78
|
-
...CurrentDepth
|
79
|
-
]> | (undefined extends V[Key] ? undefined : never) | onErrorNullEnabled<Depth[Key]> : never : never;
|
80
|
-
} & V : [V] extends [
|
79
|
+
} & V : string extends keyof Depth ? // if at least one key is `string`, then we treat the resolve as it was empty
|
80
|
+
DeeplyLoaded<V, {}, DepthLimit, [0, ...CurrentDepth]> & V : CoMapLikeLoaded<V, Depth, DepthLimit, CurrentDepth> : CoMapLikeLoaded<V, Depth, DepthLimit, CurrentDepth> : [V] extends [
|
81
81
|
{
|
82
82
|
_type: "CoStream";
|
83
83
|
byMe: CoFeedEntry<infer Item> | undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"deepLoading.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/deepLoading.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"deepLoading.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/deepLoading.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAE7B,OAAO,EACL,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,MAAM,EACN,QAAQ,GACT,MAAM,QAAQ,CAAC"}
|
@@ -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,EAEvB,cAAc,EACd,iBAAiB,EACjB,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,iBAAiB,EACrB,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;;
|
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,EAEvB,cAAc,EACd,iBAAiB,EACjB,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,iBAAiB,EACrB,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;;uBAuEy7K,cAAc;;;;;;;;CAzCj/K;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;IACD,UAAU,CAAC,EAAE,OAAO,CAAC;CACjB,oBAgBL"}
|
package/package.json
CHANGED
@@ -139,7 +139,7 @@
|
|
139
139
|
},
|
140
140
|
"type": "module",
|
141
141
|
"license": "MIT",
|
142
|
-
"version": "0.16.
|
142
|
+
"version": "0.16.7",
|
143
143
|
"dependencies": {
|
144
144
|
"@manuscripts/prosemirror-recreate-steps": "^0.1.4",
|
145
145
|
"@scure/base": "1.2.1",
|
@@ -158,9 +158,9 @@
|
|
158
158
|
"prosemirror-state": "^1.4.3",
|
159
159
|
"prosemirror-transform": "^1.9.0",
|
160
160
|
"zod": "3.25.76",
|
161
|
-
"cojson": "0.16.
|
162
|
-
"cojson-storage-indexeddb": "0.16.
|
163
|
-
"cojson-transport-ws": "0.16.
|
161
|
+
"cojson": "0.16.7",
|
162
|
+
"cojson-storage-indexeddb": "0.16.7",
|
163
|
+
"cojson-transport-ws": "0.16.7"
|
164
164
|
},
|
165
165
|
"devDependencies": {
|
166
166
|
"@scure/bip39": "^1.3.0",
|
@@ -1,11 +1,7 @@
|
|
1
1
|
import { JsonObject } from "cojson";
|
2
2
|
import { RawDataCard } from "./raw-data-card.js";
|
3
3
|
|
4
|
-
export function CoPlainTextView({
|
5
|
-
data,
|
6
|
-
}: {
|
7
|
-
data: JsonObject;
|
8
|
-
}) {
|
4
|
+
export function CoPlainTextView({ data }: { data: JsonObject }) {
|
9
5
|
if (!data) return;
|
10
6
|
|
11
7
|
return (
|
@@ -321,7 +321,7 @@ function RenderCoStream({
|
|
321
321
|
{/* @ts-expect-error - TODO: fix types */}
|
322
322
|
{value.items[streamPerUser[idx]]?.map(
|
323
323
|
(item: CoStreamItem<JsonValue>) => (
|
324
|
-
<div>
|
324
|
+
<div key={item.tx.txIndex + item.tx.sessionID}>
|
325
325
|
{new Date(item.madeAt).toLocaleString()}{" "}
|
326
326
|
{JSON.stringify(item.value)}
|
327
327
|
</div>
|
@@ -5,7 +5,10 @@ import { useResolvedCoValue } from "./use-resolve-covalue.js";
|
|
5
5
|
export function RoleDisplay({
|
6
6
|
node,
|
7
7
|
value,
|
8
|
-
}: {
|
8
|
+
}: {
|
9
|
+
node: LocalNode;
|
10
|
+
value: RawCoValue;
|
11
|
+
}) {
|
9
12
|
const { snapshot } = useResolvedCoValue(value.group.id, node);
|
10
13
|
|
11
14
|
if (!snapshot || snapshot === "unavailable") {
|
package/src/react/ssr.ts
CHANGED
@@ -2,9 +2,7 @@ import { WebSocketPeerWithReconnection } from "cojson-transport-ws";
|
|
2
2
|
import { PureJSCrypto } from "cojson/dist/crypto/PureJSCrypto";
|
3
3
|
import { createAnonymousJazzContext } from "jazz-tools";
|
4
4
|
|
5
|
-
export function createSSRJazzAgent(opts: {
|
6
|
-
peer: string;
|
7
|
-
}) {
|
5
|
+
export function createSSRJazzAgent(opts: { peer: string }) {
|
8
6
|
const ssrNode = createAnonymousJazzContext({
|
9
7
|
crypto: new PureJSCrypto(),
|
10
8
|
peersToLoadFrom: [],
|
@@ -16,11 +16,7 @@ const customRender = (
|
|
16
16
|
ui: React.ReactNode,
|
17
17
|
options: RenderOptions & JazzExtendedOptions,
|
18
18
|
) => {
|
19
|
-
const AllTheProviders = ({
|
20
|
-
children,
|
21
|
-
}: {
|
22
|
-
children: React.ReactNode;
|
23
|
-
}) => {
|
19
|
+
const AllTheProviders = ({ children }: { children: React.ReactNode }) => {
|
24
20
|
return (
|
25
21
|
<JazzTestProvider account={options.account}>{children}</JazzTestProvider>
|
26
22
|
);
|
@@ -33,11 +29,7 @@ const customRenderHook = <TProps, TResult>(
|
|
33
29
|
callback: (props: TProps) => TResult,
|
34
30
|
options: RenderHookOptions<TProps> & JazzExtendedOptions,
|
35
31
|
) => {
|
36
|
-
const AllTheProviders = ({
|
37
|
-
children,
|
38
|
-
}: {
|
39
|
-
children: React.ReactNode;
|
40
|
-
}) => {
|
32
|
+
const AllTheProviders = ({ children }: { children: React.ReactNode }) => {
|
41
33
|
return (
|
42
34
|
<JazzTestProvider account={options.account}>{children}</JazzTestProvider>
|
43
35
|
);
|
@@ -13,11 +13,7 @@ import { useIsAuthenticated } from "../hooks.js";
|
|
13
13
|
*
|
14
14
|
* @category Auth Providers
|
15
15
|
*/
|
16
|
-
export function usePassphraseAuth({
|
17
|
-
wordlist,
|
18
|
-
}: {
|
19
|
-
wordlist: string[];
|
20
|
-
}) {
|
16
|
+
export function usePassphraseAuth({ wordlist }: { wordlist: string[] }) {
|
21
17
|
const context = useJazzContext();
|
22
18
|
const authSecretStorage = useAuthSecretStorage();
|
23
19
|
|
@@ -17,11 +17,7 @@ const customRender = (
|
|
17
17
|
ui: React.ReactNode,
|
18
18
|
options: RenderOptions & JazzExtendedOptions = {},
|
19
19
|
) => {
|
20
|
-
const AllTheProviders = ({
|
21
|
-
children,
|
22
|
-
}: {
|
23
|
-
children: React.ReactNode;
|
24
|
-
}) => {
|
20
|
+
const AllTheProviders = ({ children }: { children: React.ReactNode }) => {
|
25
21
|
return (
|
26
22
|
<JazzTestProvider
|
27
23
|
account={options.account}
|
@@ -39,11 +35,7 @@ const customRenderHook = <TProps, TResult>(
|
|
39
35
|
callback: (props: TProps) => TResult,
|
40
36
|
options: RenderHookOptions<TProps> & JazzExtendedOptions = {},
|
41
37
|
) => {
|
42
|
-
const AllTheProviders = ({
|
43
|
-
children,
|
44
|
-
}: {
|
45
|
-
children: React.ReactNode;
|
46
|
-
}) => {
|
38
|
+
const AllTheProviders = ({ children }: { children: React.ReactNode }) => {
|
47
39
|
return (
|
48
40
|
<JazzTestProvider
|
49
41
|
account={options.account}
|
@@ -9,7 +9,7 @@ import type {
|
|
9
9
|
RawCoStream,
|
10
10
|
SessionID,
|
11
11
|
} from "cojson";
|
12
|
-
import {
|
12
|
+
import { cojsonInternals } from "cojson";
|
13
13
|
import type {
|
14
14
|
AnonymousJazzAgent,
|
15
15
|
CoValue,
|
@@ -849,7 +849,8 @@ export class FileStream extends CoValueBase implements CoValue {
|
|
849
849
|
totalSizeBytes: blob.size,
|
850
850
|
fileName: blob instanceof File ? blob.name : undefined,
|
851
851
|
});
|
852
|
-
const chunkSize =
|
852
|
+
const chunkSize =
|
853
|
+
cojsonInternals.TRANSACTION_CONFIG.MAX_RECOMMENDED_TX_SIZE;
|
853
854
|
|
854
855
|
let lastProgressUpdate = Date.now();
|
855
856
|
|