@voidhash/mimic 1.0.0-beta.13 → 1.0.0-beta.15

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
- > @voidhash/mimic@1.0.0-beta.13 build /home/runner/work/mimic/mimic/packages/mimic
2
+ > @voidhash/mimic@1.0.0-beta.15 build /home/runner/work/mimic/mimic/packages/mimic
3
3
  > tsdown
4
4
 
5
5
  ℹ tsdown v0.18.2 powered by rolldown v1.0.0-beta.55
@@ -12,17 +12,18 @@
12
12
  ℹ [CJS] dist/client/index.cjs  1.92 kB │ gzip: 0.42 kB
13
13
  ℹ [CJS] dist/server/index.cjs  0.67 kB │ gzip: 0.26 kB
14
14
  ℹ [CJS] dist/primitives/Tree.cjs 30.01 kB │ gzip: 4.99 kB
15
- ℹ [CJS] dist/client/ClientDocument.cjs 23.42 kB │ gzip: 5.12 kB
15
+ ℹ [CJS] dist/client/ClientDocument.cjs 24.61 kB │ gzip: 5.36 kB
16
16
  ℹ [CJS] dist/FractionalIndex.cjs 16.98 kB │ gzip: 3.39 kB
17
17
  ℹ [CJS] dist/utils/tree-helpers.cjs 13.42 kB │ gzip: 3.18 kB
18
18
  ℹ [CJS] dist/primitives/Array.cjs 12.23 kB │ gzip: 2.67 kB
19
+ ℹ [CJS] dist/primitives/Struct.cjs 11.53 kB │ gzip: 2.58 kB
19
20
  ℹ [CJS] dist/client/WebSocketTransport.cjs 10.98 kB │ gzip: 2.71 kB
20
- ℹ [CJS] dist/primitives/Struct.cjs 10.26 kB │ gzip: 2.34 kB
21
21
  ℹ [CJS] dist/primitives/Either.cjs  8.08 kB │ gzip: 2.06 kB
22
22
  ℹ [CJS] dist/client/Rebase.cjs  7.85 kB │ gzip: 1.76 kB
23
23
  ℹ [CJS] dist/primitives/Union.cjs  7.49 kB │ gzip: 1.78 kB
24
24
  ℹ [CJS] dist/EffectSchema.cjs  6.75 kB │ gzip: 1.63 kB
25
25
  ℹ [CJS] dist/Document.cjs  5.30 kB │ gzip: 1.77 kB
26
+ ℹ [CJS] dist/primitives/shared.cjs  5.12 kB │ gzip: 1.66 kB
26
27
  ℹ [CJS] dist/primitives/String.cjs  5.05 kB │ gzip: 1.37 kB
27
28
  ℹ [CJS] dist/client/errors.cjs  4.80 kB │ gzip: 0.97 kB
28
29
  ℹ [CJS] dist/primitives/Number.cjs  4.63 kB │ gzip: 1.23 kB
@@ -31,11 +32,10 @@
31
32
  ℹ [CJS] dist/primitives/Literal.cjs  3.91 kB │ gzip: 1.07 kB
32
33
  ℹ [CJS] dist/server/ServerDocument.cjs  3.74 kB │ gzip: 1.16 kB
33
34
  ℹ [CJS] dist/client/StateMonitor.cjs  3.71 kB │ gzip: 1.27 kB
34
- ℹ [CJS] dist/primitives/shared.cjs  3.69 kB │ gzip: 1.25 kB
35
35
  ℹ [CJS] dist/server/errors.cjs  3.29 kB │ gzip: 0.70 kB
36
36
  ℹ [CJS] dist/primitives/TreeNode.cjs  2.67 kB │ gzip: 0.92 kB
37
+ ℹ [CJS] dist/Primitive.cjs  2.41 kB │ gzip: 0.61 kB
37
38
  ℹ [CJS] dist/Presence.cjs  2.36 kB │ gzip: 0.87 kB
38
- ℹ [CJS] dist/Primitive.cjs  2.34 kB │ gzip: 0.59 kB
39
39
  ℹ [CJS] dist/primitives/Lazy.cjs  1.81 kB │ gzip: 0.57 kB
40
40
  ℹ [CJS] dist/Operation.cjs  1.75 kB │ gzip: 0.68 kB
41
41
  ℹ [CJS] dist/Transaction.cjs  1.66 kB │ gzip: 0.68 kB
@@ -52,14 +52,14 @@
52
52
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectWithoutPropertiesLoose.cjs  0.37 kB │ gzip: 0.24 kB
53
53
  ℹ [CJS] dist/client/Transport.cjs  0.21 kB │ gzip: 0.16 kB
54
54
  ℹ [CJS] dist/Transform.cjs  0.20 kB │ gzip: 0.16 kB
55
- ℹ [CJS] 44 files, total: 219.61 kB
55
+ ℹ [CJS] 44 files, total: 223.58 kB
56
56
  ℹ [CJS] dist/primitives/Tree.d.cts.map  6.90 kB │ gzip: 2.60 kB
57
- ℹ [CJS] dist/primitives/Struct.d.cts.map  4.62 kB │ gzip: 1.94 kB
57
+ ℹ [CJS] dist/primitives/Struct.d.cts.map  4.63 kB │ gzip: 1.94 kB
58
58
  ℹ [CJS] dist/utils/tree-helpers.d.cts.map  3.61 kB │ gzip: 1.31 kB
59
59
  ℹ [CJS] dist/primitives/Array.d.cts.map  3.27 kB │ gzip: 1.36 kB
60
60
  ℹ [CJS] dist/primitives/Union.d.cts.map  3.16 kB │ gzip: 1.38 kB
61
61
  ℹ [CJS] dist/primitives/Either.d.cts.map  3.12 kB │ gzip: 1.26 kB
62
- ℹ [CJS] dist/primitives/shared.d.cts.map  2.28 kB │ gzip: 0.91 kB
62
+ ℹ [CJS] dist/primitives/shared.d.cts.map  2.31 kB │ gzip: 0.92 kB
63
63
  ℹ [CJS] dist/primitives/TreeNode.d.cts.map  2.27 kB │ gzip: 1.01 kB
64
64
  ℹ [CJS] dist/primitives/String.d.cts.map  2.26 kB │ gzip: 1.00 kB
65
65
  ℹ [CJS] dist/primitives/Literal.d.cts.map  2.16 kB │ gzip: 0.99 kB
