@remirror/extension-yjs 1.0.14 → 1.0.18
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/LICENSE +1 -1
- package/dist/remirror-extension-yjs.browser.cjs.js +13 -2
- package/dist/remirror-extension-yjs.browser.esm.js +14 -3
- package/dist/remirror-extension-yjs.cjs.dev.js +13 -2
- package/dist/remirror-extension-yjs.cjs.prod.js +13 -2
- package/dist/remirror-extension-yjs.esm.js +14 -3
- package/package.json +12 -12
package/LICENSE
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _applyDecoratedDescriptor = require('@babel/runtime/helpers/applyDecoratedDescriptor');
|
|
6
6
|
var yProsemirror = require('y-prosemirror');
|
|
7
|
+
var yjs = require('yjs');
|
|
7
8
|
var core = require('@remirror/core');
|
|
8
9
|
var extensionAnnotation = require('@remirror/extension-annotation');
|
|
9
10
|
var messages = require('@remirror/messages');
|
|
@@ -104,13 +105,16 @@ var YjsExtension = (_dec = core.extension({
|
|
|
104
105
|
trackedOrigins = _this$options.trackedOrigins;
|
|
105
106
|
var yDoc = this.provider.doc;
|
|
106
107
|
var type = yDoc.getXmlFragment('prosemirror');
|
|
108
|
+
var undoManager = new yjs.UndoManager(type, {
|
|
109
|
+
trackedOrigins: new Set([yProsemirror.ySyncPluginKey, ...trackedOrigins]),
|
|
110
|
+
deleteFilter: item => yProsemirror.defaultDeleteFilter(item, protectedNodes)
|
|
111
|
+
});
|
|
107
112
|
return [yProsemirror.ySyncPlugin(type, syncPluginOptions), yProsemirror.yCursorPlugin(this.provider.awareness, {
|
|
108
113
|
cursorBuilder,
|
|
109
114
|
cursorStateField,
|
|
110
115
|
getSelection
|
|
111
116
|
}, cursorStateField), yProsemirror.yUndoPlugin({
|
|
112
|
-
|
|
113
|
-
trackedOrigins
|
|
117
|
+
undoManager
|
|
114
118
|
})];
|
|
115
119
|
}
|
|
116
120
|
/**
|
|
@@ -123,6 +127,13 @@ var YjsExtension = (_dec = core.extension({
|
|
|
123
127
|
pickChanged = props.pickChanged;
|
|
124
128
|
var changedPluginOptions = pickChanged(['cursorBuilder', 'cursorStateField', 'getProvider', 'getSelection', 'syncPluginOptions', 'protectedNodes', 'trackedOrigins']);
|
|
125
129
|
|
|
130
|
+
if (changes.protectedNodes.changed || changes.trackedOrigins.changed) {
|
|
131
|
+
// Cannot change these, as we would need a new undo manager instance, and for that
|
|
132
|
+
// we would need to unregister the previous instance from the document to avoid
|
|
133
|
+
// memory leaks.
|
|
134
|
+
throw new Error("Cannot change \"protectedNodes\" or \"trackedOrigins\" options");
|
|
135
|
+
}
|
|
136
|
+
|
|
126
137
|
if (changes.getProvider.changed) {
|
|
127
138
|
this._provider = undefined;
|
|
128
139
|
var previousProvider = getLazyValue(changes.getProvider.previousValue); // Check whether the values have changed.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _applyDecoratedDescriptor from '@babel/runtime/helpers/esm/applyDecoratedDescriptor';
|
|
2
|
-
import { defaultCursorBuilder, ySyncPlugin, yCursorPlugin, yUndoPlugin, yUndoPluginKey, undo, redo,
|
|
2
|
+
import { defaultCursorBuilder, ySyncPluginKey, defaultDeleteFilter, ySyncPlugin, yCursorPlugin, yUndoPlugin, yUndoPluginKey, undo, redo, absolutePositionToRelativePosition, relativePositionToAbsolutePosition } from 'y-prosemirror';
|
|
3
|
+
import { UndoManager } from 'yjs';
|
|
3
4
|
import { extension, invariant, ErrorConstant, ExtensionPriority, command, keyBinding, NamedShortcut, PlainExtension, isFunction, isEmptyObject, nonChainable, convertCommand } from '@remirror/core';
|
|
4
5
|
import { AnnotationExtension } from '@remirror/extension-annotation';
|
|
5
6
|
import { ExtensionHistoryMessages } from '@remirror/messages';
|
|
@@ -100,13 +101,16 @@ var YjsExtension = (_dec = extension({
|
|
|
100
101
|
trackedOrigins = _this$options.trackedOrigins;
|
|
101
102
|
var yDoc = this.provider.doc;
|
|
102
103
|
var type = yDoc.getXmlFragment('prosemirror');
|
|
104
|
+
var undoManager = new UndoManager(type, {
|
|
105
|
+
trackedOrigins: new Set([ySyncPluginKey, ...trackedOrigins]),
|
|
106
|
+
deleteFilter: item => defaultDeleteFilter(item, protectedNodes)
|
|
107
|
+
});
|
|
103
108
|
return [ySyncPlugin(type, syncPluginOptions), yCursorPlugin(this.provider.awareness, {
|
|
104
109
|
cursorBuilder,
|
|
105
110
|
cursorStateField,
|
|
106
111
|
getSelection
|
|
107
112
|
}, cursorStateField), yUndoPlugin({
|
|
108
|
-
|
|
109
|
-
trackedOrigins
|
|
113
|
+
undoManager
|
|
110
114
|
})];
|
|
111
115
|
}
|
|
112
116
|
/**
|
|
@@ -119,6 +123,13 @@ var YjsExtension = (_dec = extension({
|
|
|
119
123
|
pickChanged = props.pickChanged;
|
|
120
124
|
var changedPluginOptions = pickChanged(['cursorBuilder', 'cursorStateField', 'getProvider', 'getSelection', 'syncPluginOptions', 'protectedNodes', 'trackedOrigins']);
|
|
121
125
|
|
|
126
|
+
if (changes.protectedNodes.changed || changes.trackedOrigins.changed) {
|
|
127
|
+
// Cannot change these, as we would need a new undo manager instance, and for that
|
|
128
|
+
// we would need to unregister the previous instance from the document to avoid
|
|
129
|
+
// memory leaks.
|
|
130
|
+
throw new Error("Cannot change \"protectedNodes\" or \"trackedOrigins\" options");
|
|
131
|
+
}
|
|
132
|
+
|
|
122
133
|
if (changes.getProvider.changed) {
|
|
123
134
|
this._provider = undefined;
|
|
124
135
|
var previousProvider = getLazyValue(changes.getProvider.previousValue); // Check whether the values have changed.
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _applyDecoratedDescriptor = require('@babel/runtime/helpers/applyDecoratedDescriptor');
|
|
6
6
|
var yProsemirror = require('y-prosemirror');
|
|
7
|
+
var yjs = require('yjs');
|
|
7
8
|
var core = require('@remirror/core');
|
|
8
9
|
var extensionAnnotation = require('@remirror/extension-annotation');
|
|
9
10
|
var messages = require('@remirror/messages');
|
|
@@ -104,13 +105,16 @@ var YjsExtension = (_dec = core.extension({
|
|
|
104
105
|
trackedOrigins = _this$options.trackedOrigins;
|
|
105
106
|
var yDoc = this.provider.doc;
|
|
106
107
|
var type = yDoc.getXmlFragment('prosemirror');
|
|
108
|
+
var undoManager = new yjs.UndoManager(type, {
|
|
109
|
+
trackedOrigins: new Set([yProsemirror.ySyncPluginKey, ...trackedOrigins]),
|
|
110
|
+
deleteFilter: item => yProsemirror.defaultDeleteFilter(item, protectedNodes)
|
|
111
|
+
});
|
|
107
112
|
return [yProsemirror.ySyncPlugin(type, syncPluginOptions), yProsemirror.yCursorPlugin(this.provider.awareness, {
|
|
108
113
|
cursorBuilder,
|
|
109
114
|
cursorStateField,
|
|
110
115
|
getSelection
|
|
111
116
|
}, cursorStateField), yProsemirror.yUndoPlugin({
|
|
112
|
-
|
|
113
|
-
trackedOrigins
|
|
117
|
+
undoManager
|
|
114
118
|
})];
|
|
115
119
|
}
|
|
116
120
|
/**
|
|
@@ -123,6 +127,13 @@ var YjsExtension = (_dec = core.extension({
|
|
|
123
127
|
pickChanged = props.pickChanged;
|
|
124
128
|
var changedPluginOptions = pickChanged(['cursorBuilder', 'cursorStateField', 'getProvider', 'getSelection', 'syncPluginOptions', 'protectedNodes', 'trackedOrigins']);
|
|
125
129
|
|
|
130
|
+
if (changes.protectedNodes.changed || changes.trackedOrigins.changed) {
|
|
131
|
+
// Cannot change these, as we would need a new undo manager instance, and for that
|
|
132
|
+
// we would need to unregister the previous instance from the document to avoid
|
|
133
|
+
// memory leaks.
|
|
134
|
+
throw new Error("Cannot change \"protectedNodes\" or \"trackedOrigins\" options");
|
|
135
|
+
}
|
|
136
|
+
|
|
126
137
|
if (changes.getProvider.changed) {
|
|
127
138
|
this._provider = undefined;
|
|
128
139
|
var previousProvider = getLazyValue(changes.getProvider.previousValue); // Check whether the values have changed.
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _applyDecoratedDescriptor = require('@babel/runtime/helpers/applyDecoratedDescriptor');
|
|
6
6
|
var yProsemirror = require('y-prosemirror');
|
|
7
|
+
var yjs = require('yjs');
|
|
7
8
|
var core = require('@remirror/core');
|
|
8
9
|
var extensionAnnotation = require('@remirror/extension-annotation');
|
|
9
10
|
var messages = require('@remirror/messages');
|
|
@@ -101,13 +102,16 @@ var YjsExtension = (_dec = core.extension({
|
|
|
101
102
|
trackedOrigins = _this$options.trackedOrigins;
|
|
102
103
|
var yDoc = this.provider.doc;
|
|
103
104
|
var type = yDoc.getXmlFragment('prosemirror');
|
|
105
|
+
var undoManager = new yjs.UndoManager(type, {
|
|
106
|
+
trackedOrigins: new Set([yProsemirror.ySyncPluginKey, ...trackedOrigins]),
|
|
107
|
+
deleteFilter: item => yProsemirror.defaultDeleteFilter(item, protectedNodes)
|
|
108
|
+
});
|
|
104
109
|
return [yProsemirror.ySyncPlugin(type, syncPluginOptions), yProsemirror.yCursorPlugin(this.provider.awareness, {
|
|
105
110
|
cursorBuilder,
|
|
106
111
|
cursorStateField,
|
|
107
112
|
getSelection
|
|
108
113
|
}, cursorStateField), yProsemirror.yUndoPlugin({
|
|
109
|
-
|
|
110
|
-
trackedOrigins
|
|
114
|
+
undoManager
|
|
111
115
|
})];
|
|
112
116
|
}
|
|
113
117
|
/**
|
|
@@ -120,6 +124,13 @@ var YjsExtension = (_dec = core.extension({
|
|
|
120
124
|
pickChanged = props.pickChanged;
|
|
121
125
|
var changedPluginOptions = pickChanged(['cursorBuilder', 'cursorStateField', 'getProvider', 'getSelection', 'syncPluginOptions', 'protectedNodes', 'trackedOrigins']);
|
|
122
126
|
|
|
127
|
+
if (changes.protectedNodes.changed || changes.trackedOrigins.changed) {
|
|
128
|
+
// Cannot change these, as we would need a new undo manager instance, and for that
|
|
129
|
+
// we would need to unregister the previous instance from the document to avoid
|
|
130
|
+
// memory leaks.
|
|
131
|
+
throw new Error("Cannot change \"protectedNodes\" or \"trackedOrigins\" options");
|
|
132
|
+
}
|
|
133
|
+
|
|
123
134
|
if (changes.getProvider.changed) {
|
|
124
135
|
this._provider = undefined;
|
|
125
136
|
var previousProvider = getLazyValue(changes.getProvider.previousValue); // Check whether the values have changed.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _applyDecoratedDescriptor from '@babel/runtime/helpers/esm/applyDecoratedDescriptor';
|
|
2
|
-
import { defaultCursorBuilder, ySyncPlugin, yCursorPlugin, yUndoPlugin, yUndoPluginKey, undo, redo,
|
|
2
|
+
import { defaultCursorBuilder, ySyncPluginKey, defaultDeleteFilter, ySyncPlugin, yCursorPlugin, yUndoPlugin, yUndoPluginKey, undo, redo, absolutePositionToRelativePosition, relativePositionToAbsolutePosition } from 'y-prosemirror';
|
|
3
|
+
import { UndoManager } from 'yjs';
|
|
3
4
|
import { extension, invariant, ErrorConstant, ExtensionPriority, command, keyBinding, NamedShortcut, PlainExtension, isFunction, isEmptyObject, nonChainable, convertCommand } from '@remirror/core';
|
|
4
5
|
import { AnnotationExtension } from '@remirror/extension-annotation';
|
|
5
6
|
import { ExtensionHistoryMessages } from '@remirror/messages';
|
|
@@ -100,13 +101,16 @@ var YjsExtension = (_dec = extension({
|
|
|
100
101
|
trackedOrigins = _this$options.trackedOrigins;
|
|
101
102
|
var yDoc = this.provider.doc;
|
|
102
103
|
var type = yDoc.getXmlFragment('prosemirror');
|
|
104
|
+
var undoManager = new UndoManager(type, {
|
|
105
|
+
trackedOrigins: new Set([ySyncPluginKey, ...trackedOrigins]),
|
|
106
|
+
deleteFilter: item => defaultDeleteFilter(item, protectedNodes)
|
|
107
|
+
});
|
|
103
108
|
return [ySyncPlugin(type, syncPluginOptions), yCursorPlugin(this.provider.awareness, {
|
|
104
109
|
cursorBuilder,
|
|
105
110
|
cursorStateField,
|
|
106
111
|
getSelection
|
|
107
112
|
}, cursorStateField), yUndoPlugin({
|
|
108
|
-
|
|
109
|
-
trackedOrigins
|
|
113
|
+
undoManager
|
|
110
114
|
})];
|
|
111
115
|
}
|
|
112
116
|
/**
|
|
@@ -119,6 +123,13 @@ var YjsExtension = (_dec = extension({
|
|
|
119
123
|
pickChanged = props.pickChanged;
|
|
120
124
|
var changedPluginOptions = pickChanged(['cursorBuilder', 'cursorStateField', 'getProvider', 'getSelection', 'syncPluginOptions', 'protectedNodes', 'trackedOrigins']);
|
|
121
125
|
|
|
126
|
+
if (changes.protectedNodes.changed || changes.trackedOrigins.changed) {
|
|
127
|
+
// Cannot change these, as we would need a new undo manager instance, and for that
|
|
128
|
+
// we would need to unregister the previous instance from the document to avoid
|
|
129
|
+
// memory leaks.
|
|
130
|
+
throw new Error("Cannot change \"protectedNodes\" or \"trackedOrigins\" options");
|
|
131
|
+
}
|
|
132
|
+
|
|
122
133
|
if (changes.getProvider.changed) {
|
|
123
134
|
this._provider = undefined;
|
|
124
135
|
var previousProvider = getLazyValue(changes.getProvider.previousValue); // Check whether the values have changed.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remirror/extension-yjs",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.18",
|
|
4
4
|
"description": "Realtime collaboration with yjs",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"remirror",
|
|
@@ -32,31 +32,31 @@
|
|
|
32
32
|
"./package.json": "./package.json",
|
|
33
33
|
"./types/*": "./dist/declarations/src/*.d.ts"
|
|
34
34
|
},
|
|
35
|
-
"main": "dist/remirror-extension-yjs.cjs.js",
|
|
36
|
-
"module": "dist/remirror-extension-yjs.esm.js",
|
|
35
|
+
"main": "./dist/remirror-extension-yjs.cjs.js",
|
|
36
|
+
"module": "./dist/remirror-extension-yjs.esm.js",
|
|
37
37
|
"browser": {
|
|
38
38
|
"./dist/remirror-extension-yjs.cjs.js": "./dist/remirror-extension-yjs.browser.cjs.js",
|
|
39
39
|
"./dist/remirror-extension-yjs.esm.js": "./dist/remirror-extension-yjs.browser.esm.js"
|
|
40
40
|
},
|
|
41
|
-
"types": "dist/remirror-extension-yjs.cjs.d.ts",
|
|
41
|
+
"types": "./dist/remirror-extension-yjs.cjs.d.ts",
|
|
42
42
|
"files": [
|
|
43
43
|
"dist"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@babel/runtime": "^7.13.10",
|
|
47
|
-
"@remirror/core": "^1.3.
|
|
48
|
-
"@remirror/extension-annotation": "^1.1.
|
|
49
|
-
"@remirror/messages": "^1.0.
|
|
50
|
-
"y-prosemirror": "^1.0.
|
|
47
|
+
"@remirror/core": "^1.3.3",
|
|
48
|
+
"@remirror/extension-annotation": "^1.1.9",
|
|
49
|
+
"@remirror/messages": "^1.0.6",
|
|
50
|
+
"y-prosemirror": "^1.0.14",
|
|
51
51
|
"y-protocols": "^1.0.5"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@remirror/pm": "^1.0.
|
|
55
|
-
"y-webrtc": "^10.2.
|
|
56
|
-
"yjs": "^13.5.
|
|
54
|
+
"@remirror/pm": "^1.0.10",
|
|
55
|
+
"y-webrtc": "^10.2.2",
|
|
56
|
+
"yjs": "^13.5.23"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
|
-
"@remirror/pm": "^1.0.
|
|
59
|
+
"@remirror/pm": "^1.0.10",
|
|
60
60
|
"yjs": "^13.4.0"
|
|
61
61
|
},
|
|
62
62
|
"publishConfig": {
|