jazz-tools 0.13.29 → 0.13.31

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.
@@ -11,18 +11,22 @@ export type RefsToResolve<V, DepthLimit extends number = 10, CurrentDepth extend
11
11
  0,
12
12
  ...CurrentDepth
13
13
  ]>;
14
+ $onError?: null;
14
15
  } | boolean : V extends {
15
16
  _type: "CoMap" | "Group" | "Account";
16
- } ? {
17
+ } ? ({
17
18
  [Key in CoKeys<V> as Clean<V[Key]> extends CoValue ? Key : never]?: RefsToResolve<Clean<V[Key]>, DepthLimit, [
18
19
  0,
19
20
  ...CurrentDepth
20
21
  ]>;
21
- } | (ItemsSym extends keyof V ? {
22
+ } & {
23
+ $onError?: null;
24
+ }) | (ItemsSym extends keyof V ? {
22
25
  $each: RefsToResolve<Clean<V[ItemsSym]>, DepthLimit, [
23
26
  0,
24
27
  ...CurrentDepth
25
28
  ]>;
29
+ $onError?: null;
26
30
  } : never) | boolean : V extends {
27
31
  _type: "CoStream";
28
32
  byMe: CoFeedEntry<infer Item> | undefined;
@@ -31,19 +35,23 @@ export type RefsToResolve<V, DepthLimit extends number = 10, CurrentDepth extend
31
35
  0,
32
36
  ...CurrentDepth
33
37
  ]>;
38
+ $onError?: null;
34
39
  } | boolean : boolean);
35
40
  export type RefsToResolveStrict<T, V> = V extends RefsToResolve<T> ? RefsToResolve<T> : V;
36
41
  export type Resolved<T, R extends RefsToResolve<T> | undefined> = DeeplyLoaded<T, R, 10, [
37
42
  ]>;
43
+ type onErrorNullEnabled<Depth> = Depth extends {
44
+ $onError: null;
45
+ } ? null : never;
38
46
  export type DeeplyLoaded<V, Depth, DepthLimit extends number = 10, CurrentDepth extends number[] = []> = DepthLimit extends CurrentDepth["length"] ? V : Depth extends boolean | undefined ? V : [
39
47
  V
40
48
  ] extends [Array<infer Item>] ? UnCoNotNull<Item> extends CoValue ? Depth extends {
41
49
  $each: infer ItemDepth;
42
50
  } ? // Deeply loaded CoList
