jazz-tools 0.16.4 → 0.16.5

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/dist/index.js CHANGED
@@ -36,7 +36,7 @@ import {
36
36
  randomSessionProvider,
37
37
  subscribeToCoValue,
38
38
  zodReExport_exports
39
- } from "./chunk-74LZG2M3.js";
39
+ } from "./chunk-H3BIFFQG.js";
40
40
 
41
41
  // src/tools/auth/clerk/index.ts
42
42
  import {
package/dist/testing.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  createAnonymousJazzContext,
7
7
  createJazzContext,
8
8
  randomSessionProvider
9
- } from "./chunk-74LZG2M3.js";
9
+ } from "./chunk-H3BIFFQG.js";
10
10
 
11
11
  // src/tools/testing.ts
12
12
  import { LocalNode } from "cojson";
@@ -36,12 +36,12 @@ export declare class Group extends CoValueBase implements CoValue {
36
36
  */
37
37
  addMember(member: Group, role?: "reader" | "writer" | "admin" | "inherit"): void;
38
38
  addMember(member: Group | Account, role: "reader" | "writer" | "admin"): void;
39
- removeMember(member: Everyone | Account): Promise<void>;
39
+ removeMember(member: Everyone | Account): void;
40
40
  /** @category Identity & Permissions
41
41
  * Revokes membership from members a parent group.
42
42
  * @param member The group that will lose access to this group.
43
43
  */
44
- removeMember(member: Group): Promise<void>;
44
+ removeMember(member: Group): void;
45
45
  private getMembersFromKeys;
46
46
  /**
47
47
  * Returns all members of the group, including inherited members from parent
@@ -1 +1 @@
1
- {"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/group.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"unionUtils.d.ts","sourceRoot":"","sources":["../../../../src/tools/implementation/zodSchema/unionUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EAErB,KAAK,EACL,8BAA8B,EAE9B,2BAA2B,EAE3B,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAO3B,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,8BAA8B,CAAC,2BAA2B,CAAC,mCAgGpE;AAsBD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,qBAAqB,WAMtE"}
1
+ {"version":3,"file":"unionUtils.d.ts","sourceRoot":"","sources":["../../../../src/tools/implementation/zodSchema/unionUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EAErB,KAAK,EACL,8BAA8B,EAE9B,2BAA2B,EAE3B,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAO3B,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,8BAA8B,CAAC,2BAA2B,CAAC,mCA+FpE;AAsBD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,qBAAqB,WAMtE"}
package/package.json CHANGED
@@ -139,7 +139,7 @@
139
139
  },
140
140
  "type": "module",
141
141
  "license": "MIT",
142
- "version": "0.16.4",
142
+ "version": "0.16.5",
143
143
  "dependencies": {
144
144
  "@manuscripts/prosemirror-recreate-steps": "^0.1.4",
145
145
  "@scure/base": "1.2.1",
@@ -158,9 +158,9 @@
158
158
  "prosemirror-state": "^1.4.3",
159
159
  "prosemirror-transform": "^1.9.0",
160
160
  "zod": "3.25.76",
161
- "cojson": "0.16.4",
162
- "cojson-storage-indexeddb": "0.16.4",
163
- "cojson-transport-ws": "0.16.4"
161
+ "cojson": "0.16.5",
162
+ "cojson-storage-indexeddb": "0.16.5",
163
+ "cojson-transport-ws": "0.16.5"
164
164
  },
165
165
  "devDependencies": {
166
166
  "@scure/bip39": "^1.3.0",
@@ -167,15 +167,15 @@ export class Group extends CoValueBase implements CoValue {
167
167
  }
168
168
  }
169
169
 
170
- removeMember(member: Everyone | Account): Promise<void>;
170
+ removeMember(member: Everyone | Account): void;
171
171
  /** @category Identity & Permissions
172
172
  * Revokes membership from members a parent group.
173
173
  * @param member The group that will lose access to this group.
174
174
  */
175
- removeMember(member: Group): Promise<void>;
175
+ removeMember(member: Group): void;
176
176
  removeMember(member: Group | Everyone | Account) {
177
177
  if (member !== "everyone" && member._type === "Group") {
178
- return this._raw.revokeExtend(member._raw);
178
+ this._raw.revokeExtend(member._raw);
179
179
  } else {
180
180
  return this._raw.removeMember(
181
181
  member === "everyone" ? member : member._raw,
@@ -81,8 +81,7 @@ export function schemaUnionDiscriminatorFor(
81
81
  continue;
82
82
  }
83
83
  }
84
-
85
- if (discriminatorDef._zod.def.type !== "literal") {
84
+ if (discriminatorDef._zod?.def.type !== "literal") {
86
85
  break;
87
86
  }
88
87
 
@@ -141,3 +140,9 @@ export function isUnionOfPrimitivesDeeply(schema: AnyZodOrCoValueSchema) {
141
140
  return !isAnyCoValueSchema(schema);
142
141
  }
143
142
  }
143
+
144
+ function isCoDiscriminatedUnion(
145
+ def: any,
146
+ ): def is CoreCoDiscriminatedUnionSchema<any> {
147
+ return def.builtin === "CoDiscriminatedUnion";
148
+ }
@@ -308,4 +308,54 @@ describe("co.discriminatedUnion", () => {
308
308
 
309
309
  expect(updates[0]?.name).toEqual("Rex");
310
310
  });
311
+
312
+ test("should work when one of the options has a dicriminated union field", async () => {
313
+ const Collie = co.map({
314
+ type: z.literal("collie"),
315
+ });
316
+ const BorderCollie = co.map({
317
+ type: z.literal("border-collie"),
318
+ });
319
+ const Breed = co.discriminatedUnion("type", [Collie, BorderCollie]);
320
+
321
+ const Dog = co.map({
322
+ type: z.literal("dog"),
323
+ breed: Breed,
324
+ });
325
+
326
+ const Animal = co.discriminatedUnion("type", [Dog]);
327
+
328
+ const animal = Dog.create({
329
+ type: "dog",
330
+ breed: {
331
+ type: "collie",
332
+ },
333
+ });
334
+
335
+ const loadedAnimal = await Animal.load(animal.id);
336
+
337
+ expect(loadedAnimal?.breed?.type).toEqual("collie");
338
+ });
339
+
340
+ test("should work with a nested co.discriminatedUnion", async () => {
341
+ const Collie = co.map({
342
+ type: z.literal("collie"),
343
+ });
344
+ const BorderCollie = co.map({
345
+ type: z.literal("border-collie"),
346
+ });
347
+ const Breed = co.discriminatedUnion("type", [Collie, BorderCollie]);
348
+
349
+ const Dog = co.discriminatedUnion("type", [Breed]);
350
+
351
+ const Animal = co.discriminatedUnion("type", [Dog]);
352
+
353
+ const animal = Collie.create({
354
+ type: "collie",
355
+ });
356
+
357
+ const loadedAnimal = await Animal.load(animal.id);
358
+
359
+ expect(loadedAnimal?.type).toEqual("collie");
360
+ });
311
361
  });