jazz-tools 0.15.16 → 0.16.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.
Files changed (203) hide show
  1. package/.svelte-kit/__package__/jazz.class.svelte.d.ts +2 -2
  2. package/.svelte-kit/__package__/jazz.class.svelte.d.ts.map +1 -1
  3. package/.svelte-kit/__package__/jazz.class.svelte.js +5 -5
  4. package/.svelte-kit/__package__/jazz.svelte.d.ts +2 -2
  5. package/.svelte-kit/__package__/jazz.svelte.d.ts.map +1 -1
  6. package/.turbo/turbo-build.log +44 -44
  7. package/CHANGELOG.md +34 -0
  8. package/dist/browser/index.d.ts +2 -2
  9. package/dist/browser/index.d.ts.map +1 -1
  10. package/dist/browser/index.js.map +1 -1
  11. package/dist/browser-media-images/index.d.ts +3 -1
  12. package/dist/browser-media-images/index.d.ts.map +1 -1
  13. package/dist/browser-media-images/index.js.map +1 -1
  14. package/dist/{chunk-OSVAAVWQ.js → chunk-CL3ROOZM.js} +598 -598
  15. package/dist/chunk-CL3ROOZM.js.map +1 -0
  16. package/dist/index.js +8 -10
  17. package/dist/index.js.map +1 -1
  18. package/dist/react/hooks.d.ts +2 -2
  19. package/dist/react/hooks.d.ts.map +1 -1
  20. package/dist/react/index.js.map +1 -1
  21. package/dist/react-core/hooks.d.ts +2 -2
  22. package/dist/react-core/hooks.d.ts.map +1 -1
  23. package/dist/react-core/index.js +3 -3
  24. package/dist/react-core/index.js.map +1 -1
  25. package/dist/react-native-core/hooks.d.ts +2 -2
  26. package/dist/react-native-core/hooks.d.ts.map +1 -1
  27. package/dist/react-native-core/index.js.map +1 -1
  28. package/dist/svelte/jazz.class.svelte.d.ts +2 -2
  29. package/dist/svelte/jazz.class.svelte.d.ts.map +1 -1
  30. package/dist/svelte/jazz.class.svelte.js +5 -5
  31. package/dist/svelte/jazz.svelte.d.ts +2 -2
  32. package/dist/svelte/jazz.svelte.d.ts.map +1 -1
  33. package/dist/testing.js +3 -3
  34. package/dist/testing.js.map +1 -1
  35. package/dist/tools/coValues/CoValueBase.d.ts +3 -13
  36. package/dist/tools/coValues/CoValueBase.d.ts.map +1 -1
  37. package/dist/tools/coValues/account.d.ts +2 -2
  38. package/dist/tools/coValues/account.d.ts.map +1 -1
  39. package/dist/tools/coValues/coFeed.d.ts.map +1 -1
  40. package/dist/tools/coValues/coList.d.ts.map +1 -1
  41. package/dist/tools/coValues/coMap.d.ts +8 -23
  42. package/dist/tools/coValues/coMap.d.ts.map +1 -1
  43. package/dist/tools/coValues/deepLoading.d.ts +4 -1
  44. package/dist/tools/coValues/deepLoading.d.ts.map +1 -1
  45. package/dist/tools/coValues/extensions/imageDef.d.ts +4 -7
  46. package/dist/tools/coValues/extensions/imageDef.d.ts.map +1 -1
  47. package/dist/tools/coValues/inbox.d.ts +2 -2
  48. package/dist/tools/coValues/inbox.d.ts.map +1 -1
  49. package/dist/tools/coValues/interfaces.d.ts +2 -17
  50. package/dist/tools/coValues/interfaces.d.ts.map +1 -1
  51. package/dist/tools/coValues/request.d.ts +3 -3
  52. package/dist/tools/coValues/request.d.ts.map +1 -1
  53. package/dist/tools/coValues/schemaUnion.d.ts +5 -1
  54. package/dist/tools/coValues/schemaUnion.d.ts.map +1 -1
  55. package/dist/tools/exports.d.ts +3 -3
  56. package/dist/tools/exports.d.ts.map +1 -1
  57. package/dist/tools/implementation/createContext.d.ts +4 -4
  58. package/dist/tools/implementation/createContext.d.ts.map +1 -1
  59. package/dist/tools/implementation/invites.d.ts +2 -2
  60. package/dist/tools/implementation/invites.d.ts.map +1 -1
  61. package/dist/tools/implementation/schemaUtils.d.ts +8 -0
  62. package/dist/tools/implementation/schemaUtils.d.ts.map +1 -0
  63. package/dist/tools/implementation/zodSchema/coExport.d.ts +11 -1
  64. package/dist/tools/implementation/zodSchema/coExport.d.ts.map +1 -1
  65. package/dist/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.d.ts +22 -0
  66. package/dist/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.d.ts.map +1 -0
  67. package/dist/tools/implementation/zodSchema/runtimeConverters/schemaFieldToCoFieldDef.d.ts +10 -0
  68. package/dist/tools/implementation/zodSchema/runtimeConverters/schemaFieldToCoFieldDef.d.ts.map +1 -0
  69. package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts +11 -11
  70. package/dist/tools/implementation/zodSchema/schemaTypes/AccountSchema.d.ts.map +1 -1
  71. package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts +34 -24
  72. package/dist/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.d.ts.map +1 -1
  73. package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts +17 -14
  74. package/dist/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.d.ts.map +1 -1
  75. package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts +24 -17
  76. package/dist/tools/implementation/zodSchema/schemaTypes/CoListSchema.d.ts.map +1 -1
  77. package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts +31 -34
  78. package/dist/tools/implementation/zodSchema/schemaTypes/CoMapSchema.d.ts.map +1 -1
  79. package/dist/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.d.ts +20 -9
  80. package/dist/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.d.ts.map +1 -1
  81. package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts +19 -12
  82. package/dist/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.d.ts.map +1 -1
  83. package/dist/tools/implementation/zodSchema/schemaTypes/CoValueSchema.d.ts +18 -0
  84. package/dist/tools/implementation/zodSchema/schemaTypes/CoValueSchema.d.ts.map +1 -0
  85. package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts +14 -9
  86. package/dist/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.d.ts.map +1 -1
  87. package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts +14 -9
  88. package/dist/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.d.ts.map +1 -1
  89. package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts +14 -9
  90. package/dist/tools/implementation/zodSchema/schemaTypes/RichTextSchema.d.ts.map +1 -1
  91. package/dist/tools/implementation/zodSchema/typeConverters/CoFieldInit.d.ts +10 -0
  92. package/dist/tools/implementation/zodSchema/typeConverters/CoFieldInit.d.ts.map +1 -0
  93. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts +15 -13
  94. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.d.ts.map +1 -1
  95. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts +12 -15
  96. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.d.ts.map +1 -1
  97. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts +17 -20
  98. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.d.ts.map +1 -1
  99. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts +17 -20
  100. package/dist/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.d.ts.map +1 -1
  101. package/dist/tools/implementation/zodSchema/unionUtils.d.ts +3 -5
  102. package/dist/tools/implementation/zodSchema/unionUtils.d.ts.map +1 -1
  103. package/dist/tools/implementation/zodSchema/zodCo.d.ts +10 -8
  104. package/dist/tools/implementation/zodSchema/zodCo.d.ts.map +1 -1
  105. package/dist/tools/implementation/zodSchema/zodReExport.d.ts +4 -8
  106. package/dist/tools/implementation/zodSchema/zodReExport.d.ts.map +1 -1
  107. package/dist/tools/implementation/zodSchema/zodSchema.d.ts +21 -30
  108. package/dist/tools/implementation/zodSchema/zodSchema.d.ts.map +1 -1
  109. package/dist/tools/internal.d.ts +3 -2
  110. package/dist/tools/internal.d.ts.map +1 -1
  111. package/dist/tools/lib/utilityTypes.d.ts +18 -0
  112. package/dist/tools/lib/utilityTypes.d.ts.map +1 -0
  113. package/dist/tools/subscribe/utils.d.ts.map +1 -1
  114. package/dist/tools/testing.d.ts +2 -2
  115. package/dist/tools/testing.d.ts.map +1 -1
  116. package/dist/worker/index.d.ts.map +1 -1
  117. package/dist/worker/index.js +2 -2
  118. package/dist/worker/index.js.map +1 -1
  119. package/package.json +5 -5
  120. package/src/browser/index.ts +2 -4
  121. package/src/browser-media-images/index.ts +1 -1
  122. package/src/react/hooks.tsx +2 -2
  123. package/src/react-core/hooks.ts +6 -6
  124. package/src/react-core/tests/useAccount.test.ts +2 -2
  125. package/src/react-core/tests/useCoState.test.ts +3 -2
  126. package/src/react-native-core/hooks.tsx +2 -2
  127. package/src/svelte/jazz.class.svelte.ts +10 -7
  128. package/src/svelte/jazz.svelte.ts +2 -2
  129. package/src/tools/coValues/CoValueBase.ts +8 -20
  130. package/src/tools/coValues/account.ts +18 -14
  131. package/src/tools/coValues/coFeed.ts +0 -4
  132. package/src/tools/coValues/coList.ts +7 -9
  133. package/src/tools/coValues/coMap.ts +5 -13
  134. package/src/tools/coValues/coPlainText.ts +4 -4
  135. package/src/tools/coValues/deepLoading.ts +4 -1
  136. package/src/tools/coValues/extensions/imageDef.ts +3 -3
  137. package/src/tools/coValues/inbox.ts +4 -4
  138. package/src/tools/coValues/interfaces.ts +4 -71
  139. package/src/tools/coValues/request.ts +17 -15
  140. package/src/tools/coValues/schemaUnion.ts +8 -4
  141. package/src/tools/exports.ts +3 -14
  142. package/src/tools/implementation/createContext.ts +9 -9
  143. package/src/tools/implementation/invites.ts +2 -2
  144. package/src/tools/implementation/schemaUtils.ts +18 -0
  145. package/src/tools/implementation/zodSchema/coExport.ts +14 -0
  146. package/src/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.ts +156 -0
  147. package/src/tools/implementation/zodSchema/runtimeConverters/schemaFieldToCoFieldDef.ts +149 -0
  148. package/src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts +36 -17
  149. package/src/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.ts +101 -52
  150. package/src/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.ts +54 -50
  151. package/src/tools/implementation/zodSchema/schemaTypes/CoListSchema.ts +54 -46
  152. package/src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts +190 -161
  153. package/src/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.ts +29 -27
  154. package/src/tools/implementation/zodSchema/schemaTypes/CoRecordSchema.ts +28 -18
  155. package/src/tools/implementation/zodSchema/schemaTypes/CoValueSchema.ts +18 -0
  156. package/src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts +45 -36
  157. package/src/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.ts +47 -35
  158. package/src/tools/implementation/zodSchema/schemaTypes/RichTextSchema.ts +43 -30
  159. package/src/tools/implementation/zodSchema/typeConverters/CoFieldInit.ts +13 -0
  160. package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchema.ts +30 -26
  161. package/src/tools/implementation/zodSchema/typeConverters/InstanceOfSchemaCoValuesNullable.ts +31 -28
  162. package/src/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchema.ts +89 -80
  163. package/src/tools/implementation/zodSchema/typeConverters/InstanceOrPrimitiveOfSchemaCoValuesNullable.ts +95 -84
  164. package/src/tools/implementation/zodSchema/unionUtils.ts +47 -51
  165. package/src/tools/implementation/zodSchema/zodCo.ts +43 -76
  166. package/src/tools/implementation/zodSchema/zodReExport.ts +44 -24
  167. package/src/tools/implementation/zodSchema/zodSchema.ts +65 -103
  168. package/src/tools/internal.ts +3 -2
  169. package/src/tools/lib/utilityTypes.ts +16 -0
  170. package/src/tools/subscribe/utils.ts +4 -2
  171. package/src/tools/testing.ts +4 -4
  172. package/src/tools/tests/ContextManager.test.ts +8 -9
  173. package/src/tools/tests/account.test.ts +65 -3
  174. package/src/tools/tests/coDiscriminatedUnion.test-d.ts +38 -0
  175. package/src/tools/tests/coDiscriminatedUnion.test.ts +219 -1
  176. package/src/tools/tests/coFeed.test-d.ts +4 -3
  177. package/src/tools/tests/coFeed.test.ts +8 -6
  178. package/src/tools/tests/coList.test-d.ts +32 -3
  179. package/src/tools/tests/coList.test.ts +30 -2
  180. package/src/tools/tests/coMap.record.test-d.ts +31 -3
  181. package/src/tools/tests/coMap.record.test.ts +18 -9
  182. package/src/tools/tests/coMap.test-d.ts +36 -8
  183. package/src/tools/tests/coMap.test.ts +87 -6
  184. package/src/tools/tests/coOptional.test.ts +63 -1
  185. package/src/tools/tests/createContext.test.ts +7 -9
  186. package/src/tools/tests/deepLoading.test.ts +4 -10
  187. package/src/tools/tests/exportImport.test.ts +2 -2
  188. package/src/tools/tests/groupsAndAccounts.test.ts +5 -4
  189. package/src/tools/tests/inbox.test.ts +3 -2
  190. package/src/tools/tests/load.test.ts +3 -29
  191. package/src/tools/tests/schemaUnion.test.ts +2 -2
  192. package/src/tools/tests/subscribe.test.ts +22 -114
  193. package/src/tools/tests/testing.test.ts +6 -6
  194. package/src/tools/tests/zod.test-d.ts +27 -0
  195. package/src/tools/tests/zod.test.ts +88 -45
  196. package/src/worker/index.ts +0 -1
  197. package/dist/chunk-OSVAAVWQ.js.map +0 -1
  198. package/dist/tools/implementation/zodSchema/runtimeConverters/zodFieldToCoFieldDef.d.ts +0 -12
  199. package/dist/tools/implementation/zodSchema/runtimeConverters/zodFieldToCoFieldDef.d.ts.map +0 -1
  200. package/dist/tools/implementation/zodSchema/runtimeConverters/zodSchemaToCoSchema.d.ts +0 -9
  201. package/dist/tools/implementation/zodSchema/runtimeConverters/zodSchemaToCoSchema.d.ts.map +0 -1
  202. package/src/tools/implementation/zodSchema/runtimeConverters/zodFieldToCoFieldDef.ts +0 -172
  203. package/src/tools/implementation/zodSchema/runtimeConverters/zodSchemaToCoSchema.ts +0 -218