43
- (UnCoNotNull<Item> & DeeplyLoaded<UnCoNotNull<Item>, ItemDepth, DepthLimit, [
51
+ ((Clean<Item> & DeeplyLoaded<Clean<Item>, ItemDepth, DepthLimit, [
44
52
  0,
45
53
  ...CurrentDepth
46
- ]>)[] & V : never : V : [
54
+ ]>) | onErrorNullEnabled<Depth["$each"]>)[] & V : never : V : [
47
55
  V
48
56
  ] extends [{
49
57
  _type: "CoMap" | "Group" | "Account";
@@ -54,13 +62,15 @@ export type DeeplyLoaded<V, Depth, DepthLimit extends number = 10, CurrentDepth
54
62
  [key: string]: DeeplyLoaded<Clean<V[ItemsSym]>, ItemDepth, DepthLimit, [
55
63
  0,
56
64
  ...CurrentDepth
57
- ]>;
58
- } & V : never : keyof Depth extends never ? V : // Deeply loaded CoMap
65
+ ]> | onErrorNullEnabled<ItemDepth>;
66
+ } & V : never : keyof Depth extends never ? V : Depth extends {
67
+ $onError: null;
68
+ } ? V : // Deeply loaded CoMap
59
69
  {
60
- -readonly [Key in keyof Depth]-?: Key extends CoKeys<V> ? Clean<V[Key]> extends CoValue ? DeeplyLoaded<Clean<V[Key]>, Depth[Key], DepthLimit, [
70
+ -readonly [Key in Exclude<keyof Depth, "$onError">]-?: Key extends CoKeys<V> ? Clean<V[Key]> extends CoValue ? DeeplyLoaded<Clean<V[Key]>, Depth[Key], DepthLimit, [
61
71
  0,
62
72
  ...CurrentDepth
63
- ]> | (undefined extends V[Key] ? undefined : never) : never : never;
73
+ ]> | (undefined extends V[Key] ? undefined : never) | onErrorNullEnabled<Depth[Key]> : never : never;
64
74
  } & V : [V] extends [
65
75
  {
66
76
  _type: "CoStream";
@@ -1 +1 @@
1
- {"version":3,"file":"deepLoading.d.ts","sourceRoot":"","sources":["../../src/coValues/deepLoading.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deepLoading.d.ts","sourceRoot":"","sources":["../../src/coValues/deepLoading.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -34,7 +34,7 @@ import {
34
34
  parseInviteLink,
35
35
  randomSessionProvider,
36
36
  subscribeToCoValue
37
- } from "./chunk-LMV6J7GN.js";
37
+ } from "./chunk-IJU4XPFS.js";
38
38
 
39
39
  // src/index.ts
40
40
  import { MAX_RECOMMENDED_TX_SIZE, cojsonInternals } from "cojson";
@@ -20,6 +20,7 @@ export declare class SubscriptionScope<D extends CoValue> {
20
20
  idsSubscribed: Set<string>;
21
21
  autoloaded: Set<string>;
22
22
  autoloadedKeys: Set<string>;
23
+ skipInvalidKeys: Set<string>;
23
24
  totalValidTransactions: number;
24
25
  silenceUpdates: boolean;
25
26
  constructor(node: LocalNode, resolve: RefsToResolve<D>, id: ID<D>, schema: RefEncoded<D>);
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionScope.d.ts","sourceRoot":"","sources":["../../src/subscribe/SubscriptionScope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubscriptionScope.d.ts","sourceRoot":"","sources":["../../src/subscribe/SubscriptionScope.ts"],"names":[],"mappings":"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"}
package/dist/testing.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  createAnonymousJazzContext,
6
6
  createJazzContext,
7
7
  randomSessionProvider
8
- } from "./chunk-LMV6J7GN.js";
8
+ } from "./chunk-IJU4XPFS.js";
9
9
 
10
10
  // src/testing.ts
11
11
  import { LocalNode } from "cojson";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deepLoading.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepLoading.test-d.d.ts","sourceRoot":"","sources":["../../src/tests/deepLoading.test-d.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -17,11 +17,11 @@
17
17
  },
18
18
  "type": "module",
19
19
  "license": "MIT",
20
- "version": "0.13.29",
20
+ "version": "0.13.31",
21
21
  "dependencies": {
22
22
  "@scure/bip39": "^1.3.0",
23
23
  "fast-myers-diff": "^3.2.0",
24
- "cojson": "0.13.29"
24
+ "cojson": "0.13.31"
25
25
  },
26
26
  "devDependencies": {
27
27
  "tsup": "8.3.5",
@@ -2,7 +2,7 @@ import { SessionID } from "cojson";
2
2
  import { ItemsSym, UnCo } from "../internal.js";
3
3
  import { type Account } from "./account.js";
4
4
  import { CoFeedEntry } from "./coFeed.js";
5
- import { type CoKeys } from "./coMap.js";
5
+ import { type CoKeys, type CoMap } from "./coMap.js";
6
6
  import { type CoValue, type ID } from "./interfaces.js";
7
7
 
8
8
  type UnCoNotNull<T> = UnCo<Exclude<T, null>>;
@@ -26,12 +26,13 @@ export type RefsToResolve<
26
26
  DepthLimit,
27
27
  [0, ...CurrentDepth]
28
28
  >;
29
+ $onError?: null;
29
30
  }
30
31
  | boolean
31
32
  : // Basically V extends CoMap | Group | Account - but if we used that we'd introduce circularity into the definition of CoMap itself
32
33
  V extends { _type: "CoMap" | "Group" | "Account" }
33
34
  ?
34
- | {
35
+ | ({
35
36
  [Key in CoKeys<V> as Clean<V[Key]> extends CoValue
36
37
  ? Key
37
38
  : never]?: RefsToResolve<
@@ -39,7 +40,7 @@ export type RefsToResolve<
39
40
  DepthLimit,
40
41
  [0, ...CurrentDepth]
41
42
  >;
42
- }
43
+ } & { $onError?: null })
43
44
  | (ItemsSym extends keyof V
44
45
  ? {
45
46
  $each: RefsToResolve<
@@ -47,6 +48,7 @@ export type RefsToResolve<
47
48
  DepthLimit,
48
49
  [0, ...CurrentDepth]
49
50
  >;
51
+ $onError?: null;
50
52
  }
51
53
  : never)
52
54
  | boolean
@@ -61,6 +63,7 @@ export type RefsToResolve<
61
63
  DepthLimit,
62
64
  [0, ...CurrentDepth]
63
65
  >;
66
+ $onError?: null;
64
67
  }
