jazz-tools 0.15.13 → 0.15.14

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.
@@ -1,5 +1,5 @@
1
1
 
2
- > jazz-tools@0.15.13 build /home/runner/_work/jazz/jazz/packages/jazz-tools
2
+ > jazz-tools@0.15.14 build /home/runner/_work/jazz/jazz/packages/jazz-tools
3
3
  > tsup && pnpm types && pnpm build:svelte
4
4
 
5
5
  CLI Building entry: {"index":"src/index.ts","testing":"src/testing.ts"}
@@ -107,85 +107,85 @@
107
107
  ESM Build start
108
108
  CLI Cleaning output folder
109
109
  ESM Build start
110
+ ESM dist/react-native-media-images/index.js 6.19 KB
111
+ ESM dist/react-native-media-images/index.js.map 10.96 KB
112
+ ESM ⚡️ Build success in 16ms
113
+ ESM dist/browser-media-images/index.js 2.55 KB
114
+ ESM dist/browser-media-images/index.js.map 5.44 KB
115
+ ESM ⚡️ Build success in 20ms
110
116
  ESM dist/worker/index.js 2.34 KB
111
117
  ESM dist/worker/index.js.map 4.82 KB
112
118
  ESM ⚡️ Build success in 15ms
113
119
  ESM dist/tiptap/index.js 564.00 B
114
120
  ESM dist/tiptap/index.js.map 1.21 KB
115
- ESM ⚡️ Build success in 15ms
116
- ESM dist/browser-media-images/index.js 2.55 KB
117
- ESM dist/browser-media-images/index.js.map 5.44 KB
118
- ESM ⚡️ Build success in 22ms
119
- ESM dist/react-native-media-images/index.js 6.19 KB
120
- ESM dist/react-native-media-images/index.js.map 10.96 KB
121
- ESM ⚡️ Build success in 19ms
122
- ESM dist/react-core/testing.js 1.17 KB
123
- ESM dist/react-core/index.js 8.37 KB
124
- ESM dist/react-core/chunk-7DYMJ74I.js 279.00 B
125
- ESM dist/react-core/testing.js.map 1.82 KB
126
- ESM dist/react-core/index.js.map 16.39 KB
127
- ESM dist/react-core/chunk-7DYMJ74I.js.map 533.00 B
128
- ESM ⚡️ Build success in 22ms
121
+ ESM ⚡️ Build success in 16ms
129
122
  ESM dist/react-native/index.js 2.53 KB
130
- ESM dist/react-native/crypto.js 117.00 B
131
123
  ESM dist/react-native/testing.js 120.00 B
124
+ ESM dist/react-native/crypto.js 117.00 B
132
125
  ESM dist/react-native/index.js.map 5.68 KB
133
- ESM dist/react-native/crypto.js.map 174.00 B
134
126
  ESM dist/react-native/testing.js.map 176.00 B
135
- ESM ⚡️ Build success in 24ms
127
+ ESM dist/react-native/crypto.js.map 174.00 B
128
+ ESM ⚡️ Build success in 26ms
129
+ ESM dist/react/index.js 20.68 KB
130
+ ESM dist/react/testing.js 107.00 B
131
+ ESM dist/react/ssr.js 688.00 B
132
+ ESM dist/react/index.js.map 34.13 KB
133
+ ESM dist/react/testing.js.map 163.00 B
134
+ ESM dist/react/ssr.js.map 1.12 KB
135
+ ESM ⚡️ Build success in 30ms
136
136
  ESM dist/browser/index.js 13.43 KB
137
137
  ESM dist/browser/index.js.map 28.67 KB
138
- ESM ⚡️ Build success in 31ms
138
+ ESM ⚡️ Build success in 32ms
139
+ ESM dist/react-core/index.js 8.37 KB
140
+ ESM dist/react-core/chunk-7DYMJ74I.js 279.00 B
141
+ ESM dist/react-core/testing.js 1.17 KB
142
+ ESM dist/react-core/index.js.map 16.39 KB
143
+ ESM dist/react-core/chunk-7DYMJ74I.js.map 533.00 B
144
+ ESM dist/react-core/testing.js.map 1.82 KB
145
+ ESM ⚡️ Build success in 30ms
139
146
  ESM dist/expo/index.js 4.65 KB
