@voidhash/mimic 0.0.9 → 1.0.0-beta.10

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@0.0.9 build /home/runner/work/mimic/mimic/packages/mimic
2
+ > @voidhash/mimic@1.0.0-beta.10 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
@@ -8,7 +8,7 @@
8
8
  ℹ target: es2017
9
9
  ℹ tsconfig: tsconfig.json
10
10
  ℹ Build start
11
- ℹ [CJS] dist/index.cjs  2.24 kB │ gzip: 0.40 kB
11
+ ℹ [CJS] dist/index.cjs  2.49 kB │ gzip: 0.42 kB
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 29.98 kB │ gzip: 4.97 kB
@@ -31,8 +31,8 @@
31
31
  ℹ [CJS] dist/primitives/Literal.cjs  3.89 kB │ gzip: 1.06 kB
32
32
  ℹ [CJS] dist/client/StateMonitor.cjs  3.71 kB │ gzip: 1.27 kB
33
33
  ℹ [CJS] dist/primitives/shared.cjs  3.69 kB │ gzip: 1.25 kB
34
+ ℹ [CJS] dist/server/ServerDocument.cjs  3.68 kB │ gzip: 1.15 kB
34
35
  ℹ [CJS] dist/server/errors.cjs  3.29 kB │ gzip: 0.70 kB
35
- ℹ [CJS] dist/server/ServerDocument.cjs  3.16 kB │ gzip: 1.04 kB
36
36
  ℹ [CJS] dist/primitives/TreeNode.cjs  2.67 kB │ gzip: 0.92 kB
37
37
  ℹ [CJS] dist/Presence.cjs  2.36 kB │ gzip: 0.87 kB
38
38
  ℹ [CJS] dist/Primitive.cjs  2.34 kB │ gzip: 0.59 kB
@@ -43,16 +43,16 @@
43
43
  ℹ [CJS] dist/ProxyEnvironment.cjs  1.30 kB │ gzip: 0.57 kB
44
44
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.cjs  0.95 kB │ gzip: 0.43 kB
45
45
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectWithoutProperties.cjs  0.61 kB │ gzip: 0.32 kB
46
+ ℹ [CJS] dist/OperationDefinition.cjs  0.55 kB │ gzip: 0.30 kB
46
47
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/typeof.cjs  0.53 kB │ gzip: 0.29 kB
47
48
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPrimitive.cjs  0.52 kB │ gzip: 0.32 kB
48
49
  ℹ [CJS] dist/types/index.cjs  0.50 kB │ gzip: 0.27 kB
49
50
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/defineProperty.cjs  0.40 kB │ gzip: 0.24 kB
50
51
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPropertyKey.cjs  0.37 kB │ gzip: 0.23 kB
51
52
  ℹ [CJS] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectWithoutPropertiesLoose.cjs  0.37 kB │ gzip: 0.24 kB
52
- ℹ [CJS] dist/OperationDefinition.cjs  0.22 kB │ gzip: 0.16 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: 213.69 kB
55
+ ℹ [CJS] 44 files, total: 214.79 kB
56
56
  ℹ [CJS] dist/primitives/Tree.d.cts.map  6.90 kB │ gzip: 2.60 kB
57
57
  ℹ [CJS] dist/primitives/Struct.d.cts.map  4.62 kB │ gzip: 1.95 kB
58
58
  ℹ [CJS] dist/utils/tree-helpers.d.cts.map  3.61 kB │ gzip: 1.31 kB
@@ -70,9 +70,10 @@
70
70
  ℹ [CJS] dist/primitives/Lazy.d.cts.map  1.44 kB │ gzip: 0.69 kB
71
71
  ℹ [CJS] dist/client/Rebase.d.cts.map  1.02 kB │ gzip: 0.47 kB
72
72
  ℹ [CJS] dist/EffectSchema.d.cts.map  1.00 kB │ gzip: 0.48 kB
73
+ ℹ [CJS] dist/server/ServerDocument.d.cts.map  0.93 kB │ gzip: 0.47 kB
74
+ ℹ [CJS] dist/OperationDefinition.d.cts.map  0.89 kB │ gzip: 0.42 kB
73
75
  ℹ [CJS] dist/Document.d.cts.map  0.85 kB │ gzip: 0.46 kB
74
76
  ℹ [CJS] dist/Operation.d.cts.map  0.81 kB │ gzip: 0.42 kB
75
- ℹ [CJS] dist/server/ServerDocument.d.cts.map  0.81 kB │ gzip: 0.44 kB
76
77
  ℹ [CJS] dist/OperationPath.d.cts.map  0.77 kB │ gzip: 0.43 kB
77
78
  ℹ [CJS] dist/client/errors.d.cts.map  0.74 kB │ gzip: 0.38 kB
78
79
  ℹ [CJS] dist/Presence.d.cts.map  0.69 kB │ gzip: 0.38 kB
@@ -80,14 +81,13 @@
80
81
  ℹ [CJS] dist/Transaction.d.cts.map  0.56 kB │ gzip: 0.32 kB
81
82
  ℹ [CJS] dist/ProxyEnvironment.d.cts.map  0.44 kB │ gzip: 0.27 kB
82
83
  ℹ [CJS] dist/server/errors.d.cts.map  0.41 kB │ gzip: 0.25 kB
83
- ℹ [CJS] dist/OperationDefinition.d.cts.map  0.33 kB │ gzip: 0.21 kB
84
84
  ℹ [CJS] dist/client/WebSocketTransport.d.cts.map  0.25 kB │ gzip: 0.19 kB
85
85
  ℹ [CJS] dist/Transform.d.cts.map  0.16 kB │ gzip: 0.14 kB
86
86
  ℹ [CJS] dist/types/index.d.cts.map  0.12 kB │ gzip: 0.11 kB
87
87
  ℹ [CJS] dist/Primitive.d.cts.map  0.12 kB │ gzip: 0.11 kB
88
- ℹ [CJS] dist/index.d.cts  1.05 kB │ gzip: 0.28 kB
88
+ ℹ [CJS] dist/index.d.cts  1.18 kB │ gzip: 0.30 kB
89
89
  ℹ [CJS] dist/client/index.d.cts  1.01 kB │ gzip: 0.29 kB
90
- ℹ [CJS] dist/server/index.d.cts  0.65 kB │ gzip: 0.23 kB
90
+ ℹ [CJS] dist/server/index.d.cts  0.68 kB │ gzip: 0.24 kB
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
@@ -95,12 +95,12 @@
95
95
  ℹ [CJS] dist/primitives/shared.d.cts  6.89 kB │ gzip: 2.09 kB