@@ -91,16 +91,16 @@
91
91
  ℹ [CJS] dist/primitives/Tree.d.cts 13.50 kB │ gzip: 3.50 kB
92
92
  ℹ [CJS] dist/utils/tree-helpers.d.cts 12.18 kB │ gzip: 2.52 kB
93
93
  ℹ [CJS] dist/client/Transport.d.cts  7.30 kB │ gzip: 1.84 kB
94
+ ℹ [CJS] dist/primitives/shared.d.cts  7.16 kB │ gzip: 2.19 kB
94
95
  ℹ [CJS] dist/client/ClientDocument.d.cts  6.99 kB │ gzip: 2.01 kB
95
- ℹ [CJS] dist/primitives/Struct.d.cts  6.93 kB │ gzip: 1.84 kB
96
- ℹ [CJS] dist/primitives/shared.d.cts  6.89 kB │ gzip: 2.09 kB
96
+ ℹ [CJS] dist/primitives/Struct.d.cts  6.96 kB │ gzip: 1.86 kB
97
97
  ℹ [CJS] dist/server/ServerDocument.d.cts  5.48 kB │ gzip: 1.76 kB
98
98
  ℹ [CJS] dist/primitives/Either.d.cts  5.44 kB │ gzip: 1.54 kB
99
99
  ℹ [CJS] dist/primitives/Array.d.cts  5.01 kB │ gzip: 1.44 kB
100
100
  ℹ [CJS] dist/client/Rebase.d.cts  4.88 kB │ gzip: 1.14 kB
101
101
  ℹ [CJS] dist/primitives/Union.d.cts  4.58 kB │ gzip: 1.26 kB
102
102
  ℹ [CJS] dist/primitives/TreeNode.d.cts  4.28 kB │ gzip: 1.29 kB
103
- ℹ [CJS] dist/Primitive.d.cts  3.79 kB │ gzip: 0.82 kB
103
+ ℹ [CJS] dist/Primitive.d.cts  3.85 kB │ gzip: 0.83 kB
104
104
  ℹ [CJS] dist/client/StateMonitor.d.cts  3.33 kB │ gzip: 1.07 kB
105
105
  ℹ [CJS] dist/EffectSchema.d.cts  3.20 kB │ gzip: 0.92 kB
106
106
  ℹ [CJS] dist/primitives/String.d.cts  3.08 kB │ gzip: 0.85 kB
@@ -120,34 +120,34 @@
120
120
  ℹ [CJS] dist/client/WebSocketTransport.d.cts  1.22 kB │ gzip: 0.55 kB
121
121
  ℹ [CJS] dist/OperationDefinition.d.cts  1.21 kB │ gzip: 0.40 kB
122
122
  ℹ [CJS] dist/Transform.d.cts  0.48 kB │ gzip: 0.26 kB
123
- ℹ [CJS] 67 files, total: 185.94 kB
124
- ✔ Build complete in 6276ms
123
+ ℹ [CJS] 67 files, total: 186.35 kB
124
+ ✔ Build complete in 6049ms
125
125
  ℹ [ESM] dist/index.mjs  1.13 kB │ gzip: 0.29 kB
126
126
  ℹ [ESM] dist/client/index.mjs  0.99 kB │ gzip: 0.28 kB
127
127
  ℹ [ESM] dist/server/index.mjs  0.41 kB │ gzip: 0.17 kB
128
128
  ℹ [ESM] dist/primitives/Tree.mjs.map 68.20 kB │ gzip: 12.85 kB
129
- ℹ [ESM] dist/client/ClientDocument.mjs.map 54.81 kB │ gzip: 12.64 kB
129
+ ℹ [ESM] dist/client/ClientDocument.mjs.map 56.58 kB │ gzip: 12.99 kB
130
130
  ℹ [ESM] dist/FractionalIndex.mjs.map 52.10 kB │ gzip: 10.05 kB
131
131
  ℹ [ESM] dist/primitives/Tree.mjs 28.14 kB │ gzip: 4.95 kB
132
+ ℹ [ESM] dist/primitives/Struct.mjs.map 27.59 kB │ gzip: 6.97 kB
132
133
  ℹ [ESM] dist/primitives/Array.mjs.map 26.06 kB │ gzip: 6.49 kB
133
- ℹ [ESM] dist/primitives/Struct.mjs.map 25.49 kB │ gzip: 6.51 kB
134
134
  ℹ [ESM] dist/utils/tree-helpers.mjs.map 24.70 kB │ gzip: 5.20 kB
135
+ ℹ [ESM] dist/client/ClientDocument.mjs 24.17 kB │ gzip: 5.32 kB
135
136
  ℹ [ESM] dist/client/WebSocketTransport.mjs.map 23.44 kB │ gzip: 5.75 kB
136
- ℹ [ESM] dist/client/ClientDocument.mjs 22.98 kB │ gzip: 5.08 kB
137
137
  ℹ [ESM] dist/primitives/Union.mjs.map 18.59 kB │ gzip: 4.65 kB
138
138
  ℹ [ESM] dist/primitives/Either.mjs.map 16.82 kB │ gzip: 4.14 kB
139
139
  ℹ [ESM] dist/EffectSchema.mjs.map 16.73 kB │ gzip: 3.54 kB
140
140
  ℹ [ESM] dist/FractionalIndex.mjs 16.49 kB │ gzip: 3.36 kB
141
+ ℹ [ESM] dist/primitives/shared.mjs.map 15.63 kB │ gzip: 4.45 kB
141
142
  ℹ [ESM] dist/client/Rebase.mjs.map 14.15 kB │ gzip: 3.21 kB
142
143
  ℹ [ESM] dist/server/ServerDocument.mjs.map 14.09 kB │ gzip: 3.86 kB
143
144
  ℹ [ESM] dist/utils/tree-helpers.mjs 13.31 kB │ gzip: 3.15 kB
144
145
  ℹ [ESM] dist/Document.mjs.map 13.29 kB │ gzip: 4.11 kB
145
- ℹ [ESM] dist/primitives/shared.mjs.map 13.14 kB │ gzip: 3.69 kB
146
146
  ℹ [ESM] dist/primitives/Array.mjs 11.09 kB │ gzip: 2.65 kB
147
147
  ℹ [ESM] dist/client/WebSocketTransport.mjs 10.81 kB │ gzip: 2.68 kB
