@pluv/crdt-yjs 0.15.0 → 0.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/.eslintrc.js +2 -2
  2. package/.turbo/turbo-build.log +9 -9
  3. package/CHANGELOG.md +45 -37
  4. package/README.md +13 -29
  5. package/dist/index.d.mts +152 -55
  6. package/dist/index.d.ts +152 -55
  7. package/dist/index.js +433 -107
  8. package/dist/index.mjs +445 -101
  9. package/package.json +9 -8
  10. package/src/array/CrdtYjsArray.ts +55 -0
  11. package/src/array/array.ts +7 -0
  12. package/src/array/index.ts +2 -0
  13. package/src/doc/CrdtYjsDoc.ts +274 -0
  14. package/src/doc/CrdtYjsDocFactory.ts +83 -0
  15. package/src/doc/doc.ts +10 -0
  16. package/src/doc/index.ts +3 -0
  17. package/src/index.ts +1 -20
  18. package/src/map/CrdtYjsMap.ts +43 -0
  19. package/src/map/index.ts +2 -0
  20. package/src/{map.ts → map/map.ts} +3 -3
  21. package/src/object/CrdtYjsObject.ts +32 -0
  22. package/src/object/index.ts +2 -0
  23. package/src/object/object.ts +7 -0
  24. package/src/shared/index.ts +2 -0
  25. package/src/shared/isWrapper.ts +25 -0
  26. package/src/shared/toYjsValue.ts +5 -0
  27. package/src/text/CrdtYjsText.ts +34 -0
  28. package/src/text/index.ts +2 -0
  29. package/src/text/text.ts +5 -0
  30. package/src/types.ts +54 -35
  31. package/src/xmlElement/CrdtYjsXmlElement.ts +60 -0
  32. package/src/xmlElement/index.ts +2 -0
  33. package/src/xmlElement/xmlElement.ts +9 -0
  34. package/src/xmlFragment/CrdtYjsXmlFragment.ts +56 -0
  35. package/src/xmlFragment/index.ts +2 -0
  36. package/src/xmlFragment/xmlFragment.ts +9 -0
  37. package/src/xmlText/CrdtYjsXmlText.ts +38 -0
  38. package/src/xmlText/index.ts +2 -0
  39. package/src/xmlText/xmlText.ts +5 -0
  40. package/src/yjs.ts +9 -0
  41. package/src/array.ts +0 -11
  42. package/src/doc.ts +0 -160
  43. package/src/object.ts +0 -16
  44. package/src/text.ts +0 -5
  45. package/src/xmlElement.ts +0 -19
  46. package/src/xmlFragment.ts +0 -16
  47. package/src/xmlText.ts +0 -5
package/dist/index.js CHANGED
@@ -37,58 +37,354 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
37
37
  // src/index.ts
38
38
  var src_exports = {};
39
39
  __export(src_exports, {
40
- YjsDoc: () => YjsDoc,
40
+ yjs: () => yjs_exports
41
+ });
42
+ module.exports = __toCommonJS(src_exports);
43
+
44
+ // src/yjs.ts
45
+ var yjs_exports = {};
46
+ __export(yjs_exports, {
47
+ CrdtYjsArray: () => CrdtYjsArray,
48
+ CrdtYjsDoc: () => CrdtYjsDoc,
49
+ CrdtYjsMap: () => CrdtYjsMap,
50
+ CrdtYjsObject: () => CrdtYjsObject,
51
+ CrdtYjsText: () => CrdtYjsText,
52
+ CrdtYjsXmlElement: () => CrdtYjsXmlElement,
53
+ CrdtYjsXmlFragment: () => CrdtYjsXmlFragment,
54
+ CrdtYjsXmlText: () => CrdtYjsXmlText,
41
55
  array: () => array,
42
56
  doc: () => doc,
43
57
  map: () => map,
44
58
  object: () => object,
45
- text: () => text,
46
59
  xmlElement: () => xmlElement,
47
60
  xmlFragment: () => xmlFragment,
48
61
  xmlText: () => xmlText
49
62
  });
50
- module.exports = __toCommonJS(src_exports);
51
63
 
52
- // src/array.ts
64
+ // src/array/CrdtYjsArray.ts
65
+ var import_crdt7 = require("@pluv/crdt");
66
+ var import_yjs7 = require("yjs");
67
+
68
+ // src/map/CrdtYjsMap.ts
69
+ var import_crdt = require("@pluv/crdt");
53
70
  var import_yjs = require("yjs");
