jazz-tools 0.15.15 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.svelte-kit/__package__/jazz.class.svelte.d.ts +2 -2
- package/.svelte-kit/__package__/jazz.class.svelte.d.ts.map +1 -1
- package/.svelte-kit/__package__/jazz.class.svelte.js +5 -5
- package/.svelte-kit/__package__/jazz.svelte.d.ts +2 -2
- package/.svelte-kit/__package__/jazz.svelte.d.ts.map +1 -1
- package/.turbo/turbo-build.log +46 -50
- package/CHANGELOG.md +35 -0
- package/dist/browser/index.d.ts +2 -2
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/browser-media-images/index.d.ts +3 -1
- package/dist/browser-media-images/index.d.ts.map +1 -1
- package/dist/browser-media-images/index.js.map +1 -1
- package/dist/{chunk-4CFNXQE7.js → chunk-MLCNE3TL.js} +791 -698
- package/dist/chunk-MLCNE3TL.js.map +1 -0
- package/dist/index.js +363 -11
- package/dist/index.js.map +1 -1
- package/dist/react/hooks.d.ts +2 -2
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/index.js +2 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/testing.js +3 -1
- package/dist/react/testing.js.map +1 -1
- package/dist/react-core/hooks.d.ts +2 -2
- package/dist/react-core/hooks.d.ts.map +1 -1
- package/dist/react-core/index.js +3 -3
- package/dist/react-core/index.js.map +1 -1
- package/dist/react-native-core/hooks.d.ts +2 -2
- package/dist/react-native-core/hooks.d.ts.map +1 -1
- package/dist/react-native-core/index.js.map +1 -1
- package/dist/svelte/jazz.class.svelte.d.ts +2 -2
- package/dist/svelte/jazz.class.svelte.d.ts.map +1 -1
- package/dist/svelte/jazz.class.svelte.js +5 -5
- package/dist/svelte/jazz.svelte.d.ts +2 -2
- package/dist/svelte/jazz.svelte.d.ts.map +1 -1
- package/dist/testing.js +3 -3
- package/dist/testing.js.map +1 -1
- package/dist/tools/coValues/CoValueBase.d.ts +3 -13
- package/dist/tools/coValues/CoValueBase.d.ts.map +1 -1
- package/dist/tools/coValues/account.d.ts +2 -2
- package/dist/tools/coValues/account.d.ts.map +1 -1
- package/dist/tools/coValues/coFeed.d.ts.map +1 -1
- package/dist/tools/coValues/coList.d.ts.map +1 -1
- package/dist/tools/coValues/coMap.d.ts +5 -18
- package/dist/tools/coValues/coMap.d.ts.map +1 -1
- package/dist/tools/coValues/deepLoading.d.ts +4 -1
- package/dist/tools/coValues/deepLoading.d.ts.map +1 -1
- package/dist/tools/coValues/extensions/imageDef.d.ts +4 -7
- package/dist/tools/coValues/extensions/imageDef.d.ts.map +1 -1
- package/dist/tools/coValues/group.d.ts +1 -0
- package/dist/tools/coValues/group.d.ts.map +1 -1
- package/dist/tools/coValues/inbox.d.ts +2 -2
- package/dist/tools/coValues/inbox.d.ts.map +1 -1
- package/dist/tools/coValues/interfaces.d.ts +58 -17
- package/dist/tools/coValues/interfaces.d.ts.map +1 -1
- package/dist/tools/coValues/request.d.ts +82 -0
- package/dist/tools/coValues/request.d.ts.map +1 -0
- package/dist/tools/coValues/schemaUnion.d.ts +5 -1
- package/dist/tools/coValues/schemaUnion.d.ts.map +1 -1
- package/dist/tools/exports.d.ts +4 -3
- package/dist/tools/exports.d.ts.map +1 -1
- package/dist/tools/implementation/createContext.d.ts +4 -4
- package/dist/tools/implementation/createContext.d.ts.map +1 -1
- package/dist/tools/implementation/invites.d.ts +2 -2
- package/dist/tools/implementation/invites.d.ts.map +1 -1
- package/dist/tools/implementation/schemaUtils.d.ts +8 -0
- package/dist/tools/implementation/schemaUtils.d.ts.map +1 -0
- package/dist/tools/implementation/zodSchema/coExport.d.ts +11 -1
- package/dist/tools/implementation/zodSchema/coExport.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.d.ts +22 -0
- package/dist/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.d.ts.map +1 -0
- package/dist/tools/implementation/zodSchema/runtimeConverters/schemaFieldToCoFieldDef.d.ts +10 -0
- package/dist/tools/implementation/zodSchema/runtimeConverters/schemaFieldToCoFieldDef.d.ts.map +1 -0
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts +11 -11
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts +34 -24
- package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts +16 -14
- package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts +23 -17
- package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts +24 -16
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.d.ts +20 -9
- package/dist/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts +18 -12
- package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoValueSchema.d.ts +18 -0
- package/dist/tools/implementation/zodSchema/schemaTypes/CoValueSchema.d.ts.map +1 -0
- package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts +14 -9
- package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts +14 -9
- package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts +14 -9
- package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts +15 -13
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts +12 -15
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts +17 -20
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts +17 -20
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/unionUtils.d.ts +3 -5
- package/dist/tools/implementation/zodSchema/unionUtils.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/zodCo.d.ts +10 -8
- package/dist/tools/implementation/zodSchema/zodCo.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/zodReExport.d.ts +4 -8
- package/dist/tools/implementation/zodSchema/zodReExport.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/zodSchema.d.ts +21 -30
- package/dist/tools/implementation/zodSchema/zodSchema.d.ts.map +1 -1
- package/dist/tools/internal.d.ts +3 -2
- package/dist/tools/internal.d.ts.map +1 -1
- package/dist/tools/lib/id.d.ts +2 -0
- package/dist/tools/lib/id.d.ts.map +1 -0
- package/dist/tools/lib/utilityTypes.d.ts +10 -0
- package/dist/tools/lib/utilityTypes.d.ts.map +1 -0
- package/dist/tools/subscribe/SubscriptionScope.d.ts +3 -2
- package/dist/tools/subscribe/SubscriptionScope.d.ts.map +1 -1
- package/dist/tools/subscribe/utils.d.ts.map +1 -1
- package/dist/tools/testing.d.ts +2 -2
- package/dist/tools/testing.d.ts.map +1 -1
- package/dist/tools/tests/exportImport.test.d.ts +2 -0
- package/dist/tools/tests/exportImport.test.d.ts.map +1 -0
- package/dist/tools/tests/request.test.d.ts +2 -0
- package/dist/tools/tests/request.test.d.ts.map +1 -0
- package/dist/worker/index.d.ts.map +1 -1
- package/dist/worker/index.js +2 -2
- package/dist/worker/index.js.map +1 -1
- package/package.json +7 -6
- package/src/browser/index.ts +2 -4
- package/src/browser-media-images/index.ts +1 -1
- package/src/react/hooks.tsx +2 -2
- package/src/react-core/hooks.ts +6 -6
- package/src/react-core/tests/useAccount.test.ts +2 -2
- package/src/react-core/tests/useCoState.test.ts +3 -2
- package/src/react-native-core/hooks.tsx +2 -2
- package/src/svelte/jazz.class.svelte.ts +10 -7
- package/src/svelte/jazz.svelte.ts +2 -2
- package/src/tools/coValues/CoValueBase.ts +8 -20
- package/src/tools/coValues/account.ts +18 -14
- package/src/tools/coValues/coFeed.ts +0 -4
- package/src/tools/coValues/coList.ts +7 -9
- package/src/tools/coValues/coMap.ts +1 -6
- package/src/tools/coValues/coPlainText.ts +4 -4
- package/src/tools/coValues/deepLoading.ts +4 -1
- package/src/tools/coValues/extensions/imageDef.ts +3 -3
- package/src/tools/coValues/group.ts +1 -0
- package/src/tools/coValues/inbox.ts +8 -7
- package/src/tools/coValues/interfaces.ts +177 -69
- package/src/tools/coValues/request.ts +633 -0
- package/src/tools/coValues/schemaUnion.ts +8 -4
- package/src/tools/exports.ts +11 -14
- package/src/tools/implementation/createContext.ts +9 -9
- package/src/tools/implementation/invites.ts +2 -2
- package/src/tools/implementation/schemaUtils.ts +18 -0
- package/src/tools/implementation/zodSchema/coExport.ts +14 -0
- package/src/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.ts +156 -0
- package/src/tools/implementation/zodSchema/runtimeConverters/schemaFieldToCoFieldDef.ts +133 -0
- package/src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts +36 -17
- package/src/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.ts +101 -52
- package/src/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.ts +54 -50
- package/src/tools/implementation/zodSchema/schemaTypes/CoListSchema.ts +54 -46
- package/src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts +187 -137
- package/src/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.ts +29 -27
- package/src/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.ts +28 -18
- package/src/tools/implementation/zodSchema/schemaTypes/CoValueSchema.ts +18 -0
- package/src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts +45 -36
- package/src/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.ts +47 -35
- package/src/tools/implementation/zodSchema/schemaTypes/RichTextSchema.ts +43 -30
- package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.ts +28 -23
- package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.ts +28 -25
- package/src/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.ts +86 -78
- package/src/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.ts +91 -82
- package/src/tools/implementation/zodSchema/unionUtils.ts +47 -51
- package/src/tools/implementation/zodSchema/zodCo.ts +42 -75
- package/src/tools/implementation/zodSchema/zodReExport.ts +44 -24
- package/src/tools/implementation/zodSchema/zodSchema.ts +64 -102
- package/src/tools/internal.ts +3 -2
- package/src/tools/lib/id.ts +3 -0
- package/src/tools/lib/utilityTypes.ts +7 -0
- package/src/tools/subscribe/SubscriptionScope.ts +10 -1
- package/src/tools/subscribe/utils.ts +4 -2
- package/src/tools/testing.ts +4 -4
- package/src/tools/tests/ContextManager.test.ts +8 -9
- package/src/tools/tests/account.test.ts +65 -3
- package/src/tools/tests/coDiscriminatedUnion.test-d.ts +38 -0
- package/src/tools/tests/coDiscriminatedUnion.test.ts +219 -1
- package/src/tools/tests/coFeed.test-d.ts +4 -3
- package/src/tools/tests/coList.test-d.ts +32 -3
- package/src/tools/tests/coList.test.ts +20 -2
- package/src/tools/tests/coMap.record.test-d.ts +31 -3
- package/src/tools/tests/coMap.record.test.ts +9 -9
- package/src/tools/tests/coMap.test-d.ts +8 -8
- package/src/tools/tests/coMap.test.ts +19 -5
- package/src/tools/tests/coOptional.test.ts +63 -1
- package/src/tools/tests/createContext.test.ts +7 -9
- package/src/tools/tests/deepLoading.test.ts +4 -10
- package/src/tools/tests/exportImport.test.ts +526 -0
- package/src/tools/tests/groupsAndAccounts.test.ts +5 -4
- package/src/tools/tests/inbox.test.ts +3 -2
- package/src/tools/tests/load.test.ts +3 -29
- package/src/tools/tests/request.test.ts +951 -0
- package/src/tools/tests/schemaUnion.test.ts +2 -2
- package/src/tools/tests/subscribe.test.ts +22 -114
- package/src/tools/tests/testing.test.ts +6 -6
- package/src/tools/tests/zod.test-d.ts +27 -0
- package/src/tools/tests/zod.test.ts +50 -45
- package/src/worker/index.ts +0 -1
- package/tsup.config.ts +0 -2
- package/dist/chunk-4CFNXQE7.js.map +0 -1
- package/dist/tools/implementation/zodSchema/runtimeConverters/zodFieldToCoFieldDef.d.ts +0 -12
- package/dist/tools/implementation/zodSchema/runtimeConverters/zodFieldToCoFieldDef.d.ts.map +0 -1
- package/dist/tools/implementation/zodSchema/runtimeConverters/zodSchemaToCoSchema.d.ts +0 -9
- package/dist/tools/implementation/zodSchema/runtimeConverters/zodSchemaToCoSchema.d.ts.map +0 -1
- package/src/tools/implementation/zodSchema/runtimeConverters/zodFieldToCoFieldDef.ts +0 -172
- package/src/tools/implementation/zodSchema/runtimeConverters/zodSchemaToCoSchema.ts +0 -218
@@ -1,7 +1,7 @@
|
|
1
1
|
import { assert, describe, expectTypeOf, test } from "vitest";
|
2
2
|
import { Group, co, z } from "../exports.js";
|
3
3
|
import { Account } from "../index.js";
|
4
|
-
import {
|
4
|
+
import { Loaded } from "../internal.js";
|
5
5
|
|
6
6
|
describe("CoMap", async () => {
|
7
7
|
describe("init", () => {
|
@@ -117,9 +117,10 @@ describe("CoMap", async () => {
|
|
117
117
|
});
|
118
118
|
|
119
119
|
test("CoMap create with partially loaded, reference and optional", () => {
|
120
|
+
const Breed = co.map({ type: z.literal("labrador"), value: z.string() });
|
120
121
|
const Dog = co.map({
|
121
122
|
name: z.string(),
|
122
|
-
breed:
|
123
|
+
breed: Breed,
|
123
124
|
});
|
124
125
|
type Dog = co.loaded<typeof Dog>;
|
125
126
|
|
@@ -131,7 +132,7 @@ describe("CoMap", async () => {
|
|
131
132
|
|
132
133
|
const dog = Dog.create({
|
133
134
|
name: "Rex",
|
134
|
-
breed:
|
135
|
+
breed: Breed.create({
|
135
136
|
type: "labrador",
|
136
137
|
value: "Labrador",
|
137
138
|
}),
|
@@ -158,8 +159,8 @@ describe("CoMap", async () => {
|
|
158
159
|
|
159
160
|
test("Comap with recursive optional reference", () => {
|
160
161
|
const Recursive = co.map({
|
161
|
-
get child()
|
162
|
-
return
|
162
|
+
get child() {
|
163
|
+
return Recursive.optional();
|
163
164
|
},
|
164
165
|
});
|
165
166
|
|
@@ -183,8 +184,7 @@ describe("CoMap", async () => {
|
|
183
184
|
const Person = co.map({
|
184
185
|
name: z.string(),
|
185
186
|
age: z.number(),
|
186
|
-
|
187
|
-
get friend(): z.ZodOptional<typeof Person> {
|
187
|
+
get friend() {
|
188
188
|
return co.optional(Person);
|
189
189
|
},
|
190
190
|
});
|
@@ -243,7 +243,7 @@ describe("CoMap", async () => {
|
|
243
243
|
test("update a reference on a loaded value", () => {
|
244
244
|
const Dog = co.map({
|
245
245
|
name: z.string(),
|
246
|
-
get siblings()
|
246
|
+
get siblings() {
|
247
247
|
return co.list(Dog);
|
248
248
|
},
|
249
249
|
});
|
@@ -12,7 +12,7 @@ import {
|
|
12
12
|
} from "vitest";
|
13
13
|
import { Group, co, subscribeToCoValue, z } from "../exports.js";
|
14
14
|
import { Account } from "../index.js";
|
15
|
-
import { Loaded,
|
15
|
+
import { Loaded, coValueClassFromCoValueClassOrSchema } from "../internal.js";
|
16
16
|
import {
|
17
17
|
createJazzTestAccount,
|
18
18
|
getPeerConnectedToTestSyncServer,
|
@@ -144,7 +144,7 @@ describe("CoMap", async () => {
|
|
144
144
|
name: z.string(),
|
145
145
|
age: z.number(),
|
146
146
|
// TODO: would be nice if this didn't need a type annotation
|
147
|
-
get friend():
|
147
|
+
get friend(): co.Optional<typeof Person> {
|
148
148
|
return co.optional(Person);
|
149
149
|
},
|
150
150
|
});
|
@@ -181,7 +181,7 @@ describe("CoMap", async () => {
|
|
181
181
|
const Person = co.map({
|
182
182
|
name: z.string(),
|
183
183
|
age: z.number(),
|
184
|
-
get friend():
|
184
|
+
get friend(): co.Optional<typeof Person> {
|
185
185
|
return co.optional(Person);
|
186
186
|
},
|
187
187
|
});
|
@@ -210,7 +210,7 @@ describe("CoMap", async () => {
|
|
210
210
|
const Person = co.map({
|
211
211
|
name: z.string(),
|
212
212
|
age: z.number(),
|
213
|
-
get friend():
|
213
|
+
get friend(): co.Optional<typeof Person> {
|
214
214
|
return co.optional(Person);
|
215
215
|
},
|
216
216
|
});
|
@@ -801,7 +801,7 @@ describe("CoMap resolution", async () => {
|
|
801
801
|
const spy = vi.fn((person) => updates.push(person));
|
802
802
|
|
803
803
|
subscribeToCoValue(
|
804
|
-
|
804
|
+
coValueClassFromCoValueClassOrSchema(Person), // TODO: we should get rid of the conversion in the future
|
805
805
|
person.id,
|
806
806
|
{
|
807
807
|
syncResolution: true,
|
@@ -2104,6 +2104,20 @@ describe("CoMap migration", () => {
|
|
2104
2104
|
});
|
2105
2105
|
});
|
2106
2106
|
|
2107
|
+
describe("co.map schema", () => {
|
2108
|
+
test("can access the inner schemas of a co.map", () => {
|
2109
|
+
const Person = co.map({
|
2110
|
+
name: co.plainText(),
|
2111
|
+
});
|
2112
|
+
|
2113
|
+
const person = Person.create({
|
2114
|
+
name: Person.shape["name"].create("John"),
|
2115
|
+
});
|
2116
|
+
|
2117
|
+
expect(person.name.toString()).toEqual("John");
|
2118
|
+
});
|
2119
|
+
});
|
2120
|
+
|
2107
2121
|
describe("Updating a nested reference", () => {
|
2108
2122
|
test("should assign a resolved optional reference and expect value is not null", async () => {
|
2109
2123
|
// Define the schema similar to the server-worker-http example
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { beforeEach, describe, test } from "vitest";
|
1
|
+
import { beforeEach, describe, expect, test } from "vitest";
|
2
2
|
import { CoPlainText, co, z } from "../exports.js";
|
3
3
|
import { createJazzTestAccount, setupJazzTestSync } from "../testing.js";
|
4
4
|
|
@@ -36,4 +36,66 @@ describe("co.optional", () => {
|
|
36
36
|
preferredName: co.optional(z.string()),
|
37
37
|
});
|
38
38
|
});
|
39
|
+
|
40
|
+
test("can use schem.optional() on all CoValue schemas but co.optional()", () => {
|
41
|
+
const Option1 = co.map({ type: z.literal("1") });
|
42
|
+
const Option2 = co.map({ type: z.literal("2") });
|
43
|
+
const Schema = co.map({
|
44
|
+
plainText: co.plainText().optional(),
|
45
|
+
richText: co.richText().optional(),
|
46
|
+
fileStream: co.fileStream().optional(),
|
47
|
+
image: co.image().optional(),
|
48
|
+
record: co.record(z.string(), z.string()).optional(),
|
49
|
+
map: co.map({ field: z.string() }).optional(),
|
50
|
+
list: co.list(z.string()).optional(),
|
51
|
+
feed: co.feed(z.string()).optional(),
|
52
|
+
union: co.discriminatedUnion("type", [Option1, Option2]).optional(),
|
53
|
+
});
|
54
|
+
|
55
|
+
const schema = Schema.create({});
|
56
|
+
|
57
|
+
expect(schema.plainText).toBeUndefined();
|
58
|
+
expect(schema.richText).toBeUndefined();
|
59
|
+
expect(schema.fileStream).toBeUndefined();
|
60
|
+
expect(schema.image).toBeUndefined();
|
61
|
+
expect(schema.record).toBeUndefined();
|
62
|
+
expect(schema.map).toBeUndefined();
|
63
|
+
expect(schema.list).toBeUndefined();
|
64
|
+
expect(schema.feed).toBeUndefined();
|
65
|
+
expect(schema.union).toBeUndefined();
|
66
|
+
|
67
|
+
schema.plainText = Schema.shape.plainText.innerType.create("Hello");
|
68
|
+
schema.richText = Schema.shape.richText.innerType.create("Hello");
|
69
|
+
schema.fileStream = Schema.shape.fileStream.innerType.create();
|
70
|
+
schema.image = Schema.shape.image.innerType.create({
|
71
|
+
originalSize: [1920, 1080],
|
72
|
+
});
|
73
|
+
schema.record = Schema.shape.record.innerType.create({ field: "hello" });
|
74
|
+
schema.map = Schema.shape.map.innerType.create({ field: "hello" });
|
75
|
+
schema.list = Schema.shape.list.innerType.create([]);
|
76
|
+
schema.feed = Schema.shape.feed.innerType.create([]);
|
77
|
+
schema.union = Option1.create({ type: "1" });
|
78
|
+
|
79
|
+
expect(schema.plainText?.toString()).toEqual("Hello");
|
80
|
+
expect(schema.richText?.toString()).toEqual("Hello");
|
81
|
+
expect(schema.fileStream).not.toBeUndefined();
|
82
|
+
expect(schema.image?.originalSize).toEqual([1920, 1080]);
|
83
|
+
expect(schema.record?.field).toEqual("hello");
|
84
|
+
expect(schema.map?.field).toEqual("hello");
|
85
|
+
expect(schema.list).toEqual([]);
|
86
|
+
expect(schema.feed).not.toBeUndefined();
|
87
|
+
expect(schema.union?.type).toEqual("1");
|
88
|
+
});
|
89
|
+
|
90
|
+
test("can access the inner schema of a co.optional", () => {
|
91
|
+
const Person = co.map({
|
92
|
+
preferredName: co.optional(co.plainText()),
|
93
|
+
});
|
94
|
+
|
95
|
+
const person = Person.create({
|
96
|
+
preferredName: Person.shape["preferredName"].innerType.create("John"),
|
97
|
+
});
|
98
|
+
|
99
|
+
expect(person?.preferredName?.toString()).toEqual("John");
|
100
|
+
});
|
39
101
|
});
|
@@ -9,15 +9,13 @@ import {
|
|
9
9
|
ID,
|
10
10
|
InMemoryKVStore,
|
11
11
|
KvStoreContext,
|
12
|
-
anySchemaToCoSchema,
|
13
12
|
co,
|
13
|
+
coValueClassFromCoValueClassOrSchema,
|
14
14
|
createAnonymousJazzContext,
|
15
15
|
createJazzContext,
|
16
16
|
createJazzContextForNewAccount,
|
17
17
|
createJazzContextFromExistingCredentials,
|
18
18
|
randomSessionProvider,
|
19
|
-
z,
|
20
|
-
zodSchemaToCoSchema,
|
21
19
|
} from "../exports";
|
22
20
|
import { activeAccountContext } from "../implementation/activeAccountContext";
|
23
21
|
import {
|
@@ -86,12 +84,12 @@ describe("createContext methods", () => {
|
|
86
84
|
credentials,
|
87
85
|
peersToLoadFrom: [getPeerConnectedToTestSyncServer()],
|
88
86
|
crypto: Crypto,
|
89
|
-
AccountSchema:
|
87
|
+
AccountSchema: CustomAccount,
|
90
88
|
sessionProvider: randomSessionProvider,
|
91
89
|
});
|
92
90
|
|
93
91
|
expect(context.account).toBeInstanceOf(
|
94
|
-
|
92
|
+
coValueClassFromCoValueClassOrSchema(CustomAccount),
|
95
93
|
);
|
96
94
|
});
|
97
95
|
|
@@ -196,11 +194,11 @@ describe("createContext methods", () => {
|
|
196
194
|
creationProps: { name: "New User" },
|
197
195
|
peersToLoadFrom: [],
|
198
196
|
crypto: Crypto,
|
199
|
-
AccountSchema:
|
197
|
+
AccountSchema: CustomAccount,
|
200
198
|
});
|
201
199
|
|
202
200
|
expect(context.account).toBeInstanceOf(
|
203
|
-
|
201
|
+
coValueClassFromCoValueClassOrSchema(CustomAccount),
|
204
202
|
);
|
205
203
|
});
|
206
204
|
|
@@ -347,11 +345,11 @@ describe("createContext methods", () => {
|
|
347
345
|
crypto: Crypto,
|
348
346
|
authSecretStorage,
|
349
347
|
sessionProvider: randomSessionProvider,
|
350
|
-
AccountSchema:
|
348
|
+
AccountSchema: CustomAccount,
|
351
349
|
});
|
352
350
|
|
353
351
|
expect(context.account).toBeInstanceOf(
|
354
|
-
|
352
|
+
coValueClassFromCoValueClassOrSchema(CustomAccount),
|
355
353
|
);
|
356
354
|
});
|
357
355
|
});
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { cojsonInternals } from "cojson";
|
2
2
|
import { WasmCrypto } from "cojson/crypto/WasmCrypto";
|
3
3
|
import { assert, describe, expect, expectTypeOf, test, vi } from "vitest";
|
4
4
|
import {
|
@@ -9,13 +9,7 @@ import {
|
|
9
9
|
isControlledAccount,
|
10
10
|
z,
|
11
11
|
} from "../index.js";
|
12
|
-
import {
|
13
|
-
Account,
|
14
|
-
CoListSchema,
|
15
|
-
Loaded,
|
16
|
-
co,
|
17
|
-
randomSessionProvider,
|
18
|
-
} from "../internal.js";
|
12
|
+
import { Account, Loaded, co, randomSessionProvider } from "../internal.js";
|
19
13
|
import { createJazzTestAccount, linkAccounts } from "../testing.js";
|
20
14
|
import { waitFor } from "./utils.js";
|
21
15
|
|
@@ -794,11 +788,11 @@ describe("Deep loading with unauthorized account", async () => {
|
|
794
788
|
test("unaccessible list element with $onError and $each with depth", async () => {
|
795
789
|
const Person = co.map({
|
796
790
|
name: z.string(),
|
797
|
-
get friends():
|
791
|
+
get friends(): co.Optional<typeof Friends> {
|
798
792
|
return co.optional(Friends);
|
799
793
|
},
|
800
794
|
});
|
801
|
-
const Friends:
|
795
|
+
const Friends: co.List<typeof Person> = co.list(Person); // TODO: annoying that we have to annotate
|
802
796
|
|
803
797
|
const list = Friends.create(
|
804
798
|
[
|