65
68
  | boolean
66
69
  : boolean);
@@ -76,6 +79,10 @@ export type Resolved<T, R extends RefsToResolve<T> | undefined> = DeeplyLoaded<
76
79
  []
77
80
  >;
78
81
 
82
+ type onErrorNullEnabled<Depth> = Depth extends { $onError: null }
83
+ ? null
84
+ : never;
85
+
79
86
  export type DeeplyLoaded<
80
87
  V,
81
88
  Depth,
@@ -90,13 +97,16 @@ export type DeeplyLoaded<
90
97
  ? UnCoNotNull<Item> extends CoValue
91
98
  ? Depth extends { $each: infer ItemDepth }
92
99
  ? // Deeply loaded CoList
93
- (UnCoNotNull<Item> &
94
- DeeplyLoaded<
95
- UnCoNotNull<Item>,
96
- ItemDepth,
97
- DepthLimit,
98
- [0, ...CurrentDepth]
99
- >)[] &
100
+ (
101
+ | (Clean<Item> &
102
+ DeeplyLoaded<
103
+ Clean<Item>,
104
+ ItemDepth,
105
+ DepthLimit,
106
+ [0, ...CurrentDepth]
107
+ >)
108
+ | onErrorNullEnabled<Depth["$each"]>
109
+ )[] &
100
110
  V // the CoList base type needs to be intersected after so that built-in methods return the correct narrowed array type
101
111
  : never
102
112
  : V
@@ -106,31 +116,39 @@ export type DeeplyLoaded<
106
116
  ? Depth extends { $each: infer ItemDepth }
107
117
  ? // Deeply loaded Record-like CoMap
108
118
  {
109
- [key: string]: DeeplyLoaded<
110
- Clean<V[ItemsSym]>,
111
- ItemDepth,
112
- DepthLimit,
113
- [0, ...CurrentDepth]
114
- >;
119
+ [key: string]:
120
+ | DeeplyLoaded<
121
+ Clean<V[ItemsSym]>,
122
+ ItemDepth,
123
+ DepthLimit,
124
+ [0, ...CurrentDepth]
125
+ >
126
+ | onErrorNullEnabled<ItemDepth>;
115
127
  } & V // same reason as in CoList
116
128
  : never
117
129
  : keyof Depth extends never // Depth = {}
118
130
  ? V