71
+ var CrdtYjsMap = class extends import_crdt.AbstractCrdtType {
72
+ constructor(value = []) {
73
+ super();
74
+ this.initialValue = value.map(([k, v]) => [k, toYjsValue(v)]);
75
+ this.value = new import_yjs.Map(this.initialValue);
76
+ }
77
+ get size() {
78
+ return this.value.size;
79
+ }
80
+ delete(prop) {
81
+ this.value.delete(prop);
82
+ return this;
83
+ }
84
+ set(prop, value) {
85
+ this.value.set(prop, toYjsValue(value));
86
+ return this;
87
+ }
88
+ toJson() {
89
+ return this.value.toJSON();
90
+ }
91
+ };
92
+
93
+ // src/object/CrdtYjsObject.ts
94
+ var import_crdt2 = require("@pluv/crdt");
95
+ var import_yjs2 = require("yjs");
96
+ var CrdtYjsObject = class extends import_crdt2.AbstractCrdtType {
97
+ constructor(value = {}) {
98
+ super();
99
+ this.initialValue = Object.entries(value).map(([k, v]) => [
100
+ k,
101
+ toYjsValue(v)
102
+ ]);
103
+ this.value = new import_yjs2.Map(this.initialValue);
104
+ }
105
+ set(prop, value) {
106
+ this.value.set(prop.toString(), toYjsValue(value));
107
+ return this;
108
+ }
109
+ toJson() {
110
+ return this.value.toJSON();
111
+ }
112
+ };
113
+
114
+ // src/text/CrdtYjsText.ts
115
+ var import_crdt3 = require("@pluv/crdt");
116
+ var import_yjs3 = require("yjs");
117
+ var CrdtYjsText = class extends import_crdt3.AbstractCrdtType {
118
+ constructor(value = "") {
119
+ super();
120
+ this.initialValue = value;
121
+ this.value = new import_yjs3.Text(value);
122
+ }
123
+ get length() {
124
+ return this.value.length;
125
+ }
126
+ delete(index, length = 1) {
127
+ this.value.delete(index, length);
128
+ return this;
129
+ }
130
+ insert(index, text2) {
131
+ this.value.insert(index, text2);
132
+ return this;
133
+ }
134
+ toJson() {
135
+ return this.value.toJSON();
136
+ }
137
+ };
138
+
139
+ // src/xmlElement/CrdtYjsXmlElement.ts
140
+ var import_crdt4 = require("@pluv/crdt");
141
+ var import_yjs4 = require("yjs");
142
+ var CrdtYjsXmlElement = class extends import_crdt4.AbstractCrdtType {
143
+ constructor(name, children) {
144
+ super();
145
+ this.initialValue = children.map((item) => item.value);
146
+ this.name = name;
147
+ this.value = new import_yjs4.XmlElement(name);
148
+ this.push(...children);
149
+ }
150
+ get length() {
151
+ return this.value.length;
152
+ }
153
+ delete(index, length = 1) {
154
+ this.value.delete(index, length);
155
+ return this;
156
+ }
157
+ insert(index, ...children) {
158
+ const converted = children.map((child) => toYjsValue(child));
159
+ this.value.insert(index, converted);
160
+ return this;
161
+ }
162
+ push(...children) {
163
+ return this.insert(this.length, ...children);
164
+ }
165
+ unshift(...children) {
166
+ return this.insert(0, ...children);
167
+ }
168
+ toJson() {
169
+ return this.value.toJSON();
170
+ }
171
+ };
172
+
173
+ // src/xmlElement/xmlElement.ts
174
+ var xmlElement = (name, children) => {
175
+ return new CrdtYjsXmlElement(name, children);
176
+ };
177
+
178
+ // src/xmlFragment/CrdtYjsXmlFragment.ts
179
+ var import_crdt5 = require("@pluv/crdt");
180
+ var import_yjs5 = require("yjs");
181
+ var CrdtYjsXmlFragment = class extends import_crdt5.AbstractCrdtType {
182
+ constructor(children) {
183
+ super();
184
+ this.initialValue = children.map((item) => item.value);
185
+ this.value = new import_yjs5.XmlFragment();
186
+ this.push(...children);
187
+ }
188
+ get length() {
189
+ return this.value.length;
190
+ }
191
+ delete(index, length = 1) {
192
+ this.value.delete(index, length);
193
+ return this;
194
+ }
195
+ insert(index, ...children) {
196
+ const converted = children.map((child) => toYjsValue(child));
197
+ this.value.insert(index, converted);
198
+ return this;
199
+ }
200
+ push(...children) {
201
+ return this.insert(this.length, ...children);
202
+ }
203
+ unshift(...children) {
204
+ return this.insert(0, ...children);
205
+ }
206
+ toJson() {
207
+ return this.value.toJSON();
208
+ }
209
+ };
210
+
211
+ // src/xmlFragment/xmlFragment.ts
212
+ var xmlFragment = (children) => {
213
+ return new CrdtYjsXmlFragment(children);
214
+ };
215
+
216
+ // src/xmlText/CrdtYjsXmlText.ts
217
+ var import_crdt6 = require("@pluv/crdt");
218
+ var import_yjs6 = require("yjs");
219
+ var CrdtYjsXmlText = class extends import_crdt6.AbstractCrdtType {
220
+ constructor(value = "") {
221
+ super();
222
+ this.initialValue = value;
223
+ this.value = new import_yjs6.XmlText(value);
224
+ }
225
+ get length() {
226
+ return this.value.length;
227
+ }
228
+ delete(index, length = 1) {
229
+ this.value.delete(index, length);
230
+ return this;
231
+ }
232
+ insert(index, text2, attributes) {
233
+ this.value.insert(index, text2, attributes);
234
+ return this;
235
+ }
236
+ toJson() {
237
+ return this.value.toJSON();
238
+ }
239
+ };
240
+
241
+ // src/xmlText/xmlText.ts
242
+ var xmlText = (value = "") => {
243
+ return new CrdtYjsXmlText(value);
244
+ };
245
+
246
+ // src/shared/isWrapper.ts
247
+ var isWrapper = (item) => {
248
+ return item instanceof CrdtYjsArray || item instanceof CrdtYjsMap || item instanceof CrdtYjsObject || item instanceof CrdtYjsText || item instanceof CrdtYjsXmlElement || item instanceof CrdtYjsXmlFragment || item instanceof CrdtYjsXmlText;
249
+ };
250
+
251
+ // src/shared/toYjsValue.ts
252
+ var toYjsValue = (item) => {
253
+ return isWrapper(item) ? item.value : item;
254
+ };
255
+
256
+ // src/array/CrdtYjsArray.ts
257
+ var CrdtYjsArray = class extends import_crdt7.AbstractCrdtType {
258
+ constructor(value = []) {
259
+ super();
260
+ const initialValue = value.map((item) => toYjsValue(item));
261
+ this.initialValue = initialValue;
262
+ this.value = new import_yjs7.Array();
263
+ this.push(...value);
264
+ }
265
+ get length() {
266
+ return this.value.length;
267
+ }
268
+ delete(index, length = 1) {
269
+ this.value.delete(index, length);
270
+ return this;
271
+ }
272
+ insert(index, ...items) {
273
+ const converted = items.map((item) => toYjsValue(item));
274
+ this.value.insert(index, converted);
275
+ return this;
276
+ }
277
+ push(...items) {
278
+ return this.insert(this.length, ...items);
279
+ }
280
+ unshift(...items) {
281
+ return this.insert(0, ...items);
282
+ }
283
+ toJson() {
284
+ return this.value.toJSON();
285
+ }
286
+ };
287
+
288
+ // src/array/array.ts
54
289
  var array = (value = []) => {
55
- const yarray = new import_yjs.Array();
56
- yarray.push(value.slice());
57
- return yarray;
290
+ return new CrdtYjsArray(value);
58
291
  };