96
96
  ℹ [CJS] dist/client/ClientDocument.d.cts  6.07 kB │ gzip: 1.68 kB
97
97
  ℹ [CJS] dist/primitives/Either.d.cts  5.44 kB │ gzip: 1.54 kB
98
+ ℹ [CJS] dist/server/ServerDocument.d.cts  5.08 kB │ gzip: 1.62 kB
98
99
  ℹ [CJS] dist/primitives/Array.d.cts  5.01 kB │ gzip: 1.44 kB
99
100
  ℹ [CJS] dist/client/Rebase.d.cts  4.88 kB │ gzip: 1.14 kB
100
101
  ℹ [CJS] dist/primitives/Union.d.cts  4.58 kB │ gzip: 1.26 kB
101
102
  ℹ [CJS] dist/primitives/TreeNode.d.cts  4.28 kB │ gzip: 1.29 kB
102
103
  ℹ [CJS] dist/Primitive.d.cts  3.79 kB │ gzip: 0.82 kB
103
- ℹ [CJS] dist/server/ServerDocument.d.cts  3.58 kB │ gzip: 1.19 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
@@ -118,11 +118,11 @@
118
118
  ℹ [CJS] dist/server/errors.d.cts  1.77 kB │ gzip: 0.46 kB
119
119
  ℹ [CJS] dist/ProxyEnvironment.d.cts  1.39 kB │ gzip: 0.56 kB
120
120
  ℹ [CJS] dist/client/WebSocketTransport.d.cts  1.22 kB │ gzip: 0.55 kB
121
+ ℹ [CJS] dist/OperationDefinition.d.cts  1.10 kB │ gzip: 0.37 kB
121
122
  ℹ [CJS] dist/Transform.d.cts  0.48 kB │ gzip: 0.26 kB
122
- ℹ [CJS] dist/OperationDefinition.d.cts  0.36 kB │ gzip: 0.21 kB
123
- ℹ [CJS] 67 files, total: 181.04 kB
124
- ✔ Build complete in 5818ms
125
- ℹ [ESM] dist/index.mjs  1.01 kB │ gzip: 0.28 kB
123
+ ℹ [CJS] 67 files, total: 184.12 kB
124
+ ✔ Build complete in 5589ms
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.16 kB │ gzip: 12.83 kB
@@ -139,12 +139,12 @@
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
141
  ℹ [ESM] dist/client/Rebase.mjs.map 14.15 kB │ gzip: 3.21 kB
142
+ ℹ [ESM] dist/server/ServerDocument.mjs.map 13.55 kB │ gzip: 3.69 kB
142
143
  ℹ [ESM] dist/utils/tree-helpers.mjs 13.31 kB │ gzip: 3.15 kB
143
144
  ℹ [ESM] dist/primitives/shared.mjs.map 13.14 kB │ gzip: 3.69 kB
144
145
  ℹ [ESM] dist/primitives/Array.mjs 11.07 kB │ gzip: 2.64 kB
145
146
  ℹ [ESM] dist/Document.mjs.map 10.89 kB │ gzip: 3.31 kB
146
147
  ℹ [ESM] dist/client/WebSocketTransport.mjs 10.81 kB │ gzip: 2.68 kB
147
- ℹ [ESM] dist/server/ServerDocument.mjs.map 10.44 kB │ gzip: 2.95 kB
148
148
  ℹ [ESM] dist/client/StateMonitor.mjs.map 10.39 kB │ gzip: 3.04 kB
149
149
  ℹ [ESM] dist/primitives/String.mjs.map  9.70 kB │ gzip: 2.70 kB
150
150
  ℹ [ESM] dist/primitives/Struct.mjs  9.30 kB │ gzip: 2.31 kB
@@ -169,16 +169,16 @@
169
169
  ℹ [ESM] dist/Document.mjs  4.00 kB │ gzip: 1.40 kB
170
170
  ℹ [ESM] dist/primitives/Number.mjs  3.99 kB │ gzip: 1.19 kB
171
171
  ℹ [ESM] dist/server/errors.mjs.map  3.86 kB │ gzip: 0.96 kB
172
- ℹ [ESM] dist/types/index.mjs.map  3.74 kB │ gzip: 0.79 kB
172
+ ℹ [ESM] dist/types/index.mjs.map  3.71 kB │ gzip: 0.78 kB
173
173
  ℹ [ESM] dist/utils/tree-helpers.d.mts.map  3.61 kB │ gzip: 1.31 kB
174
174
  ℹ [ESM] dist/client/StateMonitor.mjs  3.60 kB │ gzip: 1.23 kB
175
175
  ℹ [ESM] dist/primitives/shared.mjs  3.55 kB │ gzip: 1.25 kB
176
+ ℹ [ESM] dist/server/ServerDocument.mjs  3.50 kB │ gzip: 1.12 kB
176
177
  ℹ [ESM] dist/primitives/Boolean.mjs  3.40 kB │ gzip: 1.04 kB
177
178
  ℹ [ESM] dist/primitives/Literal.mjs  3.31 kB │ gzip: 1.04 kB
178
179
  ℹ [ESM] dist/primitives/Array.d.mts.map  3.26 kB │ gzip: 1.35 kB
179
180
  ℹ [ESM] dist/primitives/Union.d.mts.map  3.15 kB │ gzip: 1.37 kB
180
181
  ℹ [ESM] dist/primitives/Either.d.mts.map  3.12 kB │ gzip: 1.26 kB
181
- ℹ [ESM] dist/server/ServerDocument.mjs  2.99 kB │ gzip: 1.01 kB
182
182
  ℹ [ESM] dist/server/errors.mjs  2.85 kB │ gzip: 0.70 kB
183
183
  ℹ [ESM] dist/Operation.mjs.map  2.75 kB │ gzip: 0.86 kB
184
184
  ℹ [ESM] dist/Transaction.mjs.map  2.65 kB │ gzip: 0.99 kB
@@ -199,14 +199,15 @@
199
199
  ℹ [ESM] dist/primitives/Lazy.d.mts.map  1.44 kB │ gzip: 0.69 kB
200
200
  ℹ [ESM] dist/Operation.mjs  1.32 kB │ gzip: 0.57 kB
201
201
  ℹ [ESM] dist/ProxyEnvironment.mjs  1.18 kB │ gzip: 0.53 kB