148
+ ℹ [ESM] dist/primitives/Struct.mjs 10.49 kB │ gzip: 2.56 kB
148
149
  ℹ [ESM] dist/client/StateMonitor.mjs.map 10.39 kB │ gzip: 3.04 kB
149
150
  ℹ [ESM] dist/primitives/String.mjs.map  9.73 kB │ gzip: 2.71 kB
150
- ℹ [ESM] dist/primitives/Struct.mjs  9.32 kB │ gzip: 2.32 kB
151
151
  ℹ [ESM] dist/client/Transport.mjs.map  9.09 kB │ gzip: 1.86 kB
152
152
  ℹ [ESM] dist/primitives/Number.mjs.map  8.75 kB │ gzip: 2.43 kB
153
153
  ℹ [ESM] dist/client/Rebase.mjs  7.61 kB │ gzip: 1.73 kB
@@ -161,7 +161,8 @@
161
161
  ℹ [ESM] dist/primitives/TreeNode.mjs.map  6.47 kB │ gzip: 2.05 kB
162
162
  ℹ [ESM] dist/client/errors.mjs.map  5.68 kB │ gzip: 1.37 kB
163
163
  ℹ [ESM] dist/Document.mjs  5.03 kB │ gzip: 1.74 kB
164
- ℹ [ESM] dist/primitives/Struct.d.mts.map  4.63 kB │ gzip: 1.96 kB
164
+ ℹ [ESM] dist/primitives/shared.mjs  4.94 kB │ gzip: 1.66 kB
165
+ ℹ [ESM] dist/primitives/Struct.d.mts.map  4.65 kB │ gzip: 1.98 kB
165
166
  ℹ [ESM] dist/primitives/Lazy.mjs.map  4.59 kB │ gzip: 1.40 kB
166
167
  ℹ [ESM] dist/Presence.mjs.map  4.56 kB │ gzip: 1.30 kB
167
168
  ℹ [ESM] dist/primitives/String.mjs  4.44 kB │ gzip: 1.35 kB
@@ -173,7 +174,6 @@
173
174
  ℹ [ESM] dist/utils/tree-helpers.d.mts.map  3.61 kB │ gzip: 1.31 kB
174
175
  ℹ [ESM] dist/client/StateMonitor.mjs  3.60 kB │ gzip: 1.23 kB
175
176
  ℹ [ESM] dist/server/ServerDocument.mjs  3.56 kB │ gzip: 1.13 kB
176
- ℹ [ESM] dist/primitives/shared.mjs  3.55 kB │ gzip: 1.25 kB
177
177
  ℹ [ESM] dist/primitives/Boolean.mjs  3.43 kB │ gzip: 1.05 kB
178
178
  ℹ [ESM] dist/primitives/Literal.mjs  3.33 kB │ gzip: 1.05 kB
179
179
  ℹ [ESM] dist/primitives/Array.d.mts.map  3.26 kB │ gzip: 1.35 kB
@@ -185,12 +185,12 @@
185
185
  ℹ [ESM] dist/primitives/TreeNode.d.mts.map  2.45 kB │ gzip: 1.07 kB
186
186
  ℹ [ESM] dist/ProxyEnvironment.mjs.map  2.42 kB │ gzip: 0.93 kB
187
187
  ℹ [ESM] dist/primitives/TreeNode.mjs  2.42 kB │ gzip: 0.93 kB
188
- ℹ [ESM] dist/primitives/shared.d.mts.map  2.28 kB │ gzip: 0.91 kB
188
+ ℹ [ESM] dist/primitives/shared.d.mts.map  2.31 kB │ gzip: 0.92 kB
189
189
  ℹ [ESM] dist/primitives/String.d.mts.map  2.26 kB │ gzip: 1.00 kB
190
190
  ℹ [ESM] dist/primitives/Literal.d.mts.map  2.16 kB │ gzip: 0.99 kB
191
191
  ℹ [ESM] dist/Presence.mjs  2.15 kB │ gzip: 0.80 kB
192
192
  ℹ [ESM] dist/primitives/Number.d.mts.map  2.13 kB │ gzip: 0.95 kB
193
- ℹ [ESM] dist/Primitive.mjs  1.98 kB │ gzip: 0.57 kB
193
+ ℹ [ESM] dist/Primitive.mjs  2.06 kB │ gzip: 0.59 kB
194
194
  ℹ [ESM] dist/client/ClientDocument.d.mts.map  1.85 kB │ gzip: 0.79 kB
195
195
  ℹ [ESM] dist/primitives/Boolean.d.mts.map  1.76 kB │ gzip: 0.81 kB
196
196
  ℹ [ESM] dist/primitives/Lazy.mjs  1.57 kB │ gzip: 0.58 kB
@@ -237,16 +237,16 @@
237
237
  ℹ [ESM] dist/primitives/Tree.d.mts 13.50 kB │ gzip: 3.50 kB
238
238
  ℹ [ESM] dist/utils/tree-helpers.d.mts 12.18 kB │ gzip: 2.52 kB
239
239
  ℹ [ESM] dist/client/Transport.d.mts  7.30 kB │ gzip: 1.84 kB
240
+ ℹ [ESM] dist/primitives/shared.d.mts  7.16 kB │ gzip: 2.19 kB
240
241
  ℹ [ESM] dist/client/ClientDocument.d.mts  7.02 kB │ gzip: 2.02 kB
241
- ℹ [ESM] dist/primitives/Struct.d.mts  6.96 kB │ gzip: 1.85 kB
242
- ℹ [ESM] dist/primitives/shared.d.mts  6.89 kB │ gzip: 2.09 kB
242
+ ℹ [ESM] dist/primitives/Struct.d.mts  6.99 kB │ gzip: 1.87 kB
243
243
  ℹ [ESM] dist/server/ServerDocument.d.mts  5.50 kB │ gzip: 1.76 kB
244
244
  ℹ [ESM] dist/primitives/Either.d.mts  5.44 kB │ gzip: 1.54 kB
245
245
  ℹ [ESM] dist/primitives/Array.d.mts  5.04 kB │ gzip: 1.45 kB
246
246
  ℹ [ESM] dist/client/Rebase.d.mts  4.91 kB │ gzip: 1.15 kB
247
247
  ℹ [ESM] dist/primitives/Union.d.mts  4.61 kB │ gzip: 1.27 kB