119
- : // Deeply loaded CoMap
120
- {
121
- -readonly [Key in keyof Depth]-?: Key extends CoKeys<V>
122
- ? Clean<V[Key]> extends CoValue
123
- ?
124
- | DeeplyLoaded<
125
- Clean<V[Key]>,
126
- Depth[Key],
127
- DepthLimit,
128
- [0, ...CurrentDepth]
129
- >
130
- | (undefined extends V[Key] ? undefined : never)
131
- : never
132
- : never;
133
- } & V // same reason as in CoList
131
+ : Depth extends { $onError: null }
132
+ ? V
133
+ : // Deeply loaded CoMap
134
+ {
135
+ -readonly [Key in Exclude<
136
+ keyof Depth,
137
+ "$onError"
138
+ >]-?: Key extends CoKeys<V>
139
+ ? Clean<V[Key]> extends CoValue
140
+ ?
141
+ | DeeplyLoaded<
142
+ Clean<V[Key]>,
143
+ Depth[Key],
144
+ DepthLimit,
145
+ [0, ...CurrentDepth]
146
+ >
147
+ | (undefined extends V[Key] ? undefined : never)
148
+ | onErrorNullEnabled<Depth[Key]>
149
+ : never
150
+ : never;
151
+ } & V // same reason as in CoList
134
152
  : [V] extends [
135
153
  {
136
154
  _type: "CoStream";
@@ -28,6 +28,7 @@ export class SubscriptionScope<D extends CoValue> {
28
28
  idsSubscribed = new Set<string>();
29
29
  autoloaded = new Set<string>();
30
30
  autoloadedKeys = new Set<string>();
31
+ skipInvalidKeys = new Set<string>();
31
32
  totalValidTransactions = 0;
32
33
 
33
34
  silenceUpdates = false;
@@ -140,13 +141,21 @@ export class SubscriptionScope<D extends CoValue> {
140
141
  continue;
141
142
  }
142
143
 
144
+ if (this.skipInvalidKeys.has(key)) {
145
+ continue;
146
+ }
147
+
143
148
  errorType = value.type;
144
149
  if (value.issues) {
145
150
  issues.push(...value.issues);
146
151
  }
147
152
  }
148
153
 
149
- for (const value of this.validationErrors.values()) {
154
+ for (const [key, value] of this.validationErrors.entries()) {
155
+ if (this.skipInvalidKeys.has(key)) {
156
+ continue;
157
+ }
158
+
150
159
  errorType = value.type;
151
160
  if (value.issues) {
152
161
  issues.push(...value.issues);
@@ -252,8 +261,10 @@ export class SubscriptionScope<D extends CoValue> {
252
261
  return;
253
262
  }
254
263
 
264
+ const resolve = this.resolve as Record<string, any>;
265
+
255
266
  // Adding the key to the resolve object to resolve the key when calling loadChildren
256
- this.resolve[key as keyof typeof this.resolve] = true;
267
+ resolve[key] = true;
257
268
  // Track the keys that are autoloaded to flag any id on that key as autoloaded
258
269
  this.autoloadedKeys.add(key);
259
270
 
@@ -419,6 +430,10 @@ export class SubscriptionScope<D extends CoValue> {
419
430
  }
420
431
 
421
432
  loadCoMapKey(map: CoMap, key: string, depth: Record<string, any> | true) {
433
+ if (key === "$onError") {
434
+ return undefined;
435
+ }
436
+
422
437
  const id = map._raw.get(key) as string | undefined;
423
438
  const descriptor = map.getDescriptor(key);
424
439
 
@@ -513,6 +528,16 @@ export class SubscriptionScope<D extends CoValue> {
513
528
  this.autoloaded.add(id);
514
529
  }
515
530
 
531
+ const skipInvalid = typeof query === "object" && query.$onError === null;
532
+
533
+ if (skipInvalid) {
534
+ if (key) {
535
+ this.skipInvalidKeys.add(key);
536
+ }
537
+
538
+ this.skipInvalidKeys.add(id);
539
+ }
540
+
516
541
  // Cloning the resolve objects to avoid mutating the original object when tracking autoloaded values
517
542
  const resolve =
518
543
  typeof query === "object" && query !== null ? { ...query } : query;