202
- ℹ [ESM] dist/OperationDefinition.mjs.map  1.07 kB │ gzip: 0.46 kB
202
+ ℹ [ESM] dist/OperationDefinition.mjs.map  1.07 kB │ gzip: 0.47 kB
203
203
  ℹ [ESM] dist/Primitive.mjs.map  1.05 kB │ gzip: 0.29 kB
204
204
  ℹ [ESM] dist/client/Rebase.d.mts.map  1.03 kB │ gzip: 0.48 kB
205
205
  ℹ [ESM] dist/EffectSchema.d.mts.map  1.00 kB │ gzip: 0.48 kB
206
+ ℹ [ESM] dist/server/ServerDocument.d.mts.map  0.92 kB │ gzip: 0.46 kB
206
207
  ℹ [ESM] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectSpread2.mjs  0.90 kB │ gzip: 0.42 kB
208
+ ℹ [ESM] dist/OperationDefinition.d.mts.map  0.89 kB │ gzip: 0.42 kB
207
209
  ℹ [ESM] dist/Document.d.mts.map  0.84 kB │ gzip: 0.46 kB
208
210
  ℹ [ESM] dist/Operation.d.mts.map  0.81 kB │ gzip: 0.42 kB
209
- ℹ [ESM] dist/server/ServerDocument.d.mts.map  0.80 kB │ gzip: 0.44 kB
210
211
  ℹ [ESM] dist/OperationPath.d.mts.map  0.77 kB │ gzip: 0.43 kB
211
212
  ℹ [ESM] dist/client/errors.d.mts.map  0.74 kB │ gzip: 0.38 kB
212
213
  ℹ [ESM] dist/Presence.d.mts.map  0.69 kB │ gzip: 0.38 kB
@@ -216,24 +217,23 @@
216
217
  ℹ [ESM] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectWithoutProperties.mjs  0.54 kB │ gzip: 0.31 kB
217
218
  ℹ [ESM] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPrimitive.mjs  0.47 kB │ gzip: 0.30 kB
218
219
  ℹ [ESM] dist/ProxyEnvironment.d.mts.map  0.44 kB │ gzip: 0.27 kB
220
+ ℹ [ESM] dist/OperationDefinition.mjs  0.43 kB │ gzip: 0.26 kB
219
221
  ℹ [ESM] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/typeof.mjs  0.43 kB │ gzip: 0.24 kB
220
222
  ℹ [ESM] dist/server/errors.d.mts.map  0.41 kB │ gzip: 0.25 kB
221
223
  ℹ [ESM] dist/types/index.mjs  0.37 kB │ gzip: 0.23 kB
222
224
  ℹ [ESM] dist/_virtual/rolldown_runtime.mjs  0.35 kB │ gzip: 0.24 kB
223
225
  ℹ [ESM] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/defineProperty.mjs  0.35 kB │ gzip: 0.23 kB
224
226
  ℹ [ESM] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/objectWithoutPropertiesLoose.mjs  0.34 kB │ gzip: 0.23 kB
225
- ℹ [ESM] dist/OperationDefinition.d.mts.map  0.33 kB │ gzip: 0.21 kB
226
227
  ℹ [ESM] dist/_virtual/_@oxc-project_runtime@0.103.0/helpers/toPropertyKey.mjs  0.30 kB │ gzip: 0.21 kB
227
- ℹ [ESM] dist/OperationDefinition.mjs  0.26 kB │ gzip: 0.18 kB
228
228
  ℹ [ESM] dist/client/WebSocketTransport.d.mts.map  0.25 kB │ gzip: 0.19 kB
229
229
  ℹ [ESM] dist/Transform.d.mts.map  0.16 kB │ gzip: 0.14 kB
230
230
  ℹ [ESM] dist/client/Transport.mjs  0.14 kB │ gzip: 0.12 kB
231
231
  ℹ [ESM] dist/Transform.mjs  0.14 kB │ gzip: 0.12 kB
232
232
  ℹ [ESM] dist/types/index.d.mts.map  0.12 kB │ gzip: 0.11 kB
233
233
  ℹ [ESM] dist/Primitive.d.mts.map  0.12 kB │ gzip: 0.11 kB
234
- ℹ [ESM] dist/index.d.mts  1.05 kB │ gzip: 0.28 kB
234
+ ℹ [ESM] dist/index.d.mts  1.18 kB │ gzip: 0.30 kB
235
235
  ℹ [ESM] dist/client/index.d.mts  1.01 kB │ gzip: 0.29 kB
236
- ℹ [ESM] dist/server/index.d.mts  0.65 kB │ gzip: 0.23 kB
236
+ ℹ [ESM] dist/server/index.d.mts  0.68 kB │ gzip: 0.24 kB
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
@@ -241,12 +241,12 @@
241
241
  ℹ [ESM] dist/primitives/shared.d.mts  6.89 kB │ gzip: 2.09 kB
242
242
  ℹ [ESM] dist/client/ClientDocument.d.mts  6.09 kB │ gzip: 1.69 kB
243
243
  ℹ [ESM] dist/primitives/Either.d.mts  5.44 kB │ gzip: 1.54 kB
244
+ ℹ [ESM] dist/server/ServerDocument.d.mts  5.11 kB │ gzip: 1.62 kB
244
245
  ℹ [ESM] dist/primitives/Array.d.mts  5.04 kB │ gzip: 1.45 kB
245
246
  ℹ [ESM] dist/client/Rebase.d.mts  4.91 kB │ gzip: 1.15 kB
246
247
  ℹ [ESM] dist/primitives/Union.d.mts  4.61 kB │ gzip: 1.27 kB
247
248
  ℹ [ESM] dist/primitives/TreeNode.d.mts  4.31 kB │ gzip: 1.29 kB
248
249
  ℹ [ESM] dist/Primitive.d.mts  3.79 kB │ gzip: 0.82 kB
249
- ℹ [ESM] dist/server/ServerDocument.d.mts  3.61 kB │ gzip: 1.19 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
@@ -264,7 +264,7 @@
264
264
  ℹ [ESM] dist/server/errors.d.mts  1.77 kB │ gzip: 0.46 kB
265
265
  ℹ [ESM] dist/ProxyEnvironment.d.mts  1.39 kB │ gzip: 0.56 kB
266
266
  ℹ [ESM] dist/client/WebSocketTransport.d.mts  1.22 kB │ gzip: 0.55 kB
267
+ ℹ [ESM] dist/OperationDefinition.d.mts  1.10 kB │ gzip: 0.37 kB
267
268
  ℹ [ESM] dist/Transform.d.mts  0.48 kB │ gzip: 0.26 kB
