@pluv/crdt-yjs 0.18.0 → 0.20.0
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.
- package/.turbo/turbo-build.log +15 -15
- package/CHANGELOG.md +84 -0
- package/README.md +0 -64
- package/dist/index.d.mts +40 -119
- package/dist/index.d.ts +40 -119
- package/dist/index.js +145 -275
- package/dist/index.mjs +150 -280
- package/package.json +7 -7
- package/src/array/YjsArray.ts +18 -0
- package/src/array/array.ts +5 -3
- package/src/array/index.ts +1 -1
- package/src/doc/CrdtYjsDoc.ts +58 -69
- package/src/doc/CrdtYjsDocFactory.ts +30 -26
- package/src/doc/doc.ts +2 -2
- package/src/map/YjsMap.ts +16 -0
- package/src/map/index.ts +1 -1
- package/src/map/map.ts +7 -3
- package/src/object/YjsObject.ts +16 -0
- package/src/object/index.ts +1 -1
- package/src/object/object.ts +5 -3
- package/src/text/YjsText.ts +16 -0
- package/src/text/index.ts +1 -1
- package/src/text/text.ts +5 -3
- package/src/types.ts +5 -63
- package/src/xmlElement/YjsXmlElement.ts +22 -0
- package/src/xmlElement/index.ts +1 -1
- package/src/xmlElement/xmlElement.ts +6 -6
- package/src/xmlFragment/YjsXmlFragment.ts +19 -0
- package/src/xmlFragment/index.ts +1 -1
- package/src/xmlFragment/xmlFragment.ts +6 -5
- package/src/xmlText/YjsXmlText.ts +16 -0
- package/src/xmlText/index.ts +1 -1
- package/src/xmlText/xmlText.ts +5 -3
- package/src/yjs.ts +9 -9
- package/src/array/CrdtYjsArray.ts +0 -50
- package/src/map/CrdtYjsMap.ts +0 -40
- package/src/object/CrdtYjsObject.ts +0 -30
- package/src/shared/index.ts +0 -2
- package/src/shared/isWrapper.ts +0 -21
- package/src/shared/toYjsValue.ts +0 -5
- package/src/text/CrdtYjsText.ts +0 -34
- package/src/xmlElement/CrdtYjsXmlElement.ts +0 -50
- package/src/xmlFragment/CrdtYjsXmlFragment.ts +0 -49
- package/src/xmlText/CrdtYjsXmlText.ts +0 -34
package/dist/index.js
CHANGED
|
@@ -44,320 +44,159 @@ module.exports = __toCommonJS(src_exports);
|
|
|
44
44
|
// src/yjs.ts
|
|
45
45
|
var yjs_exports = {};
|
|
46
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,
|
|
55
47
|
array: () => array,
|
|
56
48
|
doc: () => doc,
|
|
57
49
|
map: () => map,
|
|
58
50
|
object: () => object,
|
|
51
|
+
text: () => text,
|
|
59
52
|
xmlElement: () => xmlElement,
|
|
60
53
|
xmlFragment: () => xmlFragment,
|
|
61
54
|
xmlText: () => xmlText
|
|
62
55
|
});
|
|
63
56
|
|
|
64
|
-
// src/array/
|
|
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");
|
|
57
|
+
// src/array/YjsArray.ts
|
|
70
58
|
var import_yjs = require("yjs");
|
|
71
|
-
var
|
|
59
|
+
var YjsArray = class extends import_yjs.Array {
|
|
72
60
|
constructor(value = []) {
|
|
73
61
|
super();
|
|
74
|
-
this.
|
|
75
|
-
this.
|
|
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;
|
|
62
|
+
this.insert(0, value);
|
|
63
|
+
this.initialValue = value;
|
|
87
64
|
}
|
|
88
|
-
|
|
89
|
-
return
|
|
65
|
+
__pluvType() {
|
|
66
|
+
return {};
|
|
90
67
|
}
|
|
91
68
|
};
|
|
92
69
|
|
|
93
|
-
// src/
|
|
94
|
-
var
|
|
70
|
+
// src/array/array.ts
|
|
71
|
+
var array = (value = []) => {
|
|
72
|
+
return new YjsArray(value);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
// src/doc/CrdtYjsDoc.ts
|
|
76
|
+
var import_crdt = require("@pluv/crdt");
|
|
77
|
+
var import_js_base64 = require("js-base64");
|
|
78
|
+
var import_yjs7 = require("yjs");
|
|
79
|
+
|
|
80
|
+
// src/map/YjsMap.ts
|
|
95
81
|
var import_yjs2 = require("yjs");
|
|
96
|
-
var
|
|
97
|
-
constructor(value =
|
|
98
|
-
super();
|
|
99
|
-
this.initialValue =
|
|
100
|
-
this.value = new import_yjs2.Map(this.initialValue);
|
|
101
|
-
}
|
|
102
|
-
set(prop, value) {
|
|
103
|
-
this.value.set(prop.toString(), toYjsValue(value));
|
|
104
|
-
return this;
|
|
82
|
+
var YjsMap = class extends import_yjs2.Map {
|
|
83
|
+
constructor(value = []) {
|
|
84
|
+
super(value);
|
|
85
|
+
this.initialValue = value;
|
|
105
86
|
}
|
|
106
|
-
|
|
107
|
-
return
|
|
87
|
+
__pluvType() {
|
|
88
|
+
return {};
|
|
108
89
|
}
|
|
109
90
|
};
|
|
110
91
|
|
|
111
|
-
// src/
|
|
112
|
-
var import_crdt3 = require("@pluv/crdt");
|
|
92
|
+
// src/object/YjsObject.ts
|
|
113
93
|
var import_yjs3 = require("yjs");
|
|
114
|
-
var
|
|
115
|
-
constructor(value
|
|
116
|
-
super();
|
|
94
|
+
var YjsObject = class extends import_yjs3.Map {
|
|
95
|
+
constructor(value) {
|
|
96
|
+
super(Object.entries(value));
|
|
117
97
|
this.initialValue = value;
|
|
118
|
-
this.value = new import_yjs3.Text(value);
|
|
119
|
-
}
|
|
120
|
-
get length() {
|
|
121
|
-
return this.value.length;
|
|
122
98
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
return this;
|
|
126
|
-
}
|
|
127
|
-
insert(index, text2) {
|
|
128
|
-
this.value.insert(index, text2);
|
|
129
|
-
return this;
|
|
130
|
-
}
|
|
131
|
-
toJson() {
|
|
132
|
-
return this.value.toJSON();
|
|
99
|
+
__pluvType() {
|
|
100
|
+
return {};
|
|
133
101
|
}
|
|
134
102
|
};
|
|
135
103
|
|
|
136
|
-
// src/
|
|
137
|
-
var import_crdt4 = require("@pluv/crdt");
|
|
104
|
+
// src/text/YjsText.ts
|
|
138
105
|
var import_yjs4 = require("yjs");
|
|
139
|
-
var
|
|
140
|
-
constructor(
|
|
106
|
+
var YjsText = class extends import_yjs4.Text {
|
|
107
|
+
constructor(value = "") {
|
|
141
108
|
super();
|
|
142
|
-
this.initialValue =
|
|
143
|
-
this.name = name;
|
|
144
|
-
this.value = new import_yjs4.XmlElement(name);
|
|
145
|
-
this.push(...children);
|
|
146
|
-
}
|
|
147
|
-
get length() {
|
|
148
|
-
return this.value.length;
|
|
149
|
-
}
|
|
150
|
-
delete(index, length = 1) {
|
|
151
|
-
this.value.delete(index, length);
|
|
152
|
-
return this;
|
|
153
|
-
}
|
|
154
|
-
insert(index, ...children) {
|
|
155
|
-
const converted = children.map((child) => toYjsValue(child));
|
|
156
|
-
this.value.insert(index, converted);
|
|
157
|
-
return this;
|
|
158
|
-
}
|
|
159
|
-
push(...children) {
|
|
160
|
-
return this.insert(this.length, ...children);
|
|
161
|
-
}
|
|
162
|
-
unshift(...children) {
|
|
163
|
-
return this.insert(0, ...children);
|
|
109
|
+
this.initialValue = value;
|
|
164
110
|
}
|
|
165
|
-
|
|
166
|
-
return
|
|
111
|
+
__pluvType() {
|
|
112
|
+
return {};
|
|
167
113
|
}
|
|
168
114
|
};
|
|
169
115
|
|
|
170
|
-
// src/xmlElement/
|
|
171
|
-
var xmlElement = (name, children) => {
|
|
172
|
-
return new CrdtYjsXmlElement(name, children);
|
|
173
|
-
};
|
|
174
|
-
|
|
175
|
-
// src/xmlFragment/CrdtYjsXmlFragment.ts
|
|
176
|
-
var import_crdt5 = require("@pluv/crdt");
|
|
116
|
+
// src/xmlElement/YjsXmlElement.ts
|
|
177
117
|
var import_yjs5 = require("yjs");
|
|
178
|
-
var
|
|
179
|
-
constructor(
|
|
180
|
-
super();
|
|
181
|
-
|
|
182
|
-
this.
|
|
183
|
-
this.push(...children);
|
|
184
|
-
}
|
|
185
|
-
get length() {
|
|
186
|
-
return this.value.length;
|
|
187
|
-
}
|
|
188
|
-
delete(index, length = 1) {
|
|
189
|
-
this.value.delete(index, length);
|
|
190
|
-
return this;
|
|
191
|
-
}
|
|
192
|
-
insert(index, ...children) {
|
|
193
|
-
const converted = children.map((child) => toYjsValue(child));
|
|
194
|
-
this.value.insert(index, converted);
|
|
195
|
-
return this;
|
|
196
|
-
}
|
|
197
|
-
push(...children) {
|
|
198
|
-
return this.insert(this.length, ...children);
|
|
199
|
-
}
|
|
200
|
-
unshift(...children) {
|
|
201
|
-
return this.insert(0, ...children);
|
|
118
|
+
var YjsXmlElement = class extends import_yjs5.XmlElement {
|
|
119
|
+
constructor(name, value) {
|
|
120
|
+
super(name);
|
|
121
|
+
!!value.length && this.insert(0, value);
|
|
122
|
+
this.initialValue = value;
|
|
202
123
|
}
|
|
203
|
-
|
|
204
|
-
return
|
|
124
|
+
__pluvType() {
|
|
125
|
+
return {};
|
|
205
126
|
}
|
|
206
127
|
};
|
|
207
128
|
|
|
208
|
-
// src/
|
|
209
|
-
var xmlFragment = (children) => {
|
|
210
|
-
return new CrdtYjsXmlFragment(children);
|
|
211
|
-
};
|
|
212
|
-
|
|
213
|
-
// src/xmlText/CrdtYjsXmlText.ts
|
|
214
|
-
var import_crdt6 = require("@pluv/crdt");
|
|
129
|
+
// src/xmlText/YjsXmlText.ts
|
|
215
130
|
var import_yjs6 = require("yjs");
|
|
216
|
-
var
|
|
131
|
+
var YjsXmlText = class extends import_yjs6.XmlText {
|
|
217
132
|
constructor(value = "") {
|
|
218
133
|
super();
|
|
219
134
|
this.initialValue = value;
|
|
220
|
-
this.value = new import_yjs6.XmlText(value);
|
|
221
|
-
}
|
|
222
|
-
get length() {
|
|
223
|
-
return this.value.length;
|
|
224
|
-
}
|
|
225
|
-
delete(index, length = 1) {
|
|
226
|
-
this.value.delete(index, length);
|
|
227
|
-
return this;
|
|
228
|
-
}
|
|
229
|
-
insert(index, text2, attributes) {
|
|
230
|
-
this.value.insert(index, text2, attributes);
|
|
231
|
-
return this;
|
|
232
|
-
}
|
|
233
|
-
toJson() {
|
|
234
|
-
return this.value.toJSON();
|
|
235
|
-
}
|
|
236
|
-
};
|
|
237
|
-
|
|
238
|
-
// src/xmlText/xmlText.ts
|
|
239
|
-
var xmlText = (value = "") => {
|
|
240
|
-
return new CrdtYjsXmlText(value);
|
|
241
|
-
};
|
|
242
|
-
|
|
243
|
-
// src/shared/isWrapper.ts
|
|
244
|
-
var isWrapper = (item) => {
|
|
245
|
-
return item instanceof CrdtYjsArray || item instanceof CrdtYjsMap || item instanceof CrdtYjsObject || item instanceof CrdtYjsText || item instanceof CrdtYjsXmlElement || item instanceof CrdtYjsXmlFragment || item instanceof CrdtYjsXmlText;
|
|
246
|
-
};
|
|
247
|
-
|
|
248
|
-
// src/shared/toYjsValue.ts
|
|
249
|
-
var toYjsValue = (item) => {
|
|
250
|
-
return isWrapper(item) ? item.value : item;
|
|
251
|
-
};
|
|
252
|
-
|
|
253
|
-
// src/array/CrdtYjsArray.ts
|
|
254
|
-
var CrdtYjsArray = class extends import_crdt7.AbstractCrdtType {
|
|
255
|
-
constructor(value = []) {
|
|
256
|
-
super();
|
|
257
|
-
const initialValue = value.map((item) => toYjsValue(item));
|
|
258
|
-
this.initialValue = initialValue;
|
|
259
|
-
this.value = new import_yjs7.Array();
|
|
260
|
-
this.push(...value);
|
|
261
|
-
}
|
|
262
|
-
get length() {
|
|
263
|
-
return this.value.length;
|
|
264
135
|
}
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
return this;
|
|
268
|
-
}
|
|
269
|
-
insert(index, ...items) {
|
|
270
|
-
const converted = items.map((item) => toYjsValue(item));
|
|
271
|
-
this.value.insert(index, converted);
|
|
272
|
-
return this;
|
|
273
|
-
}
|
|
274
|
-
push(...items) {
|
|
275
|
-
return this.insert(this.length, ...items);
|
|
136
|
+
__pluvType() {
|
|
137
|
+
return {};
|
|
276
138
|
}
|
|
277
|
-
unshift(...items) {
|
|
278
|
-
return this.insert(0, ...items);
|
|
279
|
-
}
|
|
280
|
-
toJson() {
|
|
281
|
-
return this.value.toJSON();
|
|
282
|
-
}
|
|
283
|
-
};
|
|
284
|
-
|
|
285
|
-
// src/array/array.ts
|
|
286
|
-
var array = (value = []) => {
|
|
287
|
-
return new CrdtYjsArray(value);
|
|
288
139
|
};
|
|
289
140
|
|
|
290
141
|
// src/doc/CrdtYjsDoc.ts
|
|
291
|
-
var
|
|
292
|
-
var import_js_base64 = require("js-base64");
|
|
293
|
-
var import_yjs8 = require("yjs");
|
|
294
|
-
var CrdtYjsDoc = class extends import_crdt8.AbstractCrdtDoc {
|
|
142
|
+
var CrdtYjsDoc = class extends import_crdt.AbstractCrdtDoc {
|
|
295
143
|
constructor(value = {}) {
|
|
296
144
|
super();
|
|
297
|
-
this.value = new
|
|
145
|
+
this.value = new import_yjs7.Doc();
|
|
298
146
|
this._undoManager = null;
|
|
299
147
|
this._storage = Object.entries(value).reduce((acc, [key, node]) => {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
yArray
|
|
303
|
-
node.
|
|
304
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
148
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
149
|
+
if (node instanceof YjsArray) {
|
|
150
|
+
const yArray = this.value.getArray(key);
|
|
151
|
+
!!((_a = node.initialValue) == null ? void 0 : _a.length) && yArray.insert(0, (_b = node.initialValue) == null ? void 0 : _b.slice(0));
|
|
152
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: yArray });
|
|
305
153
|
}
|
|
306
|
-
if (node instanceof
|
|
307
|
-
const yMap = this.value.
|
|
308
|
-
node.initialValue.forEach(([k, v]) => {
|
|
154
|
+
if (node instanceof YjsMap) {
|
|
155
|
+
const yMap = this.value.getMap(key);
|
|
156
|
+
((_c = node.initialValue) != null ? _c : []).forEach(([k, v]) => {
|
|
309
157
|
yMap.set(k.toString(), v);
|
|
310
158
|
});
|
|
311
|
-
|
|
312
|
-
return __spreadProps(__spreadValues({}, acc), { [key]: node });
|
|
159
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: yMap });
|
|
313
160
|
}
|
|
314
|
-
if (node instanceof
|
|
315
|
-
const yMap = this.value.
|
|
316
|
-
node.initialValue.forEach(([k, v]) => {
|
|
161
|
+
if (node instanceof YjsObject) {
|
|
162
|
+
const yMap = this.value.getMap(key);
|
|
163
|
+
Object.entries((_d = node.initialValue) != null ? _d : {}).forEach(([k, v]) => {
|
|
317
164
|
yMap.set(k.toString(), v);
|
|
318
165
|
});
|
|
319
|
-
|
|
320
|
-
return __spreadProps(__spreadValues({}, acc), { [key]: node });
|
|
166
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: yMap });
|
|
321
167
|
}
|
|
322
|
-
if (node instanceof
|
|
323
|
-
const yText = this.value.
|
|
324
|
-
yText.insert(0, node.initialValue);
|
|
325
|
-
|
|
326
|
-
return __spreadProps(__spreadValues({}, acc), { [key]: node });
|
|
168
|
+
if (node instanceof YjsText) {
|
|
169
|
+
const yText = this.value.getText(key);
|
|
170
|
+
typeof node.initialValue === "string" && yText.insert(0, node.initialValue);
|
|
171
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: yText });
|
|
327
172
|
}
|
|
328
|
-
if (node instanceof
|
|
329
|
-
const yXmlElement = this.value.
|
|
330
|
-
yXmlElement.insert(0, node.initialValue.slice(0));
|
|
331
|
-
|
|
332
|
-
return __spreadProps(__spreadValues({}, acc), { [key]: node });
|
|
173
|
+
if (node instanceof YjsXmlElement) {
|
|
174
|
+
const yXmlElement = this.value.getXmlElement(key);
|
|
175
|
+
!!((_e = node.initialValue) == null ? void 0 : _e.length) && yXmlElement.insert(0, (_f = node.initialValue) == null ? void 0 : _f.slice(0));
|
|
176
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: yXmlElement });
|
|
333
177
|
}
|
|
334
|
-
if (node instanceof
|
|
335
|
-
const yXmlFragment = this.value.
|
|
336
|
-
yXmlFragment.insert(0, node.initialValue.slice(0));
|
|
337
|
-
|
|
338
|
-
return __spreadProps(__spreadValues({}, acc), { [key]: node });
|
|
178
|
+
if (node instanceof import_yjs7.XmlFragment) {
|
|
179
|
+
const yXmlFragment = this.value.getXmlFragment(key);
|
|
180
|
+
!!((_g = node.initialValue) == null ? void 0 : _g.length) && yXmlFragment.insert(0, (_h = node.initialValue) == null ? void 0 : _h.slice(0));
|
|
181
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: yXmlFragment });
|
|
339
182
|
}
|
|
340
|
-
if (node instanceof
|
|
341
|
-
const yXmlText = this.value.get(key,
|
|
342
|
-
|
|
343
|
-
node.value = yXmlText;
|
|
344
|
-
return __spreadProps(__spreadValues({}, acc), { [key]: node });
|
|
183
|
+
if (node instanceof YjsXmlText) {
|
|
184
|
+
const yXmlText = this.value.get(key, import_yjs7.XmlText);
|
|
185
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: yXmlText });
|
|
345
186
|
}
|
|
346
187
|
return acc;
|
|
347
188
|
}, {});
|
|
348
189
|
}
|
|
349
190
|
applyEncodedState(params) {
|
|
350
191
|
const { origin, update } = params;
|
|
351
|
-
if (update === null || typeof update === "undefined")
|
|
352
|
-
return this;
|
|
192
|
+
if (update === null || typeof update === "undefined") return this;
|
|
353
193
|
const uint8Update = typeof update === "string" ? (0, import_js_base64.toUint8Array)(update) : update;
|
|
354
|
-
(0,
|
|
194
|
+
(0, import_yjs7.applyUpdate)(this.value, uint8Update, origin);
|
|
355
195
|
return this;
|
|
356
196
|
}
|
|
357
197
|
batchApplyEncodedState(updates) {
|
|
358
198
|
const params = updates.reduce((acc, update) => {
|
|
359
|
-
if (!update)
|
|
360
|
-
return acc;
|
|
199
|
+
if (!update) return acc;
|
|
361
200
|
if (typeof update === "string") {
|
|
362
201
|
acc.push({ update });
|
|
363
202
|
return acc;
|
|
@@ -383,13 +222,12 @@ var CrdtYjsDoc = class extends import_crdt8.AbstractCrdtDoc {
|
|
|
383
222
|
(_a = this._undoManager) == null ? void 0 : _a.destroy();
|
|
384
223
|
this.value.destroy();
|
|
385
224
|
}
|
|
386
|
-
get(
|
|
387
|
-
if (typeof
|
|
388
|
-
|
|
389
|
-
return this._storage[key];
|
|
225
|
+
get(type) {
|
|
226
|
+
if (typeof type === "undefined") return this._storage;
|
|
227
|
+
return this._storage[type];
|
|
390
228
|
}
|
|
391
229
|
getEncodedState() {
|
|
392
|
-
return (0, import_js_base64.fromUint8Array)((0,
|
|
230
|
+
return (0, import_js_base64.fromUint8Array)((0, import_yjs7.encodeStateAsUpdate)(this.value));
|
|
393
231
|
}
|
|
394
232
|
isEmpty() {
|
|
395
233
|
return !this.value.share.size;
|
|
@@ -415,11 +253,10 @@ var CrdtYjsDoc = class extends import_crdt8.AbstractCrdtDoc {
|
|
|
415
253
|
}
|
|
416
254
|
track() {
|
|
417
255
|
var _a;
|
|
418
|
-
if (this._undoManager)
|
|
419
|
-
this._undoManager.destroy();
|
|
256
|
+
if (this._undoManager) this._undoManager.destroy();
|
|
420
257
|
const sharedTypes = Object.values(this._storage).reduce((acc, type) => {
|
|
421
|
-
if (type instanceof
|
|
422
|
-
acc.push(type
|
|
258
|
+
if (type instanceof import_yjs7.Array || type instanceof import_yjs7.Map || type instanceof import_yjs7.Text || type instanceof import_yjs7.XmlElement || type instanceof import_yjs7.XmlFragment || type instanceof import_yjs7.XmlText) {
|
|
259
|
+
acc.push(type);
|
|
423
260
|
}
|
|
424
261
|
return acc;
|
|
425
262
|
}, []);
|
|
@@ -428,16 +265,17 @@ var CrdtYjsDoc = class extends import_crdt8.AbstractCrdtDoc {
|
|
|
428
265
|
this._undoManager = null;
|
|
429
266
|
return this;
|
|
430
267
|
}
|
|
431
|
-
this._undoManager = new
|
|
268
|
+
this._undoManager = new import_yjs7.UndoManager(sharedTypes, { captureTimeout: 0 });
|
|
432
269
|
return this;
|
|
433
270
|
}
|
|
434
271
|
transact(fn) {
|
|
435
272
|
this.value.transact(fn);
|
|
436
273
|
return this;
|
|
437
274
|
}
|
|
438
|
-
toJson() {
|
|
275
|
+
toJson(type) {
|
|
276
|
+
if (typeof type === "string") return this._storage[type].toJSON();
|
|
439
277
|
return Object.entries(this._storage).reduce(
|
|
440
|
-
(acc, [key, value]) => __spreadProps(__spreadValues({}, acc), { [key]: value.
|
|
278
|
+
(acc, [key, value]) => __spreadProps(__spreadValues({}, acc), { [key]: value.toJSON() }),
|
|
441
279
|
{}
|
|
442
280
|
);
|
|
443
281
|
}
|
|
@@ -449,20 +287,54 @@ var CrdtYjsDoc = class extends import_crdt8.AbstractCrdtDoc {
|
|
|
449
287
|
};
|
|
450
288
|
|
|
451
289
|
// src/doc/CrdtYjsDocFactory.ts
|
|
452
|
-
var
|
|
290
|
+
var import_crdt2 = require("@pluv/crdt");
|
|
291
|
+
var import_yjs9 = require("yjs");
|
|
453
292
|
|
|
454
293
|
// src/map/map.ts
|
|
455
294
|
var map = (value = []) => {
|
|
456
|
-
return new
|
|
295
|
+
return new YjsMap(value);
|
|
457
296
|
};
|
|
458
297
|
|
|
459
298
|
// src/object/object.ts
|
|
460
|
-
var object = (value) => {
|
|
461
|
-
return new
|
|
299
|
+
var object = (value = {}) => {
|
|
300
|
+
return new YjsObject(value);
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
// src/text/text.ts
|
|
304
|
+
var text = (value = "") => {
|
|
305
|
+
return new YjsText(value);
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
// src/xmlElement/xmlElement.ts
|
|
309
|
+
var xmlElement = (name, children) => {
|
|
310
|
+
return new YjsXmlElement(name, children);
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
// src/xmlFragment/YjsXmlFragment.ts
|
|
314
|
+
var import_yjs8 = require("yjs");
|
|
315
|
+
var YjsXmlFragment = class extends import_yjs8.XmlFragment {
|
|
316
|
+
constructor(value) {
|
|
317
|
+
super();
|
|
318
|
+
!!value.length && this.insert(0, value);
|
|
319
|
+
this.initialValue = value;
|
|
320
|
+
}
|
|
321
|
+
__pluvType() {
|
|
322
|
+
return {};
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
|
|
326
|
+
// src/xmlFragment/xmlFragment.ts
|
|
327
|
+
var xmlFragment = (children) => {
|
|
328
|
+
return new YjsXmlFragment(children);
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
// src/xmlText/xmlText.ts
|
|
332
|
+
var xmlText = () => {
|
|
333
|
+
return new YjsXmlText();
|
|
462
334
|
};
|
|
463
335
|
|
|
464
336
|
// src/doc/CrdtYjsDocFactory.ts
|
|
465
|
-
var CrdtYjsDocFactory = class _CrdtYjsDocFactory extends
|
|
337
|
+
var CrdtYjsDocFactory = class _CrdtYjsDocFactory extends import_crdt2.AbstractCrdtDocFactory {
|
|
466
338
|
constructor(initialStorage = () => ({})) {
|
|
467
339
|
super();
|
|
468
340
|
this._initialStorage = initialStorage;
|
|
@@ -477,28 +349,26 @@ var CrdtYjsDocFactory = class _CrdtYjsDocFactory extends import_crdt9.AbstractCr
|
|
|
477
349
|
const storage = this._initialStorage();
|
|
478
350
|
return new CrdtYjsDoc(
|
|
479
351
|
Object.entries(storage).reduce((acc, [key, node]) => {
|
|
480
|
-
if (node instanceof
|
|
481
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
352
|
+
if (node instanceof YjsArray) {
|
|
353
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: array() });
|
|
482
354
|
}
|
|
483
|
-
if (node instanceof
|
|
484
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
355
|
+
if (node instanceof YjsMap) {
|
|
356
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: map() });
|
|
485
357
|
}
|
|
486
|
-
if (node instanceof
|
|
487
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
358
|
+
if (node instanceof YjsObject) {
|
|
359
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: object() });
|
|
488
360
|
}
|
|
489
|
-
if (node instanceof
|
|
490
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
361
|
+
if (node instanceof YjsText) {
|
|
362
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: text() });
|
|
491
363
|
}
|
|
492
|
-
if (node instanceof
|
|
493
|
-
return __spreadProps(__spreadValues({}, acc), {
|
|
494
|
-
[key]: new CrdtYjsXmlElement(node.name, [])
|
|
495
|
-
});
|
|
364
|
+
if (node instanceof YjsXmlElement) {
|
|
365
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: xmlElement(node.nodeName, []) });
|
|
496
366
|
}
|
|
497
|
-
if (node instanceof
|
|
498
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
367
|
+
if (node instanceof import_yjs9.XmlFragment) {
|
|
368
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: xmlFragment([]) });
|
|
499
369
|
}
|
|
500
|
-
if (node instanceof
|
|
501
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
370
|
+
if (node instanceof YjsXmlText) {
|
|
371
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: xmlText() });
|
|
502
372
|
}
|
|
503
373
|
return acc;
|
|
504
374
|
}, {})
|