jazz-tools 0.18.38 → 0.19.1
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/.svelte-kit/__package__/jazz.class.svelte.d.ts +8 -8
- package/.svelte-kit/__package__/jazz.class.svelte.d.ts.map +1 -1
- package/.svelte-kit/__package__/jazz.class.svelte.js +39 -14
- package/.svelte-kit/__package__/media/image.svelte +6 -5
- package/.svelte-kit/__package__/media/image.svelte.d.ts.map +1 -1
- package/.svelte-kit/__package__/tests/AccountCoState.svelte.test-d.d.ts +2 -0
- package/.svelte-kit/__package__/tests/AccountCoState.svelte.test-d.d.ts.map +1 -0
- package/.svelte-kit/__package__/tests/AccountCoState.svelte.test-d.js +19 -0
- package/.svelte-kit/__package__/tests/CoState.svelte.test-d.d.ts +2 -0
- package/.svelte-kit/__package__/tests/CoState.svelte.test-d.d.ts.map +1 -0
- package/.svelte-kit/__package__/tests/CoState.svelte.test-d.js +16 -0
- package/.svelte-kit/__package__/tests/CoState.svelte.test.d.ts +2 -0
- package/.svelte-kit/__package__/tests/CoState.svelte.test.d.ts.map +1 -0
- package/.svelte-kit/__package__/tests/CoState.svelte.test.js +42 -0
- package/.svelte-kit/__package__/tests/TestCoStateWrapper.svelte +23 -0
- package/.svelte-kit/__package__/tests/TestCoStateWrapper.svelte.d.ts +12 -0
- package/.svelte-kit/__package__/tests/TestCoStateWrapper.svelte.d.ts.map +1 -0
- package/.turbo/turbo-build.log +62 -62
- package/CHANGELOG.md +32 -0
- package/dist/better-auth/database-adapter/index.js +14 -11
- package/dist/better-auth/database-adapter/index.js.map +1 -1
- package/dist/better-auth/database-adapter/repository/generic.d.ts +1 -1
- package/dist/better-auth/database-adapter/repository/generic.d.ts.map +1 -1
- package/dist/better-auth/database-adapter/repository/user.d.ts.map +1 -1
- package/dist/{chunk-OSQ7S47Q.js → chunk-NCNM6UDZ.js} +563 -252
- package/dist/chunk-NCNM6UDZ.js.map +1 -0
- package/dist/index.js +14 -6
- package/dist/index.js.map +1 -1
- package/dist/media/{chunk-K6GCHLQU.js → chunk-3LKBM3G3.js} +23 -15
- package/dist/media/chunk-3LKBM3G3.js.map +1 -0
- package/dist/media/create-image/browser.d.ts +2 -2
- package/dist/media/create-image/react-native.d.ts +2 -2
- package/dist/media/create-image/server.d.ts +2 -2
- package/dist/media/create-image-factory.d.ts +2 -2
- package/dist/media/index.browser.js +1 -1
- package/dist/media/index.js +1 -1
- package/dist/media/index.native.js +1 -1
- package/dist/media/index.server.js +1 -1
- package/dist/media/utils.d.ts.map +1 -1
- package/dist/react/hooks.d.ts +1 -1
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +31 -15
- package/dist/react/index.js.map +1 -1
- package/dist/react/media/image.d.ts.map +1 -1
- package/dist/react-core/hooks.d.ts +126 -224
- package/dist/react-core/hooks.d.ts.map +1 -1
- package/dist/react-core/index.js +65 -63
- package/dist/react-core/index.js.map +1 -1
- package/dist/react-core/subscription-provider.d.ts.map +1 -1
- package/dist/react-core/tests/createCoValueSubscriptionContext.test.d.ts +2 -0
- package/dist/react-core/tests/createCoValueSubscriptionContext.test.d.ts.map +1 -0
- package/dist/react-core/tests/useAccount.selector.test.d.ts +2 -0
- package/dist/react-core/tests/useAccount.selector.test.d.ts.map +1 -0
- package/dist/react-core/tests/useCoState.selector.test.d.ts +2 -0
- package/dist/react-core/tests/useCoState.selector.test.d.ts.map +1 -0
- package/dist/react-native-core/hooks.d.ts +1 -1
- package/dist/react-native-core/hooks.d.ts.map +1 -1
- package/dist/react-native-core/index.js +7 -5
- package/dist/react-native-core/index.js.map +1 -1
- package/dist/react-native-core/media/image.d.ts.map +1 -1
- package/dist/svelte/jazz.class.svelte.d.ts +8 -8
- package/dist/svelte/jazz.class.svelte.d.ts.map +1 -1
- package/dist/svelte/jazz.class.svelte.js +39 -14
- package/dist/svelte/media/image.svelte +6 -5
- package/dist/svelte/media/image.svelte.d.ts.map +1 -1
- package/dist/svelte/tests/AccountCoState.svelte.test-d.d.ts +2 -0
- package/dist/svelte/tests/AccountCoState.svelte.test-d.d.ts.map +1 -0
- package/dist/svelte/tests/AccountCoState.svelte.test-d.js +19 -0
- package/dist/svelte/tests/CoState.svelte.test-d.d.ts +2 -0
- package/dist/svelte/tests/CoState.svelte.test-d.d.ts.map +1 -0
- package/dist/svelte/tests/CoState.svelte.test-d.js +16 -0
- package/dist/svelte/tests/CoState.svelte.test.d.ts +2 -0
- package/dist/svelte/tests/CoState.svelte.test.d.ts.map +1 -0
- package/dist/svelte/tests/CoState.svelte.test.js +42 -0
- package/dist/svelte/tests/TestCoStateWrapper.svelte +23 -0
- package/dist/svelte/tests/TestCoStateWrapper.svelte.d.ts +12 -0
- package/dist/svelte/tests/TestCoStateWrapper.svelte.d.ts.map +1 -0
- package/dist/testing.js +3 -1
- package/dist/testing.js.map +1 -1
- package/dist/tools/coValues/CoValueBase.d.ts +4 -1
- package/dist/tools/coValues/CoValueBase.d.ts.map +1 -1
- package/dist/tools/coValues/account.d.ts +6 -6
- package/dist/tools/coValues/account.d.ts.map +1 -1
- package/dist/tools/coValues/coFeed.d.ts +5 -5
- package/dist/tools/coValues/coFeed.d.ts.map +1 -1
- package/dist/tools/coValues/coList.d.ts +9 -8
- package/dist/tools/coValues/coList.d.ts.map +1 -1
- package/dist/tools/coValues/coMap.d.ts +17 -17
- package/dist/tools/coValues/coMap.d.ts.map +1 -1
- package/dist/tools/coValues/coPlainText.d.ts +3 -3
- package/dist/tools/coValues/coPlainText.d.ts.map +1 -1
- package/dist/tools/coValues/coVector.d.ts +3 -3
- package/dist/tools/coValues/coVector.d.ts.map +1 -1
- package/dist/tools/coValues/deepLoading.d.ts +71 -40
- package/dist/tools/coValues/deepLoading.d.ts.map +1 -1
- package/dist/tools/coValues/extensions/imageDef.d.ts +1 -1
- package/dist/tools/coValues/extensions/imageDef.d.ts.map +1 -1
- package/dist/tools/coValues/group.d.ts +2 -2
- package/dist/tools/coValues/group.d.ts.map +1 -1
- package/dist/tools/coValues/inbox.d.ts.map +1 -1
- package/dist/tools/coValues/interfaces.d.ts +17 -9
- package/dist/tools/coValues/interfaces.d.ts.map +1 -1
- package/dist/tools/coValues/request.d.ts.map +1 -1
- package/dist/tools/coValues/schemaUnion.d.ts +6 -9
- package/dist/tools/coValues/schemaUnion.d.ts.map +1 -1
- package/dist/tools/exports.d.ts +3 -3
- package/dist/tools/exports.d.ts.map +1 -1
- package/dist/tools/implementation/refs.d.ts +3 -3
- package/dist/tools/implementation/refs.d.ts.map +1 -1
- package/dist/tools/implementation/schema.d.ts +2 -2
- package/dist/tools/implementation/schema.d.ts.map +1 -1
- package/dist/tools/implementation/schemaUtils.d.ts +8 -0
- package/dist/tools/implementation/schemaUtils.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts +33 -18
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts +19 -7
- package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts +23 -12
- package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts +29 -18
- package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts +39 -22
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.d.ts +1 -0
- package/dist/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts +30 -19
- package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoValueSchema.d.ts +5 -0
- package/dist/tools/implementation/zodSchema/schemaTypes/CoValueSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.d.ts +6 -5
- package/dist/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts +3 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/GroupSchema.d.ts +3 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/GroupSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts +3 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts +3 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts +3 -0
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesMaybeLoaded.d.ts +22 -0
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesMaybeLoaded.d.ts.map +1 -0
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts +4 -0
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.d.ts +9 -0
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.d.ts.map +1 -0
- package/dist/tools/implementation/zodSchema/unionUtils.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/zodCo.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/zodSchema.d.ts +7 -6
- package/dist/tools/implementation/zodSchema/zodSchema.d.ts.map +1 -1
- package/dist/tools/internal.d.ts +3 -3
- package/dist/tools/internal.d.ts.map +1 -1
- package/dist/tools/lib/utils.d.ts +14 -0
- package/dist/tools/lib/utils.d.ts.map +1 -0
- package/dist/tools/lib/utils.test.d.ts +2 -0
- package/dist/tools/lib/utils.test.d.ts.map +1 -0
- package/dist/tools/subscribe/CoValueCoreSubscription.d.ts +3 -2
- package/dist/tools/subscribe/CoValueCoreSubscription.d.ts.map +1 -1
- package/dist/tools/subscribe/JazzError.d.ts +4 -3
- package/dist/tools/subscribe/JazzError.d.ts.map +1 -1
- package/dist/tools/subscribe/SubscriptionScope.d.ts +7 -5
- package/dist/tools/subscribe/SubscriptionScope.d.ts.map +1 -1
- package/dist/tools/subscribe/index.d.ts.map +1 -1
- package/dist/tools/subscribe/types.d.ts +23 -3
- package/dist/tools/subscribe/types.d.ts.map +1 -1
- package/dist/tools/subscribe/utils.d.ts.map +1 -1
- package/dist/tools/testing.d.ts +3 -2
- package/dist/tools/testing.d.ts.map +1 -1
- package/dist/tools/tests/schema.resolved.test.d.ts +2 -0
- package/dist/tools/tests/schema.resolved.test.d.ts.map +1 -0
- package/dist/tools/tests/utils.d.ts +2 -1
- package/dist/tools/tests/utils.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/better-auth/database-adapter/index.ts +2 -2
- package/src/better-auth/database-adapter/repository/account.ts +3 -3
- package/src/better-auth/database-adapter/repository/generic.ts +9 -6
- package/src/better-auth/database-adapter/repository/user.ts +6 -2
- package/src/better-auth/database-adapter/schema.ts +1 -1
- package/src/better-auth/database-adapter/tests/index.test.ts +3 -4
- package/src/inspector/tests/viewer/history-view.test.tsx +6 -2
- package/src/media/utils.test.ts +5 -0
- package/src/media/utils.ts +25 -16
- package/src/react/hooks.tsx +2 -2
- package/src/react/index.ts +2 -2
- package/src/react/media/image.tsx +10 -2
- package/src/react/tests/useAcceptInvite.test.ts +3 -1
- package/src/react-core/hooks.ts +226 -304
- package/src/react-core/subscription-provider.tsx +14 -7
- package/src/react-core/tests/createCoValueSubscriptionContext.test.tsx +233 -0
- package/src/react-core/tests/subscription.bench.tsx +32 -15
- package/src/react-core/tests/{useAccountWithSelector.test.ts → useAccount.selector.test.ts} +72 -24
- package/src/react-core/tests/useAccount.test.ts +92 -106
- package/src/react-core/tests/{useCoStateWithSelector.test.ts → useCoState.selector.test.ts} +23 -8
- package/src/react-core/tests/useCoState.test.ts +173 -49
- package/src/react-core/tests/useInboxSender.test.ts +3 -1
- package/src/react-core/tests/usePassPhraseAuth.test.ts +11 -82
- package/src/react-core/tests/useSubscriptionSelector.test.ts +48 -14
- package/src/react-native-core/hooks.tsx +2 -2
- package/src/react-native-core/media/image.tsx +3 -1
- package/src/svelte/jazz.class.svelte.ts +103 -27
- package/src/svelte/media/image.svelte +6 -5
- package/src/svelte/tests/AccountCoState.svelte.test-d.ts +23 -0
- package/src/svelte/tests/CoState.svelte.test-d.ts +20 -0
- package/src/svelte/tests/CoState.svelte.test.ts +57 -0
- package/src/svelte/tests/TestCoStateWrapper.svelte +23 -0
- package/src/tools/coValues/CoValueBase.ts +12 -0
- package/src/tools/coValues/account.ts +17 -12
- package/src/tools/coValues/coFeed.ts +38 -15
- package/src/tools/coValues/coList.ts +17 -12
- package/src/tools/coValues/coMap.ts +15 -14
- package/src/tools/coValues/coPlainText.ts +6 -3
- package/src/tools/coValues/coVector.ts +6 -5
- package/src/tools/coValues/deepLoading.ts +147 -86
- package/src/tools/coValues/group.ts +3 -2
- package/src/tools/coValues/inbox.ts +11 -10
- package/src/tools/coValues/interfaces.ts +52 -30
- package/src/tools/coValues/request.ts +8 -6
- package/src/tools/coValues/schemaUnion.ts +20 -14
- package/src/tools/exports.ts +11 -1
- package/src/tools/implementation/refs.ts +19 -13
- package/src/tools/implementation/schema.ts +5 -4
- package/src/tools/implementation/schemaUtils.ts +15 -0
- package/src/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.ts +4 -4
- package/src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts +131 -95
- package/src/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.ts +86 -16
- package/src/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.ts +73 -22
- package/src/tools/implementation/zodSchema/schemaTypes/CoListSchema.ts +86 -28
- package/src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts +204 -148
- package/src/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.ts +1 -0
- package/src/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.ts +71 -27
- package/src/tools/implementation/zodSchema/schemaTypes/CoValueSchema.ts +7 -0
- package/src/tools/implementation/zodSchema/schemaTypes/CoVectorSchema.ts +8 -6
- package/src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts +4 -1
- package/src/tools/implementation/zodSchema/schemaTypes/GroupSchema.ts +4 -1
- package/src/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.ts +4 -1
- package/src/tools/implementation/zodSchema/schemaTypes/RichTextSchema.ts +4 -1
- package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.ts +3 -0
- package/src/tools/implementation/zodSchema/typeConverters/{InstanceOfSchemaCoValuesNullable.ts → InstanceOfSchemaCoValuesMaybeLoaded.ts} +47 -39
- package/src/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.ts +4 -0
- package/src/tools/implementation/zodSchema/typeConverters/{InstanceOrPrimitiveOfSchemaCoValuesNullable.ts → InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.ts} +7 -3
- package/src/tools/implementation/zodSchema/unionUtils.ts +35 -4
- package/src/tools/implementation/zodSchema/zodSchema.ts +15 -7
- package/src/tools/internal.ts +3 -3
- package/src/tools/lib/utils.test.ts +56 -0
- package/src/tools/lib/utils.ts +32 -0
- package/src/tools/subscribe/CoValueCoreSubscription.ts +13 -8
- package/src/tools/subscribe/JazzError.ts +8 -2
- package/src/tools/subscribe/SubscriptionScope.ts +57 -57
- package/src/tools/subscribe/index.ts +12 -4
- package/src/tools/subscribe/types.ts +36 -2
- package/src/tools/subscribe/utils.ts +2 -1
- package/src/tools/testing.ts +5 -0
- package/src/tools/tests/CoValueCoreSubscription.test.ts +10 -4
- package/src/tools/tests/ContextManager.test.ts +12 -5
- package/src/tools/tests/account.test.ts +22 -12
- package/src/tools/tests/coDiscriminatedUnion.test.ts +354 -8
- package/src/tools/tests/coFeed.branch.test.ts +48 -32
- package/src/tools/tests/coFeed.test-d.ts +17 -10
- package/src/tools/tests/coFeed.test.ts +52 -30
- package/src/tools/tests/coList.branch.test.ts +21 -21
- package/src/tools/tests/coList.test-d.ts +39 -23
- package/src/tools/tests/coList.test.ts +51 -25
- package/src/tools/tests/coList.unique.test.ts +34 -29
- package/src/tools/tests/coMap.branch.test.ts +20 -21
- package/src/tools/tests/coMap.record.test-d.ts +28 -26
- package/src/tools/tests/coMap.record.test.ts +30 -20
- package/src/tools/tests/coMap.test-d.ts +31 -29
- package/src/tools/tests/coMap.test.ts +67 -40
- package/src/tools/tests/coMap.unique.test.ts +25 -24
- package/src/tools/tests/coVector.test.ts +29 -15
- package/src/tools/tests/createContext.test.ts +5 -3
- package/src/tools/tests/deepLoading.test.ts +369 -176
- package/src/tools/tests/exportImport.test.ts +16 -15
- package/src/tools/tests/groupsAndAccounts.test.ts +39 -16
- package/src/tools/tests/inbox.test.ts +3 -1
- package/src/tools/tests/load.test.ts +29 -23
- package/src/tools/tests/patterns/quest.test.ts +3 -2
- package/src/tools/tests/patterns/requestToJoin.test.ts +17 -17
- package/src/tools/tests/request.test.ts +12 -2
- package/src/tools/tests/schema.resolved.test.ts +792 -0
- package/src/tools/tests/schemaUnion.test.ts +7 -3
- package/src/tools/tests/subscribe.test.ts +39 -21
- package/src/tools/tests/testing.test.ts +3 -2
- package/src/tools/tests/utils.ts +15 -2
- package/dist/chunk-OSQ7S47Q.js.map +0 -1
- package/dist/media/chunk-K6GCHLQU.js.map +0 -1
- package/dist/react-core/tests/useAccountWithSelector.test.d.ts +0 -2
- package/dist/react-core/tests/useAccountWithSelector.test.d.ts.map +0 -1
- package/dist/react-core/tests/useCoStateWithSelector.test.d.ts +0 -2
- package/dist/react-core/tests/useCoStateWithSelector.test.d.ts.map +0 -1
- package/dist/tools/implementation/errors.d.ts +0 -2
- package/dist/tools/implementation/errors.d.ts.map +0 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts +0 -19
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts.map +0 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts +0 -5
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts.map +0 -1
- package/dist/tools/lib/id.d.ts +0 -2
- package/dist/tools/lib/id.d.ts.map +0 -1
- package/src/tools/implementation/errors.ts +0 -1
- package/src/tools/lib/id.ts +0 -3
|
@@ -2,14 +2,20 @@ import {
|
|
|
2
2
|
Account,
|
|
3
3
|
AccountCreationProps,
|
|
4
4
|
BranchDefinition,
|
|
5
|
+
CoMapSchemaDefinition,
|
|
5
6
|
coOptionalDefiner,
|
|
6
7
|
Group,
|
|
8
|
+
MaybeLoaded,
|
|
7
9
|
RefsToResolveStrict,
|
|
10
|
+
RefsToResolve,
|
|
11
|
+
Resolved,
|
|
8
12
|
Simplify,
|
|
13
|
+
SubscribeListenerOptions,
|
|
14
|
+
unstable_mergeBranchWithResolve,
|
|
9
15
|
} from "../../../internal.js";
|
|
10
16
|
import { AnonymousJazzAgent } from "../../anonymousJazzAgent.js";
|
|
11
17
|
import { InstanceOrPrimitiveOfSchema } from "../typeConverters/InstanceOrPrimitiveOfSchema.js";
|
|
12
|
-
import {
|
|
18
|
+
import { InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded } from "../typeConverters/InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.js";
|
|
13
19
|
import { z } from "../zodReExport.js";
|
|
14
20
|
import { AnyZodOrCoValueSchema, Loaded, ResolveQuery } from "../zodSchema.js";
|
|
15
21
|
import {
|
|
@@ -17,6 +23,9 @@ import {
|
|
|
17
23
|
CoreCoMapSchema,
|
|
18
24
|
createCoreCoMapSchema,
|
|
19
25
|
} from "./CoMapSchema.js";
|
|
26
|
+
import { CoOptionalSchema } from "./CoOptionalSchema.js";
|
|
27
|
+
import { CoreResolveQuery } from "./CoValueSchema.js";
|
|
28
|
+
import { withSchemaResolveQuery } from "../../schemaUtils.js";
|
|
20
29
|
|
|
21
30
|
export type BaseProfileShape = {
|
|
22
31
|
name: z.core.$ZodString<string>;
|
|
@@ -34,60 +43,151 @@ export type DefaultAccountShape = {
|
|
|
34
43
|
root: CoMapSchema<{}>;
|
|
35
44
|
};
|
|
36
45
|
|
|
37
|
-
export
|
|
46
|
+
export class AccountSchema<
|
|
38
47
|
Shape extends BaseAccountShape = DefaultAccountShape,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
DefaultResolveQuery extends CoreResolveQuery = true,
|
|
49
|
+
> implements CoreAccountSchema<Shape>
|
|
50
|
+
{
|
|
51
|
+
collaborative = true as const;
|
|
52
|
+
builtin = "Account" as const;
|
|
53
|
+
shape: Shape;
|
|
54
|
+
getDefinition: () => CoMapSchemaDefinition;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Default resolve query to be used when loading instances of this schema.
|
|
58
|
+
* This resolve query will be used when no resolve query is provided to the load method.
|
|
59
|
+
* @default true
|
|
60
|
+
*/
|
|
61
|
+
resolveQuery: DefaultResolveQuery = true as DefaultResolveQuery;
|
|
62
|
+
|
|
63
|
+
constructor(
|
|
64
|
+
coreSchema: CoreAccountSchema<Shape>,
|
|
65
|
+
private coValueClass: typeof Account,
|
|
66
|
+
) {
|
|
67
|
+
this.shape = coreSchema.shape;
|
|
68
|
+
this.getDefinition = coreSchema.getDefinition;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
create(
|
|
53
72
|
options: Simplify<Parameters<(typeof Account)["create"]>[0]>,
|
|
54
|
-
)
|
|
55
|
-
|
|
56
|
-
|
|
73
|
+
): Promise<AccountInstance<Shape>> {
|
|
74
|
+
// @ts-expect-error
|
|
75
|
+
return this.coValueClass.create(options);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
load<
|
|
79
|
+
// @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is
|
|
80
|
+
const R extends ResolveQuery<AccountSchema<Shape>> = DefaultResolveQuery,
|
|
81
|
+
>(
|
|
57
82
|
id: string,
|
|
58
83
|
options?: {
|
|
59
84
|
loadAs?: Account | AnonymousJazzAgent;
|
|
60
85
|
resolve?: RefsToResolveStrict<AccountSchema<Shape>, R>;
|
|
61
86
|
},
|
|
62
|
-
)
|
|
87
|
+
): Promise<MaybeLoaded<Loaded<AccountSchema<Shape>, R>>> {
|
|
88
|
+
// @ts-expect-error
|
|
89
|
+
return this.coValueClass.load(
|
|
90
|
+
id,
|
|
91
|
+
// @ts-expect-error
|
|
92
|
+
withSchemaResolveQuery(options, this.resolveQuery),
|
|
93
|
+
);
|
|
94
|
+
}
|
|
63
95
|
|
|
64
96
|
/** @internal */
|
|
65
|
-
createAs
|
|
97
|
+
createAs(
|
|
66
98
|
as: Account,
|
|
67
99
|
options: {
|
|
68
|
-
creationProps
|
|
100
|
+
creationProps: { name: string };
|
|
69
101
|
},
|
|
70
|
-
)
|
|
71
|
-
|
|
72
|
-
|
|
102
|
+
): Promise<AccountInstance<Shape>> {
|
|
103
|
+
// @ts-expect-error
|
|
104
|
+
return this.coValueClass.createAs(as, options);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
unstable_merge<
|
|
108
|
+
// @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is
|
|
109
|
+
R extends ResolveQuery<AccountSchema<Shape>> = DefaultResolveQuery,
|
|
110
|
+
>(
|
|
73
111
|
id: string,
|
|
74
|
-
options
|
|
112
|
+
options: {
|
|
75
113
|
loadAs?: Account | AnonymousJazzAgent;
|
|
76
114
|
resolve?: RefsToResolveStrict<AccountSchema<Shape>, R>;
|
|
77
115
|
branch: BranchDefinition;
|
|
78
116
|
},
|
|
79
|
-
)
|
|
117
|
+
): Promise<void> {
|
|
118
|
+
return unstable_mergeBranchWithResolve(
|
|
119
|
+
this.coValueClass,
|
|
120
|
+
id,
|
|
121
|
+
// @ts-expect-error
|
|
122
|
+
withSchemaResolveQuery(options, this.resolveQuery),
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
subscribe<
|
|
127
|
+
const R extends RefsToResolve<
|
|
128
|
+
Simplify<AccountInstance<Shape>>
|
|
129
|
+
// @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is
|
|
130
|
+
> = DefaultResolveQuery,
|
|
131
|
+
>(
|
|
132
|
+
id: string,
|
|
133
|
+
options: SubscribeListenerOptions<Simplify<AccountInstance<Shape>>, R>,
|
|
134
|
+
listener: (
|
|
135
|
+
value: Resolved<Simplify<AccountInstance<Shape>>, R>,
|
|
136
|
+
unsubscribe: () => void,
|
|
137
|
+
) => void,
|
|
138
|
+
): () => void {
|
|
139
|
+
return this.coValueClass.subscribe(
|
|
140
|
+
id,
|
|
141
|
+
// @ts-expect-error
|
|
142
|
+
withSchemaResolveQuery(options, this.resolveQuery),
|
|
143
|
+
listener,
|
|
144
|
+
);
|
|
145
|
+
}
|
|
80
146
|
|
|
81
|
-
getMe
|
|
147
|
+
getMe(): Loaded<this, true> {
|
|
148
|
+
// @ts-expect-error
|
|
149
|
+
return this.coValueClass.getMe();
|
|
150
|
+
}
|
|
82
151
|
|
|
83
152
|
withMigration(
|
|
84
153
|
migration: (
|
|
85
154
|
account: Loaded<AccountSchema<Shape>>,
|
|
86
155
|
creationProps?: { name: string },
|
|
87
156
|
) => void,
|
|
88
|
-
): AccountSchema<Shape
|
|
89
|
-
|
|
90
|
-
|
|
157
|
+
): AccountSchema<Shape, DefaultResolveQuery> {
|
|
158
|
+
(this.coValueClass.prototype as Account).migrate = async function (
|
|
159
|
+
this,
|
|
160
|
+
creationProps,
|
|
161
|
+
) {
|
|
162
|
+
// @ts-expect-error
|
|
163
|
+
await migration(this, creationProps);
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
return this;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
getCoValueClass(): typeof Account {
|
|
170
|
+
return this.coValueClass;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
optional(): CoOptionalSchema<this> {
|
|
174
|
+
return coOptionalDefiner(this);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Adds a default resolve query to be used when loading instances of this schema.
|
|
179
|
+
* This resolve query will be used when no resolve query is provided to the load method.
|
|
180
|
+
*/
|
|
181
|
+
resolved<R extends ResolveQuery<AccountSchema<Shape>>>(
|
|
182
|
+
resolveQuery: RefsToResolveStrict<AccountSchema<Shape>, R>,
|
|
183
|
+
): AccountSchema<Shape, R> {
|
|
184
|
+
const coreSchema: CoreAccountSchema<Shape> = createCoreAccountSchema(
|
|
185
|
+
this.shape,
|
|
186
|
+
);
|
|
187
|
+
const copy = new AccountSchema<Shape, R>(coreSchema, this.coValueClass);
|
|
188
|
+
copy.resolveQuery = resolveQuery as R;
|
|
189
|
+
return copy;
|
|
190
|
+
}
|
|
91
191
|
}
|
|
92
192
|
|
|
93
193
|
export function createCoreAccountSchema<Shape extends BaseAccountShape>(
|
|
@@ -99,62 +199,6 @@ export function createCoreAccountSchema<Shape extends BaseAccountShape>(
|
|
|
99
199
|
};
|
|
100
200
|
}
|
|
101
201
|
|
|
102
|
-
export function enrichAccountSchema<Shape extends BaseAccountShape>(
|
|
103
|
-
schema: CoreAccountSchema<Shape>,
|
|
104
|
-
coValueClass: typeof Account,
|
|
105
|
-
): AccountSchema<Shape> {
|
|
106
|
-
const enrichedSchema = Object.assign(schema, {
|
|
107
|
-
create: (...args: any[]) => {
|
|
108
|
-
// @ts-expect-error
|
|
109
|
-
return coValueClass.create(...args);
|
|
110
|
-
},
|
|
111
|
-
createAs: (...args: any[]) => {
|
|
112
|
-
// @ts-expect-error
|
|
113
|
-
return coValueClass.createAs(...args);
|
|
114
|
-
},
|
|
115
|
-
getMe: (...args: any[]) => {
|
|
116
|
-
// @ts-expect-error
|
|
117
|
-
return coValueClass.getMe(...args);
|
|
118
|
-
},
|
|
119
|
-
load: (...args: any[]) => {
|
|
120
|
-
// @ts-expect-error
|
|
121
|
-
return coValueClass.load(...args);
|
|
122
|
-
},
|
|
123
|
-
subscribe: (...args: any[]) => {
|
|
124
|
-
// @ts-expect-error
|
|
125
|
-
return coValueClass.subscribe(...args);
|
|
126
|
-
},
|
|
127
|
-
fromRaw: (...args: any[]) => {
|
|
128
|
-
// @ts-expect-error
|
|
129
|
-
return coValueClass.fromRaw(...args);
|
|
130
|
-
},
|
|
131
|
-
unstable_merge: (...args: any[]) => {
|
|
132
|
-
// @ts-expect-error
|
|
133
|
-
return unstable_mergeBranchWithResolve(coValueClass, ...args);
|
|
134
|
-
},
|
|
135
|
-
withMigration: (
|
|
136
|
-
migration: (
|
|
137
|
-
value: any,
|
|
138
|
-
creationProps?: AccountCreationProps,
|
|
139
|
-
) => void | Promise<void>,
|
|
140
|
-
) => {
|
|
141
|
-
(coValueClass.prototype as Account).migrate = async function (
|
|
142
|
-
this,
|
|
143
|
-
creationProps,
|
|
144
|
-
) {
|
|
145
|
-
await migration(this, creationProps);
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
return enrichedSchema;
|
|
149
|
-
},
|
|
150
|
-
getCoValueClass: () => {
|
|
151
|
-
return coValueClass;
|
|
152
|
-
},
|
|
153
|
-
optional: () => coOptionalDefiner(enrichedSchema),
|
|
154
|
-
}) as unknown as AccountSchema<Shape>;
|
|
155
|
-
return enrichedSchema;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
202
|
export type DefaultProfileShape = {
|
|
159
203
|
name: z.core.$ZodString<string>;
|
|
160
204
|
inbox: z.core.$ZodOptional<z.core.$ZodString>;
|
|
@@ -176,11 +220,3 @@ export interface CoreAccountSchema<
|
|
|
176
220
|
export type AccountInstance<Shape extends z.core.$ZodLooseShape> = {
|
|
177
221
|
readonly [key in keyof Shape]: InstanceOrPrimitiveOfSchema<Shape[key]>;
|
|
178
222
|
} & Account;
|
|
179
|
-
|
|
180
|
-
export type AccountInstanceCoValuesNullable<
|
|
181
|
-
Shape extends z.core.$ZodLooseShape,
|
|
182
|
-
> = {
|
|
183
|
-
readonly [key in keyof Shape]: InstanceOrPrimitiveOfSchemaCoValuesNullable<
|
|
184
|
-
Shape[key]
|
|
185
|
-
>;
|
|
186
|
-
} & Account;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Account,
|
|
3
3
|
AnonymousJazzAgent,
|
|
4
|
+
LoadedAndRequired,
|
|
4
5
|
BranchDefinition,
|
|
5
6
|
InstanceOfSchema,
|
|
6
|
-
|
|
7
|
+
InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded,
|
|
8
|
+
MaybeLoaded,
|
|
9
|
+
RefsToResolve,
|
|
10
|
+
RefsToResolveStrict,
|
|
7
11
|
Resolved,
|
|
8
12
|
SchemaUnion,
|
|
9
13
|
SchemaUnionConcreteSubclass,
|
|
@@ -12,7 +16,8 @@ import {
|
|
|
12
16
|
} from "../../../internal.js";
|
|
13
17
|
import { z } from "../zodReExport.js";
|
|
14
18
|
import { CoOptionalSchema } from "./CoOptionalSchema.js";
|
|
15
|
-
import { CoreCoValueSchema } from "./CoValueSchema.js";
|
|
19
|
+
import { CoreCoValueSchema, CoreResolveQuery } from "./CoValueSchema.js";
|
|
20
|
+
import { withSchemaResolveQuery } from "../../schemaUtils.js";
|
|
16
21
|
|
|
17
22
|
export interface DiscriminableCoValueSchemaDefinition {
|
|
18
23
|
discriminatorMap: z.core.$ZodDiscriminatedUnionInternals["propValues"];
|
|
@@ -42,12 +47,20 @@ export interface CoreCoDiscriminatedUnionSchema<
|
|
|
42
47
|
}
|
|
43
48
|
export class CoDiscriminatedUnionSchema<
|
|
44
49
|
Options extends DiscriminableCoValueSchemas,
|
|
50
|
+
DefaultResolveQuery extends CoreResolveQuery = true,
|
|
45
51
|
> implements CoreCoDiscriminatedUnionSchema<Options>
|
|
46
52
|
{
|
|
47
53
|
readonly collaborative = true as const;
|
|
48
54
|
readonly builtin = "CoDiscriminatedUnion" as const;
|
|
49
55
|
readonly getDefinition: () => CoDiscriminatedUnionSchemaDefinition<Options>;
|
|
50
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Default resolve query to be used when loading instances of this schema.
|
|
59
|
+
* This resolve query will be used when no resolve query is provided to the load method.
|
|
60
|
+
* @default true
|
|
61
|
+
*/
|
|
62
|
+
resolveQuery: DefaultResolveQuery = true as DefaultResolveQuery;
|
|
63
|
+
|
|
51
64
|
constructor(
|
|
52
65
|
coreSchema: CoreCoDiscriminatedUnionSchema<Options>,
|
|
53
66
|
private coValueClass: SchemaUnionConcreteSubclass<
|
|
@@ -57,36 +70,62 @@ export class CoDiscriminatedUnionSchema<
|
|
|
57
70
|
this.getDefinition = coreSchema.getDefinition;
|
|
58
71
|
}
|
|
59
72
|
|
|
60
|
-
load
|
|
73
|
+
load<
|
|
74
|
+
const R extends RefsToResolve<
|
|
75
|
+
CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion
|
|
76
|
+
// @ts-expect-error
|
|
77
|
+
> = DefaultResolveQuery,
|
|
78
|
+
>(
|
|
61
79
|
id: string,
|
|
62
80
|
options?: {
|
|
81
|
+
resolve?: RefsToResolveStrict<
|
|
82
|
+
CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion,
|
|
83
|
+
R
|
|
84
|
+
>;
|
|
63
85
|
loadAs?: Account | AnonymousJazzAgent;
|
|
64
86
|
skipRetry?: boolean;
|
|
65
87
|
unstable_branch?: BranchDefinition;
|
|
66
88
|
},
|
|
67
|
-
): Promise<
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
89
|
+
): Promise<
|
|
90
|
+
MaybeLoaded<
|
|
91
|
+
Resolved<
|
|
92
|
+
CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion,
|
|
93
|
+
R
|
|
94
|
+
>
|
|
95
|
+
>
|
|
96
|
+
> {
|
|
97
|
+
return this.coValueClass.load(
|
|
98
|
+
id,
|
|
99
|
+
// @ts-expect-error
|
|
100
|
+
withSchemaResolveQuery(options, this.resolveQuery),
|
|
101
|
+
) as any;
|
|
72
102
|
}
|
|
73
103
|
|
|
74
|
-
subscribe
|
|
104
|
+
subscribe<
|
|
105
|
+
const R extends RefsToResolve<
|
|
106
|
+
CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion
|
|
107
|
+
// @ts-expect-error
|
|
108
|
+
> = DefaultResolveQuery,
|
|
109
|
+
>(
|
|
75
110
|
id: string,
|
|
76
111
|
options: SubscribeListenerOptions<
|
|
77
|
-
|
|
78
|
-
|
|
112
|
+
CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion,
|
|
113
|
+
R
|
|
79
114
|
>,
|
|
80
115
|
listener: (
|
|
81
116
|
value: Resolved<
|
|
82
|
-
|
|
83
|
-
|
|
117
|
+
CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion,
|
|
118
|
+
R
|
|
84
119
|
>,
|
|
85
120
|
unsubscribe: () => void,
|
|
86
121
|
) => void,
|
|
87
122
|
): () => void {
|
|
88
123
|
// @ts-expect-error
|
|
89
|
-
return this.coValueClass.subscribe(
|
|
124
|
+
return this.coValueClass.subscribe(
|
|
125
|
+
id,
|
|
126
|
+
withSchemaResolveQuery(options, this.resolveQuery),
|
|
127
|
+
listener,
|
|
128
|
+
);
|
|
90
129
|
}
|
|
91
130
|
|
|
92
131
|
getCoValueClass(): SchemaUnionConcreteSubclass<
|
|
@@ -98,6 +137,34 @@ export class CoDiscriminatedUnionSchema<
|
|
|
98
137
|
optional(): CoOptionalSchema<this> {
|
|
99
138
|
return coOptionalDefiner(this);
|
|
100
139
|
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Adds a default resolve query to be used when loading instances of this schema.
|
|
143
|
+
* This resolve query will be used when no resolve query is provided to the load method.
|
|
144
|
+
*/
|
|
145
|
+
resolved<
|
|
146
|
+
const R extends RefsToResolve<
|
|
147
|
+
CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion
|
|
148
|
+
> = true,
|
|
149
|
+
>(
|
|
150
|
+
resolveQuery: RefsToResolveStrict<
|
|
151
|
+
CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<Options> & SchemaUnion,
|
|
152
|
+
R
|
|
153
|
+
>,
|
|
154
|
+
): CoDiscriminatedUnionSchema<Options, R> {
|
|
155
|
+
const definition = this.getDefinition();
|
|
156
|
+
const coreSchema: CoreCoDiscriminatedUnionSchema<Options> =
|
|
157
|
+
createCoreCoDiscriminatedUnionSchema(
|
|
158
|
+
definition.discriminator,
|
|
159
|
+
definition.options,
|
|
160
|
+
);
|
|
161
|
+
const copy = new CoDiscriminatedUnionSchema<Options, R>(
|
|
162
|
+
coreSchema,
|
|
163
|
+
this.coValueClass,
|
|
164
|
+
);
|
|
165
|
+
copy.resolveQuery = resolveQuery as R;
|
|
166
|
+
return copy;
|
|
167
|
+
}
|
|
101
168
|
}
|
|
102
169
|
|
|
103
170
|
export function createCoreCoDiscriminatedUnionSchema<
|
|
@@ -133,9 +200,12 @@ export function createCoreCoDiscriminatedUnionSchema<
|
|
|
133
200
|
return schemas;
|
|
134
201
|
},
|
|
135
202
|
}),
|
|
203
|
+
resolveQuery: true as const,
|
|
136
204
|
};
|
|
137
205
|
}
|
|
138
206
|
|
|
139
|
-
type
|
|
207
|
+
type CoDiscriminatedUnionInstanceCoValuesMaybeLoaded<
|
|
140
208
|
Options extends DiscriminableCoValueSchemas,
|
|
141
|
-
> =
|
|
209
|
+
> = LoadedAndRequired<
|
|
210
|
+
InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded<Options[number]>
|
|
211
|
+
>;
|
|
@@ -4,26 +4,38 @@ import {
|
|
|
4
4
|
BranchDefinition,
|
|
5
5
|
CoFeed,
|
|
6
6
|
Group,
|
|
7
|
+
MaybeLoaded,
|
|
7
8
|
RefsToResolve,
|
|
8
9
|
RefsToResolveStrict,
|
|
9
10
|
Resolved,
|
|
10
11
|
SubscribeListenerOptions,
|
|
11
12
|
coOptionalDefiner,
|
|
13
|
+
parseSubscribeRestArgs,
|
|
12
14
|
unstable_mergeBranchWithResolve,
|
|
13
15
|
} from "../../../internal.js";
|
|
14
16
|
import { AnonymousJazzAgent } from "../../anonymousJazzAgent.js";
|
|
15
17
|
import { CoFeedSchemaInit } from "../typeConverters/CoFieldSchemaInit.js";
|
|
16
18
|
import { InstanceOrPrimitiveOfSchema } from "../typeConverters/InstanceOrPrimitiveOfSchema.js";
|
|
17
|
-
import {
|
|
19
|
+
import { InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded } from "../typeConverters/InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded.js";
|
|
18
20
|
import { CoOptionalSchema } from "./CoOptionalSchema.js";
|
|
19
|
-
import { CoreCoValueSchema } from "./CoValueSchema.js";
|
|
21
|
+
import { CoreCoValueSchema, CoreResolveQuery } from "./CoValueSchema.js";
|
|
22
|
+
import { withSchemaResolveQuery } from "../../schemaUtils.js";
|
|
20
23
|
|
|
21
|
-
export class CoFeedSchema<
|
|
22
|
-
|
|
24
|
+
export class CoFeedSchema<
|
|
25
|
+
T extends AnyZodOrCoValueSchema,
|
|
26
|
+
DefaultResolveQuery extends CoreResolveQuery = true,
|
|
27
|
+
> implements CoreCoFeedSchema<T>
|
|
23
28
|
{
|
|
24
29
|
collaborative = true as const;
|
|
25
30
|
builtin = "CoFeed" as const;
|
|
26
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Default resolve query to be used when loading instances of this schema.
|
|
34
|
+
* This resolve query will be used when no resolve query is provided to the load method.
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
resolveQuery: DefaultResolveQuery = true as DefaultResolveQuery;
|
|
38
|
+
|
|
27
39
|
constructor(
|
|
28
40
|
public element: T,
|
|
29
41
|
private coValueClass: typeof CoFeed,
|
|
@@ -45,52 +57,76 @@ export class CoFeedSchema<T extends AnyZodOrCoValueSchema>
|
|
|
45
57
|
return this.coValueClass.create(init as any, options) as CoFeedInstance<T>;
|
|
46
58
|
}
|
|
47
59
|
|
|
48
|
-
load<
|
|
60
|
+
load<
|
|
61
|
+
const R extends RefsToResolve<
|
|
62
|
+
CoFeedInstanceCoValuesMaybeLoaded<T>
|
|
63
|
+
// @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is
|
|
64
|
+
> = DefaultResolveQuery,
|
|
65
|
+
>(
|
|
49
66
|
id: string,
|
|
50
67
|
options?: {
|
|
51
|
-
resolve?: RefsToResolveStrict<
|
|
68
|
+
resolve?: RefsToResolveStrict<CoFeedInstanceCoValuesMaybeLoaded<T>, R>;
|
|
52
69
|
loadAs?: Account | AnonymousJazzAgent;
|
|
53
70
|
unstable_branch?: BranchDefinition;
|
|
54
71
|
},
|
|
55
|
-
): Promise<Resolved<
|
|
72
|
+
): Promise<MaybeLoaded<Resolved<CoFeedInstanceCoValuesMaybeLoaded<T>, R>>> {
|
|
56
73
|
// @ts-expect-error
|
|
57
|
-
return this.coValueClass.load(
|
|
74
|
+
return this.coValueClass.load(
|
|
75
|
+
id,
|
|
76
|
+
// @ts-expect-error
|
|
77
|
+
withSchemaResolveQuery(options, this.resolveQuery),
|
|
78
|
+
);
|
|
58
79
|
}
|
|
59
80
|
|
|
60
81
|
unstable_merge<
|
|
61
|
-
const R extends RefsToResolve<
|
|
82
|
+
const R extends RefsToResolve<
|
|
83
|
+
CoFeedInstanceCoValuesMaybeLoaded<T>
|
|
84
|
+
// @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is
|
|
85
|
+
> = DefaultResolveQuery,
|
|
62
86
|
>(
|
|
63
87
|
id: string,
|
|
64
|
-
options
|
|
65
|
-
resolve?: RefsToResolveStrict<
|
|
88
|
+
options: {
|
|
89
|
+
resolve?: RefsToResolveStrict<CoFeedInstanceCoValuesMaybeLoaded<T>, R>;
|
|
66
90
|
loadAs?: Account | AnonymousJazzAgent;
|
|
67
91
|
branch: BranchDefinition;
|
|
68
92
|
},
|
|
69
93
|
): Promise<void> {
|
|
70
|
-
|
|
71
|
-
|
|
94
|
+
return unstable_mergeBranchWithResolve(
|
|
95
|
+
this.coValueClass,
|
|
96
|
+
id,
|
|
97
|
+
// @ts-expect-error
|
|
98
|
+
withSchemaResolveQuery(options, this.resolveQuery),
|
|
99
|
+
);
|
|
72
100
|
}
|
|
73
101
|
|
|
74
102
|
subscribe(
|
|
75
103
|
id: string,
|
|
76
104
|
listener: (
|
|
77
|
-
value: Resolved<
|
|
105
|
+
value: Resolved<CoFeedInstanceCoValuesMaybeLoaded<T>, true>,
|
|
78
106
|
unsubscribe: () => void,
|
|
79
107
|
) => void,
|
|
80
108
|
): () => void;
|
|
81
109
|
subscribe<
|
|
82
|
-
const R extends RefsToResolve<
|
|
110
|
+
const R extends RefsToResolve<
|
|
111
|
+
CoFeedInstanceCoValuesMaybeLoaded<T>
|
|
112
|
+
// @ts-expect-error we can't statically enforce the schema's resolve query is a valid resolve query, but in practice it is
|
|
113
|
+
> = DefaultResolveQuery,
|
|
83
114
|
>(
|
|
84
115
|
id: string,
|
|
85
|
-
options: SubscribeListenerOptions<
|
|
116
|
+
options: SubscribeListenerOptions<CoFeedInstanceCoValuesMaybeLoaded<T>, R>,
|
|
86
117
|
listener: (
|
|
87
|
-
value: Resolved<
|
|
118
|
+
value: Resolved<CoFeedInstanceCoValuesMaybeLoaded<T>, R>,
|
|
88
119
|
unsubscribe: () => void,
|
|
89
120
|
) => void,
|
|
90
121
|
): () => void;
|
|
91
|
-
subscribe(
|
|
92
|
-
|
|
93
|
-
return this.coValueClass.subscribe(
|
|
122
|
+
subscribe(id: string, ...args: any) {
|
|
123
|
+
const { options, listener } = parseSubscribeRestArgs(args);
|
|
124
|
+
return this.coValueClass.subscribe(
|
|
125
|
+
id,
|
|
126
|
+
// @ts-expect-error
|
|
127
|
+
withSchemaResolveQuery(options, this.resolveQuery),
|
|
128
|
+
listener,
|
|
129
|
+
);
|
|
94
130
|
}
|
|
95
131
|
|
|
96
132
|
getCoValueClass(): typeof CoFeed {
|
|
@@ -100,6 +136,20 @@ export class CoFeedSchema<T extends AnyZodOrCoValueSchema>
|
|
|
100
136
|
optional(): CoOptionalSchema<this> {
|
|
101
137
|
return coOptionalDefiner(this);
|
|
102
138
|
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Adds a default resolve query to be used when loading instances of this schema.
|
|
142
|
+
* This resolve query will be used when no resolve query is provided to the load method.
|
|
143
|
+
*/
|
|
144
|
+
resolved<
|
|
145
|
+
const R extends RefsToResolve<CoFeedInstanceCoValuesMaybeLoaded<T>> = true,
|
|
146
|
+
>(
|
|
147
|
+
resolveQuery: RefsToResolveStrict<CoFeedInstanceCoValuesMaybeLoaded<T>, R>,
|
|
148
|
+
): CoFeedSchema<T, R> {
|
|
149
|
+
const copy = new CoFeedSchema<T, R>(this.element, this.coValueClass);
|
|
150
|
+
copy.resolveQuery = resolveQuery as R;
|
|
151
|
+
return copy;
|
|
152
|
+
}
|
|
103
153
|
}
|
|
104
154
|
|
|
105
155
|
export function createCoreCoFeedSchema<T extends AnyZodOrCoValueSchema>(
|
|
@@ -109,6 +159,7 @@ export function createCoreCoFeedSchema<T extends AnyZodOrCoValueSchema>(
|
|
|
109
159
|
collaborative: true as const,
|
|
110
160
|
builtin: "CoFeed" as const,
|
|
111
161
|
element,
|
|
162
|
+
resolveQuery: true as const,
|
|
112
163
|
};
|
|
113
164
|
}
|
|
114
165
|
|
|
@@ -124,5 +175,5 @@ export type CoFeedInstance<T extends AnyZodOrCoValueSchema> = CoFeed<
|
|
|
124
175
|
InstanceOrPrimitiveOfSchema<T>
|
|
125
176
|
>;
|
|
126
177
|
|
|
127
|
-
export type
|
|
128
|
-
CoFeed<
|
|
178
|
+
export type CoFeedInstanceCoValuesMaybeLoaded<T extends AnyZodOrCoValueSchema> =
|
|
179
|
+
CoFeed<InstanceOrPrimitiveOfSchemaCoValuesMaybeLoaded<T>>;
|