140
147
  ESM dist/expo/testing.js 112.00 B
141
148
  ESM dist/expo/crypto.js 109.00 B
142
149
  ESM dist/expo/index.js.map 10.17 KB
143
150
  ESM dist/expo/testing.js.map 168.00 B
144
151
  ESM dist/expo/crypto.js.map 166.00 B
145
- ESM ⚡️ Build success in 38ms
146
- ESM dist/react/index.js 20.68 KB
147
- ESM dist/react/testing.js 107.00 B
148
- ESM dist/react/ssr.js 688.00 B
149
- ESM dist/react/index.js.map 34.13 KB
150
- ESM dist/react/testing.js.map 163.00 B
151
- ESM dist/react/ssr.js.map 1.12 KB
152
- ESM ⚡️ Build success in 41ms
153
- ESM dist/react-native-core/index.js 16.95 KB
152
+ ESM ⚡️ Build success in 32ms
153
+ ESM dist/prosemirror/index.js 76.90 KB
154
+ ESM dist/prosemirror/index.js.map 305.53 KB
155
+ ESM ⚡️ Build success in 44ms
154
156
  ESM dist/react-native-core/testing.js 119.00 B
157
+ ESM dist/react-native-core/index.js 16.95 KB
155
158
  ESM dist/react-native-core/crypto.js 2.10 KB
156
- ESM dist/react-native-core/index.js.map 33.57 KB
157
159
  ESM dist/react-native-core/testing.js.map 175.00 B
160
+ ESM dist/react-native-core/index.js.map 33.57 KB
158
161
  ESM dist/react-native-core/crypto.js.map 4.25 KB
159
- ESM ⚡️ Build success in 40ms
160
- ESM dist/prosemirror/index.js 76.90 KB
161
- ESM dist/prosemirror/index.js.map 305.53 KB
162
- ESM ⚡️ Build success in 50ms
162
+ ESM ⚡️ Build success in 43ms
163
163
  ESM dist/react/index.js 20.70 KB
164
164
  ESM dist/react/testing.js 122.00 B
165
165
  ESM dist/react/index.js.map 34.13 KB
166
166
  ESM dist/react/testing.js.map 165.00 B
167
- ESM ⚡️ Build success in 50ms
167
+ ESM ⚡️ Build success in 44ms
168
168
  ESM dist/inspector/index.js 60.37 KB
169
169
  ESM dist/inspector/index.js.map 107.85 KB
170
- ESM ⚡️ Build success in 68ms
171
- ESM dist/index.js 16.19 KB
170
+ ESM ⚡️ Build success in 56ms
172
171
  ESM dist/testing.js 6.72 KB
172
+ ESM dist/index.js 16.19 KB
173
173
  ESM dist/chunk-6CCJYSYQ.js 146.58 KB
174
- ESM dist/index.js.map 29.03 KB
175
174
  ESM dist/testing.js.map 13.03 KB
175
+ ESM dist/index.js.map 29.03 KB
176
176
  ESM dist/chunk-6CCJYSYQ.js.map 356.50 KB
177
- ESM ⚡️ Build success in 78ms
177
+ ESM ⚡️ Build success in 67ms
178
178
  ESM dist/inspector/register-custom-element.js 218.00 B
179
179
  ESM dist/inspector/register-custom-element.js.map 314.00 B
180
180
  ESM dist/inspector/custom-element-TUXKXSZU.js 1.53 MB
181
181
  ESM dist/inspector/custom-element-TUXKXSZU.js.map 2.35 MB
182
- ESM ⚡️ Build success in 122ms
182
+ ESM ⚡️ Build success in 108ms
183
183
 
