@pluv/crdt-yjs 0.19.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 +8 -8
- package/CHANGELOG.md +77 -0
- package/README.md +0 -64
- package/dist/index.d.mts +40 -119
- package/dist/index.d.ts +40 -119
- package/dist/index.js +142 -268
- package/dist/index.mjs +147 -273
- package/package.json +5 -5
- 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,304 +44,145 @@ 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
98
|
}
|
|
120
|
-
|
|
121
|
-
return
|
|
122
|
-
}
|
|
123
|
-
delete(index, length = 1) {
|
|
124
|
-
this.value.delete(index, length);
|
|
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
|
-
}
|
|
265
|
-
delete(index, length = 1) {
|
|
266
|
-
this.value.delete(index, length);
|
|
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);
|
|
276
|
-
}
|
|
277
|
-
unshift(...items) {
|
|
278
|
-
return this.insert(0, ...items);
|
|
279
135
|
}
|
|
280
|
-
|
|
281
|
-
return
|
|
136
|
+
__pluvType() {
|
|
137
|
+
return {};
|
|
282
138
|
}
|
|
283
139
|
};
|
|
284
140
|
|
|
285
|
-
// src/array/array.ts
|
|
286
|
-
var array = (value = []) => {
|
|
287
|
-
return new CrdtYjsArray(value);
|
|
288
|
-
};
|
|
289
|
-
|
|
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
|
}, {});
|
|
@@ -350,7 +191,7 @@ var CrdtYjsDoc = class extends import_crdt8.AbstractCrdtDoc {
|
|
|
350
191
|
const { origin, update } = params;
|
|
351
192
|
if (update === null || typeof update === "undefined") return this;
|
|
352
193
|
const uint8Update = typeof update === "string" ? (0, import_js_base64.toUint8Array)(update) : update;
|
|
353
|
-
(0,
|
|
194
|
+
(0, import_yjs7.applyUpdate)(this.value, uint8Update, origin);
|
|
354
195
|
return this;
|
|
355
196
|
}
|
|
356
197
|
batchApplyEncodedState(updates) {
|
|
@@ -381,12 +222,12 @@ var CrdtYjsDoc = class extends import_crdt8.AbstractCrdtDoc {
|
|
|
381
222
|
(_a = this._undoManager) == null ? void 0 : _a.destroy();
|
|
382
223
|
this.value.destroy();
|
|
383
224
|
}
|
|
384
|
-
get(
|
|
385
|
-
if (typeof
|
|
386
|
-
return this._storage[
|
|
225
|
+
get(type) {
|
|
226
|
+
if (typeof type === "undefined") return this._storage;
|
|
227
|
+
return this._storage[type];
|
|
387
228
|
}
|
|
388
229
|
getEncodedState() {
|
|
389
|
-
return (0, import_js_base64.fromUint8Array)((0,
|
|
230
|
+
return (0, import_js_base64.fromUint8Array)((0, import_yjs7.encodeStateAsUpdate)(this.value));
|
|
390
231
|
}
|
|
391
232
|
isEmpty() {
|
|
392
233
|
return !this.value.share.size;
|
|
@@ -414,8 +255,8 @@ var CrdtYjsDoc = class extends import_crdt8.AbstractCrdtDoc {
|
|
|
414
255
|
var _a;
|
|
415
256
|
if (this._undoManager) this._undoManager.destroy();
|
|
416
257
|
const sharedTypes = Object.values(this._storage).reduce((acc, type) => {
|
|
417
|
-
if (type instanceof
|
|
418
|
-
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);
|
|
419
260
|
}
|
|
420
261
|
return acc;
|
|
421
262
|
}, []);
|
|
@@ -424,16 +265,17 @@ var CrdtYjsDoc = class extends import_crdt8.AbstractCrdtDoc {
|
|
|
424
265
|
this._undoManager = null;
|
|
425
266
|
return this;
|
|
426
267
|
}
|
|
427
|
-
this._undoManager = new
|
|
268
|
+
this._undoManager = new import_yjs7.UndoManager(sharedTypes, { captureTimeout: 0 });
|
|
428
269
|
return this;
|
|
429
270
|
}
|
|
430
271
|
transact(fn) {
|
|
431
272
|
this.value.transact(fn);
|
|
432
273
|
return this;
|
|
433
274
|
}
|
|
434
|
-
toJson() {
|
|
275
|
+
toJson(type) {
|
|
276
|
+
if (typeof type === "string") return this._storage[type].toJSON();
|
|
435
277
|
return Object.entries(this._storage).reduce(
|
|
436
|
-
(acc, [key, value]) => __spreadProps(__spreadValues({}, acc), { [key]: value.
|
|
278
|
+
(acc, [key, value]) => __spreadProps(__spreadValues({}, acc), { [key]: value.toJSON() }),
|
|
437
279
|
{}
|
|
438
280
|
);
|
|
439
281
|
}
|
|
@@ -445,20 +287,54 @@ var CrdtYjsDoc = class extends import_crdt8.AbstractCrdtDoc {
|
|
|
445
287
|
};
|
|
446
288
|
|
|
447
289
|
// src/doc/CrdtYjsDocFactory.ts
|
|
448
|
-
var
|
|
290
|
+
var import_crdt2 = require("@pluv/crdt");
|
|
291
|
+
var import_yjs9 = require("yjs");
|
|
449
292
|
|
|
450
293
|
// src/map/map.ts
|
|
451
294
|
var map = (value = []) => {
|
|
452
|
-
return new
|
|
295
|
+
return new YjsMap(value);
|
|
453
296
|
};
|
|
454
297
|
|
|
455
298
|
// src/object/object.ts
|
|
456
|
-
var object = (value) => {
|
|
457
|
-
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();
|
|
458
334
|
};
|
|
459
335
|
|
|
460
336
|
// src/doc/CrdtYjsDocFactory.ts
|
|
461
|
-
var CrdtYjsDocFactory = class _CrdtYjsDocFactory extends
|
|
337
|
+
var CrdtYjsDocFactory = class _CrdtYjsDocFactory extends import_crdt2.AbstractCrdtDocFactory {
|
|
462
338
|
constructor(initialStorage = () => ({})) {
|
|
463
339
|
super();
|
|
464
340
|
this._initialStorage = initialStorage;
|
|
@@ -473,28 +349,26 @@ var CrdtYjsDocFactory = class _CrdtYjsDocFactory extends import_crdt9.AbstractCr
|
|
|
473
349
|
const storage = this._initialStorage();
|
|
474
350
|
return new CrdtYjsDoc(
|
|
475
351
|
Object.entries(storage).reduce((acc, [key, node]) => {
|
|
476
|
-
if (node instanceof
|
|
477
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
352
|
+
if (node instanceof YjsArray) {
|
|
353
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: array() });
|
|
478
354
|
}
|
|
479
|
-
if (node instanceof
|
|
480
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
355
|
+
if (node instanceof YjsMap) {
|
|
356
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: map() });
|
|
481
357
|
}
|
|
482
|
-
if (node instanceof
|
|
483
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
358
|
+
if (node instanceof YjsObject) {
|
|
359
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: object() });
|
|
484
360
|
}
|
|
485
|
-
if (node instanceof
|
|
486
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
361
|
+
if (node instanceof YjsText) {
|
|
362
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: text() });
|
|
487
363
|
}
|
|
488
|
-
if (node instanceof
|
|
489
|
-
return __spreadProps(__spreadValues({}, acc), {
|
|
490
|
-
[key]: new CrdtYjsXmlElement(node.name, [])
|
|
491
|
-
});
|
|
364
|
+
if (node instanceof YjsXmlElement) {
|
|
365
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: xmlElement(node.nodeName, []) });
|
|
492
366
|
}
|
|
493
|
-
if (node instanceof
|
|
494
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
367
|
+
if (node instanceof import_yjs9.XmlFragment) {
|
|
368
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: xmlFragment([]) });
|
|
495
369
|
}
|
|
496
|
-
if (node instanceof
|
|
497
|
-
return __spreadProps(__spreadValues({}, acc), { [key]:
|
|
370
|
+
if (node instanceof YjsXmlText) {
|
|
371
|
+
return __spreadProps(__spreadValues({}, acc), { [key]: xmlText() });
|
|
498
372
|
}
|
|
499
373
|
return acc;
|
|
500
374
|
}, {})
|