248
248
  ℹ [ESM] dist/primitives/TreeNode.d.mts  4.31 kB │ gzip: 1.29 kB
249
- ℹ [ESM] dist/Primitive.d.mts  3.79 kB │ gzip: 0.82 kB
249
+ ℹ [ESM] dist/Primitive.d.mts  3.85 kB │ gzip: 0.83 kB
250
250
  ℹ [ESM] dist/client/StateMonitor.d.mts  3.33 kB │ gzip: 1.07 kB
251
251
  ℹ [ESM] dist/EffectSchema.d.mts  3.20 kB │ gzip: 0.92 kB
252
252
  ℹ [ESM] dist/primitives/String.d.mts  3.08 kB │ gzip: 0.85 kB
@@ -266,5 +266,5 @@
266
266
  ℹ [ESM] dist/client/WebSocketTransport.d.mts  1.22 kB │ gzip: 0.55 kB
267
267
  ℹ [ESM] dist/OperationDefinition.d.mts  1.21 kB │ gzip: 0.40 kB
268
268
  ℹ [ESM] dist/Transform.d.mts  0.48 kB │ gzip: 0.26 kB
269
- ℹ [ESM] 144 files, total: 870.36 kB
270
- ✔ Build complete in 6322ms
269
+ ℹ [ESM] 144 files, total: 880.98 kB
270
+ ✔ Build complete in 6093ms
@@ -40,6 +40,7 @@ var Primitive_exports = /* @__PURE__ */ require_rolldown_runtime.__export({
40
40
  ValidationError: () => require_shared.ValidationError,
41
41
  applyDefaults: () => require_shared.applyDefaults,
42
42
  isCompatibleOperation: () => require_shared.isCompatibleOperation,
43
+ primitiveAllowsNullValue: () => require_shared.primitiveAllowsNullValue,
43
44
  runValidators: () => require_shared.runValidators
44
45
  });
45
46
 
@@ -1,4 +1,4 @@
1
- import { AnyPrimitive, HasDefault, InferProxy, InferSetInput, InferSnapshot, InferState, InferUpdateInput, IsDefined, IsRequired, MaybeUndefined, NeedsValue, Optional, Primitive, PrimitiveInternal, ValidationError, Validator, applyDefaults, isCompatibleOperation, runValidators } from "./primitives/shared.cjs";
1
+ import { AnyPrimitive, HasDefault, InferProxy, InferSetInput, InferSnapshot, InferState, InferUpdateInput, IsDefined, IsRequired, MaybeUndefined, NeedsValue, Optional, Primitive, PrimitiveInternal, ValidationError, Validator, applyDefaults, isCompatibleOperation, primitiveAllowsNullValue, runValidators } from "./primitives/shared.cjs";
2
2
  import { String, StringPrimitive, StringProxy } from "./primitives/String.cjs";
3
3
  import { InferStructSnapshot, InferStructState, MakeOptional, PartialFields, Struct, StructPrimitive, StructProxy, StructSetInput, StructUpdateValue } from "./primitives/Struct.cjs";
4
4
  import { Boolean, BooleanPrimitive, BooleanProxy } from "./primitives/Boolean.cjs";