184
- > jazz-tools@0.15.13 types /home/runner/_work/jazz/jazz/packages/jazz-tools
184
+ > jazz-tools@0.15.14 types /home/runner/_work/jazz/jazz/packages/jazz-tools
185
185
  > tsc --outDir dist
186
186
 
187
187
 
188
- > jazz-tools@0.15.13 build:svelte /home/runner/_work/jazz/jazz/packages/jazz-tools
188
+ > jazz-tools@0.15.14 build:svelte /home/runner/_work/jazz/jazz/packages/jazz-tools
189
189
  > rm -rf dist/svelte && svelte-package -i src/svelte -o dist/svelte --tsconfig tsconfig.svelte.json
190
190
 
191
191
  src/svelte -> dist/svelte
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # jazz-tools
2
2
 
3
+ ## 0.15.14
4
+
5
+ ### Patch Changes
6
+
7
+ - a584590: Prevent resolving discriminated union fields
8
+ - 9acccb5: Export `WithHelpers` type used in CoValue schemas
9
+ - Updated dependencies [70ce7c5]
10
+ - cojson-transport-ws@0.15.14
11
+ - cojson@0.15.14
12
+ - cojson-storage-indexeddb@0.15.14
13
+
3
14
  ## 0.15.13
4
15
 
5
16
  ### Patch Changes
@@ -5,7 +5,14 @@ import { CoFeedEntry } from "./coFeed.js";
5
5
  import { type CoKeys } from "./coMap.js";
6
6
  import { type CoValue, type ID } from "./interfaces.js";
7
7
  type NotNull<T> = Exclude<T, null>;