59
292
 
60
- // src/doc.ts
293
+ // src/doc/CrdtYjsDoc.ts
294
+ var import_crdt8 = require("@pluv/crdt");
61
295
  var import_js_base64 = require("js-base64");
62
- var import_yjs2 = require("yjs");
63
- var YjsDoc = class _YjsDoc {
64
- constructor(value) {
65
- this.value = new import_yjs2.Doc();
296
+ var import_yjs8 = require("yjs");
297
+ var CrdtYjsDoc = class extends import_crdt8.AbstractCrdtDoc {
298
+ constructor(value = {}) {
299
+ super();
300
+ this.value = new import_yjs8.Doc();
66
301
  this._undoManager = null;
67
- if (!value)
68
- return;
69
- const storage = this.value.getMap("storage");
70
- Object.entries(value).forEach(([key, node]) => {
71
- storage.set(key, node);
72
- });
73
- }
74
- get storage() {
75
- const storage = this._storage;
76
- const keys = Array.from(storage.keys());
77
- return keys.reduce(
78
- (acc, key) => __spreadProps(__spreadValues({}, acc), { [key]: storage.get(key) }),
79
- {}
80
- );
302
+ this._storage = Object.entries(value).reduce((acc, [key, node]) => {
303
+ if (node instanceof CrdtYjsArray) {
304
+ const yArray = this.value.get(key, import_yjs8.Array);
305
+ yArray.insert(0, node.initialValue.slice(0));
306
+ node.value = yArray;
307
+ return __spreadProps(__spreadValues({}, acc), { [key]: node });
308
+ }
309
+ if (node instanceof CrdtYjsMap || node instanceof CrdtYjsObject) {
310
+ const yMap = this.value.get(key, import_yjs8.Map);
311
+ node.initialValue.forEach(([k, v]) => {
312
+ yMap.set(k.toString(), v);
313
+ });
314
+ node.value = yMap;
315
+ return __spreadProps(__spreadValues({}, acc), { [key]: node });
316
+ }
317
+ if (node instanceof CrdtYjsObject) {
318
+ const yMap = this.value.get(key, import_yjs8.Map);
319
+ node.initialValue.forEach(([k, v]) => {
320
+ yMap.set(k.toString(), v);
321
+ });
322
+ node.value = yMap;
323
+ return __spreadProps(__spreadValues({}, acc), { [key]: node });
324
+ }
325
+ if (node instanceof CrdtYjsText) {
326
+ const yText = this.value.get(key, import_yjs8.Text);
327
+ yText.insert(0, node.initialValue);
328
+ node.value = yText;
329
+ return __spreadProps(__spreadValues({}, acc), { [key]: node });
330
+ }
331
+ if (node instanceof CrdtYjsXmlElement) {
332
+ const yXmlElement = this.value.get(
333
+ key,
334
+ import_yjs8.XmlElement
335
+ );
336
+ yXmlElement.insert(0, node.initialValue.slice(0));
337
+ node.value = yXmlElement;
338
+ return __spreadProps(__spreadValues({}, acc), { [key]: node });
339
+ }
340
+ if (node instanceof CrdtYjsXmlFragment) {
341
+ const yXmlFragment = this.value.get(
342
+ key,
343
+ import_yjs8.XmlFragment
344
+ );
345
+ yXmlFragment.insert(0, node.initialValue.slice(0));
346
+ node.value = yXmlFragment;
347
+ return __spreadProps(__spreadValues({}, acc), { [key]: node });
348
+ }
349
+ if (node instanceof CrdtYjsXmlText) {
350
+ const yXmlText = this.value.get(key, import_yjs8.XmlText);
351
+ yXmlText.insert(0, node.initialValue);
352
+ node.value = yXmlText;
353
+ return __spreadProps(__spreadValues({}, acc), { [key]: node });
354
+ }
355
+ return acc;
356
+ }, {});
81
357
  }
82
- get _storage() {
83
- return this.value.getMap("storage");
84
- }
85
- applyUpdate(update, origin) {
358
+ applyEncodedState(params) {
359
+ const { origin, update } = params;
86
360
  if (update === null || typeof update === "undefined")
87
361
  return this;
88
362
  const uint8Update = typeof update === "string" ? (0, import_js_base64.toUint8Array)(update) : update;
89
- (0, import_yjs2.applyUpdate)(this.value, uint8Update, origin);
363
+ (0, import_yjs8.applyUpdate)(this.value, uint8Update, origin);
90
364
  return this;
91
365
  }
366
+ batchApplyEncodedState(updates) {
367
+ const params = updates.reduce(
368
+ (acc, update) => {
369
+ if (!update)
370
+ return acc;
371
+ if (typeof update === "string") {
372
+ acc.push({ update });
373
+ return acc;
374
+ }
375
+ if (!!update && typeof update === "object") {
376
+ acc.push(update);
377
+ return acc;
378
+ }
379
+ return acc;
380
+ },
381
+ []
382
+ );
383
+ return params.reduce(
384
+ (doc2, update) => doc2.applyEncodedState(update),
385
+ this
386
+ );
387
+ }
92
388
  canRedo() {
93
389
  var _a;
94
390
  return !!((_a = this._undoManager) == null ? void 0 : _a.canRedo());
@@ -102,112 +398,142 @@ var YjsDoc = class _YjsDoc {
102
398
  (_a = this._undoManager) == null ? void 0 : _a.destroy();
103
399
  this.value.destroy();
104
400
  }
105
- encodeStateAsUpdate() {
106
- return (0, import_js_base64.fromUint8Array)((0, import_yjs2.encodeStateAsUpdate)(this.value));
107
- }
108
401
  get(key) {
109
- return this._storage.get(key.toString());
402
+ if (typeof key === "undefined")
403
+ return this._storage;
404
+ return this._storage[key];
110
405
  }
111
- getSharedTypes() {
112
- return Array.from(this._storage.keys()).reduce(
113
- (acc, key) => __spreadProps(__spreadValues({}, acc), { [key]: this._storage.get(key) }),
114
- {}
115
- );
406
+ getEncodedState() {
407
+ return (0, import_js_base64.fromUint8Array)((0, import_yjs8.encodeStateAsUpdate)(this.value));
408
+ }
409
+ isEmpty() {
410
+ return !this.value.share.size;
116
411
  }
117
412
  redo() {
118
413
  var _a;
119
414
  (_a = this._undoManager) == null ? void 0 : _a.redo();
415
+ return this;
120
416
  }
121
- subscribe(fn) {
122
- const _fn = (update, origin, doc2, transaction) => fn(_YjsDoc.fromUint8Array(update), origin, doc2, transaction);
123
- this.value.on("update", _fn);
417
+ subscribe(listener) {
418
+ const fn = (update, origin, doc2) => {
419
+ listener({
420
+ doc: this,
421
+ local: origin === null || typeof origin === "undefined",
422
+ origin: origin ? String(origin) : null,
423
+ update: (0, import_js_base64.fromUint8Array)(update)
424
+ });
425
+ };
426
+ this.value.on("update", fn);
124
427
  return () => {
125
- this.value.off("update", _fn);
428
+ this.value.off("update", fn);
126
429
  };
127
430
  }
128
- toJSON() {
129
- return this._storage.toJSON();
130
- }
131
- trackOrigins(options) {
132
- const { captureTimeout, trackedOrigins } = options;
133
- if (this._undoManager) {
431
+ track() {
432
+ var _a;
433
+ if (this._undoManager)
134
434
  this._undoManager.destroy();
435
+ const sharedTypes = Object.values(this._storage).reduce((acc, type) => {
436
+ if (type instanceof CrdtYjsArray || type instanceof CrdtYjsMap || type instanceof CrdtYjsObject || type instanceof CrdtYjsText || type instanceof CrdtYjsXmlElement || type instanceof CrdtYjsXmlFragment || type instanceof CrdtYjsXmlText) {
437
+ acc.push(type.value);
438
+ }
439
+ return acc;
440
+ }, []);
441
+ if (!sharedTypes.length) {
442
+ (_a = this._undoManager) == null ? void 0 : _a.destroy();
443
+ this._undoManager = null;
444
+ return this;
135
445
  }
136
- this._undoManager = new import_yjs2.UndoManager(this._storage, {
137
- captureTimeout,
138
- trackedOrigins: trackedOrigins ? new Set(trackedOrigins) : void 0
139
- });
140
- }
141
- transact(fn, origin) {
142
- this.value.transact((tx) => {
143
- fn(tx);
144
- }, origin);
446
+ this._undoManager = new import_yjs8.UndoManager(sharedTypes, { captureTimeout: 0 });
447
+ return this;
145
448
  }
146
- static fromUint8Array(u8a) {
147
- return (0, import_js_base64.fromUint8Array)(u8a);
449
+ transact(fn) {
450
+ this.value.transact(fn);
451
+ return this;
148
452
  }
149
- static toUint8Array(str) {
150
- return (0, import_js_base64.toUint8Array)(str);
453
+ toJson() {
454
+ return Object.entries(this._storage).reduce(
455
+ (acc, [key, value]) => __spreadProps(__spreadValues({}, acc), { [key]: value.toJson() }),
456
+ {}
457
+ );
151
458
  }
152
459
  undo() {
153
460
  var _a;
154
461
  (_a = this._undoManager) == null ? void 0 : _a.undo();
462
+ return this;
155
463
  }
156
464
  };
157
- var doc = (value) => {
158
- return new YjsDoc(value);
159
- };
160
465
 
161
- // src/map.ts
162
- var import_yjs3 = require("yjs");
466
+ // src/doc/CrdtYjsDocFactory.ts
467
+ var import_crdt9 = require("@pluv/crdt");
468
+
469
+ // src/map/map.ts
163
470
  var map = (value = []) => {
164
- return new import_yjs3.Map(value);
471
+ return new CrdtYjsMap(value);
165
472
  };
166
473
 
167
- // src/object.ts
168
- var import_yjs4 = require("yjs");
474
+ // src/object/object.ts
169
475
  var object = (value) => {
170
- return new import_yjs4.Map(Object.entries(value));
476
+ return new CrdtYjsObject(value);
171
477
  };
172
478
 
173
- // src/text.ts
174
- var import_yjs5 = require("yjs");
175
- var text = (value = "") => {
176
- return new import_yjs5.Text(value);
177
- };
178
-
179
- // src/xmlElement.ts
180
- var import_yjs6 = require("yjs");
181
- var xmlElement = (name, params = {}) => {
182
- const { children = [] } = params;
183
- const element = new import_yjs6.XmlElement(name);
184
- element.push(children.slice());
185
- return element;
186
- };
187
-
188
- // src/xmlFragment.ts
189
- var import_yjs7 = require("yjs");
190
- var xmlFragment = (params = {}) => {
191
- const { children = [] } = params;
192
- const fragment = new import_yjs7.XmlFragment();
193
- fragment.push(children.slice());
194
- return fragment;
479
+ // src/doc/CrdtYjsDocFactory.ts
480
+ var CrdtYjsDocFactory = class _CrdtYjsDocFactory extends import_crdt9.AbstractCrdtDocFactory {
481
+ constructor(initialStorage = () => ({})) {
482
+ super();
483
+ this._initialStorage = initialStorage;
484
+ }
485
+ getEmpty() {
486
+ return new CrdtYjsDoc();
487
+ }
488
+ getFactory(initialStorage) {
489
+ return new _CrdtYjsDocFactory(
490
+ initialStorage != null ? initialStorage : this._initialStorage
491
+ );
492
+ }
493
+ getFresh() {
494
+ const storage = this._initialStorage();
495
+ return new CrdtYjsDoc(
496
+ Object.entries(storage).reduce((acc, [key, node]) => {
497
+ if (node instanceof CrdtYjsArray) {
498
+ return __spreadProps(__spreadValues({}, acc), { [key]: new CrdtYjsArray([]) });
499
+ }
500
+ if (node instanceof CrdtYjsMap) {
501
+ return __spreadProps(__spreadValues({}, acc), { [key]: new CrdtYjsMap([]) });
502
+ }
503
+ if (node instanceof CrdtYjsObject) {
504
+ return __spreadProps(__spreadValues({}, acc), { [key]: new CrdtYjsObject({}) });
505
+ }
506
+ if (node instanceof CrdtYjsText) {
507
+ return __spreadProps(__spreadValues({}, acc), { [key]: new CrdtYjsText("") });
508
+ }
509
+ if (node instanceof CrdtYjsXmlElement) {
510
+ return __spreadProps(__spreadValues({}, acc), {
511
+ [key]: new CrdtYjsXmlElement(node.name, [])
512
+ });
513
+ }
514
+ if (node instanceof CrdtYjsXmlFragment) {
515
+ return __spreadProps(__spreadValues({}, acc), { [key]: new CrdtYjsXmlFragment([]) });
516
+ }
517
+ if (node instanceof CrdtYjsXmlText) {
518
+ return __spreadProps(__spreadValues({}, acc), { [key]: new CrdtYjsXmlText("") });
519
+ }
520
+ return acc;
521
+ }, {})
522
+ );
523
+ }
524
+ getInitialized(initialStorage) {
525
+ var _a;
526
+ return new CrdtYjsDoc(
527
+ (_a = initialStorage == null ? void 0 : initialStorage()) != null ? _a : this._initialStorage()
528
+ );
529
+ }
195
530
  };
196
531
 
197
- // src/xmlText.ts
198
- var import_yjs8 = require("yjs");
199
- var xmlText = (value = "") => {
200
- return new import_yjs8.XmlText(value);
532
+ // src/doc/doc.ts
533
+ var doc = (value = () => ({})) => {
534
+ return new CrdtYjsDocFactory(value);
201
535
  };
202
536
  // Annotate the CommonJS export names for ESM import in node:
203
537
  0 && (module.exports = {
204
- YjsDoc,
205
- array,
206
- doc,
207
- map,
208
- object,
209
- text,
210
- xmlElement,
211
- xmlFragment,
212
- xmlText
538
+ yjs
213
539
  });