@@ -42,15 +42,27 @@ __export(zodReExport_exports, {
42
42
  z: () => z
43
43
  });
44
44
  import {
45
- array as zodArray,
46
- tuple as zodTuple,
47
- union as zodUnion
45
+ object as zodObject,
46
+ strictObject as zodStrictObject
48
47
  } from "zod/v4";
48
+
49
+ // src/tools/implementation/schemaUtils.ts
50
+ function removeGetters(obj) {
51
+ const result = {};
52
+ for (const key of Object.keys(obj)) {
53
+ const descriptor = Object.getOwnPropertyDescriptor(obj, key);
54
+ if (!descriptor?.get) {
55
+ result[key] = obj[key];
56
+ }
57
+ }
58
+ return result;
59
+ }
60
+
61
+ // src/tools/implementation/zodSchema/zodReExport.ts
49
62
  import {
50
63
  string,
51
64
  number,
52
65
  boolean,
53
- object,
54
66
  templateLiteral,
55
67
  json,
56
68
  date,
@@ -72,20 +84,38 @@ import {
72
84
  cidrv6,
73
85
  iso,
74
86
  int32,
75
- strictObject,
87
+ union,
76
88
  discriminatedUnion,
77
89
  int,
78
90
  optional,
91
+ array,
92
+ tuple,
79
93
  z
80
94
  } from "zod/v4";
81
- function union(options, params) {
82
- return zodUnion(options, params);
95
+ function object(shape, params) {
96
+ rejectCoValueSchemas(
97
+ shape,
98
+ "z.object() does not support collaborative types as values. Use co.map() instead"
99
+ );
100
+ return zodObject(shape, params);
101
+ }
102
+ function strictObject(shape, params) {
103
+ rejectCoValueSchemas(
104
+ shape,
105
+ "z.strictObject() does not support collaborative types as values. Use co.map() instead"
106
+ );
107
+ return zodStrictObject(shape, params);
108
+ }
109
+ function rejectCoValueSchemas(shape, errorMessage) {
110
+ if (containsCoValueSchema(shape)) {
111
+ throw Error(errorMessage);
112
+ }
83
113
  }
84
- function array(element, params) {
85
- return zodArray(element, params);
114
+ function containsCoValueSchema(shape) {
115
+ return Object.values(removeGetters(shape ?? {})).some(isAnyCoValueSchema);
86
116
  }
87
- function tuple(options, params) {
88
- return zodTuple(options, params);
117
+ function isAnyCoValueSchema(schema) {
118
+ return "collaborative" in schema && schema.collaborative === true;
89
119
  }
90
120
 
91
121
  // src/tools/coValues/interfaces.ts
@@ -109,9 +139,9 @@ var CoValueBase = class {
109
139
  if (agent instanceof ControlledAccount) {
110
140
  return coValuesCache.get(
111
141
  agent.account,
112
- () => anySchemaToCoSchema(RegisteredSchemas["Account"]).fromRaw(
113
- agent.account
114
- )
142
+ () => coValueClassFromCoValueClassOrSchema(
143
+ RegisteredSchemas["Account"]
144
+ ).fromRaw(agent.account)
115
145
  );
116
146
  }
117
147
  return new AnonymousJazzAgent(this._raw.core.node);
@@ -723,9 +753,9 @@ var _CoList = class _CoList extends Array {
723
753
  }
724
754
  /** @category Collaboration */
725
755
  get _owner() {
726
- return this._raw.group instanceof RawAccount2 ? anySchemaToCoSchema(RegisteredSchemas["Account"]).fromRaw(
727
- this._raw.group
728
- ) : RegisteredSchemas["Group"].fromRaw(this._raw.group);
756
+ return this._raw.group instanceof RawAccount2 ? coValueClassFromCoValueClassOrSchema(
757
+ RegisteredSchemas["Account"]
758
+ ).fromRaw(this._raw.group) : RegisteredSchemas["Group"].fromRaw(this._raw.group);
729
759
  }
730
760
  /**
731
761
  * If a `CoList`'s items are a `coField.ref(...)`, you can use `coList._refs[i]` to access
@@ -761,9 +791,9 @@ var _CoList = class _CoList extends Array {
761
791
  if (agent instanceof ControlledAccount2) {
762
792
  return coValuesCache.get(
763
793
  agent.account,
764
- () => anySchemaToCoSchema(RegisteredSchemas["Account"]).fromRaw(
765
- agent.account
766
- )
794
+ () => coValueClassFromCoValueClassOrSchema(
795
+ RegisteredSchemas["Account"]
796
+ ).fromRaw(agent.account)
767
797
  );
768
798
  }
769
799
  return new AnonymousJazzAgent(this._raw.core.node);
@@ -1776,9 +1806,13 @@ var _Account = class _Account extends CoValueBase {
1776
1806
  valueID,
1777
1807
  inviteSecret
1778
1808
  );
1779
- return loadCoValue(anySchemaToCoSchema(coValueClass), valueID, {
1780
- loadAs: this
1781
- });
1809
+ return loadCoValue(
1810
+ coValueClassFromCoValueClassOrSchema(coValueClass),
1811
+ valueID,
1812
+ {
1813
+ loadAs: this
1814
+ }
1815
+ );
1782
1816
  }
1783
1817
  /** @private */
1784
1818
  static async create(options) {
@@ -1926,7 +1960,11 @@ var AccountAndGroupProxyHandler = {
1926
1960
  return true;
1927
1961
  } else if (key === "root") {
1928
1962
  if (value) {
1929
- target._raw.set("root", value.id);
1963
+ target._raw.set(
1964
+ "root",
1965
+ value.id,
1966
+ "trusting"
1967
+ );
1930
1968
  }
1931
1969
  return true;
1932
1970
  } else {
@@ -2273,7 +2311,7 @@ var Inbox = class _Inbox {
2273
2311
  );
2274
2312
  }
2275
2313
  return loadCoValue(
2276
- anySchemaToCoSchema(Schema),
2314
+ coValueClassFromCoValueClassOrSchema(Schema),
2277
2315
  message.get("payload"),
2278
2316
  {
2279
2317
  loadAs: account
@@ -2465,9 +2503,9 @@ var CoPlainText = class extends String {
2465
2503
  if (agent instanceof ControlledAccount4) {
2466
2504
  return coValuesCache.get(
2467
2505
  agent.account,
2468
- () => anySchemaToCoSchema(RegisteredSchemas["Account"]).fromRaw(
2469
- agent.account
2470
- )
2506
+ () => coValueClassFromCoValueClassOrSchema(
2507
+ RegisteredSchemas["Account"]
2508
+ ).fromRaw(agent.account)
2471
2509
  );
2472
2510
  }
2473
2511
  return new AnonymousJazzAgent(this._raw.core.node);
@@ -3019,7 +3057,9 @@ function getOwnerFromRawValue(raw) {
3019
3057
  const owner = raw.group;
3020
3058
  return coValuesCache.get(
3021
3059
  owner,
3022
- () => owner instanceof RawAccount6 ? anySchemaToCoSchema(RegisteredSchemas["Account"]).fromRaw(owner) : RegisteredSchemas["Group"].fromRaw(owner)
3060
+ () => owner instanceof RawAccount6 ? coValueClassFromCoValueClassOrSchema(
3061
+ RegisteredSchemas["Account"]
3062
+ ).fromRaw(owner) : RegisteredSchemas["Group"].fromRaw(owner)
3023
3063
  );
3024
3064
  }
3025
3065
  function createCoValue(ref2, raw, subscriptionScope) {
@@ -3569,7 +3609,7 @@ async function createJazzContextFromExistingCredentials({
3569
3609
  crypto
3570
3610
  );
3571
3611
  const CurrentAccountSchema = PropsAccountSchema ?? RegisteredSchemas["Account"];
3572
- const AccountClass = anySchemaToCoSchema(CurrentAccountSchema);
3612
+ const AccountClass = coValueClassFromCoValueClassOrSchema(CurrentAccountSchema);
3573
3613
  const node = await LocalNode2.withLoadedAccount({
3574
3614
  accountID: credentials.accountID,
3575
3615
  accountSecret: credentials.secret,
@@ -3609,7 +3649,7 @@ async function createJazzContextForNewAccount({
3609
3649
  storage
3610
3650
  }) {
3611
3651
  const CurrentAccountSchema = PropsAccountSchema ?? RegisteredSchemas["Account"];
3612
- const AccountClass = anySchemaToCoSchema(CurrentAccountSchema);
3652
+ const AccountClass = coValueClassFromCoValueClassOrSchema(CurrentAccountSchema);
3613
3653
  const { node } = await LocalNode2.withNewlyCreatedAccount({
3614
3654
  creationProps,
3615
3655
  peersToLoadFrom,
@@ -3715,55 +3755,445 @@ function createAnonymousJazzContext({
3715
3755
  };
3716
3756
  }
3717
3757
 
3718
- // src/tools/implementation/zodSchema/zodSchema.ts
3719
- function isZodObject(schema) {
3720
- return schema.def?.type === "object";
3758
+ // src/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.ts
3759
+ var CoDiscriminatedUnionSchema = class {
3760
+ constructor(coreSchema, coValueClass) {
3761
+ this.coValueClass = coValueClass;
3762
+ this.collaborative = true;
3763
+ this.builtin = "CoDiscriminatedUnion";
3764
+ this.getDefinition = coreSchema.getDefinition;
3765
+ }
3766
+ load(id, options) {
3767
+ return this.coValueClass.load(id, options);
3768
+ }
3769
+ subscribe(id, options, listener) {
3770
+ return this.coValueClass.subscribe(id, options, listener);
3771
+ }
3772
+ getCoValueClass() {
3773
+ return this.coValueClass;
3774
+ }
3775
+ optional() {
3776
+ return coOptionalDefiner(this);
3777
+ }
3778
+ };
3779
+ function createCoreCoDiscriminatedUnionSchema(discriminator, schemas) {
3780
+ return {
3781
+ collaborative: true,
3782
+ builtin: "CoDiscriminatedUnion",
3783
+ getDefinition: () => ({
3784
+ discriminator,
3785
+ get discriminatorMap() {
3786
+ const propValues = {};
3787
+ for (const option of schemas) {
3788
+ const dm = option.getDefinition().discriminatorMap;
3789
+ if (!dm || Object.keys(dm).length === 0)
3790
+ throw new Error(
3791
+ `Invalid discriminated union option at index "${schemas.indexOf(option)}"`
3792
+ );
3793
+ for (const [k, v] of Object.entries(dm)) {
3794
+ propValues[k] ??= /* @__PURE__ */ new Set();
3795
+ for (const val of v) {
3796
+ propValues[k].add(val);
3797
+ }
3798
+ }
3799
+ }
3800
+ return propValues;
3801
+ },
3802
+ get options() {
3803
+ return schemas;
3804
+ }
3805
+ })
3806
+ };
3807
+ }
3808
+
3809
+ // src/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.ts
3810
+ var CoOptionalSchema = class {
3811
+ constructor(innerType) {
3812
+ this.innerType = innerType;
3813
+ this.collaborative = true;
3814
+ this.builtin = "CoOptional";
3815
+ this.getDefinition = () => ({
3816
+ innerType: this.innerType
3817
+ });
3818
+ }
3819
+ getCoValueClass() {
3820
+ return this.innerType.getCoValueClass();
3821
+ }
3822
+ };
3823
+
3824
+ // src/tools/implementation/zodSchema/schemaTypes/RichTextSchema.ts
3825
+ function createCoreCoRichTextSchema() {
3826
+ return {
3827
+ collaborative: true,
3828
+ builtin: "CoRichText"
3829
+ };
3830
+ }
3831
+ var RichTextSchema = class {
3832
+ constructor(coValueClass) {
3833
+ this.coValueClass = coValueClass;
3834
+ this.collaborative = true;
3835
+ this.builtin = "CoRichText";
3836
+ }
3837
+ create(text, options) {
3838
+ return this.coValueClass.create(text, options);
3839
+ }
3840
+ load(id, options) {
3841
+ return this.coValueClass.load(id, options);
3842
+ }
3843
+ subscribe(...args) {
3844
+ return this.coValueClass.subscribe(...args);
3845
+ }
3846
+ getCoValueClass() {
3847
+ return this.coValueClass;
3848
+ }
3849
+ optional() {
3850
+ return coOptionalDefiner(this);
3851
+ }
3852
+ };
3853
+
3854
+ // src/tools/implementation/zodSchema/zodCo.ts
3855
+ var coMapDefiner = (shape) => {
3856
+ const coreSchema = createCoreCoMapSchema(shape);
3857
+ return hydrateCoreCoValueSchema(coreSchema);
3858
+ };
3859
+ var coAccountDefiner = (shape = {
3860
+ profile: coMapDefiner({
3861
+ name: z.string(),
3862
+ inbox: z.optional(z.string()),
3863
+ inboxInvite: z.optional(z.string())
3864
+ }),
3865
+ root: coMapDefiner({})
3866
+ }) => {
3867
+ const coreSchema = createCoreAccountSchema(shape);
3868
+ return hydrateCoreCoValueSchema(coreSchema);
3869
+ };
3870
+ var coRecordDefiner = (_keyType, valueType) => {
3871
+ return coMapDefiner({}).catchall(valueType);
3872
+ };
3873
+ var coListDefiner = (element) => {
3874
+ const coreSchema = createCoreCoListSchema(element);
3875
+ return hydrateCoreCoValueSchema(coreSchema);
3876
+ };
3877
+ var coProfileDefiner = (shape = {}) => {
3878
+ const ehnancedShape = Object.assign(shape, {
3879
+ name: z.string(),
3880
+ inbox: z.optional(z.string()),
3881
+ inboxInvite: z.optional(z.string())
3882
+ });
3883
+ return coMapDefiner(ehnancedShape);
3884
+ };
3885
+ var coFeedDefiner = (element) => {
3886
+ const coreSchema = createCoreCoFeedSchema(element);
3887
+ return hydrateCoreCoValueSchema(coreSchema);
3888
+ };
3889
+ var coFileStreamDefiner = () => {
3890
+ const coreSchema = createCoreFileStreamSchema();
3891
+ return hydrateCoreCoValueSchema(coreSchema);
3892
+ };
3893
+ var coPlainTextDefiner = () => {
3894
+ const coreSchema = createCoreCoPlainTextSchema();
3895
+ return hydrateCoreCoValueSchema(coreSchema);
3896
+ };
3897
+ var coRichTextDefiner = () => {
3898
+ const coreSchema = createCoreCoRichTextSchema();
3899
+ return hydrateCoreCoValueSchema(coreSchema);
3900
+ };
3901
+ var coImageDefiner = () => {
3902
+ return ImageDefinition;
3903
+ };
3904
+ var coOptionalDefiner = (schema) => {
3905
+ return new CoOptionalSchema(schema);
3906
+ };
3907
+ var coDiscriminatedUnionDefiner = (discriminator, schemas) => {
3908
+ const coreSchema = createCoreCoDiscriminatedUnionSchema(
3909
+ discriminator,
3910
+ schemas
3911
+ );
3912
+ return hydrateCoreCoValueSchema(coreSchema);
3913
+ };
3914
+
3915
+ // src/tools/implementation/zodSchema/coExport.ts
3916
+ var coExport_exports = {};
3917
+ __export(coExport_exports, {
3918
+ DiscriminatedUnion: () => CoDiscriminatedUnionSchema,
3919
+ Feed: () => CoFeedSchema,
3920
+ FileStream: () => FileStreamSchema,
3921
+ List: () => CoListSchema,
3922
+ Optional: () => CoOptionalSchema,
3923
+ PlainText: () => PlainTextSchema,
3924
+ RichText: () => RichTextSchema,
3925
+ account: () => coAccountDefiner,
3926
+ discriminatedUnion: () => coDiscriminatedUnionDefiner,
3927
+ feed: () => coFeedDefiner,
3928
+ fileStream: () => coFileStreamDefiner,
3929
+ image: () => coImageDefiner,
3930
+ list: () => coListDefiner,
3931
+ map: () => coMapDefiner,
3932
+ optional: () => coOptionalDefiner,
3933
+ plainText: () => coPlainTextDefiner,
3934
+ profile: () => coProfileDefiner,
3935
+ record: () => coRecordDefiner,
3936
+ richText: () => coRichTextDefiner
3937
+ });
3938
+
3939
+ // src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts
3940
+ function createCoreCoMapSchema(shape, catchAll) {
3941
+ return {
3942
+ collaborative: true,
3943
+ builtin: "CoMap",
3944
+ shape,
3945
+ catchAll,
3946
+ getDefinition: () => ({
3947
+ get shape() {
3948
+ return shape;
3949
+ },
3950
+ get catchall() {
3951
+ return catchAll;
3952
+ },
3953
+ get discriminatorMap() {
3954
+ const propValues = {};
3955
+ for (const key in removeGetters(shape)) {
3956
+ if (isAnyCoValueSchema2(shape[key])) {
3957
+ continue;
3958
+ }
3959
+ const field = shape[key]._zod;
3960
+ if (field.values) {
3961
+ propValues[key] ??= /* @__PURE__ */ new Set();
3962
+ for (const v of field.values) propValues[key].add(v);
3963
+ }
3964
+ }
3965
+ return propValues;
3966
+ }
3967
+ })
3968
+ };
3969
+ }
3970
+ function enrichCoMapSchema(schema, coValueClass) {
3971
+ const coValueSchema = Object.assign(schema, {
3972
+ create: (...args) => {
3973
+ return coValueClass.create(...args);
3974
+ },
3975
+ load: (...args) => {
3976
+ return coValueClass.load(...args);
3977
+ },
3978
+ subscribe: (...args) => {
3979
+ return coValueClass.subscribe(...args);
3980
+ },
3981
+ findUnique: (...args) => {
3982
+ return coValueClass.findUnique(...args);
3983
+ },
3984
+ upsertUnique: (...args) => {
3985
+ return coValueClass.upsertUnique(...args);
3986
+ },
3987
+ loadUnique: (...args) => {
3988
+ return coValueClass.loadUnique(...args);
3989
+ },
3990
+ catchall: (catchAll) => {
3991
+ const schemaWithCatchAll = createCoreCoMapSchema(
3992
+ coValueSchema.getDefinition().shape,
3993
+ catchAll
3994
+ );
3995
+ return hydrateCoreCoValueSchema(schemaWithCatchAll);
3996
+ },
3997
+ withMigration: (migration) => {
3998
+ coValueClass.prototype.migrate = migration;
3999
+ return coValueSchema;
4000
+ },
4001
+ getCoValueClass: () => {
4002
+ return coValueClass;
4003
+ },
4004
+ optional: () => {
4005
+ return coOptionalDefiner(coValueSchema);
4006
+ }
4007
+ });
4008
+ return coValueSchema;
4009
+ }
4010
+
4011
+ // src/tools/implementation/zodSchema/schemaTypes/CoListSchema.ts
4012
+ var CoListSchema = class {
4013
+ constructor(element, coValueClass) {
4014
+ this.element = element;
4015
+ this.coValueClass = coValueClass;
4016
+ this.collaborative = true;
4017
+ this.builtin = "CoList";
4018
+ }
4019
+ create(items, options) {
4020
+ return this.coValueClass.create(items, options);
4021
+ }
4022
+ load(id, options) {
4023
+ return this.coValueClass.load(id, options);
4024
+ }
4025
+ subscribe(id, options, listener) {
4026
+ return this.coValueClass.subscribe(id, options, listener);
4027
+ }
4028
+ getCoValueClass() {
4029
+ return this.coValueClass;
4030
+ }
4031
+ optional() {
4032
+ return coOptionalDefiner(this);
4033
+ }
4034
+ };
4035
+ function createCoreCoListSchema(element) {
4036
+ return {
4037
+ collaborative: true,
4038
+ builtin: "CoList",
4039
+ element
4040
+ };
3721
4041
  }
3722
- function isZodArray(schema) {
3723
- return schema.def?.type === "array";
4042
+
4043
+ // src/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.ts
4044
+ var CoFeedSchema = class {
4045
+ constructor(element, coValueClass) {
4046
+ this.element = element;
4047
+ this.coValueClass = coValueClass;
4048
+ this.collaborative = true;
4049
+ this.builtin = "CoFeed";
4050
+ }
4051
+ create(init, options) {
4052
+ return this.coValueClass.create(init, options);
4053
+ }
4054
+ load(id, options) {
4055
+ return this.coValueClass.load(id, options);
4056
+ }
4057
+ subscribe(...args) {
4058
+ return this.coValueClass.subscribe(...args);
4059
+ }
4060
+ getCoValueClass() {
4061
+ return this.coValueClass;
4062
+ }
4063
+ optional() {
4064
+ return coOptionalDefiner(this);
4065
+ }
4066
+ };
4067
+ function createCoreCoFeedSchema(element) {
4068
+ return {
4069
+ collaborative: true,
4070
+ builtin: "CoFeed",
4071
+ element
4072
+ };
3724
4073
  }
3725
- function isZodCustom(schema) {
3726
- return schema.def?.type === "custom";
4074
+
4075
+ // src/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.ts
4076
+ function createCoreCoPlainTextSchema() {
4077
+ return {
4078
+ collaborative: true,
4079
+ builtin: "CoPlainText"
4080
+ };
3727
4081
  }
3728
- function getDef(schema) {
3729
- return schema.def;
4082
+ var PlainTextSchema = class {
4083
+ constructor(coValueClass) {
4084
+ this.coValueClass = coValueClass;
4085
+ this.collaborative = true;
4086
+ this.builtin = "CoPlainText";
4087
+ }
4088
+ create(text, options) {
4089
+ return this.coValueClass.create(text, options);
4090
+ }
4091
+ load(id, options) {
4092
+ return this.coValueClass.load(id, options);
4093
+ }
4094
+ subscribe(...args) {
4095
+ return this.coValueClass.subscribe(...args);
4096
+ }
4097
+ fromRaw(raw) {
4098
+ return this.coValueClass.fromRaw(raw);
4099
+ }
4100
+ getCoValueClass() {
4101
+ return this.coValueClass;
4102
+ }
4103
+ optional() {
4104
+ return coOptionalDefiner(this);
4105
+ }
4106
+ };
4107
+
4108
+ // src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts
4109
+ function createCoreFileStreamSchema() {
4110
+ return {
4111
+ collaborative: true,
4112
+ builtin: "FileStream"
4113
+ };
3730
4114
  }
4115
+ var FileStreamSchema = class {
4116
+ constructor(coValueClass) {
4117
+ this.coValueClass = coValueClass;
4118
+ this.collaborative = true;
4119
+ this.builtin = "FileStream";
4120
+ }
4121
+ create(options) {
4122
+ return this.coValueClass.create(options);
4123
+ }
4124
+ createFromBlob(blob, options) {
4125
+ return this.coValueClass.createFromBlob(blob, options);
4126
+ }
4127
+ loadAsBlob(id, options) {
4128
+ return this.coValueClass.loadAsBlob(id, options);
4129
+ }
4130
+ load(id, options) {
4131
+ return this.coValueClass.load(id, options);
4132
+ }
4133
+ subscribe(...args) {
4134
+ return this.coValueClass.subscribe(...args);
4135
+ }
4136
+ getCoValueClass() {
4137
+ return this.coValueClass;
4138
+ }
4139
+ optional() {
4140
+ return coOptionalDefiner(this);
4141
+ }
4142
+ };
3731
4143
 
3732
- // src/tools/implementation/zodSchema/schemaTypes/RichTextSchema.ts
3733
- function enrichRichTextSchema(schema, coValueClass) {
3734
- return Object.assign(schema, {
4144
+ // src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts
4145
+ function createCoreAccountSchema(shape) {
4146
+ return {
4147
+ ...createCoreCoMapSchema(shape),
4148
+ builtin: "Account"
4149
+ };
4150
+ }
4151
+ function enrichAccountSchema(schema, coValueClass) {
4152
+ const enrichedSchema = Object.assign(schema, {
3735
4153
  create: (...args) => {
3736
4154
  return coValueClass.create(...args);
3737
4155
  },
4156
+ createAs: (...args) => {
4157
+ return coValueClass.createAs(...args);
4158
+ },
4159
+ getMe: (...args) => {
4160
+ return coValueClass.getMe(...args);
4161
+ },
3738
4162
  load: (...args) => {
3739
4163
  return coValueClass.load(...args);
3740
4164
  },
3741
4165
  subscribe: (...args) => {
3742
4166
  return coValueClass.subscribe(...args);
3743
4167
  },
4168
+ fromRaw: (...args) => {
4169
+ return coValueClass.fromRaw(...args);
4170
+ },
4171
+ withMigration: (migration) => {
4172
+ coValueClass.prototype.migrate = async function(creationProps) {
4173
+ await migration(this, creationProps);
4174
+ };
4175
+ return enrichedSchema;
4176
+ },
3744
4177
  getCoValueClass: () => {
3745
4178
  return coValueClass;
3746
4179
  }
3747
4180
  });
4181
+ return enrichedSchema;
3748
4182
  }
3749
4183
 
3750
4184
  // src/tools/implementation/zodSchema/unionUtils.ts
3751
4185
  import { RawCoList } from "cojson";
3752
4186
  function schemaUnionDiscriminatorFor(schema) {
3753
4187
  if (isUnionOfCoMapsDeeply(schema)) {
3754
- if (!schema._zod.disc || schema._zod.disc.size == 0) {
3755
- throw new Error(
3756
- "z.union() of collaborative types is not supported, use co.discriminatedUnion() instead"
3757
- );
3758
- }
3759
- const discriminator = schema._zod.def.discriminator;
3760
- const field = schema._zod.disc.get(discriminator);
4188
+ const definition = schema.getDefinition();
4189
+ const { discriminatorMap, discriminator, options } = definition;
4190
+ const field = discriminatorMap[discriminator];
3761
4191
  if (!field) {
3762
4192
  throw new Error(
3763
4193
  "co.discriminatedUnion() of collaborative types with non-existent discriminator key is not supported"
3764
4194
  );
3765
4195
  }
3766
- for (const value of field.values) {
4196
+ for (const value of field) {
3767
4197
  if (typeof value !== "string" && typeof value !== "number") {
3768
4198
  throw new Error(
3769
4199
  "co.discriminatedUnion() of collaborative types with non-string or non-number discriminator value is not supported"
@@ -3771,13 +4201,13 @@ function schemaUnionDiscriminatorFor(schema) {
3771
4201
  }
3772
4202
  }
3773
4203
  const availableOptions = [];
3774
- for (const option of schema._zod.def.options) {
3775
- if (option._zod.def.type === "object") {
4204
+ for (const option of options) {
4205
+ if (option.builtin === "CoMap") {
3776
4206
  availableOptions.push(option);
3777
- } else if (option._zod.def.type === "union") {
3778
- for (const subOption of option._zod.def.options) {
3779
- if (subOption._zod.def.type === "object") {
3780
- availableOptions.push(subOption);
4207
+ } else if (option.builtin === "CoDiscriminatedUnion") {
4208
+ for (const subOption of option.getDefinition().options) {
4209
+ if (!options.includes(subOption)) {
4210
+ options.push(subOption);
3781
4211
  }
3782
4212
  }
3783
4213
  } else {
@@ -3794,8 +4224,8 @@ function schemaUnionDiscriminatorFor(schema) {
3794
4224
  }
3795
4225
  for (const option of availableOptions) {
3796
4226
  let match = true;
3797
- for (const key of schema._zod.disc.keys()) {
3798
- const discriminatorDef = option._zod.def.shape[key];
4227
+ for (const key of Object.keys(discriminatorMap)) {
4228
+ const discriminatorDef = option.getDefinition().shape[key];
3799
4229
  const discriminatorValue = _raw.get(key);
3800
4230
  if (discriminatorValue && typeof discriminatorValue === "object") {
3801
4231
  throw new Error("Discriminator must be a primitive value");
@@ -3818,7 +4248,7 @@ function schemaUnionDiscriminatorFor(schema) {
3818
4248
  }
3819
4249
  }
3820
4250
  if (match) {
3821
- const coValueSchema = zodSchemaToCoSchema(option);
4251
+ const coValueSchema = hydrateCoreCoValueSchema(option);
3822
4252
  return coValueSchema.getCoValueClass();
3823
4253
  }
3824
4254
  }
@@ -3829,22 +4259,18 @@ function schemaUnionDiscriminatorFor(schema) {
3829
4259
  return determineSchema;
3830
4260
  } else {
3831
4261
  throw new Error(
3832
- "z.discriminatedUnion() of non-collaborative types is not supported"
4262
+ "co.discriminatedUnion() of non-collaborative types is not supported"
3833
4263
  );
3834
4264
  }
3835
4265
  }
3836
4266
  function isUnionOfCoMapsDeeply(schema) {
3837
- if (schema instanceof z.core.$ZodUnion) {
3838
- return schema._zod.def.options.every(isCoMapOrUnionOfCoMapsDeeply);
3839
- } else {
3840
- return false;
3841
- }
4267
+ return schema.getDefinition().options.every(isCoMapOrUnionOfCoMapsDeeply);
3842
4268
  }
3843
4269
  function isCoMapOrUnionOfCoMapsDeeply(schema) {
3844
- if (schema instanceof z.core.$ZodObject && isAnyCoValueSchema(schema)) {
4270
+ if (schema.builtin === "CoMap") {
3845
4271
  return true;
3846
- } else if (schema instanceof z.core.$ZodUnion) {
3847
- return schema._zod.def.options.every(isCoMapOrUnionOfCoMapsDeeply);
4272
+ } else if (schema.builtin === "CoDiscriminatedUnion") {
4273
+ return schema.getDefinition().options.every(isCoMapOrUnionOfCoMapsDeeply);
3848
4274
  } else {
3849
4275
  return false;
3850
4276
  }
@@ -3853,104 +4279,81 @@ function isUnionOfPrimitivesDeeply(schema) {
3853
4279
  if (schema instanceof z.core.$ZodUnion) {
3854
4280
  return schema._zod.def.options.every(isUnionOfPrimitivesDeeply);
3855
4281
  } else {
3856
- return !isAnyCoValueSchema(schema);
4282
+ return !isAnyCoValueSchema2(schema);
3857
4283
  }
3858
4284
  }
3859
4285
 
3860
- // src/tools/implementation/zodSchema/runtimeConverters/zodFieldToCoFieldDef.ts
3861
- function schemaFieldToCoFieldDef(schema, isOptional = false) {
4286
+ // src/tools/implementation/zodSchema/runtimeConverters/schemaFieldToCoFieldDef.ts
4287
+ function schemaFieldToCoFieldDef(schema) {
3862
4288
  if (isCoValueClass(schema)) {
3863
- if (isOptional) {
3864
- return coField.ref(schema, { optional: true });
3865
- } else {
3866
- return coField.ref(schema);
3867
- }
4289
+ return coField.ref(schema);
3868
4290
  } else if (isCoValueSchema(schema)) {
3869
- if (isAnyCoOptionalSchema(schema)) {
4291
+ if (schema.builtin === "CoOptional") {
3870
4292
  return coField.ref(schema.getCoValueClass(), {
3871
4293
  optional: true
3872
4294
  });
3873
4295
  }
3874
- if (isOptional) {
3875
- return coField.ref(schema.getCoValueClass(), { optional: true });
3876
- } else {
3877
- return coField.ref(schema.getCoValueClass());
3878
- }
4296
+ return coField.ref(schema.getCoValueClass());
3879
4297
  } else {
3880
4298
  if ("_zod" in schema) {
3881
- if (schema._zod.def.type === "optional") {
3882
- const inner = zodSchemaToCoSchemaOrKeepPrimitive(
3883
- schema._zod.def.innerType
3884
- );
3885
- return schemaFieldToCoFieldDef(inner, true);
3886
- } else if (schema._zod.def.type === "string") {
4299
+ const zodSchemaDef = schema._zod.def;
4300
+ if (zodSchemaDef.type === "optional" || zodSchemaDef.type === "nullable") {
4301
+ const inner = zodSchemaDef.innerType;
4302
+ const coFieldDef = schemaFieldToCoFieldDef(inner);
4303
+ if (zodSchemaDef.type === "nullable" && coFieldDef === coField.optional.Date) {
4304
+ throw new Error("Nullable z.date() is not supported");
4305
+ }
4306
+ return coFieldDef;
4307
+ } else if (zodSchemaDef.type === "string") {
3887
4308
  return coField.string;
3888
- } else if (schema._zod.def.type === "number") {
4309
+ } else if (zodSchemaDef.type === "number") {
3889
4310
  return coField.number;
3890
- } else if (schema._zod.def.type === "boolean") {
4311
+ } else if (zodSchemaDef.type === "boolean") {
3891
4312
  return coField.boolean;
3892
- } else if (schema._zod.def.type === "null") {
4313
+ } else if (zodSchemaDef.type === "null") {
3893
4314
  return coField.null;
3894
- } else if (schema._zod.def.type === "enum") {
4315
+ } else if (zodSchemaDef.type === "enum") {
3895
4316
  return coField.string;
3896
- } else if (schema._zod.def.type === "readonly") {
4317
+ } else if (zodSchemaDef.type === "readonly") {
3897
4318
  return schemaFieldToCoFieldDef(
3898
- schema.def.innerType,
3899
- isOptional
4319
+ schema.def.innerType
3900
4320
  );
3901
- } else if (schema._zod.def.type === "date") {
4321
+ } else if (zodSchemaDef.type === "date") {
3902
4322
  return coField.optional.Date;
3903
- } else if (schema._zod.def.type === "template_literal") {
4323
+ } else if (zodSchemaDef.type === "template_literal") {
3904
4324
  return coField.string;
3905
- } else if (schema._zod.def.type === "lazy") {
4325
+ } else if (zodSchemaDef.type === "lazy") {
3906
4326
  return schemaFieldToCoFieldDef(
3907
- schema.unwrap(),
3908
- isOptional
4327
+ schema.unwrap()
3909
4328
  );
3910
- } else if (schema._zod.def.type === "default" || schema._zod.def.type === "catch") {
4329
+ } else if (zodSchemaDef.type === "default" || zodSchemaDef.type === "catch") {
3911
4330
  console.warn(
3912
4331
  "z.default()/z.catch() are not supported in collaborative schemas. They will be ignored."
3913
4332
  );
3914
4333
  return schemaFieldToCoFieldDef(
3915
- schema.def.innerType,
3916
- isOptional
4334
+ schema.def.innerType
3917
4335
  );
3918
- } else if (schema._zod.def.type === "literal") {
3919
- if (schema._zod.def.values.some(
3920
- (literal2) => typeof literal2 === "undefined"
3921
- )) {
4336
+ } else if (zodSchemaDef.type === "literal") {
4337
+ if (zodSchemaDef.values.some((literal2) => typeof literal2 === "undefined")) {
3922
4338
  throw new Error("z.literal() with undefined is not supported");
3923
4339
  }
3924
- if (schema._zod.def.values.some((literal2) => literal2 === null)) {
4340
+ if (zodSchemaDef.values.some((literal2) => literal2 === null)) {
3925
4341
  throw new Error("z.literal() with null is not supported");
3926
4342
  }
3927
- if (schema._zod.def.values.some((literal2) => typeof literal2 === "bigint")) {
4343
+ if (zodSchemaDef.values.some((literal2) => typeof literal2 === "bigint")) {
3928
4344
  throw new Error("z.literal() with bigint is not supported");
3929
4345
  }
3930
4346
  return coField.literal(
3931
- ...schema._zod.def.values
4347
+ ...zodSchemaDef.values
3932
4348
  );
3933
- } else if (schema._zod.def.type === "object" || schema._zod.def.type === "array" || schema._zod.def.type === "tuple") {
4349
+ } else if (zodSchemaDef.type === "object" || zodSchemaDef.type === "array" || zodSchemaDef.type === "tuple") {
3934
4350
  return coField.json();
3935
- } else if (schema._zod.def.type === "custom") {
3936
- if ("builtin" in schema) {
3937
- return schemaFieldToCoFieldDef(schema.builtin, isOptional);
3938
- } else {
3939
- throw new Error(`Unsupported custom zod type`);
3940
- }
3941
- } else if (schema._zod.def.type === "union") {
4351
+ } else if (zodSchemaDef.type === "union") {
3942
4352
  if (isUnionOfPrimitivesDeeply(schema)) {
3943
4353
  return coField.json();
3944
- } else if (isUnionOfCoMapsDeeply(schema)) {
3945
- const result = schemaUnionDiscriminatorFor(schema);
3946
- if (isOptional) {
3947
- return coField.ref(result, { optional: true });
3948
- } else {
3949
- return coField.ref(result);
3950
- }
3951
4354
  } else {
3952
4355
  throw new Error(
3953
- "z.union()/z.discriminatedUnion() of mixed collaborative and non-collaborative types is not supported"
4356
+ "z.union()/z.discriminatedUnion() of collaborative types is not supported. Use co.discriminatedUnion() instead."
3954
4357
  );
3955
4358
  }
3956
4359
  } else {
@@ -3964,455 +4367,94 @@ function schemaFieldToCoFieldDef(schema, isOptional = false) {
3964
4367
  }
3965
4368
  }
3966
4369
 
3967
- // src/tools/implementation/zodSchema/runtimeConverters/zodSchemaToCoSchema.ts
3968
- var coSchemasForZodSchemas = /* @__PURE__ */ new Map();
3969
- function isAnyCoValueSchema(schema) {
4370
+ // src/tools/implementation/zodSchema/runtimeConverters/coValueSchemaTransformation.ts
4371
+ function isAnyCoValueSchema2(schema) {
3970
4372
  return "collaborative" in schema && schema.collaborative === true;
3971
4373
  }
3972
4374
  function isCoValueSchema(schema) {
3973
- return isAnyCoValueSchema(schema) && "getCoValueClass" in schema;
4375
+ return isAnyCoValueSchema2(schema) && "getCoValueClass" in schema;
3974
4376
  }
3975
- function tryZodSchemaToCoSchema(schema) {
3976
- if (isAnyCoValueSchema(schema)) {
3977
- if (coSchemasForZodSchemas.has(schema)) {
3978
- return coSchemasForZodSchemas.get(
3979
- schema
3980
- );
3981
- }
3982
- if (isAnyCoOptionalSchema(schema)) {
3983
- return null;
3984
- } else if (isZodObject(schema)) {
3985
- const def = getDef(schema);
3986
- const ClassToExtend = "builtin" in schema && schema.builtin === "Account" ? Account : CoMap;
3987
- const coValueClass = class ZCoMap extends ClassToExtend {
3988
- constructor(options) {
3989
- super(options);
3990
- for (const [field, fieldType] of Object.entries(
3991
- def.shape
3992
- )) {
3993
- this[field] = schemaFieldToCoFieldDef(
3994
- zodSchemaToCoSchemaOrKeepPrimitive(fieldType)
3995
- );
3996
- }
3997
- if (def.catchall) {
3998
- this[coField.items] = schemaFieldToCoFieldDef(
3999
- zodSchemaToCoSchemaOrKeepPrimitive(def.catchall)
4000
- );
4001
- }
4002
- }
4003
- };
4004
- const coValueSchema = ClassToExtend === Account ? enrichAccountSchema(schema, coValueClass) : enrichCoMapSchema(schema, coValueClass);
4005
- coSchemasForZodSchemas.set(schema, coValueSchema);
4006
- return coValueSchema;
4007
- } else if (isZodArray(schema)) {
4008
- const def = getDef(schema);
4009
- const coValueClass = class ZCoList extends CoList {
4010
- constructor(options) {
4011
- super(options);
4012
- this[coField.items] = schemaFieldToCoFieldDef(
4013
- zodSchemaToCoSchemaOrKeepPrimitive(def.element)
4377
+ function hydrateCoreCoValueSchema(schema) {
4378
+ if (isCoValueSchema(schema)) {
4379
+ return schema;
4380
+ }
4381
+ if (schema.builtin === "CoOptional") {
4382
+ throw new Error(
4383
+ `co.optional() of collaborative types is not supported as top-level schema: ${JSON.stringify(schema)}`
4384
+ );
4385
+ } else if (schema.builtin === "CoMap" || schema.builtin === "Account") {
4386
+ const def = schema.getDefinition();
4387
+ const ClassToExtend = schema.builtin === "Account" ? Account : CoMap;
4388
+ const coValueClass = class ZCoMap extends ClassToExtend {
4389
+ constructor(options) {
4390
+ super(options);
4391
+ for (const [fieldName, fieldType] of Object.entries(def.shape)) {
4392
+ this[fieldName] = schemaFieldToCoFieldDef(
4393
+ fieldType
4014
4394
  );
4015
4395
  }
4016
- };
4017
- const coValueSchema = enrichCoListSchema(schema, coValueClass);
4018
- coSchemasForZodSchemas.set(schema, coValueSchema);
4019
- return coValueSchema;
4020
- } else if (isZodCustom(schema)) {
4021
- if ("builtin" in schema) {
4022
- if (schema.builtin === "CoFeed" && "element" in schema) {
4023
- const coValueClass = CoFeed.Of(
4024
- schemaFieldToCoFieldDef(
4025
- zodSchemaToCoSchemaOrKeepPrimitive(
4026
- schema.element
4027
- )
4028
- )
4396
+ if (def.catchall) {
4397
+ this[coField.items] = schemaFieldToCoFieldDef(
4398
+ def.catchall
4029
4399
  );
4030
- const coValueSchema = enrichCoFeedSchema(schema, coValueClass);
4031
- return coValueSchema;
4032
- } else if (schema.builtin === "FileStream") {
4033
- const coValueClass = FileStream;
4034
- const coValueSchema = enrichFileStreamSchema(schema, coValueClass);
4035
- return coValueSchema;
4036
- } else if (schema.builtin === "CoPlainText") {
4037
- const coValueClass = CoPlainText;
4038
- const coValueSchema = enrichPlainTextSchema(schema, coValueClass);
4039
- return coValueSchema;
4040
- } else if (schema.builtin === "CoRichText") {
4041
- const coValueClass = CoRichText;
4042
- const coValueSchema = enrichRichTextSchema(schema, coValueClass);
4043
- return coValueSchema;
4044
- } else {
4045
- throw new Error(`Unsupported builtin type: ${schema.builtin}`);
4046
4400
  }
4047
- } else {
4048
- throw new Error(`Unsupported custom zod type`);
4049
4401
  }
4050
- } else {
4051
- throw new Error(
4052
- `Unsupported zod CoValue type for top-level schema: ${schema._zod?.def?.type || JSON.stringify(schema, void 0, 2)}`
4053
- );
4054
- }
4055
- } else if (schema instanceof z.core.$ZodDiscriminatedUnion) {
4056
- if (isUnionOfCoMapsDeeply(schema)) {
4057
- const coValueClass = SchemaUnion.Of(schemaUnionDiscriminatorFor(schema));
4058
- const coValueSchema = enrichCoDiscriminatedUnionSchema(
4059
- schema,
4060
- coValueClass
4061
- );
4062
- return coValueSchema;
4063
- } else {
4064
- throw new Error(
4065
- "z.discriminatedUnion() of non-collaborative types is not supported as a top-level schema"
4066
- );
4067
- }
4402
+ };
4403
+ const coValueSchema = ClassToExtend === Account ? enrichAccountSchema(schema, coValueClass) : enrichCoMapSchema(schema, coValueClass);
4404
+ return coValueSchema;
4405
+ } else if (schema.builtin === "CoList") {
4406
+ const element = schema.element;
4407
+ const coValueClass = class ZCoList extends CoList {
4408
+ constructor(options) {
4409
+ super(options);
4410
+ this[coField.items] = schemaFieldToCoFieldDef(
4411
+ element
4412
+ );
4413
+ }
4414
+ };
4415
+ const coValueSchema = new CoListSchema(element, coValueClass);
4416
+ return coValueSchema;
4417
+ } else if (schema.builtin === "CoFeed") {
4418
+ const coValueClass = CoFeed.Of(
4419
+ schemaFieldToCoFieldDef(schema.element)
4420
+ );
4421
+ const coValueSchema = new CoFeedSchema(schema.element, coValueClass);
4422
+ return coValueSchema;
4423
+ } else if (schema.builtin === "FileStream") {
4424
+ const coValueClass = FileStream;
4425
+ return new FileStreamSchema(coValueClass);
4426
+ } else if (schema.builtin === "CoPlainText") {
4427
+ const coValueClass = CoPlainText;
4428
+ return new PlainTextSchema(coValueClass);
4429
+ } else if (schema.builtin === "CoRichText") {
4430
+ const coValueClass = CoRichText;
4431
+ return new RichTextSchema(coValueClass);
4432
+ } else if (schema.builtin === "CoDiscriminatedUnion") {
4433
+ const coValueClass = SchemaUnion.Of(schemaUnionDiscriminatorFor(schema));
4434
+ const coValueSchema = new CoDiscriminatedUnionSchema(schema, coValueClass);
4435
+ return coValueSchema;
4068
4436
  } else {
4069
- return null;
4070
- }
4071
- }
4072
- function zodSchemaToCoSchema(schema) {
4073
- const coSchema = tryZodSchemaToCoSchema(schema);
4074
- if (!coSchema) {
4437
+ const notReachable = schema;
4075
4438
  throw new Error(
4076
- `Unsupported zod type: ${schema._zod?.def?.type || JSON.stringify(schema)}`
4439
+ `Unsupported zod CoValue type for top-level schema: ${JSON.stringify(notReachable, void 0, 2)}`
4077
4440
  );
4078
4441
  }
4079
- return coSchema;
4080
4442
  }
4081
- function anySchemaToCoSchema(schema) {
4443
+ function coValueClassFromCoValueClassOrSchema(schema) {
4082
4444
  if (isCoValueClass(schema)) {
4083
4445
  return schema;
4084
4446
  } else if (isCoValueSchema(schema)) {
4085
4447
  return schema.getCoValueClass();
4086
- } else if ("def" in schema) {
4087
- const coSchema = tryZodSchemaToCoSchema(
4088
- schema
4089
- );
4090
- if (!coSchema) {
4091
- throw new Error(
4092
- `Unsupported zod type: ${schema.def?.type || JSON.stringify(schema)}`
4093
- );
4094
- }
4095
- return coSchema.getCoValueClass();
4096
4448
  }
4097
4449
  throw new Error(`Unsupported schema: ${JSON.stringify(schema)}`);
4098
4450
  }
4099
- function zodSchemaToCoSchemaOrKeepPrimitive(schema) {
4100
- const coSchema = tryZodSchemaToCoSchema(schema);
4101
- if (!coSchema) {
4102
- return schema;
4103
- }
4104
- return coSchema;
4105
- }
4106
-
4107
- // src/tools/implementation/zodSchema/schemaTypes/CoOptionalSchema.ts
4108
- function createCoOptionalSchema(schema) {
4109
- return Object.assign(z.optional(schema), {
4110
- collaborative: true,
4111
- getCoValueClass: () => {
4112
- return schema.getCoValueClass();
4113
- }
4114
- });
4115
- }
4116
- function isAnyCoOptionalSchema(schema) {
4117
- return isAnyCoValueSchema(schema) && schema._zod.def.type === "optional";
4118
- }
4119
-
4120
- // src/tools/implementation/zodSchema/zodCo.ts
4121
- var coMapDefiner = (shape) => {
4122
- const objectSchema = z.object(shape).meta({
4123
- collaborative: true
4124
- });
4125
- const enrichedSchema = Object.assign(objectSchema, {
4126
- collaborative: true
4127
- });
4128
- return zodSchemaToCoSchema(enrichedSchema);
4129
- };
4130
- var coAccountDefiner = (shape = {
4131
- profile: coMapDefiner({
4132
- name: z.string(),
4133
- inbox: z.optional(z.string()),
4134
- inboxInvite: z.optional(z.string())
4135
- }),
4136
- root: coMapDefiner({})
4137
- }) => {
4138
- const schema = z.object(shape).meta({
4139
- collaborative: true
4140
- });
4141
- const enrichedSchema = Object.assign(schema, {
4142
- collaborative: true,
4143
- builtin: "Account"
4144
- });
4145
- return zodSchemaToCoSchema(enrichedSchema);
4146
- };
4147
- var coRecordDefiner = (_keyType, valueType) => {
4148
- return coMapDefiner({}).catchall(valueType);
4149
- };
4150
- var coListDefiner = (element) => {
4151
- const schema = z.array(element).meta({
4152
- collaborative: true
4153
- });
4154
- const enrichedSchema = Object.assign(schema, {
4155
- collaborative: true
4156
- });
4157
- return zodSchemaToCoSchema(enrichedSchema);
4158
- };
4159
- var coProfileDefiner = (shape = {}) => {
4160
- const ehnancedShape = Object.assign(shape, {
4161
- name: z.string(),
4162
- inbox: z.optional(z.string()),
4163
- inboxInvite: z.optional(z.string())
4164
- });
4165
- return coMapDefiner(ehnancedShape);
4166
- };
4167
- var coFeedDefiner = (element) => {
4168
- const schema = z.instanceof(CoFeed);
4169
- const enrichedSchema = Object.assign(schema, {
4170
- collaborative: true,
4171
- builtin: "CoFeed",
4172
- element
4173
- });
4174
- return zodSchemaToCoSchema(enrichedSchema);
4175
- };
4176
- var coFileStreamDefiner = () => {
4177
- const schema = z.instanceof(FileStream);
4178
- const enrichedSchema = Object.assign(schema, {
4179
- collaborative: true,
4180
- builtin: "FileStream"
4181
- });
4182
- return zodSchemaToCoSchema(enrichedSchema);
4183
- };
4184
- var coPlainTextDefiner = () => {
4185
- const schema = z.instanceof(CoPlainText);
4186
- const enrichedSchema = Object.assign(schema, {
4187
- collaborative: true,
4188
- builtin: "CoPlainText"
4189
- });
4190
- return zodSchemaToCoSchema(enrichedSchema);
4191
- };
4192
- var coRichTextDefiner = () => {
4193
- const schema = z.instanceof(CoRichText);
4194
- const enrichedSchema = Object.assign(schema, {
4195
- collaborative: true,
4196
- builtin: "CoRichText"
4197
- });
4198
- return zodSchemaToCoSchema(enrichedSchema);
4199
- };
4200
- var coImageDefiner = () => {
4201
- return ImageDefinition;
4202
- };
4203
- var coOptionalDefiner = (schema) => {
4204
- return createCoOptionalSchema(schema);
4205
- };
4206
- var coDiscriminatedUnionDefiner = (discriminator, schemas) => {
4207
- const schema = z.discriminatedUnion(discriminator, schemas);
4208
- return zodSchemaToCoSchema(schema);
4209
- };
4210
-
4211
- // src/tools/implementation/zodSchema/coExport.ts
4212
- var coExport_exports = {};
4213
- __export(coExport_exports, {
4214
- account: () => coAccountDefiner,
4215
- discriminatedUnion: () => coDiscriminatedUnionDefiner,
4216
- feed: () => coFeedDefiner,
4217
- fileStream: () => coFileStreamDefiner,
4218
- image: () => coImageDefiner,
4219
- list: () => coListDefiner,
4220
- map: () => coMapDefiner,
4221
- optional: () => coOptionalDefiner,
4222
- plainText: () => coPlainTextDefiner,
4223
- profile: () => coProfileDefiner,
4224
- record: () => coRecordDefiner,
4225
- richText: () => coRichTextDefiner
4226
- });
4227
-
4228
- // src/tools/implementation/zodSchema/schemaTypes/CoMapSchema.ts
4229
- function enrichCoMapSchema(schema, coValueClass) {
4230
- const baseCatchall = schema.catchall;
4231
- const coValueSchema = Object.assign(schema, {
4232
- create: (...args) => {
4233
- return coValueClass.create(...args);
4234
- },
4235
- load: (...args) => {
4236
- return coValueClass.load(...args);
4237
- },
4238
- subscribe: (...args) => {
4239
- return coValueClass.subscribe(...args);
4240
- },
4241
- findUnique: (...args) => {
4242
- return coValueClass.findUnique(...args);
4243
- },
4244
- upsertUnique: (...args) => {
4245
- return coValueClass.upsertUnique(...args);
4246
- },
4247
- loadUnique: (...args) => {
4248
- return coValueClass.loadUnique(...args);
4249
- },
4250
- catchall: (index) => {
4251
- const newSchema = baseCatchall(index);
4252
- const enrichedSchema = Object.assign(newSchema, {
4253
- collaborative: true
4254
- });
4255
- return zodSchemaToCoSchema(enrichedSchema);
4256
- },
4257
- withHelpers: (helpers) => {
4258
- return Object.assign(schema, helpers(schema));
4259
- },
4260
- withMigration: (migration) => {
4261
- coValueClass.prototype.migrate = migration;
4262
- return coValueSchema;
4263
- },
4264
- getCoValueClass: () => {
4265
- return coValueClass;
4266
- }
4267
- });
4268
- return coValueSchema;
4269
- }
4270
-
4271
- // src/tools/implementation/zodSchema/schemaTypes/CoDiscriminatedUnionSchema.ts
4272
- function enrichCoDiscriminatedUnionSchema(schema, coValueClass) {
4273
- return Object.assign(schema, {
4274
- load: (...args) => {
4275
- return coValueClass.load(...args);
4276
- },
4277
- subscribe: (...args) => {
4278
- return coValueClass.subscribe(...args);
4279
- },
4280
- getCoValueClass: () => {
4281
- return coValueClass;
4282
- }
4283
- });
4284
- }
4285
-
4286
- // src/tools/implementation/zodSchema/schemaTypes/CoListSchema.ts
4287
- function enrichCoListSchema(schema, coValueClass) {
4288
- return Object.assign(schema, {
4289
- create: (...args) => {
4290
- return coValueClass.create(...args);
4291
- },
4292
- load: (...args) => {
4293
- return coValueClass.load(...args);
4294
- },
4295
- subscribe: (...args) => {
4296
- return coValueClass.subscribe(...args);
4297
- },
4298
- withHelpers: (helpers) => {
4299
- return Object.assign(schema, helpers(schema));
4300
- },
4301
- getCoValueClass: () => {
4302
- return coValueClass;
4303
- }
4304
- });
4305
- }
4306
-
4307
- // src/tools/implementation/zodSchema/schemaTypes/CoFeedSchema.ts
4308
- function enrichCoFeedSchema(schema, coValueClass) {
4309
- return Object.assign(schema, {
4310
- create: (...args) => {
4311
- return coValueClass.create(...args);
4312
- },
4313
- load: (...args) => {
4314
- return coValueClass.load(...args);
4315
- },
4316
- subscribe: (...args) => {
4317
- return coValueClass.subscribe(...args);
4318
- },
4319
- withHelpers: (helpers) => {
4320
- return Object.assign(schema, helpers(schema));
4321
- },
4322
- getCoValueClass: () => {
4323
- return coValueClass;
4324
- }
4325
- });
4326
- }
4327
-
4328
- // src/tools/implementation/zodSchema/schemaTypes/AccountSchema.ts
4329
- function enrichAccountSchema(schema, coValueClass) {
4330
- const enrichedSchema = Object.assign(schema, {
4331
- create: (...args) => {
4332
- return coValueClass.create(...args);
4333
- },
4334
- createAs: (...args) => {
4335
- return coValueClass.createAs(...args);
4336
- },
4337
- getMe: (...args) => {
4338
- return coValueClass.getMe(...args);
4339
- },
4340
- load: (...args) => {
4341
- return coValueClass.load(...args);
4342
- },
4343
- subscribe: (...args) => {
4344
- return coValueClass.subscribe(...args);
4345
- },
4346
- withHelpers: (helpers) => {
4347
- return Object.assign(schema, helpers(schema));
4348
- },
4349
- fromRaw: (...args) => {
4350
- return coValueClass.fromRaw(...args);
4351
- },
4352
- withMigration: (migration) => {
4353
- coValueClass.prototype.migrate = async function(creationProps) {
4354
- await migration(this, creationProps);
4355
- };
4356
- return enrichedSchema;
4357
- },
4358
- getCoValueClass: () => {
4359
- return coValueClass;
4360
- }
4361
- });
4362
- return enrichedSchema;
4363
- }
4364
-
4365
- // src/tools/implementation/zodSchema/schemaTypes/FileStreamSchema.ts
4366
- function enrichFileStreamSchema(schema, coValueClass) {
4367
- return Object.assign(schema, {
4368
- create: (...args) => {
4369
- return coValueClass.create(...args);
4370
- },
4371
- createFromBlob: (...args) => {
4372
- return coValueClass.createFromBlob(...args);
4373
- },
4374
- load: (...args) => {
4375
- return coValueClass.load(...args);
4376
- },
4377
- loadAsBlob: (...args) => {
4378
- return coValueClass.loadAsBlob(...args);
4379
- },
4380
- subscribe: (...args) => {
4381
- return coValueClass.subscribe(...args);
4382
- },
4383
- getCoValueClass: () => {
4384
- return coValueClass;
4385
- }
4386
- });
4387
- }
4388
-
4389
- // src/tools/implementation/zodSchema/schemaTypes/PlainTextSchema.ts
4390
- function enrichPlainTextSchema(schema, coValueClass) {
4391
- return Object.assign(schema, {
4392
- create: (...args) => {
4393
- return coValueClass.create(...args);
4394
- },
4395
- load: (...args) => {
4396
- return coValueClass.load(...args);
4397
- },
4398
- subscribe: (...args) => {
4399
- return coValueClass.subscribe(...args);
4400
- },
4401
- fromRaw: (...args) => {
4402
- return coValueClass.fromRaw(...args);
4403
- },
4404
- getCoValueClass: () => {
4405
- return coValueClass;
4406
- }
4407
- });
4408
- }
4409
4451
 
4410
4452
  // src/tools/coValues/extensions/imageDef.ts
4411
4453
  var ImageDefinitionBase = coMapDefiner({
4412
4454
  originalSize: z.tuple([z.number(), z.number()]),
4413
4455
  placeholderDataURL: z.string().optional()
4414
4456
  }).catchall(coFileStreamDefiner());
4415
- var ImageDefinition = ImageDefinitionBase.withHelpers((Self) => ({
4457
+ var ImageDefinition = Object.assign({}, ImageDefinitionBase, {
4416
4458
  highestResAvailable(imageDef, options) {
4417
4459
  const resolutions = Object.keys(imageDef).filter(
4418
4460
  (key) => key.match(/^\d+x\d+$/)
@@ -4442,7 +4484,7 @@ var ImageDefinition = ImageDefinitionBase.withHelpers((Self) => ({
4442
4484
  stream: imageDef[highestAvailableResolution]
4443
4485
  };
4444
4486
  }
4445
- }));
4487
+ });
4446
4488
 
4447
4489
  // src/tools/implementation/ContextManager.ts
4448
4490
  import { cojsonInternals as cojsonInternals4 } from "cojson";
@@ -5013,46 +5055,6 @@ function subscribeToCoValue(cls, id, options, listener) {
5013
5055
  }
5014
5056
  return unsubscribe;
5015
5057
  }
5016
- function createCoValueObservable(initialValue = void 0) {
5017
- let currentValue = initialValue;
5018
- let subscriberCount = 0;
5019
- function subscribe(cls, id, options, listener) {
5020
- subscriberCount++;
5021
- const unsubscribe = subscribeToCoValue(
5022
- anySchemaToCoSchema(cls),
5023
- id,
5024
- {
5025
- loadAs: options.loadAs,
5026
- resolve: options.resolve,
5027
- onUnavailable: () => {
5028
- currentValue = null;
5029
- options.onUnavailable?.();
5030
- },
5031
- onUnauthorized: () => {
5032
- currentValue = null;
5033
- options.onUnauthorized?.();
5034
- },
5035
- syncResolution: options.syncResolution
5036
- },
5037
- (value) => {
5038
- currentValue = value;
5039
- listener();
5040
- }
5041
- );
5042
- return () => {
5043
- unsubscribe();
5044
- subscriberCount--;
5045
- if (subscriberCount === 0) {
5046
- currentValue = void 0;
5047
- }
5048
- };
5049
- }
5050
- const observable = {
5051
- getCurrentValue: () => currentValue,
5052
- subscribe
5053
- };
5054
- return observable;
5055
- }
5056
5058
  function subscribeToExistingCoValue(existing, options, listener) {
5057
5059
  return subscribeToCoValue(
5058
5060
  existing.constructor,
@@ -5073,9 +5075,9 @@ function isAccountInstance(instance) {
5073
5075
  return "_type" in instance && instance._type === "Account";
5074
5076
  }
5075
5077
  function parseCoValueCreateOptions(options) {
5076
- const Group4 = RegisteredSchemas["Group"];
5078
+ const Group9 = RegisteredSchemas["Group"];
5077
5079
  if (!options) {
5078
- return { owner: Group4.create(), uniqueness: void 0 };
5080
+ return { owner: Group9.create(), uniqueness: void 0 };
5079
5081
  }
5080
5082
  if ("_type" in options) {
5081
5083
  if (options._type === "Account" || options._type === "Group") {
@@ -5084,7 +5086,7 @@ function parseCoValueCreateOptions(options) {
5084
5086
  }
5085
5087
  const uniqueness = options.unique ? { uniqueness: options.unique } : void 0;
5086
5088
  return {
5087
- owner: options.owner ?? Group4.create(),
5089
+ owner: options.owner ?? Group9.create(),
5088
5090
  uniqueness
5089
5091
  };
5090
5092
  }
@@ -5103,7 +5105,7 @@ async function exportCoValue(cls, id, options) {
5103
5105
  resolve,
5104
5106
  id,
5105
5107
  {
5106
- ref: anySchemaToCoSchema(cls),
5108
+ ref: coValueClassFromCoValueClassOrSchema(cls),
5107
5109
  optional: false
5108
5110
  },
5109
5111
  options.skipRetry,
@@ -5172,7 +5174,6 @@ export {
5172
5174
  zodReExport_exports,
5173
5175
  loadCoValue,
5174
5176
  subscribeToCoValue,
5175
- createCoValueObservable,
5176
5177
  exportCoValue,
5177
5178
  importContentPieces,
5178
5179
  CoValueBase,
@@ -5200,10 +5201,9 @@ export {
5200
5201
  createJazzContextForNewAccount,
5201
5202
  createJazzContext,
5202
5203
  createAnonymousJazzContext,
5203
- zodSchemaToCoSchema,
5204
- anySchemaToCoSchema,
5205
5204
  coMapDefiner,
5206
5205
  coExport_exports,
5206
+ coValueClassFromCoValueClassOrSchema,
5207
5207
  ImageDefinition,
5208
5208
  KvStoreContext,
5209
5209
  AuthSecretStorage,
@@ -5211,4 +5211,4 @@ export {
5211
5211
  JazzContextManager
5212
5212
  };
5213
5213
  /* istanbul ignore file -- @preserve */
5214
- //# sourceMappingURL=chunk-OSVAAVWQ.js.map
5214
+ //# sourceMappingURL=chunk-CL3ROOZM.js.map