8
- export type RefsToResolve<V, DepthLimit extends number = 10, CurrentDepth extends number[] = []> = boolean | (DepthLimit extends CurrentDepth["length"] ? any : V extends Array<infer Item> ? {
8
+ /**
9
+ * Used to check if T is a union type.
10
+ *
11
+ * If T is a union type, the left hand side of the extends becomes a union of function types.
12
+ * The right hand side is always a single function type.
13
+ */
14
+ type IsUnion<T, U = T> = (T extends any ? (x: T) => void : never) extends (x: U) => void ? false : true;
15
+ export type RefsToResolve<V, DepthLimit extends number = 10, CurrentDepth extends number[] = []> = boolean | (DepthLimit extends CurrentDepth["length"] ? any : IsUnion<NonNullable<V>> extends true ? true : V extends Array<infer Item> ? {
9
16
  $each: RefsToResolve<NotNull<Item>, DepthLimit, [
10
17
  0,
11
18
  ...CurrentDepth
@@ -1 +1 @@
1
- {"version":3,"file":"deepLoading.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/deepLoading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAEnC,MAAM,MAAM,aAAa,CACvB,CAAC,EACD,UAAU,SAAS,MAAM,GAAG,EAAE,EAC9B,YAAY,SAAS,MAAM,EAAE,GAAG,EAAE,IAEhC,OAAO,GACP,CAAC,UAAU,SAAS,YAAY,CAAC,QAAQ,CAAC,GAEtC,GAAG,GAEH,CAAC,SAAS,KAAK,CAAC,MAAM,IAAI,CAAC,GAErB;IACE,KAAK,EAAE,aAAa,CAClB,OAAO,CAAC,IAAI,CAAC,EACb,UAAU,EACV;QAAC,CAAC;QAAE,GAAG,YAAY;KAAC,CACrB,CAAC;IACF,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB,GACD,OAAO,GAEX,CAAC,SAAS;IAAE,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAA;CAAE,GAE5C,CAAC;KACE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO,GACpD,GAAG,GACH,KAAK,CAAC,CAAC,EAAE,aAAa,CACxB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EACnB,UAAU,EACV;QAAC,CAAC;QAAE,GAAG,YAAY;KAAC,CACrB;CACF,GAAG;IAAE,QAAQ,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC,GACxB,CAAC,QAAQ,SAAS,MAAM,CAAC,GACrB;IACE,KAAK,EAAE,aAAa,CAClB,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EACxB,UAAU,EACV;QAAC,CAAC;QAAE,GAAG,YAAY;KAAC,CACrB,CAAC;IACF,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB,GACD,KAAK,CAAC,GACV,OAAO,GACX,CAAC,SAAS;IACN,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAC3C,GAEG;IACE,KAAK,EAAE,aAAa,CAClB,OAAO,CAAC,IAAI,CAAC,EACb,UAAU,EACV;QAAC,CAAC;QAAE,GAAG,YAAY;KAAC,CACrB,CAAC;IACF,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB,GACD,OAAO,GACX,OAAO,CAAC,CAAC;AAEvB,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,GAC9D,aAAa,CAAC,CAAC,CAAC,GAChB,CAAC,CAAC;AAEN,MAAM,MAAM,QAAQ,CAClB,CAAC,EACD,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,IAC3C,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAE/B,KAAK,kBAAkB,CAAC,KAAK,IAAI,KAAK,SAAS;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAC7D,IAAI,GACJ,KAAK,CAAC;AAEV,MAAM,MAAM,YAAY,CACtB,CAAC,EACD,KAAK,EACL,UAAU,SAAS,MAAM,GAAG,EAAE,EAC9B,YAAY,SAAS,MAAM,EAAE,GAAG,EAAE,IAChC,UAAU,SAAS,YAAY,CAAC,QAAQ,CAAC,GACzC,CAAC,GACD,KAAK,SAAS,OAAO,GAAG,SAAS,GAC/B,CAAC,GAED;IAAC,CAAC;CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,OAAO,GAC3B,KAAK,SAAS;IAAE,KAAK,EAAE,MAAM,SAAS,CAAA;CAAE,GAEtC,AADA,uBAAuB;AACvB,CACI,CAAC,OAAO,CAAC,IAAI,CAAC,GACZ,YAAY,CACV,OAAO,CAAC,IAAI,CAAC,EACb,SAAS,EACT,UAAU,EACV;IAAC,CAAC;IAAE,GAAG,YAAY;CAAC,CACrB,CAAC,GACJ,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CACrC,EAAE,GACD,CAAC,GACH,KAAK,GACP,CAAC,GAEH;IAAC,CAAC;CAAC,SAAS,CAAC;IAAE,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAA;CAAE,CAAC,GACpD,QAAQ,SAAS,MAAM,CAAC,GACtB,KAAK,SAAS;IAAE,KAAK,EAAE,MAAM,SAAS,CAAA;CAAE,GAEtC,AADA,kCAAkC;AAClC;IACE,CAAC,GAAG,EAAE,MAAM,GACR,YAAY,CACV,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EACxB,SAAS,EACT,UAAU,EACV;QAAC,CAAC;QAAE,GAAG,YAAY;KAAC,CACrB,GACD,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;CACxC,GAAG,CAAC,GACL,KAAK,GACP,MAAM,KAAK,SAAS,KAAK,GACvB,CAAC,GAED,AADA,sBAAsB;AACtB;IACE,CAAC,UAAU,GAAG,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,GAAG,SAAS,MAAM,CAAC,CAAC,CAAC,GACnD,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO,GAE7B,YAAY,CACV,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EACnB,KAAK,CAAC,GAAG,CAAC,EACV,UAAU,EACV;QAAC,CAAC;QAAE,GAAG,YAAY;KAAC,CACrB,GACD,CAAC,SAAS,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC,GAC9C,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAClC,KAAK,GACP,KAAK;CACV,GAAG,CAAC,GACT,CAAC,CAAC,CAAC,SAAS;IACR;QACE,KAAK,EAAE,UAAU,CAAC;QAClB,IAAI,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;KAC3C;CACF,GAED,AADA,yBAAyB;AACzB;IACE,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IAChC,gBAAgB,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IAC5C,UAAU,EAAE;QACV,CAAC,GAAG,EAAE,SAAS,GAAG;YAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;SAAE,CAAC;KAC5C,CAAC;CACH,GAAG;IAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GACxD,CAAC,CAAC,CAAC,SAAS;IACR;QACE,KAAK,EAAE,gBAAgB,CAAC;KACzB;CACF,GACD,CAAC,GACD,CAAC,CAAC,CAAC,SAAS;IACR;QACE,KAAK,EAAE,aAAa,CAAC;KACtB;CACF,GACD,CAAC,GACD,KAAK,CAAC"}
1
+ {"version":3,"file":"deepLoading.d.ts","sourceRoot":"","sources":["../../../src/tools/coValues/deepLoading.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export { CoValueBase } from "./internal.js";
8
8
  export { Profile } from "./internal.js";
9
9
  export { SchemaUnion } from "./internal.js";
10
10
  export { co } from "./internal.js";
11
- export type { CoValueClass, CoValueFromRaw, DeeplyLoaded, Resolved, RefsToResolve, RefsToResolveStrict, CoMapInit, CoFeedEntry, TextPos, AccountClass, AccountCreationProps, } from "./internal.js";
11
+ export type { CoValueClass, CoValueFromRaw, DeeplyLoaded, Resolved, RefsToResolve, RefsToResolveStrict, CoMapInit, CoFeedEntry, TextPos, AccountClass, AccountCreationProps, WithHelpers, } from "./internal.js";
12
12
  export { CoMap, CoList, BinaryCoStream, CoFeed, CoStream, FileStream, CoPlainText, CoRichText, Account, isControlledAccount, createCoValueObservable, loadCoValue, subscribeToCoValue, ImageDefinition, SubscriptionScope, } from "./internal.js";
13
13
  export { JazzContextManager, type JazzContextManagerAuthProps, } from "./internal.js";
14
14
  export { AuthSecretStorage, type AuthSetPayload, } from "./auth/AuthSecretStorage.js";
@@ -1 +1 @@
1
- {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/tools/exports.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,WAAW,GACZ,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,CAAC,MAAM,2CAA2C,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,OAAO,EACP,YAAY,EACZ,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,MAAM,EACN,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,KAAK,2BAA2B,GACjC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,wCAAwC,EACxC,8BAA8B,EAC9B,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAEvB,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/tools/exports.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,WAAW,GACZ,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,CAAC,MAAM,2CAA2C,CAAC;AAE/D,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,MAAM,EACN,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,KAAK,2BAA2B,GACjC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,wCAAwC,EACxC,8BAA8B,EAC9B,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAEvB,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC"}
package/package.json CHANGED
@@ -139,7 +139,7 @@
139
139
  },
140
140
  "type": "module",
141
141
  "license": "MIT",
142
- "version": "0.15.13",
142
+ "version": "0.15.14",
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.28",
161
- "cojson": "0.15.13",
162
- "cojson-storage-indexeddb": "0.15.13",
163
- "cojson-transport-ws": "0.15.13"
161
+ "cojson": "0.15.14",
162
+ "cojson-storage-indexeddb": "0.15.14",
163
+ "cojson-transport-ws": "0.15.14"
164
164
  },
165
165
  "devDependencies": {
166
166
  "@scure/bip39": "^1.3.0",
@@ -175,7 +175,7 @@
175
175
  "playwright": "^1.50.1",
176
176
  "tsup": "8.5.0",
177
177
  "typescript": "5.6.2",
178
- "vitest": "3.1.3",
178
+ "vitest": "3.2.4",
179
179
  "ws": "^8.14.2"
180
180
  },
181
181
  "peerDependencies": {
@@ -2,11 +2,23 @@ import { SessionID } from "cojson";
2
2
  import { ItemsSym } from "../internal.js";
3
3
  import { type Account } from "./account.js";
4
4
  import { CoFeedEntry } from "./coFeed.js";
5
- import { type CoKeys, type CoMap } from "./coMap.js";
5
+ import { type CoKeys } from "./coMap.js";
6
6
  import { type CoValue, type ID } from "./interfaces.js";
7
7
 
8
8
  type NotNull<T> = Exclude<T, null>;
9
9
 
10
+ /**
11
+ * Used to check if T is a union type.
12
+ *
13
+ * If T is a union type, the left hand side of the extends becomes a union of function types.
14
+ * The right hand side is always a single function type.
15
+ */
16
+ type IsUnion<T, U = T> = (T extends any ? (x: T) => void : never) extends (
17
+ x: U,
18
+ ) => void
19
+ ? false
20
+ : true;
21
+
10
22
  export type RefsToResolve<
11
23
  V,
12
24
  DepthLimit extends number = 10,
@@ -16,56 +28,58 @@ export type RefsToResolve<
16
28
  | (DepthLimit extends CurrentDepth["length"]
17
29
  ? // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
30
  any
19
- : // Basically V extends CoList - but if we used that we'd introduce circularity into the definition of CoList itself
20
- V extends Array<infer Item>
21
- ?
22
- | {
23
- $each: RefsToResolve<
24
- NotNull<Item>,
25
- DepthLimit,
26
- [0, ...CurrentDepth]
27
- >;
28
- $onError?: null;
29
- }
30
- | boolean
31
- : // Basically V extends CoMap | Group | Account - but if we used that we'd introduce circularity into the definition of CoMap itself
32
- V extends { _type: "CoMap" | "Group" | "Account" }
31
+ : IsUnion<NonNullable<V>> extends true
32
+ ? true
33
+ : // Basically V extends CoList - but if we used that we'd introduce circularity into the definition of CoList itself
34
+ V extends Array<infer Item>
33
35
  ?
34
- | ({
35
- [Key in CoKeys<V> as NonNullable<V[Key]> extends CoValue
36
- ? Key
37
- : never]?: RefsToResolve<
38
- NonNullable<V[Key]>,
36
+ | {
37
+ $each: RefsToResolve<
38
+ NotNull<Item>,
39
39
  DepthLimit,
40
40
  [0, ...CurrentDepth]
41
41
  >;
42
- } & { $onError?: null })
43
- | (ItemsSym extends keyof V
44
- ? {
45
- $each: RefsToResolve<
46
- NonNullable<V[ItemsSym]>,
47
- DepthLimit,
48
- [0, ...CurrentDepth]
49
- >;
50
- $onError?: null;
51
- }
52
- : never)
42
+ $onError?: null;
43
+ }
53
44
  | boolean
54
- : V extends {
55
- _type: "CoStream";
56
- byMe: CoFeedEntry<infer Item> | undefined;
57
- }
45
+ : // Basically V extends CoMap | Group | Account - but if we used that we'd introduce circularity into the definition of CoMap itself
46
+ V extends { _type: "CoMap" | "Group" | "Account" }
58
47
  ?
59
- | {
60
- $each: RefsToResolve<
61
- NotNull<Item>,
48
+ | ({
49
+ [Key in CoKeys<V> as NonNullable<V[Key]> extends CoValue
50
+ ? Key
51
+ : never]?: RefsToResolve<
52
+ NonNullable<V[Key]>,
62
53
  DepthLimit,
63
54
  [0, ...CurrentDepth]
64
55
  >;
65
- $onError?: null;
66
- }
56
+ } & { $onError?: null })
57
+ | (ItemsSym extends keyof V
58
+ ? {
59
+ $each: RefsToResolve<
60
+ NonNullable<V[ItemsSym]>,
61
+ DepthLimit,
62
+ [0, ...CurrentDepth]
63
+ >;
64
+ $onError?: null;
65
+ }
66
+ : never)
67
67
  | boolean
68
- : boolean);
68
+ : V extends {
69
+ _type: "CoStream";
70
+ byMe: CoFeedEntry<infer Item> | undefined;
71
+ }
72
+ ?
73
+ | {
74
+ $each: RefsToResolve<
75
+ NotNull<Item>,
76
+ DepthLimit,
77
+ [0, ...CurrentDepth]
78
+ >;
79
+ $onError?: null;
80
+ }
81
+ | boolean
82
+ : boolean);
69
83
 
70
84
  export type RefsToResolveStrict<T, V> = V extends RefsToResolve<T>
71
85
  ? RefsToResolve<T>
@@ -35,6 +35,7 @@ export type {
35
35
  TextPos,
36
36
  AccountClass,
37
37
  AccountCreationProps,
38
+ WithHelpers,
38
39
  } from "./internal.js";
39
40
 
40
41
  export {
@@ -381,6 +381,64 @@ test("The resolve type doesn't accept extra keys", async () => {
381
381
  }
382
382
  });
383
383
 
384
+ test("The resolve type accepts keys from optional fields", async () => {
385
+ const Person = co.map({
386
+ name: z.string(),
387
+ });
388
+ const Dog = co.map({
389
+ type: z.literal("dog"),
390
+ owner: Person.optional(),
391
+ });
392
+ const Pets = co.list(Dog);
393
+
394
+ const pets = await Pets.create([
395
+ Dog.create({ type: "dog", owner: Person.create({ name: "Rex" }) }),
396
+ ]);
397
+
398
+ await pets.ensureLoaded({
399
+ resolve: {
400
+ $each: { owner: true },
401
+ },
402
+ });
403
+
404
+ expect(pets[0]?.owner?.name).toEqual("Rex");
405
+ });
406
+
407
+ test("The resolve type doesn't accept keys from discriminated unions", async () => {
408
+ const Person = co.map({
409
+ name: z.string(),
410
+ });
411
+ const Dog = co.map({
412
+ type: z.literal("dog"),
413
+ owner: Person,
414
+ });
415
+ const Cat = co.map({
416
+ type: z.literal("cat"),
417
+ });
418
+ const Pet = co.discriminatedUnion("type", [Dog, Cat]);
419
+ const Pets = co.list(Pet);
420
+
421
+ const pets = await Pets.create([
422
+ Dog.create({ type: "dog", owner: Person.create({ name: "Rex" }) }),
423
+ ]);
424
+
425
+ await pets.ensureLoaded({
426
+ resolve: {
427
+ $each: true,
428
+ },
429
+ });
430
+
431
+ await pets.ensureLoaded({
432
+ // @ts-expect-error cannot resolve owner
433
+ resolve: { $each: { owner: true } },
434
+ });
435
+
436
+ expect(pets).toBeTruthy();
437
+ if (pets?.[0]?.type === "dog") {
438
+ expect(pets[0].owner?.name).toEqual("Rex");
439
+ }
440
+ });
441
+
384
442
  describe("Deep loading with unauthorized account", async () => {
385
443
  const bob = await createJazzTestAccount({
386
444
  creationProps: { name: "Bob" },
package/vitest.config.ts CHANGED
@@ -1,22 +1,16 @@
1
- import { defineConfig } from "vitest/config";
1
+ import { defineProject } from "vitest/config";
2
2
 
3
- export default defineConfig({
3
+ export default defineProject({
4
4
  test: {
5
- workspace: [
6
- {
7
- test: {
8
- typecheck: {
9
- enabled: true,
10
- checker: "tsc",
11
- },
12
- include: ["src/**/*.test.ts"],
13
- name: "unit",
14
- },
15
- },
5
+ name: "jazz-tools",
6
+ typecheck: {
7
+ enabled: true,
8
+ checker: "tsc",
9
+ },
10
+ projects: [
16
11
  {
17
12
  test: {
18
13
  include: ["src/**/*.test.browser.ts"],
19
- name: "browser",
20
14
  browser: {
21
15
  enabled: true,
22
16
  provider: "playwright",
@@ -24,6 +18,13 @@ export default defineConfig({
24
18
  screenshotFailures: false,
25
19
  instances: [{ browser: "chromium" }],
26
20
  },
21
+ name: "browser",
22
+ },
23
+ },
24
+ {
25
+ test: {
26
+ include: ["src/**/*.test.{js,ts,svelte}"],
27
+ name: "unit",
27
28
  },
28
29
  },
29
30
  ],