268
- ℹ [ESM] dist/OperationDefinition.d.mts  0.36 kB │ gzip: 0.22 kB
269
- ℹ [ESM] 144 files, total: 845.46 kB
270
- ✔ Build complete in 5846ms
269
+ ℹ [ESM] 144 files, total: 852.43 kB
270
+ ✔ Build complete in 5644ms
@@ -1,5 +1,7 @@
1
+ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
1
2
 
2
3
  //#region src/OperationDefinition.ts
4
+ var OperationDefinition_exports = /* @__PURE__ */ require_rolldown_runtime.__export({ make: () => make });
3
5
  const make = (options) => {
4
6
  return {
5
7
  kind: options.kind,
@@ -10,4 +12,10 @@ const make = (options) => {
10
12
  };
11
13
 
12
14
  //#endregion
15
+ Object.defineProperty(exports, 'OperationDefinition_exports', {
16
+ enumerable: true,
17
+ get: function () {
18
+ return OperationDefinition_exports;
19
+ }
20
+ });
13
21
  exports.make = make;
@@ -1,12 +1,26 @@
1
1
  import { Schema } from "effect";
2
2
 
3
3
  //#region src/OperationDefinition.d.ts
4
-
4
+ declare namespace OperationDefinition_d_exports {
5
+ export { OperationDefinition, make };
6
+ }
7
+ type Mutable<T> = T extends ReadonlyArray<infer U> ? Array<U> : { -readonly [K in keyof T]: T[K] };
5
8
  interface OperationDefinition<TKind, TPayload extends Schema.Schema.Any, TTarget extends Schema.Schema.Any> {
6
9
  readonly kind: TKind;
7
10
  readonly payload: TPayload;
8
11
  readonly target: TTarget;
9
12
  }
13
+ declare const make: <TKind, TPayload extends Schema.Schema.Any, TTarget extends Schema.Schema.Any>(options: {
14
+ readonly kind: TKind;
15
+ readonly payload: TPayload;
16
+ readonly target: TTarget;
17
+ readonly apply: (payload: Schema.Schema.Type<TPayload>, target: Mutable<Schema.Schema.Type<TTarget>>) => void;
18
+ }) => {
19
+ readonly kind: TKind;
20
+ readonly payload: TPayload;
21
+ readonly target: TTarget;
22
+ readonly apply: (payload: Schema.Schema.Type<TPayload>, target: Mutable<Schema.Schema.Type<TTarget>>) => void;
23
+ };
10
24
  //#endregion
11
- export { OperationDefinition };
25
+ export { OperationDefinition, OperationDefinition_d_exports };
12
26
  //# sourceMappingURL=OperationDefinition.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OperationDefinition.d.cts","names":[],"sources":["../src/OperationDefinition.ts"],"sourcesContent":[],"mappings":";;;;AAI6D,UAA5C,mBAA0D,CAAA,KAAA,EAAA,iBAAd,MAAA,CAAO,MAAA,CAAO,GAAA,EAAA,gBAAqB,MAAA,CAAO,MAAA,CAAO,GAAnC,CAAA,CAAA;EAAqB,SAAO,IAAO,EAC3F,KAD2F;EAC3F,SAAA,OAAA,EACG,QADH;EACG,SAAA,MAAA,EACD,OADC"}
1
+ {"version":3,"file":"OperationDefinition.d.cts","names":[],"sources":["../src/OperationDefinition.ts"],"sourcesContent":[],"mappings":";;;;;;KAEK,aAAa,UAAU,yBAAyB,MAAM,6BAA6B,IAAI,EAAE;UAE7E,4CAA4C,MAAA,CAAO,MAAA,CAAO,qBAAqB,MAAA,CAAO,MAAA,CAAO;iBAC3F;oBACG;mBACD;AAPW;AAEd,cAQL,IARK,EAAA,CAAA,KAAA,EAAA,iBAQ2B,MAAA,CAAO,MAAA,CAAO,GARzC,EAAA,gBAQ8D,MAAA,CAAO,MAAA,CAAO,GAR5E,CAAA,CAAA,OAAA,EAAA;EAAU,SAAA,IAAA,EAST,KATS;EAA+B,SAAA,OAAA,EAUrC,QAVqC;EAAN,SAAA,MAAA,EAWhC,OAXgC;EAAmC,SAAA,KAAA,EAAA,CAAA,OAAA,EAY1D,MAAA,CAAO,MAAA,CAAO,IAZ4C,CAYvC,QAZuC,CAAA,EAAA,MAAA,EAYpB,OAZoB,CAYZ,MAAA,CAAO,MAAA,CAAO,IAZF,CAYO,OAZP,CAAA,CAAA,EAAA,GAAA,IAAA;CAAI,EAAA,GAAA;EAAE,SAAA,IAAA,OAAA;EAAC,SAAA,OAAA,UAAA;EAE9E,SAAA,MAAA,SAAmB;EAAyB,SAAO,KAAO,EAAA,CAAA,OAAA,EAU7C,MAAA,CAAO,MAAA,CAAO,IAV+B,CAU1B,QAV0B,CAAA,EAAA,MAAA,EAUP,OAVO,CAUC,MAAA,CAAO,MAAA,CAAO,IAVf,CAUoB,OAVpB,CAAA,CAAA,EAAA,GAAA,IAAA;CAAqB"}
@@ -1,12 +1,26 @@
1
1
  import { Schema } from "effect";
2
2
 
3
3
  //#region src/OperationDefinition.d.ts
4
-
4
+ declare namespace OperationDefinition_d_exports {
5
+ export { OperationDefinition, make };
6
+ }
7
+ type Mutable<T> = T extends ReadonlyArray<infer U> ? Array<U> : { -readonly [K in keyof T]: T[K] };
5
8
  interface OperationDefinition<TKind, TPayload extends Schema.Schema.Any, TTarget extends Schema.Schema.Any> {
6
9
  readonly kind: TKind;
7
10
  readonly payload: TPayload;
8
11
  readonly target: TTarget;
9
12
  }
13
+ declare const make: <TKind, TPayload extends Schema.Schema.Any, TTarget extends Schema.Schema.Any>(options: {
14
+ readonly kind: TKind;
15
+ readonly payload: TPayload;
16
+ readonly target: TTarget;
17
+ readonly apply: (payload: Schema.Schema.Type<TPayload>, target: Mutable<Schema.Schema.Type<TTarget>>) => void;
18
+ }) => {
19
+ readonly kind: TKind;
20
+ readonly payload: TPayload;
21
+ readonly target: TTarget;
22
+ readonly apply: (payload: Schema.Schema.Type<TPayload>, target: Mutable<Schema.Schema.Type<TTarget>>) => void;
23
+ };
10
24
  //#endregion
11
- export { OperationDefinition };
25
+ export { OperationDefinition, OperationDefinition_d_exports };
12
26
  //# sourceMappingURL=OperationDefinition.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OperationDefinition.d.mts","names":[],"sources":["../src/OperationDefinition.ts"],"sourcesContent":[],"mappings":";;;;AAI6D,UAA5C,mBAA0D,CAAA,KAAA,EAAA,iBAAd,MAAA,CAAO,MAAA,CAAO,GAAA,EAAA,gBAAqB,MAAA,CAAO,MAAA,CAAO,GAAnC,CAAA,CAAA;EAAqB,SAAO,IAAO,EAC3F,KAD2F;EAC3F,SAAA,OAAA,EACG,QADH;EACG,SAAA,MAAA,EACD,OADC"}
1
+ {"version":3,"file":"OperationDefinition.d.mts","names":[],"sources":["../src/OperationDefinition.ts"],"sourcesContent":[],"mappings":";;;;;;KAEK,aAAa,UAAU,yBAAyB,MAAM,6BAA6B,IAAI,EAAE;UAE7E,4CAA4C,MAAA,CAAO,MAAA,CAAO,qBAAqB,MAAA,CAAO,MAAA,CAAO;iBAC3F;oBACG;mBACD;AAPW;AAEd,cAQL,IARK,EAAA,CAAA,KAAA,EAAA,iBAQ2B,MAAA,CAAO,MAAA,CAAO,GARzC,EAAA,gBAQ8D,MAAA,CAAO,MAAA,CAAO,GAR5E,CAAA,CAAA,OAAA,EAAA;EAAU,SAAA,IAAA,EAST,KATS;EAA+B,SAAA,OAAA,EAUrC,QAVqC;EAAN,SAAA,MAAA,EAWhC,OAXgC;EAAmC,SAAA,KAAA,EAAA,CAAA,OAAA,EAY1D,MAAA,CAAO,MAAA,CAAO,IAZ4C,CAYvC,QAZuC,CAAA,EAAA,MAAA,EAYpB,OAZoB,CAYZ,MAAA,CAAO,MAAA,CAAO,IAZF,CAYO,OAZP,CAAA,CAAA,EAAA,GAAA,IAAA;CAAI,EAAA,GAAA;EAAE,SAAA,IAAA,OAAA;EAAC,SAAA,OAAA,UAAA;EAE9E,SAAA,MAAA,SAAmB;EAAyB,SAAO,KAAO,EAAA,CAAA,OAAA,EAU7C,MAAA,CAAO,MAAA,CAAO,IAV+B,CAU1B,QAV0B,CAAA,EAAA,MAAA,EAUP,OAVO,CAUC,MAAA,CAAO,MAAA,CAAO,IAVf,CAUoB,OAVpB,CAAA,CAAA,EAAA,GAAA,IAAA;CAAqB"}
@@ -1,4 +1,7 @@
1
+ import { __export } from "./_virtual/rolldown_runtime.mjs";
2
+
1
3
  //#region src/OperationDefinition.ts
4
+ var OperationDefinition_exports = /* @__PURE__ */ __export({ make: () => make });
2
5
  const make = (options) => {
3
6
  return {
4
7
  kind: options.kind,
@@ -9,5 +12,5 @@ const make = (options) => {
9
12
  };
10
13
 
11
14
  //#endregion
12
- export { make };
15
+ export { OperationDefinition_exports, make };
13
16
  //# sourceMappingURL=OperationDefinition.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OperationDefinition.mjs","names":[],"sources":["../src/OperationDefinition.ts"],"sourcesContent":["import { Schema } from \"effect\";\n\ntype Mutable<T> = T extends ReadonlyArray<infer U> ? Array<U> : { -readonly [K in keyof T]: T[K] };\n\nexport interface OperationDefinition<TKind, TPayload extends Schema.Schema.Any, TTarget extends Schema.Schema.Any> {\n readonly kind: TKind\n readonly payload: TPayload\n readonly target: TTarget\n}\n\nexport const make = <TKind, TPayload extends Schema.Schema.Any, TTarget extends Schema.Schema.Any>(options: {\n readonly kind: TKind\n readonly payload: TPayload\n readonly target: TTarget\n readonly apply: (payload: Schema.Schema.Type<TPayload>, target: Mutable<Schema.Schema.Type<TTarget>>) => void\n}) => {\n return {\n kind: options.kind,\n payload: options.payload,\n target: options.target,\n apply: options.apply\n } as const;\n}"],"mappings":";AAUA,MAAa,QAAsF,YAK7F;AACF,QAAO;EACH,MAAM,QAAQ;EACd,SAAS,QAAQ;EACjB,QAAQ,QAAQ;EAChB,OAAO,QAAQ;EAClB"}
1
+ {"version":3,"file":"OperationDefinition.mjs","names":[],"sources":["../src/OperationDefinition.ts"],"sourcesContent":["import { Schema } from \"effect\";\n\ntype Mutable<T> = T extends ReadonlyArray<infer U> ? Array<U> : { -readonly [K in keyof T]: T[K] };\n\nexport interface OperationDefinition<TKind, TPayload extends Schema.Schema.Any, TTarget extends Schema.Schema.Any> {\n readonly kind: TKind\n readonly payload: TPayload\n readonly target: TTarget\n}\n\nexport const make = <TKind, TPayload extends Schema.Schema.Any, TTarget extends Schema.Schema.Any>(options: {\n readonly kind: TKind\n readonly payload: TPayload\n readonly target: TTarget\n readonly apply: (payload: Schema.Schema.Type<TPayload>, target: Mutable<Schema.Schema.Type<TTarget>>) => void\n}) => {\n return {\n kind: options.kind,\n payload: options.payload,\n target: options.target,\n apply: options.apply\n } as const;\n}"],"mappings":";;;;AAUA,MAAa,QAAsF,YAK7F;AACF,QAAO;EACH,MAAM,QAAQ;EACd,SAAS,QAAQ;EACjB,QAAQ,QAAQ;EAChB,OAAO,QAAQ;EAClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Presence.d.mts","names":[],"sources":["../src/Presence.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;UAeiB;;;mBAGE,MAAA,CAAO,OAAO;;EAHhB,SAAA,KAAQ,EAKP,KALO;;;;;AAWR,UAAA,eAAe,CAAA,KAEC,CAAA,CAAA;EAMrB;EAKA,SAAA,MAAW,EAXJ,MAAA,CAAO,MAWA,CAXO,KAWC,CAAA;AASlC;AA8BA;;;AAAwE,KA5C5D,KA4C4D,CAAA,UA5C5C,QA4C4C,CAAA,GAAA,CAAA,CAAA,GA5C3B,CA4C2B,CAAA,OAAA,CAAA;;;AAmBxE;AACqB,KA3DT,WAAA,GAAc,QA2DL,CAAA,GAAA,CAAA;;;;AAcR,UAhEI,aAyEhB,CAAA,QAAA,OAAA,CAAA,CAAA;EARoB;EAAT,SAAA,IAAA,EA/DK,KA+DL;EAET;EAAK,SAAA,MAAA,CAAA,EAAA,MAAA;AAeR;;;;;;;;;;;;;;;;;;;;cApDa,uBAAyB,gBAAgB,WAAS,SAAS;;;;;;;;;;cAmB3D,4BACD,SAAS,0BAElB;;;;;;;;;cAYU,gCACD,SAAS,0BAElB;;;;;;;;cAeU,2BACD,SAAS,kCAEV"}
1
+ {"version":3,"file":"Presence.d.mts","names":[],"sources":["../src/Presence.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;UAeiB;;;mBAGE,MAAA,CAAO,OAAO;;EAHhB,SAAA,KAAQ,EAKP,KALO;;;;;AAWR,UAAA,eAAe,CAAA,KAAA,CAEC,CAAA;EAMrB;EAKA,SAAA,MAAW,EAXJ,MAAA,CAAO,MAWA,CAXO,KAWC,CAAA;AASlC;AA8BA;;;AAAwE,KA5C5D,KA4C4D,CAAA,UA5C5C,QA4C4C,CAAA,GAAA,CAAA,CAAA,GA5C3B,CA4C2B,CAAA,OAAA,CAAA;;;AAmBxE;AACqB,KA3DT,WAAA,GAAc,QA2DL,CAAA,GAAA,CAAA;;;;AAcR,UAhEI,aAyEhB,CAAA,QAAA,OAAA,CAAA,CAAA;EARoB;EAAT,SAAA,IAAA,EA/DK,KA+DL;EAET;EAAK,SAAA,MAAA,CAAA,EAAA,MAAA;AAeR;;;;;;;;;;;;;;;;;;;;cApDa,uBAAyB,gBAAgB,WAAS,SAAS;;;;;;;;;;cAmB3D,4BACD,SAAS,0BAElB;;;;;;;;;cAYU,gCACD,SAAS,0BAElB;;;;;;;;cAeU,2BACD,SAAS,kCAEV"}
package/dist/index.cjs CHANGED
@@ -1,3 +1,4 @@
1
+ const require_OperationDefinition = require('./OperationDefinition.cjs');
1
2
  const require_OperationPath = require('./OperationPath.cjs');
2
3
  const require_Operation = require('./Operation.cjs');
3
4
  const require_Primitive = require('./Primitive.cjs');
@@ -28,6 +29,12 @@ Object.defineProperty(exports, 'Operation', {
28
29
  return require_Operation.Operation_exports;
29
30
  }
30
31
  });
32
+ Object.defineProperty(exports, 'OperationDefinition', {
33
+ enumerable: true,
34
+ get: function () {
35
+ return require_OperationDefinition.OperationDefinition_exports;
36
+ }
37
+ });
31
38
  Object.defineProperty(exports, 'OperationPath', {
32
39
  enumerable: true,
33
40
  get: function () {
package/dist/index.d.cts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Presence_d_exports } from "./Presence.cjs";
2
2
  import { OperationPath_d_exports } from "./OperationPath.cjs";
3
+ import { OperationDefinition_d_exports } from "./OperationDefinition.cjs";
3
4
  import { Operation_d_exports } from "./Operation.cjs";
4
5
  import { Transaction_d_exports } from "./Transaction.cjs";
5
6
  import { ProxyEnvironment_d_exports } from "./ProxyEnvironment.cjs";
@@ -9,4 +10,4 @@ import { Document_d_exports } from "./Document.cjs";
9
10
  import { EffectSchema_d_exports } from "./EffectSchema.cjs";
10
11
  import { index_d_exports } from "./types/index.cjs";
11
12
  import { tree_helpers_d_exports } from "./utils/tree-helpers.cjs";
12
- export { Document_d_exports as Document, EffectSchema_d_exports as EffectSchema, Operation_d_exports as Operation, OperationPath_d_exports as OperationPath, Presence_d_exports as Presence, Primitive_d_exports as Primitive, ProxyEnvironment_d_exports as ProxyEnvironment, Transaction_d_exports as Transaction, Transform_d_exports as Transform, tree_helpers_d_exports as TreeHelpers, index_d_exports as Types };
13
+ export { Document_d_exports as Document, EffectSchema_d_exports as EffectSchema, Operation_d_exports as Operation, OperationDefinition_d_exports as OperationDefinition, OperationPath_d_exports as OperationPath, Presence_d_exports as Presence, Primitive_d_exports as Primitive, ProxyEnvironment_d_exports as ProxyEnvironment, Transaction_d_exports as Transaction, Transform_d_exports as Transform, tree_helpers_d_exports as TreeHelpers, index_d_exports as Types };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Presence_d_exports } from "./Presence.mjs";
2
2
  import { OperationPath_d_exports } from "./OperationPath.mjs";
3
+ import { OperationDefinition_d_exports } from "./OperationDefinition.mjs";
3
4
  import { Operation_d_exports } from "./Operation.mjs";
4
5
  import { Transaction_d_exports } from "./Transaction.mjs";
5
6
  import { ProxyEnvironment_d_exports } from "./ProxyEnvironment.mjs";
@@ -9,4 +10,4 @@ import { Document_d_exports } from "./Document.mjs";
9
10
  import { EffectSchema_d_exports } from "./EffectSchema.mjs";
10
11
  import { index_d_exports } from "./types/index.mjs";
11
12
  import { tree_helpers_d_exports } from "./utils/tree-helpers.mjs";
12
- export { Document_d_exports as Document, EffectSchema_d_exports as EffectSchema, Operation_d_exports as Operation, OperationPath_d_exports as OperationPath, Presence_d_exports as Presence, Primitive_d_exports as Primitive, ProxyEnvironment_d_exports as ProxyEnvironment, Transaction_d_exports as Transaction, Transform_d_exports as Transform, tree_helpers_d_exports as TreeHelpers, index_d_exports as Types };
13
+ export { Document_d_exports as Document, EffectSchema_d_exports as EffectSchema, Operation_d_exports as Operation, OperationDefinition_d_exports as OperationDefinition, OperationPath_d_exports as OperationPath, Presence_d_exports as Presence, Primitive_d_exports as Primitive, ProxyEnvironment_d_exports as ProxyEnvironment, Transaction_d_exports as Transaction, Transform_d_exports as Transform, tree_helpers_d_exports as TreeHelpers, index_d_exports as Types };
package/dist/index.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ import { OperationDefinition_exports } from "./OperationDefinition.mjs";
1
2
  import { OperationPath_exports } from "./OperationPath.mjs";
2
3
  import { Operation_exports } from "./Operation.mjs";
3
4
  import { Primitive_exports } from "./Primitive.mjs";
@@ -10,4 +11,4 @@ import { EffectSchema_exports } from "./EffectSchema.mjs";
10
11
  import { types_exports } from "./types/index.mjs";
11
12
  import { tree_helpers_exports } from "./utils/tree-helpers.mjs";
12
13
 
13
- export { Document_exports as Document, EffectSchema_exports as EffectSchema, Operation_exports as Operation, OperationPath_exports as OperationPath, Presence_exports as Presence, Primitive_exports as Primitive, ProxyEnvironment_exports as ProxyEnvironment, Transaction_exports as Transaction, Transform_exports as Transform, tree_helpers_exports as TreeHelpers, types_exports as Types };
14
+ export { Document_exports as Document, EffectSchema_exports as EffectSchema, Operation_exports as Operation, OperationDefinition_exports as OperationDefinition, OperationPath_exports as OperationPath, Presence_exports as Presence, Primitive_exports as Primitive, ProxyEnvironment_exports as ProxyEnvironment, Transaction_exports as Transaction, Transform_exports as Transform, tree_helpers_exports as TreeHelpers, types_exports as Types };
@@ -8,8 +8,11 @@ var ServerDocument_exports = /* @__PURE__ */ require_rolldown_runtime.__export({
8
8
  * Creates a new ServerDocument for the given schema.
9
9
  */
10
10
  const make = (options) => {
11
- const { schema, initialState, initialVersion = 0, onBroadcast, onRejection, maxTransactionHistory = 1e3 } = options;
12
- let _document = require_Document.make(schema, { initial: initialState });
11
+ const { schema, initial, initialState, initialVersion = 0, onBroadcast, onRejection, maxTransactionHistory = 1e3 } = options;
12
+ let _document = require_Document.make(schema, {
13
+ initial,
14
+ initialState
15
+ });
13
16
  let _version = initialVersion;
14
17
  const _processedTransactions = /* @__PURE__ */ new Set();
15
18
  const _transactionOrder = [];
@@ -49,6 +52,20 @@ const make = (options) => {
49
52
  };
50
53
  }
51
54
  };
55
+ /**
56
+ * Internal function to apply a transaction and broadcast.
57
+ * Called by both apply() and submit().
58
+ */
59
+ const applyAndBroadcast = (transaction) => {
60
+ _document.apply(transaction.ops);
61
+ _version += 1;
62
+ recordTransaction(transaction.id);
63
+ onBroadcast({
64
+ type: "transaction",
65
+ transaction,
66
+ version: _version
67
+ });
68
+ };
52
69
  return {
53
70
  schema,
54
71
  get: () => {
@@ -57,6 +74,20 @@ const make = (options) => {
57
74
  getVersion: () => {
58
75
  return _version;
59
76
  },
77
+ validate: (transaction) => {
78
+ const validation = validateTransaction(transaction);
79
+ if (!validation.valid) return {
80
+ valid: false,
81
+ reason: validation.reason
82
+ };
83
+ return {
84
+ valid: true,
85
+ nextVersion: _version + 1
86
+ };
87
+ },
88
+ apply: (transaction) => {
89
+ applyAndBroadcast(transaction);
90
+ },
60
91
  submit: (transaction) => {
61
92
  const validation = validateTransaction(transaction);
62
93
  if (!validation.valid) {
@@ -67,7 +98,7 @@ const make = (options) => {
67
98
  };
68
99
  }
69
100
  try {
70
- _document.apply(transaction.ops);
101
+ applyAndBroadcast(transaction);
71
102
  } catch (error) {
72
103
  const reason = error instanceof Error ? error.message : String(error);
73
104
  onRejection === null || onRejection === void 0 || onRejection(transaction.id, reason);
@@ -76,13 +107,6 @@ const make = (options) => {
76
107
  reason
77
108
  };
78
109
  }
79
- _version += 1;
80
- recordTransaction(transaction.id);
81
- onBroadcast({
82
- type: "transaction",
83
- transaction,
84
- version: _version
85
- });
86
110
  return {
87
111
  success: true,
88
112
  version: _version
@@ -3,7 +3,7 @@ import { AnyPrimitive, InferSetInput, InferState } from "../primitives/shared.cj
3
3
 
4
4
  //#region src/server/ServerDocument.d.ts
5
5
  declare namespace ServerDocument_d_exports {
6
- export { ErrorMessage, ServerDocument, ServerDocumentOptions, ServerMessage, SnapshotMessage, SubmitResult, TransactionMessage, make };
6
+ export { ErrorMessage, ServerDocument, ServerDocumentOptions, ServerMessage, SnapshotMessage, SubmitResult, TransactionMessage, ValidateResult, make };
7
7
  }
8
8
  /**
9
9
  * Message sent when broadcasting a committed transaction.
@@ -44,14 +44,30 @@ type SubmitResult = {
44
44
  readonly success: false;
45
45
  readonly reason: string;
46
46
  };
47
+ /**
48
+ * Result of validating a transaction (two-phase commit: phase 1).
49
+ * If valid, returns the version this transaction will get when applied.
50
+ */
51
+ type ValidateResult = {
52
+ readonly valid: true;
53
+ readonly nextVersion: number;
54
+ } | {
55
+ readonly valid: false;
56
+ readonly reason: string;
57
+ };
47
58
  /**
48
59
  * Options for creating a ServerDocument.
49
60
  */
50
61
  interface ServerDocumentOptions<TSchema extends AnyPrimitive> {
51
62
  /** The schema defining the document structure */
52
63
  readonly schema: TSchema;
53
- /** Initial value (optional, will use schema defaults if not provided) - uses set input format */
54
- readonly initialState?: InferSetInput<TSchema>;
64
+ /** Initial value for new documents (uses set input format, gets converted to state) */
65
+ readonly initial?: InferSetInput<TSchema>;
66
+ /**
67
+ * Raw initial state (already in internal state format).
68
+ * Use this when restoring from storage. Takes precedence over `initial`.
69
+ */
70
+ readonly initialState?: InferState<TSchema>;
55
71
  /** Initial version number (optional, defaults to 0) */
56
72
  readonly initialVersion?: number;
57
73
  /** Called when a transaction is successfully applied and should be broadcast */
@@ -72,8 +88,30 @@ interface ServerDocument<TSchema extends AnyPrimitive> {
72
88
  /** Returns the current version number */
73
89
  getVersion(): number;
74
90
  /**
75
- * Submits a transaction for processing.
91
+ * Phase 1 of two-phase commit: Validates a transaction without side effects.
92
+ * Returns the version this transaction would get if applied.
93
+ * Does NOT modify state, increment version, record transaction, or broadcast.
94
+ *
95
+ * Use this to validate before writing to WAL, then call apply() after WAL success.
96
+ *
97
+ * @param transaction - The transaction to validate
98
+ * @returns ValidateResult with nextVersion if valid, or reason if invalid
99
+ */
100
+ validate(transaction: Transaction): ValidateResult;
101
+ /**
102
+ * Phase 2 of two-phase commit: Applies a pre-validated transaction.
103
+ * MUST only be called after validate() succeeded AND WAL write succeeded.
104
+ * Mutates state, increments version, records transaction ID, and broadcasts.
105
+ *
106
+ * @param transaction - The transaction to apply (must have been validated first)
107
+ */
108
+ apply(transaction: Transaction): void;
109
+ /**
110
+ * Submits a transaction for processing (combines validate + apply).
76
111
  * Validates and applies the transaction if valid, or rejects it with a reason.
112
+ *
113
+ * For two-phase commit with WAL, use validate() then apply() instead.
114
+ *
77
115
  * @param transaction - The transaction to process
78
116
  * @returns SubmitResult indicating success with version or failure with reason
79
117
  */
@@ -94,5 +132,5 @@ interface ServerDocument<TSchema extends AnyPrimitive> {
94
132
  */
95
133
  declare const make: <TSchema extends AnyPrimitive>(options: ServerDocumentOptions<TSchema>) => ServerDocument<TSchema>;
96
134
  //#endregion
97
- export { ErrorMessage, ServerDocumentOptions, ServerDocument_d_exports, ServerMessage, SnapshotMessage, SubmitResult, TransactionMessage };
135
+ export { ErrorMessage, ServerDocumentOptions, ServerDocument_d_exports, ServerMessage, SnapshotMessage, SubmitResult, TransactionMessage, ValidateResult };
98
136
  //# sourceMappingURL=ServerDocument.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServerDocument.d.cts","names":[],"sources":["../../src/server/ServerDocument.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;UAWiB,kBAAA;;wBAEO;;;;;;;UAQP,YAAA;EAVA,SAAA,IAAA,EAAA,OAAkB;EAUlB,SAAA,aAAY,EAAA,MAAA;EASZ,SAAA,MAAA,EAAA,MAAe;AAShC;;;;AAA+E,UAT9D,eAAA,CAS8D;EASnE,SAAA,IAAA,EAAY,UAAA;EAWP,SAAA,KAAA,EAAA,OAAA;EAAsC,SAAA,OAAA,EAAA,MAAA;;;;;AAQH,KA5BxC,aAAA,GAAgB,kBA4BwB,GA5BH,YA4BG,GA5BY,eA4BZ;AAUpD;;;AAK8B,KAlClB,YAAA,GAkCkB;EAArB,SAAA,OAAA,EAAA,IAAA;EAWa,SAAA,OAAA,EAAA,MAAA;CAA0B,GAAA;EAM/B,SAAA,OAAA,EAAA,KAAA;EAAe,SAAA,MAAA,EAAA,MAAA;AAgBhC,CAAA;;;;AAEkB,UA1DD,qBA0DC,CAAA,gBA1DqC,YA0DrC,CAAA,CAAA;EAAf;EAAc,SAAA,MAAA,EAxDE,OAwDF;;0BAtDS,cAAwB;;;;kCAIhB;;;;;;;;;UAUjB,+BAA+B;;mBAE7B;;SAGV,WAAqB;;;;;;;;;sBAWR,cAA0B;;;;;iBAM/B;;;;;;;;;;cAgBJ,uBAAwB,uBAC1B,sBAAsB,aAC9B,eAAe"}
1
+ {"version":3,"file":"ServerDocument.d.cts","names":[],"sources":["../../src/server/ServerDocument.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;UAWiB,kBAAA;;wBAEO;;;;;;;UAQP,YAAA;;EAVA,SAAA,aAAkB,EAAA,MAAA;EAUlB,SAAA,MAAY,EAAA,MAAA;AAS7B;AASA;;;AAAgE,UAT/C,eAAA,CAS+C;EAAe,SAAA,IAAA,EAAA,UAAA;EASnE,SAAA,KAAA,EAAY,OAAA;EAQZ,SAAA,OAAA,EAAc,MAAA;AAW1B;;;;AAIqB,KAhCT,aAAA,GAAgB,kBAgCP,GAhC4B,YAgC5B,GAhC2C,eAgC3C;;;;AAS+B,KAhCxC,YAAA,GAgCwC;EAUnC,SAAA,OAAA,EAAc,IAAA;EAAiB,SAAA,OAAA,EAAA,MAAA;CAE7B,GAAA;EAGW,SAAA,OAAA,EAAA,KAAA;EAArB,SAAA,MAAA,EAAA,MAAA;CAee;;;;;AA0BP,KAhFL,cAAA,GAgFK;EAAe,SAAA,KAAA,EAAA,IAAA;EAgBnB,SAgMZ,WAAA,EAAA,MAAA;CAhMoC,GAAA;EACJ,SAAA,KAAA,EAAA,KAAA;EAAtB,SAAA,MAAA,EAAA,MAAA;CACO;;;;UAvFD,sCAAsC;;mBAEpC;;qBAEE,cAAwB;;;;;0BAKnB,WAAqB;;;;kCAIb;;;;;;;;;UAUjB,+BAA+B;;mBAE7B;;SAGV,WAAqB;;;;;;;;;;;;;wBAeN,cAA0B;;;;;;;;qBAS7B;;;;;;;;;;sBAWC,cAA0B;;;;;iBAM/B;;;;;;;;;;cAgBJ,uBAAwB,uBAC1B,sBAAsB,aAC9B,eAAe"}