jazz-tools 0.17.14 → 0.18.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.js +1 -1
- package/.svelte-kit/__package__/media/image.svelte +3 -9
- package/.svelte-kit/__package__/media/image.svelte.d.ts +1 -6
- package/.svelte-kit/__package__/media/image.svelte.d.ts.map +1 -1
- package/.svelte-kit/__package__/media/image.types.d.ts +7 -0
- package/.svelte-kit/__package__/media/image.types.d.ts.map +1 -0
- package/.svelte-kit/__package__/media/image.types.js +1 -0
- package/.svelte-kit/__package__/tests/media/image.svelte.test.js +31 -31
- package/.turbo/turbo-build.log +60 -46
- package/CHANGELOG.md +41 -0
- package/dist/better-auth/auth/client.d.ts +29 -0
- package/dist/better-auth/auth/client.d.ts.map +1 -0
- package/dist/better-auth/auth/client.js +127 -0
- package/dist/better-auth/auth/client.js.map +1 -0
- package/dist/better-auth/auth/react.d.ts +2170 -0
- package/dist/better-auth/auth/react.d.ts.map +1 -0
- package/dist/better-auth/auth/react.js +40 -0
- package/dist/better-auth/auth/react.js.map +1 -0
- package/dist/better-auth/auth/server.d.ts +14 -0
- package/dist/better-auth/auth/server.d.ts.map +1 -0
- package/dist/better-auth/auth/server.js +198 -0
- package/dist/better-auth/auth/server.js.map +1 -0
- package/dist/better-auth/auth/tests/client.test.d.ts +2 -0
- package/dist/better-auth/auth/tests/client.test.d.ts.map +1 -0
- package/dist/better-auth/auth/tests/server.test.d.ts +2 -0
- package/dist/better-auth/auth/tests/server.test.d.ts.map +1 -0
- package/dist/browser/index.js +2 -2
- package/dist/browser/index.js.map +1 -1
- package/dist/{chunk-LZOF6WP5.js → chunk-IERUTUXB.js} +1336 -1017
- package/dist/chunk-IERUTUXB.js.map +1 -0
- package/dist/index.js +18 -18
- package/dist/index.js.map +1 -1
- package/dist/inspector/{custom-element-ZSNTCECD.js → custom-element-WCY6D3QJ.js} +3 -3
- package/dist/inspector/{custom-element-ZSNTCECD.js.map → custom-element-WCY6D3QJ.js.map} +1 -1
- package/dist/inspector/index.js +1 -1
- package/dist/inspector/index.js.map +1 -1
- package/dist/inspector/register-custom-element.js +1 -1
- package/dist/media/{chunk-E5J3WLQW.js → chunk-KR2V6X2N.js} +14 -9
- package/dist/media/chunk-KR2V6X2N.js.map +1 -0
- package/dist/media/create-image.d.ts +6 -6
- package/dist/media/index.browser.d.ts +6 -6
- package/dist/media/index.browser.js +1 -1
- package/dist/media/index.d.ts +1 -1
- package/dist/media/index.js +1 -1
- package/dist/media/index.native.d.ts +6 -6
- package/dist/media/index.native.js +1 -1
- package/dist/media/utils.d.ts.map +1 -1
- package/dist/prosemirror/index.js +2 -2
- package/dist/prosemirror/index.js.map +1 -1
- package/dist/react/index.js +7 -5
- package/dist/react/index.js.map +1 -1
- package/dist/react-core/hooks.d.ts.map +1 -1
- package/dist/react-core/index.js +4675 -23
- package/dist/react-core/index.js.map +1 -1
- package/dist/react-native-core/index.js +1 -1
- package/dist/react-native-core/index.js.map +1 -1
- package/dist/svelte/jazz.class.svelte.js +1 -1
- package/dist/svelte/media/image.svelte +3 -9
- package/dist/svelte/media/image.svelte.d.ts +1 -6
- package/dist/svelte/media/image.svelte.d.ts.map +1 -1
- package/dist/svelte/media/image.types.d.ts +7 -0
- package/dist/svelte/media/image.types.d.ts.map +1 -0
- package/dist/svelte/media/image.types.js +1 -0
- package/dist/svelte/tests/media/image.svelte.test.js +31 -31
- package/dist/testing.js +18 -14
- package/dist/testing.js.map +1 -1
- package/dist/tools/coValues/CoFieldInit.d.ts +13 -0
- package/dist/tools/coValues/CoFieldInit.d.ts.map +1 -0
- package/dist/tools/coValues/CoValueBase.d.ts +18 -15
- package/dist/tools/coValues/CoValueBase.d.ts.map +1 -1
- package/dist/tools/coValues/account.d.ts +101 -46
- package/dist/tools/coValues/account.d.ts.map +1 -1
- package/dist/tools/coValues/coFeed.d.ts +78 -62
- package/dist/tools/coValues/coFeed.d.ts.map +1 -1
- package/dist/tools/coValues/coList.d.ts +212 -99
- package/dist/tools/coValues/coList.d.ts.map +1 -1
- package/dist/tools/coValues/coMap.d.ts +210 -192
- package/dist/tools/coValues/coMap.d.ts.map +1 -1
- package/dist/tools/coValues/coPlainText.d.ts +30 -22
- package/dist/tools/coValues/coPlainText.d.ts.map +1 -1
- package/dist/tools/coValues/deepLoading.d.ts +13 -13
- package/dist/tools/coValues/deepLoading.d.ts.map +1 -1
- package/dist/tools/coValues/extensions/imageDef.d.ts +1 -1
- package/dist/tools/coValues/group.d.ts +32 -32
- 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 +18 -17
- package/dist/tools/coValues/interfaces.d.ts.map +1 -1
- package/dist/tools/coValues/profile.d.ts +6 -5
- package/dist/tools/coValues/profile.d.ts.map +1 -1
- package/dist/tools/coValues/schemaUnion.d.ts +3 -3
- package/dist/tools/coValues/schemaUnion.d.ts.map +1 -1
- package/dist/tools/exports.d.ts +1 -1
- package/dist/tools/exports.d.ts.map +1 -1
- package/dist/tools/implementation/anonymousJazzAgent.d.ts +2 -1
- package/dist/tools/implementation/anonymousJazzAgent.d.ts.map +1 -1
- package/dist/tools/implementation/schema.d.ts +5 -5
- package/dist/tools/implementation/schema.d.ts.map +1 -1
- package/dist/tools/implementation/symbols.d.ts +2 -0
- package/dist/tools/implementation/symbols.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts +2 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts +6 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts +8 -3
- package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts +12 -7
- package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts +13 -7
- package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts +11 -2
- package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts +4 -0
- package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts +4 -0
- package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/{CoFieldInit.d.ts → CoFieldSchemaInit.d.ts} +7 -7
- package/dist/tools/implementation/zodSchema/typeConverters/CoFieldSchemaInit.d.ts.map +1 -0
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts +4 -4
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts +4 -4
- package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts.map +1 -1
- package/dist/tools/implementation/zodSchema/zodCo.d.ts +3 -3
- package/dist/tools/implementation/zodSchema/zodCo.d.ts.map +1 -1
- package/dist/tools/internal.d.ts +2 -1
- package/dist/tools/internal.d.ts.map +1 -1
- package/dist/tools/lib/migration.d.ts +1 -1
- package/dist/tools/lib/migration.d.ts.map +1 -1
- package/dist/tools/subscribe/SubscriptionScope.d.ts.map +1 -1
- package/dist/tools/subscribe/index.d.ts +1 -1
- package/dist/tools/subscribe/index.d.ts.map +1 -1
- package/dist/tools/subscribe/utils.d.ts +2 -2
- package/dist/tools/subscribe/utils.d.ts.map +1 -1
- package/dist/tools/testing.d.ts.map +1 -1
- package/dist/tools/tests/utils.d.ts +2 -6
- package/dist/tools/tests/utils.d.ts.map +1 -1
- package/dist/worker/index.js +3 -3
- package/dist/worker/index.js.map +1 -1
- package/package.json +23 -4
- package/src/better-auth/auth/client.ts +169 -0
- package/src/better-auth/auth/react.tsx +105 -0
- package/src/better-auth/auth/server.ts +250 -0
- package/src/better-auth/auth/tests/client.test.ts +249 -0
- package/src/better-auth/auth/tests/server.test.ts +226 -0
- package/src/browser/auth/PasskeyAuth.ts +2 -2
- package/src/browser/createBrowserContext.ts +2 -2
- package/src/browser/tests/PasskeyAuth.test.ts +2 -2
- package/src/inspector/custom-element.tsx +2 -2
- package/src/inspector/viewer/new-app.tsx +1 -1
- package/src/media/create-image.test.ts +7 -7
- package/src/media/create-image.ts +5 -3
- package/src/media/index.ts +1 -1
- package/src/media/utils.test.ts +72 -66
- package/src/media/utils.ts +9 -6
- package/src/prosemirror/lib/plugin.ts +1 -1
- package/src/prosemirror/lib/sync.ts +1 -1
- package/src/prosemirror/tests/plugin.test.ts +4 -4
- package/src/react/media/image.tsx +2 -2
- package/src/react/tests/media/image.test.tsx +52 -32
- package/src/react-core/hooks.ts +11 -5
- package/src/react-core/tests/useAccount.test.ts +16 -22
- package/src/react-core/tests/useCoState.test.ts +19 -19
- package/src/react-core/tests/useInboxSender.test.ts +5 -2
- package/src/react-core/tests/usePassPhraseAuth.test.ts +6 -6
- package/src/react-native-core/media/image.tsx +1 -1
- package/src/svelte/jazz.class.svelte.ts +1 -1
- package/src/svelte/media/image.svelte +3 -9
- package/src/svelte/media/image.types.ts +7 -0
- package/src/svelte/tests/media/image.svelte.test.ts +34 -32
- package/src/tools/auth/DemoAuth.ts +2 -2
- package/src/tools/auth/PassphraseAuth.ts +2 -2
- package/src/tools/auth/clerk/index.ts +2 -2
- package/src/tools/auth/clerk/tests/JazzClerkAuth.test.ts +1 -1
- package/src/tools/coValues/CoFieldInit.ts +20 -0
- package/src/tools/coValues/CoValueBase.ts +40 -60
- package/src/tools/coValues/account.ts +311 -232
- package/src/tools/coValues/coFeed.ts +185 -153
- package/src/tools/coValues/coList.ts +507 -334
- package/src/tools/coValues/coMap.ts +434 -286
- package/src/tools/coValues/coPlainText.ts +94 -110
- package/src/tools/coValues/deepLoading.ts +13 -13
- package/src/tools/coValues/group.ts +100 -114
- package/src/tools/coValues/inbox.ts +16 -14
- package/src/tools/coValues/interfaces.ts +49 -31
- package/src/tools/coValues/profile.ts +8 -6
- package/src/tools/coValues/request.ts +9 -9
- package/src/tools/coValues/schemaUnion.ts +11 -5
- package/src/tools/exports.ts +1 -1
- package/src/tools/implementation/ContextManager.ts +4 -4
- package/src/tools/implementation/anonymousJazzAgent.ts +2 -1
- package/src/tools/implementation/createContext.ts +1 -1
- package/src/tools/implementation/devtoolsFormatters.ts +9 -9
- package/src/tools/implementation/invites.ts +2 -2
- package/src/tools/implementation/schema.ts +7 -7
- package/src/tools/implementation/symbols.ts +3 -0
- package/src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts +2 -2
- package/src/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.ts +11 -2
- package/src/tools/implementation/zodSchema/schemaTypes/CoListSchema.ts +18 -7
- package/src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts +17 -7
- package/src/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.ts +20 -11
- package/src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts +19 -2
- package/src/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.ts +6 -0
- package/src/tools/implementation/zodSchema/schemaTypes/RichTextSchema.ts +6 -0
- package/src/tools/implementation/zodSchema/typeConverters/{CoFieldInit.ts → CoFieldSchemaInit.ts} +11 -11
- package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.ts +4 -4
- package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.ts +4 -4
- package/src/tools/implementation/zodSchema/zodCo.ts +3 -3
- package/src/tools/internal.ts +2 -1
- package/src/tools/lib/migration.ts +5 -5
- package/src/tools/subscribe/SubscriptionScope.ts +32 -24
- package/src/tools/subscribe/index.ts +4 -4
- package/src/tools/subscribe/utils.ts +11 -11
- package/src/tools/testing.ts +17 -13
- package/src/tools/tests/ContextManager.test.ts +70 -59
- package/src/tools/tests/PassphraseAuth.test.ts +2 -2
- package/src/tools/tests/account.test.ts +188 -67
- package/src/tools/tests/coDiscriminatedUnion.test-d.ts +12 -6
- package/src/tools/tests/coDiscriminatedUnion.test.ts +26 -17
- package/src/tools/tests/coFeed.test-d.ts +18 -17
- package/src/tools/tests/coFeed.test.ts +108 -97
- package/src/tools/tests/coList.test-d.ts +18 -23
- package/src/tools/tests/coList.test.ts +350 -165
- package/src/tools/tests/coMap.record.test-d.ts +9 -13
- package/src/tools/tests/coMap.record.test.ts +37 -23
- package/src/tools/tests/coMap.test-d.ts +43 -21
- package/src/tools/tests/coMap.test.ts +459 -182
- package/src/tools/tests/coOptional.test.ts +28 -13
- package/src/tools/tests/coPlainText.test.ts +15 -15
- package/src/tools/tests/createContext.test.ts +14 -14
- package/src/tools/tests/deepLoading.test.ts +95 -94
- package/src/tools/tests/exportImport.test.ts +61 -41
- package/src/tools/tests/groupsAndAccounts.test.ts +333 -116
- package/src/tools/tests/inbox.test.ts +22 -17
- package/src/tools/tests/interfaces.test.ts +12 -11
- package/src/tools/tests/invites.test.ts +6 -4
- package/src/tools/tests/load.test.ts +20 -18
- package/src/tools/tests/patterns/notifications.test.ts +7 -7
- package/src/tools/tests/patterns/quest.test.ts +3 -3
- package/src/tools/tests/patterns/requestToJoin.test.ts +22 -22
- package/src/tools/tests/request.test.ts +38 -39
- package/src/tools/tests/schemaUnion.test.ts +64 -10
- package/src/tools/tests/subscribe.test.ts +64 -64
- package/src/tools/tests/testing.test.ts +7 -11
- package/src/tools/tests/utils.ts +3 -3
- package/src/tools/tests/zod.test.ts +3 -3
- package/src/worker/index.ts +3 -3
- package/tsup.config.ts +9 -0
- package/dist/chunk-LZOF6WP5.js.map +0 -1
- package/dist/media/chunk-E5J3WLQW.js.map +0 -1
- package/dist/tools/implementation/zodSchema/typeConverters/CoFieldInit.d.ts.map +0 -1
@@ -23,7 +23,7 @@ async function setupAccounts() {
|
|
23
23
|
const me = await createJazzTestAccount();
|
24
24
|
const worker = await createJazzTestAccount();
|
25
25
|
|
26
|
-
const workerPieces = await exportCoValue(Account, worker.id, {
|
26
|
+
const workerPieces = await exportCoValue(Account, worker.$jazz.id, {
|
27
27
|
loadAs: worker,
|
28
28
|
});
|
29
29
|
|
@@ -42,7 +42,7 @@ describe("experimental_defineRequest", () => {
|
|
42
42
|
|
43
43
|
const userRequest = experimental_defineRequest({
|
44
44
|
url: "https://api.example.com/api/user",
|
45
|
-
workerId: worker.id,
|
45
|
+
workerId: worker.$jazz.id,
|
46
46
|
request: {
|
47
47
|
name: z.string(),
|
48
48
|
email: z.string(),
|
@@ -56,7 +56,7 @@ describe("experimental_defineRequest", () => {
|
|
56
56
|
|
57
57
|
let receivedUser: unknown;
|
58
58
|
let receivedMadeBy: unknown;
|
59
|
-
let requestOwner:
|
59
|
+
let requestOwner: Group;
|
60
60
|
|
61
61
|
server.use(
|
62
62
|
http.post("https://api.example.com/api/user", async ({ request }) => {
|
@@ -66,8 +66,8 @@ describe("experimental_defineRequest", () => {
|
|
66
66
|
worker,
|
67
67
|
async (user, madeBy) => {
|
68
68
|
receivedUser = user.toJSON();
|
69
|
-
requestOwner = user.
|
70
|
-
receivedMadeBy = madeBy.id;
|
69
|
+
requestOwner = user.$jazz.owner;
|
70
|
+
receivedMadeBy = madeBy.$jazz.id;
|
71
71
|
|
72
72
|
// Return a plain object (CoMapInit) instead of a CoMap instance
|
73
73
|
return {
|
@@ -99,26 +99,27 @@ describe("experimental_defineRequest", () => {
|
|
99
99
|
"https://example.com/avatars/john@example.com.jpg",
|
100
100
|
);
|
101
101
|
|
102
|
-
expect(
|
103
|
-
[
|
104
|
-
|
102
|
+
expect(
|
103
|
+
requestOwner!.members.map((m) => [m.account.$jazz.id, m.role]),
|
104
|
+
).toEqual([
|
105
|
+
[me.$jazz.id, "admin"],
|
106
|
+
[worker.$jazz.id, "writer"],
|
105
107
|
]);
|
106
108
|
|
107
109
|
expect(
|
108
|
-
response.
|
110
|
+
response.$jazz.owner.members.map((m) => [m.account.$jazz.id, m.role]),
|
109
111
|
).toEqual([
|
110
|
-
[worker.id, "admin"],
|
111
|
-
[me.id, "reader"],
|
112
|
+
[worker.$jazz.id, "admin"],
|
113
|
+
[me.$jazz.id, "reader"],
|
112
114
|
]);
|
113
115
|
|
114
116
|
// Verify the server received the correct data
|
115
117
|
expect(receivedUser).toMatchObject({
|
116
|
-
_type: "CoMap",
|
117
118
|
name: "John Doe",
|
118
119
|
email: "john@example.com",
|
119
120
|
age: 30,
|
120
121
|
});
|
121
|
-
expect(receivedMadeBy).toEqual(me.id);
|
122
|
+
expect(receivedMadeBy).toEqual(me.$jazz.id);
|
122
123
|
});
|
123
124
|
|
124
125
|
it("should push the response content directly to the client", async () => {
|
@@ -139,7 +140,7 @@ describe("experimental_defineRequest", () => {
|
|
139
140
|
|
140
141
|
const userRequest = experimental_defineRequest({
|
141
142
|
url: "https://api.example.com/api/user",
|
142
|
-
workerId: worker.id,
|
143
|
+
workerId: worker.$jazz.id,
|
143
144
|
request: {
|
144
145
|
name: z.string(),
|
145
146
|
email: z.string(),
|
@@ -248,7 +249,7 @@ describe("experimental_defineRequest", () => {
|
|
248
249
|
|
249
250
|
const personRequest = experimental_defineRequest({
|
250
251
|
url: "https://api.example.com/api/person",
|
251
|
-
workerId: worker.id,
|
252
|
+
workerId: worker.$jazz.id,
|
252
253
|
request: {
|
253
254
|
schema: {
|
254
255
|
person: Person,
|
@@ -269,9 +270,7 @@ describe("experimental_defineRequest", () => {
|
|
269
270
|
request,
|
270
271
|
worker,
|
271
272
|
async ({ person }, madeBy) => {
|
272
|
-
person.address.street.
|
273
|
-
.castAs(Group)
|
274
|
-
.addMember(madeBy, "reader");
|
273
|
+
person.address.street.$jazz.owner.addMember(madeBy, "reader");
|
275
274
|
|
276
275
|
// The request should handle the error gracefully when trying to resolve
|
277
276
|
// child covalues that the worker doesn't have access to
|
@@ -299,7 +298,7 @@ describe("experimental_defineRequest", () => {
|
|
299
298
|
|
300
299
|
const userRequest = experimental_defineRequest({
|
301
300
|
url: "https://api.example.com/api/user",
|
302
|
-
workerId: worker.id,
|
301
|
+
workerId: worker.$jazz.id,
|
303
302
|
request: {
|
304
303
|
name: z.string(),
|
305
304
|
email: z.string(),
|
@@ -319,7 +318,7 @@ describe("experimental_defineRequest", () => {
|
|
319
318
|
worker,
|
320
319
|
async (user, madeBy) => {
|
321
320
|
receivedUser = user.toJSON();
|
322
|
-
receivedMadeBy = madeBy.id;
|
321
|
+
receivedMadeBy = madeBy.$jazz.id;
|
323
322
|
},
|
324
323
|
);
|
325
324
|
} catch (error) {
|
@@ -341,12 +340,11 @@ describe("experimental_defineRequest", () => {
|
|
341
340
|
|
342
341
|
// Verify the server received the correct data
|
343
342
|
expect(receivedUser).toMatchObject({
|
344
|
-
_type: "CoMap",
|
345
343
|
name: "John Doe",
|
346
344
|
email: "john@example.com",
|
347
345
|
age: 30,
|
348
346
|
});
|
349
|
-
expect(receivedMadeBy).toEqual(me.id);
|
347
|
+
expect(receivedMadeBy).toEqual(me.$jazz.id);
|
350
348
|
});
|
351
349
|
|
352
350
|
it("should accept group as workerId", async () => {
|
@@ -359,7 +357,7 @@ describe("experimental_defineRequest", () => {
|
|
359
357
|
|
360
358
|
const userRequest = experimental_defineRequest({
|
361
359
|
url: "https://api.example.com/api/user",
|
362
|
-
workerId: workerGroup.id, // Use group ID instead of account ID
|
360
|
+
workerId: workerGroup.$jazz.id, // Use group ID instead of account ID
|
363
361
|
request: {
|
364
362
|
name: z.string(),
|
365
363
|
email: z.string(),
|
@@ -382,7 +380,7 @@ describe("experimental_defineRequest", () => {
|
|
382
380
|
worker, // The worker account handles the request
|
383
381
|
async (user, madeBy) => {
|
384
382
|
receivedUser = user.toJSON();
|
385
|
-
receivedMadeBy = madeBy.id;
|
383
|
+
receivedMadeBy = madeBy.$jazz.id;
|
386
384
|
|
387
385
|
return {
|
388
386
|
bio: `Profile for ${user.name}`,
|
@@ -414,19 +412,20 @@ describe("experimental_defineRequest", () => {
|
|
414
412
|
);
|
415
413
|
|
416
414
|
// Verify the response owner structure - should include the worker account
|
417
|
-
expect(
|
418
|
-
[
|
419
|
-
|
415
|
+
expect(
|
416
|
+
response.$jazz.owner.members.map((m) => [m.account.$jazz.id, m.role]),
|
417
|
+
).toEqual([
|
418
|
+
[worker.$jazz.id, "admin"],
|
419
|
+
[me.$jazz.id, "reader"],
|
420
420
|
]);
|
421
421
|
|
422
422
|
// Verify the server received the correct data
|
423
423
|
expect(receivedUser).toMatchObject({
|
424
|
-
_type: "CoMap",
|
425
424
|
name: "John Doe",
|
426
425
|
email: "john@example.com",
|
427
426
|
age: 30,
|
428
427
|
});
|
429
|
-
expect(receivedMadeBy).toEqual(me.id);
|
428
|
+
expect(receivedMadeBy).toEqual(me.$jazz.id);
|
430
429
|
});
|
431
430
|
});
|
432
431
|
|
@@ -437,7 +436,7 @@ describe("JazzRequestError handling", () => {
|
|
437
436
|
|
438
437
|
const userRequest = experimental_defineRequest({
|
439
438
|
url: "https://api.example.com/api/user",
|
440
|
-
workerId: worker.id,
|
439
|
+
workerId: worker.$jazz.id,
|
441
440
|
request: {
|
442
441
|
name: z.string(),
|
443
442
|
email: z.string(),
|
@@ -497,7 +496,7 @@ describe("JazzRequestError handling", () => {
|
|
497
496
|
|
498
497
|
const userRequest = experimental_defineRequest({
|
499
498
|
url: "https://api.example.com/api/user",
|
500
|
-
workerId: worker.id,
|
499
|
+
workerId: worker.$jazz.id,
|
501
500
|
request: {
|
502
501
|
name: z.string(),
|
503
502
|
email: z.string(),
|
@@ -547,7 +546,7 @@ describe("JazzRequestError handling", () => {
|
|
547
546
|
|
548
547
|
const userRequest = experimental_defineRequest({
|
549
548
|
url: "https://api.example.com/api/user",
|
550
|
-
workerId: worker.id,
|
549
|
+
workerId: worker.$jazz.id,
|
551
550
|
request: {
|
552
551
|
name: z.string(),
|
553
552
|
email: z.string(),
|
@@ -595,7 +594,7 @@ describe("JazzRequestError handling", () => {
|
|
595
594
|
|
596
595
|
const userRequest = experimental_defineRequest({
|
597
596
|
url: "https://api.example.com/api/user",
|
598
|
-
workerId: worker.id,
|
597
|
+
workerId: worker.$jazz.id,
|
599
598
|
request: {
|
600
599
|
name: z.string(),
|
601
600
|
email: z.string(),
|
@@ -643,7 +642,7 @@ describe("JazzRequestError handling", () => {
|
|
643
642
|
|
644
643
|
const userRequest = experimental_defineRequest({
|
645
644
|
url: "https://api.example.com/api/user",
|
646
|
-
workerId: worker.id,
|
645
|
+
workerId: worker.$jazz.id,
|
647
646
|
request: {
|
648
647
|
name: z.string(),
|
649
648
|
email: z.string(),
|
@@ -695,7 +694,7 @@ describe("JazzRequestError handling", () => {
|
|
695
694
|
|
696
695
|
const userRequest = experimental_defineRequest({
|
697
696
|
url: "https://api.example.com/api/user",
|
698
|
-
workerId: worker.id,
|
697
|
+
workerId: worker.$jazz.id,
|
699
698
|
request: {
|
700
699
|
schema: {
|
701
700
|
user: User,
|
@@ -751,7 +750,7 @@ describe("JazzRequestError handling", () => {
|
|
751
750
|
|
752
751
|
const userRequest = experimental_defineRequest({
|
753
752
|
url: "https://api.example.com/api/user",
|
754
|
-
workerId: worker.id,
|
753
|
+
workerId: worker.$jazz.id,
|
755
754
|
request: {
|
756
755
|
schema: {
|
757
756
|
user: User,
|
@@ -807,7 +806,7 @@ describe("JazzRequestError handling", () => {
|
|
807
806
|
|
808
807
|
const userRequest = experimental_defineRequest({
|
809
808
|
url: "https://api.example.com/api/user",
|
810
|
-
workerId: worker.id,
|
809
|
+
workerId: worker.$jazz.id,
|
811
810
|
request: {
|
812
811
|
name: z.string(),
|
813
812
|
email: z.string(),
|
@@ -845,7 +844,7 @@ describe("JazzRequestError handling", () => {
|
|
845
844
|
|
846
845
|
const userRequest = experimental_defineRequest({
|
847
846
|
url: "https://api.example.com/api/user",
|
848
|
-
workerId: worker.id,
|
847
|
+
workerId: worker.$jazz.id,
|
849
848
|
request: {
|
850
849
|
name: z.string(),
|
851
850
|
email: z.string(),
|
@@ -877,7 +876,7 @@ describe("JazzRequestError handling", () => {
|
|
877
876
|
|
878
877
|
const userRequest = experimental_defineRequest({
|
879
878
|
url: "https://api.example.com/api/user",
|
880
|
-
workerId: worker.id,
|
879
|
+
workerId: worker.$jazz.id,
|
881
880
|
request: {
|
882
881
|
name: z.string(),
|
883
882
|
email: z.string(),
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { WasmCrypto } from "cojson/crypto/WasmCrypto";
|
2
|
-
import { assert, beforeAll, describe, expect, it } from "vitest";
|
2
|
+
import { assert, beforeAll, beforeEach, describe, expect, it } from "vitest";
|
3
3
|
import {
|
4
4
|
Account,
|
5
5
|
CryptoProvider,
|
@@ -9,11 +9,13 @@ import {
|
|
9
9
|
subscribeToCoValue,
|
10
10
|
z,
|
11
11
|
} from "../exports.js";
|
12
|
+
import { createJazzTestAccount } from "../testing.js";
|
12
13
|
|
13
14
|
const RedButtonWidget = co.map({
|
14
15
|
type: z.literal("button"),
|
15
16
|
color: z.literal("red"),
|
16
17
|
label: z.string(),
|
18
|
+
disabled: z.boolean().optional(),
|
17
19
|
});
|
18
20
|
|
19
21
|
const BlueButtonWidget = co.map({
|
@@ -21,6 +23,7 @@ const BlueButtonWidget = co.map({
|
|
21
23
|
color: z.literal("blue"),
|
22
24
|
label: z.string(),
|
23
25
|
blueness: z.number(),
|
26
|
+
disabled: z.boolean().optional(),
|
24
27
|
});
|
25
28
|
|
26
29
|
const ButtonWidget = co.discriminatedUnion("type", [
|
@@ -51,9 +54,9 @@ describe("SchemaUnion", () => {
|
|
51
54
|
|
52
55
|
beforeAll(async () => {
|
53
56
|
Crypto = await WasmCrypto.create();
|
54
|
-
me = await
|
57
|
+
me = await createJazzTestAccount({
|
58
|
+
isCurrentActiveAccount: true,
|
55
59
|
creationProps: { name: "Hermes Puggington" },
|
56
|
-
crypto: Crypto,
|
57
60
|
});
|
58
61
|
});
|
59
62
|
|
@@ -71,15 +74,18 @@ describe("SchemaUnion", () => {
|
|
71
74
|
{ owner: me },
|
72
75
|
);
|
73
76
|
|
74
|
-
const loadedButtonWidget = await WidgetUnion.load(buttonWidget.id, {
|
77
|
+
const loadedButtonWidget = await WidgetUnion.load(buttonWidget.$jazz.id, {
|
75
78
|
loadAs: me,
|
76
79
|
});
|
77
|
-
const loadedSliderWidget = await WidgetUnion.load(sliderWidget.id, {
|
78
|
-
loadAs: me,
|
79
|
-
});
|
80
|
-
const loadedCheckboxWidget = await WidgetUnion.load(checkboxWidget.id, {
|
80
|
+
const loadedSliderWidget = await WidgetUnion.load(sliderWidget.$jazz.id, {
|
81
81
|
loadAs: me,
|
82
82
|
});
|
83
|
+
const loadedCheckboxWidget = await WidgetUnion.load(
|
84
|
+
checkboxWidget.$jazz.id,
|
85
|
+
{
|
86
|
+
loadAs: me,
|
87
|
+
},
|
88
|
+
);
|
83
89
|
|
84
90
|
expect(loadedButtonWidget?.type).toBe("button");
|
85
91
|
expect(loadedSliderWidget?.type).toBe("slider");
|
@@ -94,7 +100,7 @@ describe("SchemaUnion", () => {
|
|
94
100
|
let currentValue = "Submit";
|
95
101
|
const unsubscribe = subscribeToCoValue(
|
96
102
|
coValueClassFromCoValueClassOrSchema(WidgetUnion),
|
97
|
-
buttonWidget.id,
|
103
|
+
buttonWidget.$jazz.id,
|
98
104
|
{ loadAs: me, syncResolution: true },
|
99
105
|
(value: Loaded<typeof WidgetUnion>) => {
|
100
106
|
if (value.type === "button") {
|
@@ -107,7 +113,55 @@ describe("SchemaUnion", () => {
|
|
107
113
|
},
|
108
114
|
);
|
109
115
|
currentValue = "Changed";
|
110
|
-
buttonWidget.label
|
116
|
+
buttonWidget.$jazz.set("label", "Changed");
|
111
117
|
unsubscribe();
|
112
118
|
});
|
119
|
+
|
120
|
+
describe("methods available on all members of the union type are available on the union", () => {
|
121
|
+
const Buttons = co.list(ButtonWidget);
|
122
|
+
let buttons: ReturnType<typeof Buttons.create>;
|
123
|
+
|
124
|
+
beforeEach(() => {
|
125
|
+
buttons = Buttons.create([
|
126
|
+
{
|
127
|
+
type: "button",
|
128
|
+
color: "red",
|
129
|
+
label: "Delete",
|
130
|
+
disabled: true,
|
131
|
+
},
|
132
|
+
]);
|
133
|
+
});
|
134
|
+
|
135
|
+
it("$jazz.applyDiff", () => {
|
136
|
+
assert(buttons[0]);
|
137
|
+
buttons[0].$jazz.applyDiff({ label: "Remove" });
|
138
|
+
expect(buttons[0].label).toBe("Remove");
|
139
|
+
});
|
140
|
+
|
141
|
+
it("$jazz.delete", () => {
|
142
|
+
assert(buttons[0]);
|
143
|
+
|
144
|
+
buttons[0].$jazz.delete("disabled");
|
145
|
+
|
146
|
+
expect(buttons[0].disabled).toBeUndefined();
|
147
|
+
});
|
148
|
+
});
|
149
|
+
|
150
|
+
describe("methods with constrained type parameters are not available on the union", () => {
|
151
|
+
it("$jazz.set", () => {
|
152
|
+
const Buttons = co.list(ButtonWidget);
|
153
|
+
const buttons = Buttons.create([
|
154
|
+
{
|
155
|
+
type: "button",
|
156
|
+
color: "red",
|
157
|
+
label: "Delete",
|
158
|
+
},
|
159
|
+
]);
|
160
|
+
|
161
|
+
assert(buttons[0]);
|
162
|
+
// @ts-expect-error Typescript does not allow calling the union of methods with constrained type parameters
|
163
|
+
buttons[0].$jazz.set("label", "Remove");
|
164
|
+
expect(buttons[0].label).toBe("Remove");
|
165
|
+
});
|
166
|
+
});
|
113
167
|
});
|