@@ -13,7 +13,7 @@ import { InferTreeSetInput, InferTreeSnapshot, Tree, TreeNodeDataSetInput, TreeN
13
13
 
14
14
  //#region src/Primitive.d.ts
15
15
  declare namespace Primitive_d_exports {
16
- export { AnyPrimitive, AnyTreeNodePrimitive, Array, ArrayElementSetInput, ArrayEntry, ArrayEntrySnapshot, ArrayPrimitive, ArrayProxy, ArraySetInput, ArraySnapshot, ArrayState, ArrayUpdateInput, Boolean, BooleanPrimitive, BooleanProxy, Either, EitherMatchHandlers, EitherPrimitive, EitherProxy, HasDefault, InferEitherSnapshot, InferEitherState, InferLazyProxy, InferLazySetInput, InferLazySnapshot, InferLazyState, InferLazyUpdateInput, InferProxy, InferSetInput, InferSnapshot, InferState, InferStructSnapshot, InferStructState, InferTreeNodeChildren, InferTreeNodeDataState, InferTreeNodeType, InferTreeSetInput, InferTreeSnapshot, InferUnionSnapshot, InferUnionState, InferUpdateInput, IsDefined, IsRequired, Lazy, LazyPrimitive, Literal, LiteralPrimitive, LiteralProxy, LiteralValue, MakeOptional, MaybeUndefined, NeedsValue, Number, NumberPrimitive, NumberProxy, Optional, PartialFields, Primitive, PrimitiveInternal, ScalarPrimitive, String, StringPrimitive, StringProxy, Struct, StructPrimitive, StructProxy, StructSetInput, StructUpdateValue, Tree, TreeNode, TreeNodeChildrenInput, TreeNodeConfig, TreeNodeDataSetInput, TreeNodePrimitive, TreeNodeProxyBase, TreeNodeSelf, TreeNodeSelfType, TreeNodeSetInput, TreeNodeSetInputUnion, TreeNodeSnapshot, TreeNodeState, TreeNodeUpdateValue, TreeOptions, TreePrimitive, TreeProxy, TreeSetInput, TreeState, TreeUpdateInput, TypedNodeProxy, TypedTreeNodeState, Union, UnionOptions, UnionPrimitive, UnionProxy, UnionSetInput, UnionVariants, ValidationError, Validator, applyDefaults, isCompatibleOperation, runValidators };
16
+ export { AnyPrimitive, AnyTreeNodePrimitive, Array, ArrayElementSetInput, ArrayEntry, ArrayEntrySnapshot, ArrayPrimitive, ArrayProxy, ArraySetInput, ArraySnapshot, ArrayState, ArrayUpdateInput, Boolean, BooleanPrimitive, BooleanProxy, Either, EitherMatchHandlers, EitherPrimitive, EitherProxy, HasDefault, InferEitherSnapshot, InferEitherState, InferLazyProxy, InferLazySetInput, InferLazySnapshot, InferLazyState, InferLazyUpdateInput, InferProxy, InferSetInput, InferSnapshot, InferState, InferStructSnapshot, InferStructState, InferTreeNodeChildren, InferTreeNodeDataState, InferTreeNodeType, InferTreeSetInput, InferTreeSnapshot, InferUnionSnapshot, InferUnionState, InferUpdateInput, IsDefined, IsRequired, Lazy, LazyPrimitive, Literal, LiteralPrimitive, LiteralProxy, LiteralValue, MakeOptional, MaybeUndefined, NeedsValue, Number, NumberPrimitive, NumberProxy, Optional, PartialFields, Primitive, PrimitiveInternal, ScalarPrimitive, String, StringPrimitive, StringProxy, Struct, StructPrimitive, StructProxy, StructSetInput, StructUpdateValue, Tree, TreeNode, TreeNodeChildrenInput, TreeNodeConfig, TreeNodeDataSetInput, TreeNodePrimitive, TreeNodeProxyBase, TreeNodeSelf, TreeNodeSelfType, TreeNodeSetInput, TreeNodeSetInputUnion, TreeNodeSnapshot, TreeNodeState, TreeNodeUpdateValue, TreeOptions, TreePrimitive, TreeProxy, TreeSetInput, TreeState, TreeUpdateInput, TypedNodeProxy, TypedTreeNodeState, Union, UnionOptions, UnionPrimitive, UnionProxy, UnionSetInput, UnionVariants, ValidationError, Validator, applyDefaults, isCompatibleOperation, primitiveAllowsNullValue, runValidators };
17
17
  }
18
18
  //#endregion
19
19
  export { Primitive_d_exports };
@@ -1,4 +1,4 @@
1
- import { AnyPrimitive, HasDefault, InferProxy, InferSetInput, InferSnapshot, InferState, InferUpdateInput, IsDefined, IsRequired, MaybeUndefined, NeedsValue, Optional, Primitive, PrimitiveInternal, ValidationError, Validator, applyDefaults, isCompatibleOperation, runValidators } from "./primitives/shared.mjs";
1
+ import { AnyPrimitive, HasDefault, InferProxy, InferSetInput, InferSnapshot, InferState, InferUpdateInput, IsDefined, IsRequired, MaybeUndefined, NeedsValue, Optional, Primitive, PrimitiveInternal, ValidationError, Validator, applyDefaults, isCompatibleOperation, primitiveAllowsNullValue, runValidators } from "./primitives/shared.mjs";
2
2
  import { String, StringPrimitive, StringProxy } from "./primitives/String.mjs";
3
3
  import { InferStructSnapshot, InferStructState, MakeOptional, PartialFields, Struct, StructPrimitive, StructProxy, StructSetInput, StructUpdateValue } from "./primitives/Struct.mjs";
4
4
  import { Boolean, BooleanPrimitive, BooleanProxy } from "./primitives/Boolean.mjs";
@@ -13,7 +13,7 @@ import { InferTreeSetInput, InferTreeSnapshot, Tree, TreeNodeDataSetInput, TreeN
13
13
 
14
14
  //#region src/Primitive.d.ts
15
15
  declare namespace Primitive_d_exports {
16
- export { AnyPrimitive, AnyTreeNodePrimitive, Array, ArrayElementSetInput, ArrayEntry, ArrayEntrySnapshot, ArrayPrimitive, ArrayProxy, ArraySetInput, ArraySnapshot, ArrayState, ArrayUpdateInput, Boolean, BooleanPrimitive, BooleanProxy, Either, EitherMatchHandlers, EitherPrimitive, EitherProxy, HasDefault, InferEitherSnapshot, InferEitherState, InferLazyProxy, InferLazySetInput, InferLazySnapshot, InferLazyState, InferLazyUpdateInput, InferProxy, InferSetInput, InferSnapshot, InferState, InferStructSnapshot, InferStructState, InferTreeNodeChildren, InferTreeNodeDataState, InferTreeNodeType, InferTreeSetInput, InferTreeSnapshot, InferUnionSnapshot, InferUnionState, InferUpdateInput, IsDefined, IsRequired, Lazy, LazyPrimitive, Literal, LiteralPrimitive, LiteralProxy, LiteralValue, MakeOptional, MaybeUndefined, NeedsValue, Number, NumberPrimitive, NumberProxy, Optional, PartialFields, Primitive, PrimitiveInternal, ScalarPrimitive, String, StringPrimitive, StringProxy, Struct, StructPrimitive, StructProxy, StructSetInput, StructUpdateValue, Tree, TreeNode, TreeNodeChildrenInput, TreeNodeConfig, TreeNodeDataSetInput, TreeNodePrimitive, TreeNodeProxyBase, TreeNodeSelf, TreeNodeSelfType, TreeNodeSetInput, TreeNodeSetInputUnion, TreeNodeSnapshot, TreeNodeState, TreeNodeUpdateValue, TreeOptions, TreePrimitive, TreeProxy, TreeSetInput, TreeState, TreeUpdateInput, TypedNodeProxy, TypedTreeNodeState, Union, UnionOptions, UnionPrimitive, UnionProxy, UnionSetInput, UnionVariants, ValidationError, Validator, applyDefaults, isCompatibleOperation, runValidators };
16
+ export { AnyPrimitive, AnyTreeNodePrimitive, Array, ArrayElementSetInput, ArrayEntry, ArrayEntrySnapshot, ArrayPrimitive, ArrayProxy, ArraySetInput, ArraySnapshot, ArrayState, ArrayUpdateInput, Boolean, BooleanPrimitive, BooleanProxy, Either, EitherMatchHandlers, EitherPrimitive, EitherProxy, HasDefault, InferEitherSnapshot, InferEitherState, InferLazyProxy, InferLazySetInput, InferLazySnapshot, InferLazyState, InferLazyUpdateInput, InferProxy, InferSetInput, InferSnapshot, InferState, InferStructSnapshot, InferStructState, InferTreeNodeChildren, InferTreeNodeDataState, InferTreeNodeType, InferTreeSetInput, InferTreeSnapshot, InferUnionSnapshot, InferUnionState, InferUpdateInput, IsDefined, IsRequired, Lazy, LazyPrimitive, Literal, LiteralPrimitive, LiteralProxy, LiteralValue, MakeOptional, MaybeUndefined, NeedsValue, Number, NumberPrimitive, NumberProxy, Optional, PartialFields, Primitive, PrimitiveInternal, ScalarPrimitive, String, StringPrimitive, StringProxy, Struct, StructPrimitive, StructProxy, StructSetInput, StructUpdateValue, Tree, TreeNode, TreeNodeChildrenInput, TreeNodeConfig, TreeNodeDataSetInput, TreeNodePrimitive, TreeNodeProxyBase, TreeNodeSelf, TreeNodeSelfType, TreeNodeSetInput, TreeNodeSetInputUnion, TreeNodeSnapshot, TreeNodeState, TreeNodeUpdateValue, TreeOptions, TreePrimitive, TreeProxy, TreeSetInput, TreeState, TreeUpdateInput, TypedNodeProxy, TypedTreeNodeState, Union, UnionOptions, UnionPrimitive, UnionProxy, UnionSetInput, UnionVariants, ValidationError, Validator, applyDefaults, isCompatibleOperation, primitiveAllowsNullValue, runValidators };
17
17
  }
18
18
  //#endregion
19
19
  export { Primitive_d_exports };
@@ -1,5 +1,5 @@
1
1
  import { __export } from "./_virtual/rolldown_runtime.mjs";
2
- import { ValidationError, applyDefaults, isCompatibleOperation, runValidators } from "./primitives/shared.mjs";
2
+ import { ValidationError, applyDefaults, isCompatibleOperation, primitiveAllowsNullValue, runValidators } from "./primitives/shared.mjs";
3
3
  import { String, StringPrimitive } from "./primitives/String.mjs";
4
4
  import { Struct, StructPrimitive } from "./primitives/Struct.mjs";
5
5
  import { Boolean, BooleanPrimitive } from "./primitives/Boolean.mjs";
@@ -40,6 +40,7 @@ var Primitive_exports = /* @__PURE__ */ __export({
40
40
  ValidationError: () => ValidationError,
41
41
  applyDefaults: () => applyDefaults,
42
42
  isCompatibleOperation: () => isCompatibleOperation,
43
+ primitiveAllowsNullValue: () => primitiveAllowsNullValue,
43
44
  runValidators: () => runValidators
44
45
  });
45
46
 
@@ -174,11 +174,15 @@ const make = (options) => {
174
174
  * If disconnected, the transport will queue it for later submission.
175
175
  */
176
176
  const submitTransaction = (tx) => {
177
+ var _Error$stack;
177
178
  debugLog("submitTransaction", {
178
179
  txId: tx.id,
179
180
  ops: tx.ops,
180
181
  pendingCount: _pending.length + 1,
181
- isConnected: transport.isConnected()
182
+ isConnected: transport.isConnected(),
183
+ activeDraftCount: _drafts.size,
184
+ activeDraftIds: Array.from(_drafts.keys()),
185
+ callStack: (_Error$stack = (/* @__PURE__ */ new Error()).stack) === null || _Error$stack === void 0 ? void 0 : _Error$stack.split("\n").slice(1, 6).join("\n")
182
186
  });
183
187
  const pending = {
184
188
  transaction: tx,
@@ -475,10 +479,14 @@ const make = (options) => {
475
479
  getPendingCount: () => _pending.length,
476
480
  hasPendingChanges: () => _pending.length > 0,
477
481
  transaction: (fn) => {
482
+ var _Error$stack2;
478
483
  debugLog("transaction: starting", {
479
484
  isConnected: transport.isConnected(),
480
485
  isReady: _initState.type === "ready",
481
- pendingCount: _pending.length
486
+ pendingCount: _pending.length,
487
+ activeDraftCount: _drafts.size,
488
+ activeDraftIds: Array.from(_drafts.keys()),
489
+ callStack: (_Error$stack2 = (/* @__PURE__ */ new Error()).stack) === null || _Error$stack2 === void 0 ? void 0 : _Error$stack2.split("\n").slice(1, 6).join("\n")
482
490
  });
483
491
  if (_initState.type !== "ready") throw new require_errors.InvalidStateError("Client is not ready. Wait for initialization to complete.");
484
492
  const result = _optimisticDoc.transaction(fn);
@@ -579,6 +587,12 @@ const make = (options) => {
579
587
  return {
580
588
  id: draftId,
581
589
  update: (fn) => {
590
+ debugLog("draft.update: starting", {
591
+ draftId,
592
+ consumed,
593
+ currentOpsCount: draftState.ops.size,
594
+ pendingCount: _pending.length
595
+ });
582
596
  if (consumed) throw new require_errors.InvalidStateError("Draft has already been committed or discarded.");
583
597
  const baseDoc = require_Document.make(schema, { initialState: _serverState });
584
598
  for (const pending of _pending) baseDoc.apply(pending.transaction.ops);
@@ -598,32 +612,47 @@ const make = (options) => {
598
612
  draftState.ops.set(uniqueKey, op);
599
613
  }
600
614
  }
601
- debugLog("draft.update", {
615
+ debugLog("draft.update: complete", {
602
616
  draftId,
603
617
  newOpsCount: tx.ops.length,
604
- totalOps: draftState.ops.size
618
+ totalOps: draftState.ops.size,
619
+ note: "Ops stored in draft - NOT sent to server"
605
620
  });
606
621
  recomputeOptimisticState();
607
622
  notifyDraftChange();
608
623
  },
609
624
  commit: () => {
625
+ debugLog("draft.commit: starting", {
626
+ draftId,
627
+ consumed,
628
+ opsCount: draftState.ops.size
629
+ });
610
630
  if (consumed) throw new require_errors.InvalidStateError("Draft has already been committed or discarded.");
611
631
  consumed = true;
612
632
  const ops = Array.from(draftState.ops.values());
613
633
  _drafts.delete(draftId);
614
- debugLog("draft.commit", {
634
+ debugLog("draft.commit: submitting", {
615
635
  draftId,
616
- opsCount: ops.length
636
+ opsCount: ops.length,
637
+ note: ops.length > 0 ? "Will call submitTransaction" : "Empty draft - no transaction"
617
638
  });
618
639
  if (ops.length > 0) submitTransaction(require_Transaction.make(ops));
619
640
  recomputeOptimisticState();
620
641
  notifyDraftChange();
621
642
  },
622
643
  discard: () => {
644
+ debugLog("draft.discard: starting", {
645
+ draftId,
646
+ consumed,
647
+ opsCount: draftState.ops.size
648
+ });
623
649
  if (consumed) throw new require_errors.InvalidStateError("Draft has already been committed or discarded.");
624
650
  consumed = true;
625
651
  _drafts.delete(draftId);
626
- debugLog("draft.discard", { draftId });
652
+ debugLog("draft.discard: complete", {
653
+ draftId,
654
+ note: "Draft discarded - no transaction sent to server"
655
+ });
627
656
  recomputeOptimisticState();
628
657
  notifyDraftChange();
629
658
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ClientDocument.d.mts","names":[],"sources":["../../src/client/ClientDocument.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;UA6BiB,4BAA4B;;;;oBAIzB,WAAqB;;;;;;AAJzC;;;AAIoB,UAwCH,gBAxCG,CAAA,MAAA,CAAA,CAAA;EAAoB;EAwCvB,SAAA,gBAAgB,CAAA,EAAA,GAAA,GAAA,IAAA;AAQjC;;;;AAiByB,UAjBR,cAiBQ,CAAA,KAAA,CAAA,CAAA;EAKwC;;;;EAkBf,SAAA,MAAA,EAAA,GAAA,GAAA,MAAA,GAAA,SAAA;EAAjB;;AAMjC;;EAEoB,SAAA,IAAA,EAAA,GAAA,GArCG,KAqCH,GAAA,SAAA;EAGD;;;;EASF,SAAA,MAAA,EAAA,GAAA,GA3CQ,WA2CR,CAAA,MAAA,EA3C4B,aA2C5B,CA3CmD,KA2CnD,CAAA,CAAA;EAIuC;;;EAiB3B,SAAA,GAAA,EAAA,GAAA,GA3DP,WA2DO,CAAA,MAAA,EA3Da,aA2Db,CA3DoC,KA2DpC,CAAA,CAAA;EAAkB;;;;AAM/C;EAAwD,SAAA,GAAA,EAAA,CAAA,IAAA,EA1DjC,KA0DiC,EAAA,GAAA,IAAA;EAEA;;;EAYvC,SAAA,KAAA,EAAA,GAAc,GAAA,IAAA;EACb;;;;EAOD,SAAA,SAAA,EAAA,CAAA,QAAA,EArEgB,gBAqEhB,CArEiC,KAqEjC,CAAA,EAAA,GAAA,GAAA,GAAA,IAAA;;;;;AAqBgC,UApFhC,qBAoFgC,CAAA,gBAnF/B,YAmF+B,EAAA,kBAlF7B,WAkF6B,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA;EAArB;EAAkC,SAAA,MAAA,EA/E3C,OA+E2C;EAAI;EAKrD,SAAA,SAAA,EAlFS,SAkFT;EA0BgC;EAAvB,SAAA,YAAA,CAAA,EA1GI,UA0GJ,CA1GyB,OA0GzB,CAAA;EAMO;EAAZ,SAAA,cAAA,CAAA,EAAA,MAAA;EAKM;EAMF,SAAA,WAAA,CAAA,EAAA,CAAA,WAAA,EAtHJ,WAsHI,EAAA,MAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAAkB;EACH,SAAA,aAAA,CAAA,EAAA,CAAA,KAAA,EAnHD,UAmHC,CAnHoB,OAmHpB,CAAA,GAAA,SAAA,EAAA,GAAA,IAAA;EAAf;EAAf,SAAA,kBAAA,CAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,GAAA,IAAA;EAAc;EAWP,SA0iCZ,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAziCiB;EACE,SAAA,kBAAA,CAAA,EAAA,MAAA;EAEa;EAAS,SAAA,WAAA,CAAA,EAAA,MAAA;EAA/B;EACO,SAAA,KAAA,CAAA,EAAA,OAAA;EAAS;;;;sBApHL;;6BAEO,kBAAkB,cAAuB,MAAe;;;;;UAMpE,uCAAuC;;mCAErB,WAAqB;;;;;;;;;;;UAYvC,+BACC,gCACE;;mBAGD;;iBAGF,WAAqB;;SAG7B,WAAqB;;oBAGV,WAAqB;;;;;;;;;;;4BAeb,WAAqB,aAAa,IAAI;;;;aAKrD;;;;;;;;;;;;;;;;;;;;;sBA0BS,uBAAuB;;;;;iBAM5B,YAAY;;;;uBAKN;;;;;qBAMF,kBAAkB,cACjC,eAAe,MAAe;;;;;cAWvB,uBACK,gCACE,8CAET,sBAAsB,SAAS,eACvC,eAAe,SAAS"}
1
+ {"version":3,"file":"ClientDocument.d.mts","names":[],"sources":["../../src/client/ClientDocument.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;UA6BiB,4BAA4B;;;;oBAIzB,WAAqB;;;;;;AAJzC;;;AAIoB,UAwCH,gBAxCG,CAAA,MAAA,CAAA,CAAA;EAAoB;EAwCvB,SAAA,gBAAgB,CAAA,EAAA,GAAA,GAAA,IAAA;AAQjC;;;;AAiByB,UAjBR,cAiBQ,CAAA,KAAA,CAAA,CAAA;EAKwC;;;;EAkBf,SAAA,MAAA,EAAA,GAAA,GAAA,MAAA,GAAA,SAAA;EAAjB;;AAMjC;;EAEoB,SAAA,IAAA,EAAA,GAAA,GArCG,KAqCH,GAAA,SAAA;EAGD;;;;EASF,SAAA,MAAA,EAAA,GAAA,GA3CQ,WA2CR,CAAA,MAAA,EA3C4B,aA2C5B,CA3CmD,KA2CnD,CAAA,CAAA;EAIuC;;;EAiB3B,SAAA,GAAA,EAAA,GAAA,GA3DP,WA2DO,CAAA,MAAA,EA3Da,aA2Db,CA3DoC,KA2DpC,CAAA,CAAA;EAAkB;;;;AAM/C;EAAwD,SAAA,GAAA,EAAA,CAAA,IAAA,EA1DjC,KA0DiC,EAAA,GAAA,IAAA;EAEA;;;EAYvC,SAAA,KAAA,EAAA,GAAc,GAAA,IAAA;EACb;;;;EAOD,SAAA,SAAA,EAAA,CAAA,QAAA,EArEgB,gBAqEhB,CArEiC,KAqEjC,CAAA,EAAA,GAAA,GAAA,GAAA,IAAA;;;;;AAqBgC,UApFhC,qBAoFgC,CAAA,gBAnF/B,YAmF+B,EAAA,kBAlF7B,WAkF6B,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA;EAArB;EAAkC,SAAA,MAAA,EA/E3C,OA+E2C;EAAI;EAKrD,SAAA,SAAA,EAlFS,SAkFT;EA0BgC;EAAvB,SAAA,YAAA,CAAA,EA1GI,UA0GJ,CA1GyB,OA0GzB,CAAA;EAMO;EAAZ,SAAA,cAAA,CAAA,EAAA,MAAA;EAKM;EAMF,SAAA,WAAA,CAAA,EAAA,CAAA,WAAA,EAtHJ,WAsHI,EAAA,MAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAAkB;EACH,SAAA,aAAA,CAAA,EAAA,CAAA,KAAA,EAnHD,UAmHC,CAnHoB,OAmHpB,CAAA,GAAA,SAAA,EAAA,GAAA,IAAA;EAAf;EAAf,SAAA,kBAAA,CAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,GAAA,IAAA;EAAc;EAWP,SA+kCZ,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EA9kCiB;EACE,SAAA,kBAAA,CAAA,EAAA,MAAA;EAEa;EAAS,SAAA,WAAA,CAAA,EAAA,MAAA;EAA/B;EACO,SAAA,KAAA,CAAA,EAAA,OAAA;EAAS;;;;sBApHL;;6BAEO,kBAAkB,cAAuB,MAAe;;;;;UAMpE,uCAAuC;;mCAErB,WAAqB;;;;;;;;;;;UAYvC,+BACC,gCACE;;mBAGD;;iBAGF,WAAqB;;SAG7B,WAAqB;;oBAGV,WAAqB;;;;;;;;;;;4BAeb,WAAqB,aAAa,IAAI;;;;aAKrD;;;;;;;;;;;;;;;;;;;;;sBA0BS,uBAAuB;;;;;iBAM5B,YAAY;;;;uBAKN;;;;;qBAMF,kBAAkB,cACjC,eAAe,MAAe;;;;;cAWvB,uBACK,gCACE,8CAET,sBAAsB,SAAS,eACvC,eAAe,SAAS"}
@@ -174,11 +174,15 @@ const make = (options) => {
174
174
  * If disconnected, the transport will queue it for later submission.
175
175
  */
176
176
  const submitTransaction = (tx) => {
177
+ var _Error$stack;
177
178
  debugLog("submitTransaction", {
178
179
  txId: tx.id,
179
180
  ops: tx.ops,
180
181
  pendingCount: _pending.length + 1,
181
- isConnected: transport.isConnected()
182
+ isConnected: transport.isConnected(),
183
+ activeDraftCount: _drafts.size,
184
+ activeDraftIds: Array.from(_drafts.keys()),
185
+ callStack: (_Error$stack = (/* @__PURE__ */ new Error()).stack) === null || _Error$stack === void 0 ? void 0 : _Error$stack.split("\n").slice(1, 6).join("\n")
182
186
  });
183
187
  const pending = {
184
188
  transaction: tx,
@@ -475,10 +479,14 @@ const make = (options) => {
475
479
  getPendingCount: () => _pending.length,
476
480
  hasPendingChanges: () => _pending.length > 0,
477
481
  transaction: (fn) => {
482
+ var _Error$stack2;
478
483
  debugLog("transaction: starting", {
479
484
  isConnected: transport.isConnected(),
480
485
  isReady: _initState.type === "ready",
481
- pendingCount: _pending.length
486
+ pendingCount: _pending.length,
487
+ activeDraftCount: _drafts.size,
488
+ activeDraftIds: Array.from(_drafts.keys()),
489
+ callStack: (_Error$stack2 = (/* @__PURE__ */ new Error()).stack) === null || _Error$stack2 === void 0 ? void 0 : _Error$stack2.split("\n").slice(1, 6).join("\n")
482
490
  });
483
491
  if (_initState.type !== "ready") throw new InvalidStateError("Client is not ready. Wait for initialization to complete.");
484
492
  const result = _optimisticDoc.transaction(fn);
@@ -579,6 +587,12 @@ const make = (options) => {
579
587
  return {
580
588
  id: draftId,
581
589
  update: (fn) => {
590
+ debugLog("draft.update: starting", {
591
+ draftId,
592
+ consumed,
593
+ currentOpsCount: draftState.ops.size,
594
+ pendingCount: _pending.length
595
+ });
582
596
  if (consumed) throw new InvalidStateError("Draft has already been committed or discarded.");
583
597
  const baseDoc = make$2(schema, { initialState: _serverState });
584
598
  for (const pending of _pending) baseDoc.apply(pending.transaction.ops);
@@ -598,32 +612,47 @@ const make = (options) => {
598
612
  draftState.ops.set(uniqueKey, op);
599
613
  }
600
614
  }
601
- debugLog("draft.update", {
615
+ debugLog("draft.update: complete", {
602
616
  draftId,
603
617
  newOpsCount: tx.ops.length,
604
- totalOps: draftState.ops.size
618
+ totalOps: draftState.ops.size,
619
+ note: "Ops stored in draft - NOT sent to server"
605
620
  });
606
621
  recomputeOptimisticState();
607
622
  notifyDraftChange();
608
623
  },
609
624
  commit: () => {
625
+ debugLog("draft.commit: starting", {
626
+ draftId,
627
+ consumed,
628
+ opsCount: draftState.ops.size
629
+ });
610
630
  if (consumed) throw new InvalidStateError("Draft has already been committed or discarded.");
611
631
  consumed = true;
612
632
  const ops = Array.from(draftState.ops.values());
613
633
  _drafts.delete(draftId);
614
- debugLog("draft.commit", {
634
+ debugLog("draft.commit: submitting", {
615
635
  draftId,
616
- opsCount: ops.length
636
+ opsCount: ops.length,
637
+ note: ops.length > 0 ? "Will call submitTransaction" : "Empty draft - no transaction"
617
638
  });
618
639
  if (ops.length > 0) submitTransaction(make$1(ops));
619
640
  recomputeOptimisticState();
620
641
  notifyDraftChange();
621
642
  },
622
643
  discard: () => {
644
+ debugLog("draft.discard: starting", {
645
+ draftId,
646
+ consumed,
647
+ opsCount: draftState.ops.size
648
+ });
623
649
  if (consumed) throw new InvalidStateError("Draft has already been committed or discarded.");
624
650
  consumed = true;
625
651
  _drafts.delete(draftId);
626
- debugLog("draft.discard", { draftId });
652
+ debugLog("draft.discard: complete", {
653
+ draftId,
654
+ note: "Draft discarded - no transaction sent to server"
655
+ });
627
656
  recomputeOptimisticState();
628
657
  notifyDraftChange();
629
658
  }