@kerebron/extension-yjs 0.6.7 → 0.7.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.
- package/esm/ExtensionYjs.d.ts +3 -11
- package/esm/ExtensionYjs.d.ts.map +1 -1
- package/esm/ExtensionYjs.js +71 -45
- package/esm/ExtensionYjs.js.map +1 -1
- package/esm/WebsocketProvider.d.ts +70 -0
- package/esm/WebsocketProvider.d.ts.map +1 -0
- package/esm/WebsocketProvider.js +377 -0
- package/esm/WebsocketProvider.js.map +1 -0
- package/esm/YjsProvider.d.ts +48 -0
- package/esm/YjsProvider.d.ts.map +1 -0
- package/esm/YjsProvider.js +12 -0
- package/esm/YjsProvider.js.map +1 -0
- package/esm/_dnt.shims.d.ts +2 -0
- package/esm/_dnt.shims.d.ts.map +1 -0
- package/esm/_dnt.shims.js +58 -0
- package/esm/_dnt.shims.js.map +1 -0
- package/esm/binding/BindingMetadata.d.ts +6 -0
- package/esm/binding/BindingMetadata.d.ts.map +1 -0
- package/esm/binding/BindingMetadata.js +2 -0
- package/esm/binding/BindingMetadata.js.map +1 -0
- package/esm/binding/DiffViewer.d.ts +17 -0
- package/esm/binding/DiffViewer.d.ts.map +1 -0
- package/esm/binding/DiffViewer.js +96 -0
- package/esm/binding/DiffViewer.js.map +1 -0
- package/esm/binding/PmYjsBinding.d.ts +45 -0
- package/esm/binding/PmYjsBinding.d.ts.map +1 -0
- package/esm/binding/PmYjsBinding.js +230 -0
- package/esm/binding/PmYjsBinding.js.map +1 -0
- package/esm/binding/convertUtils.d.ts +48 -0
- package/esm/binding/convertUtils.d.ts.map +1 -0
- package/esm/binding/convertUtils.js +80 -0
- package/esm/binding/convertUtils.js.map +1 -0
- package/esm/{createNodeFromYElement.d.ts → binding/createNodeFromYElement.d.ts} +2 -2
- package/esm/binding/createNodeFromYElement.d.ts.map +1 -0
- package/esm/{createNodeFromYElement.js → binding/createNodeFromYElement.js} +2 -2
- package/esm/binding/createNodeFromYElement.js.map +1 -0
- package/esm/{updateYFragment.d.ts → binding/updateYFragment.d.ts} +3 -3
- package/esm/binding/updateYFragment.d.ts.map +1 -0
- package/esm/{updateYFragment.js → binding/updateYFragment.js} +10 -7
- package/esm/binding/updateYFragment.js.map +1 -0
- package/esm/debug.d.ts.map +1 -1
- package/esm/debug.js +11 -0
- package/esm/debug.js.map +1 -1
- package/esm/lib.d.ts +1 -7
- package/esm/lib.d.ts.map +1 -1
- package/esm/lib.js +1 -200
- package/esm/lib.js.map +1 -1
- package/esm/position.d.ts +8 -0
- package/esm/position.d.ts.map +1 -0
- package/esm/position.js +165 -0
- package/esm/position.js.map +1 -0
- package/esm/ui/selection.d.ts +29 -0
- package/esm/ui/selection.d.ts.map +1 -0
- package/esm/ui/selection.js +129 -0
- package/esm/ui/selection.js.map +1 -0
- package/esm/utils.d.ts +1 -1
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js.map +1 -1
- package/esm/yPositionPlugin.d.ts +6 -1
- package/esm/yPositionPlugin.d.ts.map +1 -1
- package/esm/yPositionPlugin.js +91 -50
- package/esm/yPositionPlugin.js.map +1 -1
- package/esm/ySyncPlugin.d.ts +5 -22
- package/esm/ySyncPlugin.d.ts.map +1 -1
- package/esm/ySyncPlugin.js +70 -101
- package/esm/ySyncPlugin.js.map +1 -1
- package/esm/yUndoPlugin.d.ts +11 -10
- package/esm/yUndoPlugin.d.ts.map +1 -1
- package/esm/yUndoPlugin.js +90 -52
- package/esm/yUndoPlugin.js.map +1 -1
- package/package.json +9 -6
- package/src/ExtensionYjs.ts +98 -67
- package/src/WebsocketProvider.ts +528 -0
- package/src/YjsProvider.ts +75 -0
- package/src/_dnt.shims.ts +60 -0
- package/src/binding/BindingMetadata.ts +6 -0
- package/src/binding/DiffViewer.ts +138 -0
- package/src/binding/PmYjsBinding.ts +360 -0
- package/src/binding/convertUtils.ts +124 -0
- package/src/{createNodeFromYElement.ts → binding/createNodeFromYElement.ts} +4 -4
- package/src/{updateYFragment.ts → binding/updateYFragment.ts} +15 -8
- package/src/debug.ts +21 -0
- package/src/lib.ts +4 -230
- package/src/position.ts +191 -0
- package/src/ui/selection.ts +218 -0
- package/src/utils.ts +1 -1
- package/src/yPositionPlugin.ts +122 -74
- package/src/ySyncPlugin.ts +111 -155
- package/src/yUndoPlugin.ts +113 -62
- package/esm/ProsemirrorBinding.d.ts +0 -60
- package/esm/ProsemirrorBinding.d.ts.map +0 -1
- package/esm/ProsemirrorBinding.js +0 -405
- package/esm/ProsemirrorBinding.js.map +0 -1
- package/esm/createNodeFromYElement.d.ts.map +0 -1
- package/esm/createNodeFromYElement.js.map +0 -1
- package/esm/updateYFragment.d.ts.map +0 -1
- package/esm/updateYFragment.js.map +0 -1
- package/esm/userColors.d.ts +0 -5
- package/esm/userColors.d.ts.map +0 -1
- package/esm/userColors.js +0 -11
- package/esm/userColors.js.map +0 -1
- package/src/ProsemirrorBinding.ts +0 -607
- package/src/userColors.ts +0 -10
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as Y from 'yjs';
|
|
2
|
+
import { Fragment, Node, type Schema } from 'prosemirror-model';
|
|
3
|
+
import { BindingMetadata } from './BindingMetadata.js';
|
|
4
|
+
export declare const createEmptyMeta: () => BindingMetadata;
|
|
5
|
+
/**
|
|
6
|
+
* Utility function for converting an Y.Fragment to a ProseMirror fragment.
|
|
7
|
+
*/
|
|
8
|
+
export declare const yXmlFragmentToProseMirrorFragment: (yXmlFragment: Y.XmlFragment, schema: Schema) => Fragment;
|
|
9
|
+
/**
|
|
10
|
+
* Utility function for converting an Y.Fragment to a ProseMirror node.
|
|
11
|
+
*/
|
|
12
|
+
export declare const yXmlFragmentToProseMirrorRootNode: (yXmlFragment: Y.XmlFragment, schema: Schema) => Node;
|
|
13
|
+
/**
|
|
14
|
+
* Utility method to convert a Prosemirror Doc Node into a Y.Doc.
|
|
15
|
+
*
|
|
16
|
+
* This can be used when importing existing content to Y.Doc for the first time,
|
|
17
|
+
* note that this should not be used to rehydrate a Y.Doc from a database once
|
|
18
|
+
* collaboration has begun as all history will be lost
|
|
19
|
+
*/
|
|
20
|
+
export declare function prosemirrorToYDoc(doc: Node, xmlFragment?: string): Y.Doc;
|
|
21
|
+
/**
|
|
22
|
+
* Utility method to update an empty Y.XmlFragment with content from a Prosemirror Doc Node.
|
|
23
|
+
*
|
|
24
|
+
* This can be used when importing existing content to Y.Doc for the first time,
|
|
25
|
+
* note that this should not be used to rehydrate a Y.Doc from a database once
|
|
26
|
+
* collaboration has begun as all history will be lost
|
|
27
|
+
*
|
|
28
|
+
* Note: The Y.XmlFragment does not need to be part of a Y.Doc document at the time that this
|
|
29
|
+
* method is called, but it must be added before any other operations are performed on it.
|
|
30
|
+
*/
|
|
31
|
+
export declare function prosemirrorToYXmlFragment(doc: Node, xmlFragment: Y.XmlFragment): Y.XmlFragment;
|
|
32
|
+
/**
|
|
33
|
+
* Utility method to convert Prosemirror compatible JSON into a Y.Doc.
|
|
34
|
+
*
|
|
35
|
+
* This can be used when importing existing content to Y.Doc for the first time,
|
|
36
|
+
* note that this should not be used to rehydrate a Y.Doc from a database once
|
|
37
|
+
* collaboration has begun as all history will be lost
|
|
38
|
+
*/
|
|
39
|
+
export declare function prosemirrorJSONToYDoc(schema: Schema, state: any, xmlFragment?: string): Y.Doc;
|
|
40
|
+
/**
|
|
41
|
+
* Utility method to convert Prosemirror compatible JSON to a Y.XmlFragment
|
|
42
|
+
*
|
|
43
|
+
* This can be used when importing existing content to Y.Doc for the first time,
|
|
44
|
+
* note that this should not be used to rehydrate a Y.Doc from a database once
|
|
45
|
+
* collaboration has begun as all history will be lost
|
|
46
|
+
*/
|
|
47
|
+
export declare function prosemirrorJSONToYXmlFragment(schema: Schema, state: any, xmlFragment: Y.XmlFragment): Y.XmlFragment;
|
|
48
|
+
//# sourceMappingURL=convertUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertUtils.d.ts","sourceRoot":"","sources":["../../src/binding/convertUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAMhE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,eAAO,MAAM,eAAe,QAAO,eAGjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iCAAiC,GAC5C,cAAc,CAAC,CAAC,WAAW,EAC3B,QAAQ,MAAM,aAaf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iCAAiC,GAC5C,cAAc,CAAC,CAAC,WAAW,EAC3B,QAAQ,MAAM,SAKb,CAAC;AAEJ;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,IAAI,EACT,WAAW,GAAE,MAAsB,GAClC,CAAC,CAAC,GAAG,CASP;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,IAAI,EACT,WAAW,EAAE,CAAC,CAAC,WAAW,GACzB,CAAC,CAAC,WAAW,CAUf;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,EACV,WAAW,GAAE,MAAsB,GAClC,CAAC,CAAC,GAAG,CAGP;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,EACV,WAAW,EAAE,CAAC,CAAC,WAAW,GACzB,CAAC,CAAC,WAAW,CAGf"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as Y from 'yjs';
|
|
2
|
+
import { Fragment, Node } from 'prosemirror-model';
|
|
3
|
+
import { updateYFragment } from './updateYFragment.js';
|
|
4
|
+
import { createNodeFromYElement } from './createNodeFromYElement.js';
|
|
5
|
+
export const createEmptyMeta = () => ({
|
|
6
|
+
mapping: new Map(),
|
|
7
|
+
isOverlappingMark: new Map(),
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* Utility function for converting an Y.Fragment to a ProseMirror fragment.
|
|
11
|
+
*/
|
|
12
|
+
export const yXmlFragmentToProseMirrorFragment = (yXmlFragment, schema) => {
|
|
13
|
+
const elements = yXmlFragment.toArray().filter((i) => i instanceof Y.XmlElement);
|
|
14
|
+
const fragmentContent = elements.map((t) => createNodeFromYElement(t, schema, createEmptyMeta())).filter((n) => n !== null);
|
|
15
|
+
return Fragment.fromArray(fragmentContent);
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Utility function for converting an Y.Fragment to a ProseMirror node.
|
|
19
|
+
*/
|
|
20
|
+
export const yXmlFragmentToProseMirrorRootNode = (yXmlFragment, schema) => schema.topNodeType.create(null, yXmlFragmentToProseMirrorFragment(yXmlFragment, schema));
|
|
21
|
+
/**
|
|
22
|
+
* Utility method to convert a Prosemirror Doc Node into a Y.Doc.
|
|
23
|
+
*
|
|
24
|
+
* This can be used when importing existing content to Y.Doc for the first time,
|
|
25
|
+
* note that this should not be used to rehydrate a Y.Doc from a database once
|
|
26
|
+
* collaboration has begun as all history will be lost
|
|
27
|
+
*/
|
|
28
|
+
export function prosemirrorToYDoc(doc, xmlFragment = 'prosemirror') {
|
|
29
|
+
const ydoc = new Y.Doc();
|
|
30
|
+
const type = ydoc.get(xmlFragment, Y.XmlFragment);
|
|
31
|
+
if (!type.doc) {
|
|
32
|
+
return ydoc;
|
|
33
|
+
}
|
|
34
|
+
prosemirrorToYXmlFragment(doc, type);
|
|
35
|
+
return type.doc;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Utility method to update an empty Y.XmlFragment with content from a Prosemirror Doc Node.
|
|
39
|
+
*
|
|
40
|
+
* This can be used when importing existing content to Y.Doc for the first time,
|
|
41
|
+
* note that this should not be used to rehydrate a Y.Doc from a database once
|
|
42
|
+
* collaboration has begun as all history will be lost
|
|
43
|
+
*
|
|
44
|
+
* Note: The Y.XmlFragment does not need to be part of a Y.Doc document at the time that this
|
|
45
|
+
* method is called, but it must be added before any other operations are performed on it.
|
|
46
|
+
*/
|
|
47
|
+
export function prosemirrorToYXmlFragment(doc, xmlFragment) {
|
|
48
|
+
const type = xmlFragment || new Y.XmlFragment();
|
|
49
|
+
const ydoc = type.doc
|
|
50
|
+
? type.doc
|
|
51
|
+
: { transact: (transaction) => transaction(undefined) };
|
|
52
|
+
updateYFragment(ydoc, type, doc, {
|
|
53
|
+
mapping: new Map(),
|
|
54
|
+
isOverlappingMark: new Map(),
|
|
55
|
+
});
|
|
56
|
+
return type;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Utility method to convert Prosemirror compatible JSON into a Y.Doc.
|
|
60
|
+
*
|
|
61
|
+
* This can be used when importing existing content to Y.Doc for the first time,
|
|
62
|
+
* note that this should not be used to rehydrate a Y.Doc from a database once
|
|
63
|
+
* collaboration has begun as all history will be lost
|
|
64
|
+
*/
|
|
65
|
+
export function prosemirrorJSONToYDoc(schema, state, xmlFragment = 'prosemirror') {
|
|
66
|
+
const doc = Node.fromJSON(schema, state);
|
|
67
|
+
return prosemirrorToYDoc(doc, xmlFragment);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Utility method to convert Prosemirror compatible JSON to a Y.XmlFragment
|
|
71
|
+
*
|
|
72
|
+
* This can be used when importing existing content to Y.Doc for the first time,
|
|
73
|
+
* note that this should not be used to rehydrate a Y.Doc from a database once
|
|
74
|
+
* collaboration has begun as all history will be lost
|
|
75
|
+
*/
|
|
76
|
+
export function prosemirrorJSONToYXmlFragment(schema, state, xmlFragment) {
|
|
77
|
+
const doc = Node.fromJSON(schema, state);
|
|
78
|
+
return prosemirrorToYXmlFragment(doc, xmlFragment);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=convertUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertUtils.js","sourceRoot":"","sources":["../../src/binding/convertUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as PModel from 'prosemirror-model';
|
|
2
2
|
import { Schema } from 'prosemirror-model';
|
|
3
3
|
import * as Y from 'yjs';
|
|
4
|
-
import type { BindingMetadata } from './
|
|
4
|
+
import type { BindingMetadata } from './BindingMetadata.js';
|
|
5
5
|
export declare const attributesToMarks: (attrs: {
|
|
6
6
|
[s: string]: any;
|
|
7
7
|
}, schema: Schema) => PModel.Mark[];
|
|
8
8
|
export declare const createNodeIfNotExists: (el: Y.XmlElement, schema: PModel.Schema, meta: BindingMetadata, snapshot?: Y.Snapshot, prevSnapshot?: Y.Snapshot, computeYChange?: (arg0: "removed" | "added", arg1: Y.ID) => any) => PModel.Node | null;
|
|
9
|
-
export declare const createNodeFromYElement: (el: Y.XmlElement, schema: Schema, meta: BindingMetadata, snapshot?: Y.Snapshot, prevSnapshot?: Y.Snapshot, computeYChange?: (
|
|
9
|
+
export declare const createNodeFromYElement: (el: Y.XmlElement, schema: Schema, meta: BindingMetadata, snapshot?: Y.Snapshot, prevSnapshot?: Y.Snapshot, computeYChange?: (changeType: "removed" | "added", yid: Y.ID) => any) => PModel.Node | null;
|
|
10
10
|
//# sourceMappingURL=createNodeFromYElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createNodeFromYElement.d.ts","sourceRoot":"","sources":["../../src/binding/createNodeFromYElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAQ,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAK5D,eAAO,MAAM,iBAAiB,GAC5B,OAAO;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC3B,QAAQ,MAAM,kBAQf,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,IAAI,CAAC,CAAC,UAAU,EAChB,QAAQ,MAAM,CAAC,MAAM,EACrB,MAAM,eAAe,EACrB,WAAW,CAAC,CAAC,QAAQ,EACrB,eAAe,CAAC,CAAC,QAAQ,EACzB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,KAC9D,MAAM,CAAC,IAAI,GAAG,IAiBhB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,CAAC,CAAC,UAAU,EAChB,QAAQ,MAAM,EACd,MAAM,eAAe,EACrB,WAAW,CAAC,CAAC,QAAQ,EACrB,eAAe,CAAC,CAAC,QAAQ,EACzB,iBAAiB,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,KACnE,MAAM,CAAC,IAAI,GAAG,IA2FhB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Y from 'yjs';
|
|
2
|
-
import { ySyncPluginKey } from '
|
|
3
|
-
import { isVisible } from '
|
|
2
|
+
import { ySyncPluginKey } from '../keys.js';
|
|
3
|
+
import { isVisible } from '../utils.js';
|
|
4
4
|
import { yattr2markname } from './updateYFragment.js';
|
|
5
5
|
export const attributesToMarks = (attrs, schema) => {
|
|
6
6
|
const marks = [];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createNodeFromYElement.js","sourceRoot":"","sources":["../../src/binding/createNodeFromYElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as Y from 'yjs';
|
|
2
2
|
import { Node } from 'prosemirror-model';
|
|
3
|
-
import type { BindingMetadata } from './
|
|
4
|
-
import { TransactFunc } from '
|
|
3
|
+
import type { BindingMetadata } from './BindingMetadata.js';
|
|
4
|
+
import { TransactFunc } from '../lib.js';
|
|
5
5
|
export declare const yattr2markname: (attrName: string) => string;
|
|
6
6
|
/**
|
|
7
7
|
* Update a yDom node by syncing the current content of the prosemirror node.
|
|
@@ -13,5 +13,5 @@ export declare const yattr2markname: (attrName: string) => string;
|
|
|
13
13
|
*/
|
|
14
14
|
export declare const updateYFragment: (ydoc: {
|
|
15
15
|
transact: TransactFunc<void>;
|
|
16
|
-
}, yDomFragment: Y.XmlFragment, pNode: Node, meta: BindingMetadata) => void;
|
|
16
|
+
}, yDomFragment: Y.XmlFragment, pNode: Node, meta: BindingMetadata, addToYjsHistory?: boolean) => void;
|
|
17
17
|
//# sourceMappingURL=updateYFragment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateYFragment.d.ts","sourceRoot":"","sources":["../../src/binding/updateYFragment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,OAAO,EAAQ,IAAI,EAAU,MAAM,mBAAmB,CAAC;AAMvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,WACM,CAAC;AAiQtD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM;IAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAAE,EACtC,cAAc,CAAC,CAAC,WAAW,EAC3B,OAAO,IAAI,EACX,MAAM,eAAe,EACrB,kBAAkB,OAAO,SAkK1B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as Y from 'yjs';
|
|
2
2
|
import { simpleDiff } from 'lib0/diff';
|
|
3
|
-
import { ySyncPluginKey } from '
|
|
4
|
-
import * as utils from '
|
|
3
|
+
import { ySyncPluginKey } from '../keys.js';
|
|
4
|
+
import * as utils from '../utils.js';
|
|
5
5
|
const hashedMarkNameRegex = /(.*)(--[a-zA-Z0-9+/=]{8})$/;
|
|
6
6
|
export const yattr2markname = (attrName) => hashedMarkNameRegex.exec(attrName)?.[1] ?? attrName;
|
|
7
7
|
const marksToAttributes = (marks, meta) => {
|
|
@@ -9,8 +9,8 @@ const marksToAttributes = (marks, meta) => {
|
|
|
9
9
|
marks.forEach((mark) => {
|
|
10
10
|
if (mark.type.name !== 'ychange') {
|
|
11
11
|
let isOverlapping = true;
|
|
12
|
-
if (!meta.
|
|
13
|
-
meta.
|
|
12
|
+
if (!meta.isOverlappingMark.has(mark.type.name)) {
|
|
13
|
+
meta.isOverlappingMark.set(mark.type.name, !mark.type.excludes(mark.type));
|
|
14
14
|
isOverlapping = false;
|
|
15
15
|
}
|
|
16
16
|
pattrs[isOverlapping
|
|
@@ -194,7 +194,8 @@ const updateYText = (ytext, ptexts, meta) => {
|
|
|
194
194
|
* @private
|
|
195
195
|
* @unstable
|
|
196
196
|
*/
|
|
197
|
-
export const updateYFragment = (ydoc, yDomFragment, pNode, meta) => {
|
|
197
|
+
export const updateYFragment = (ydoc, yDomFragment, pNode, meta, addToYjsHistory) => {
|
|
198
|
+
const origin = ySyncPluginKey;
|
|
198
199
|
if (yDomFragment instanceof Y.XmlElement &&
|
|
199
200
|
yDomFragment.nodeName !== pNode.type.name) {
|
|
200
201
|
throw new Error('node name mismatch!');
|
|
@@ -257,7 +258,9 @@ export const updateYFragment = (ydoc, yDomFragment, pNode, meta) => {
|
|
|
257
258
|
}
|
|
258
259
|
}
|
|
259
260
|
}
|
|
260
|
-
ydoc.transact(() => {
|
|
261
|
+
ydoc.transact((ytr) => {
|
|
262
|
+
ytr.meta.set('updateYFragment', 1);
|
|
263
|
+
ytr.meta.set('addToYjsHistory', addToYjsHistory);
|
|
261
264
|
// try to compare and update
|
|
262
265
|
while (yChildCnt - left - right > 0 && pChildCnt - left - right > 0) {
|
|
263
266
|
const leftY = yChildren[left];
|
|
@@ -328,6 +331,6 @@ export const updateYFragment = (ydoc, yDomFragment, pNode, meta) => {
|
|
|
328
331
|
}
|
|
329
332
|
yDomFragment.insert(left, ins);
|
|
330
333
|
}
|
|
331
|
-
},
|
|
334
|
+
}, origin);
|
|
332
335
|
};
|
|
333
336
|
//# sourceMappingURL=updateYFragment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateYFragment.js","sourceRoot":"","sources":["../../src/binding/updateYFragment.ts"],"names":[],"mappings":"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"}
|
package/esm/debug.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAGzB,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC;IAC5C,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC;CAC9D;AA2BD,wBAAgB,UAAU,CACxB,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EACzB,MAAM,GAAE,YAA+B,GACtC,MAAM,
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAGzB,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC;IAC5C,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC;CAC9D;AA2BD,wBAAgB,UAAU,CACxB,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EACzB,MAAM,GAAE,YAA+B,GACtC,MAAM,CAuKR;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,CAAC,CAAC,GAAG,EACX,MAAM,GAAE,YAA+B,GACtC,MAAM,CASR;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,CAAC,CAAC,GAAG,EACX,QAAQ,EAAE,CAAC,CAAC,QAAQ,UAcrB"}
|
package/esm/debug.js
CHANGED
|
@@ -114,6 +114,17 @@ export function debugYNode(node, config = YAnsiDebugConfig) {
|
|
|
114
114
|
.join('\n'), 1);
|
|
115
115
|
return retVal;
|
|
116
116
|
}
|
|
117
|
+
if (node instanceof Y.AbstractType) {
|
|
118
|
+
if (!config.isVisible(node._item)) {
|
|
119
|
+
return '';
|
|
120
|
+
}
|
|
121
|
+
const atype = node;
|
|
122
|
+
retVal += config.renderDeleted(`Y.AbstractType(${atype._length})`, node._item);
|
|
123
|
+
retVal += yDebugClient(node._item);
|
|
124
|
+
retVal += '\n';
|
|
125
|
+
retVal += indentText(JSON.stringify(atype._item), 1);
|
|
126
|
+
return retVal;
|
|
127
|
+
}
|
|
117
128
|
if ('object' !== typeof node) {
|
|
118
129
|
retVal += '' + node;
|
|
119
130
|
return retVal;
|
package/esm/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
|
package/esm/lib.d.ts
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import * as Y from 'yjs';
|
|
2
|
-
import { type EditorView } from 'prosemirror-view';
|
|
3
2
|
import { type Node } from 'prosemirror-model';
|
|
3
|
+
export type TransactFunc<T> = (f: (arg0?: Y.Transaction) => T, origin?: any) => T;
|
|
4
4
|
/**
|
|
5
5
|
* Either a node if type is YXmlElement or an Array of text nodes if YXmlText
|
|
6
6
|
*/
|
|
7
7
|
export type ProsemirrorMapping = Map<Y.AbstractType<any>, Node | Array<Node>>;
|
|
8
|
-
export declare const setMeta: (view: EditorView, key: any, value: any) => void;
|
|
9
|
-
/**
|
|
10
|
-
* Transforms a Prosemirror based absolute position to a Yjs Cursor (relative position in the Yjs model).
|
|
11
|
-
*/
|
|
12
|
-
export declare const absolutePositionToRelativePosition: (pos: number, type: Y.XmlFragment, mapping: ProsemirrorMapping) => any;
|
|
13
|
-
export declare const relativePositionToAbsolutePosition: (yDoc: Y.Doc, documentType: Y.XmlFragment, relPos: any, mapping: ProsemirrorMapping) => null | number;
|
|
14
8
|
//# sourceMappingURL=lib.d.ts.map
|
package/esm/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAC5B,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,KAAK,CAAC,EAC9B,MAAM,CAAC,EAAE,GAAG,KACT,CAAC,CAAC;AAEP;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC"}
|
package/esm/lib.js
CHANGED
|
@@ -1,201 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { ySyncPluginKey } from './keys.js';
|
|
3
|
-
/**
|
|
4
|
-
* Is null if no timeout is in progress.
|
|
5
|
-
* Is defined if a timeout is in progress.
|
|
6
|
-
* Maps from view
|
|
7
|
-
*/
|
|
8
|
-
let viewsToUpdate = null;
|
|
9
|
-
const updateMetas = () => {
|
|
10
|
-
const ups = viewsToUpdate;
|
|
11
|
-
viewsToUpdate = null;
|
|
12
|
-
if (!ups) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
ups.forEach((metas, view) => {
|
|
16
|
-
const tr = view.state.tr;
|
|
17
|
-
const syncState = ySyncPluginKey.getState(view.state);
|
|
18
|
-
if (syncState && syncState.binding && !syncState.binding.isDestroyed) {
|
|
19
|
-
metas.forEach((val, key) => {
|
|
20
|
-
tr.setMeta(key, val);
|
|
21
|
-
});
|
|
22
|
-
view.dispatch(tr);
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
export const setMeta = (view, key, value) => {
|
|
27
|
-
if (!viewsToUpdate) {
|
|
28
|
-
viewsToUpdate = new Map();
|
|
29
|
-
setTimeout(updateMetas, 0);
|
|
30
|
-
}
|
|
31
|
-
let subMap = viewsToUpdate.get(view);
|
|
32
|
-
if (subMap === undefined) {
|
|
33
|
-
subMap = new Map();
|
|
34
|
-
viewsToUpdate.set(view, subMap);
|
|
35
|
-
}
|
|
36
|
-
subMap.set(key, value);
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Transforms a Prosemirror based absolute position to a Yjs Cursor (relative position in the Yjs model).
|
|
40
|
-
*/
|
|
41
|
-
export const absolutePositionToRelativePosition = (pos, type, mapping) => {
|
|
42
|
-
if (pos === 0) {
|
|
43
|
-
// if the type is later populated, we want to retain the 0 position (hence assoc=-1)
|
|
44
|
-
return Y.createRelativePositionFromTypeIndex(type, 0, type.length === 0 ? -1 : 0);
|
|
45
|
-
}
|
|
46
|
-
let n = type._first === null
|
|
47
|
-
? null
|
|
48
|
-
: /** @type {Y.ContentType} */ (type._first.content).type;
|
|
49
|
-
while (n !== null && type !== n) {
|
|
50
|
-
if (n instanceof Y.XmlText) {
|
|
51
|
-
if (n._length >= pos) {
|
|
52
|
-
return Y.createRelativePositionFromTypeIndex(n, pos, type.length === 0 ? -1 : 0);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
pos -= n._length;
|
|
56
|
-
}
|
|
57
|
-
if (n._item !== null && n._item.next !== null) {
|
|
58
|
-
n = /** @type {Y.ContentType} */ (n._item.next.content).type;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
do {
|
|
62
|
-
n = n._item === null ? null : n._item.parent;
|
|
63
|
-
pos--;
|
|
64
|
-
} while (n !== type && n !== null && n._item !== null && n._item.next === null);
|
|
65
|
-
if (n !== null && n !== type) {
|
|
66
|
-
// @ts-gnore we know that n.next !== null because of above loop conditition
|
|
67
|
-
n = n._item === null
|
|
68
|
-
? null
|
|
69
|
-
: /** @type {Y.ContentType} */ ( /** @type Y.Item */(n._item.next)
|
|
70
|
-
.content).type;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
const pNodeSize =
|
|
76
|
-
/** @type {any} */ (mapping.get(n) || { nodeSize: 0 }).nodeSize;
|
|
77
|
-
if (n._first !== null && pos < pNodeSize) {
|
|
78
|
-
n = /** @type {Y.ContentType} */ (n._first.content).type;
|
|
79
|
-
pos--;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
if (pos === 1 && n._length === 0 && pNodeSize > 1) {
|
|
83
|
-
// edge case, should end in this paragraph
|
|
84
|
-
return new Y.RelativePosition(n._item === null ? null : n._item.id, n._item === null ? Y.findRootTypeKey(n) : null, null);
|
|
85
|
-
}
|
|
86
|
-
pos -= pNodeSize;
|
|
87
|
-
if (n._item !== null && n._item.next !== null) {
|
|
88
|
-
n = /** @type {Y.ContentType} */ (n._item.next.content).type;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
if (pos === 0) {
|
|
92
|
-
// set to end of n.parent
|
|
93
|
-
n = n._item === null ? n : n._item.parent;
|
|
94
|
-
return new Y.RelativePosition(n._item === null ? null : n._item.id, n._item === null ? Y.findRootTypeKey(n) : null, null);
|
|
95
|
-
}
|
|
96
|
-
do {
|
|
97
|
-
n = n._item.parent;
|
|
98
|
-
pos--;
|
|
99
|
-
} while (n !== type && /** @type {Y.Item} */ (n._item).next === null);
|
|
100
|
-
// if n is null at this point, we have an unexpected case
|
|
101
|
-
if (n !== type) {
|
|
102
|
-
// We know that n._item.next is defined because of above loop condition
|
|
103
|
-
n =
|
|
104
|
-
/** @type {Y.ContentType} */ ( /** @type {Y.Item} */( /** @type {Y.Item} */(n
|
|
105
|
-
._item).next).content).type;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
if (n === null) {
|
|
111
|
-
throw new Error('Unexpected case');
|
|
112
|
-
}
|
|
113
|
-
if (pos === 0 && n.constructor !== Y.XmlText && n !== type) { // TODO: set to <= 0
|
|
114
|
-
return createRelativePosition(n._item.parent, n._item);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return Y.createRelativePositionFromTypeIndex(type, type._length, type.length === 0 ? -1 : 0);
|
|
118
|
-
};
|
|
119
|
-
const createRelativePosition = (type, item) => {
|
|
120
|
-
let typeid = null;
|
|
121
|
-
let tname = null;
|
|
122
|
-
if (type._item === null) {
|
|
123
|
-
tname = Y.findRootTypeKey(type);
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
typeid = Y.createID(type._item.id.client, type._item.id.clock);
|
|
127
|
-
}
|
|
128
|
-
return new Y.RelativePosition(typeid, tname, item.id);
|
|
129
|
-
};
|
|
130
|
-
export const relativePositionToAbsolutePosition = (yDoc, documentType, relPos, mapping) => {
|
|
131
|
-
const decodedPos = Y.createAbsolutePositionFromRelativePosition(relPos, yDoc);
|
|
132
|
-
if (decodedPos === null ||
|
|
133
|
-
(decodedPos.type !== documentType &&
|
|
134
|
-
!Y.isParentOf(documentType, decodedPos.type._item))) {
|
|
135
|
-
return null;
|
|
136
|
-
}
|
|
137
|
-
let type = decodedPos.type;
|
|
138
|
-
let pos = 0;
|
|
139
|
-
if (type instanceof Y.XmlText) {
|
|
140
|
-
pos = decodedPos.index;
|
|
141
|
-
}
|
|
142
|
-
else if (type._item === null || !type._item.deleted) {
|
|
143
|
-
let n = type._first;
|
|
144
|
-
let i = 0;
|
|
145
|
-
while (i < type._length && i < decodedPos.index && n !== null) {
|
|
146
|
-
if (!n.deleted) {
|
|
147
|
-
const t = n.content.type;
|
|
148
|
-
i++;
|
|
149
|
-
if (t instanceof Y.XmlText) {
|
|
150
|
-
pos += t._length;
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
const node = mapping.get(t);
|
|
154
|
-
if (Array.isArray(node)) {
|
|
155
|
-
pos += node.reduce((prev, curr) => prev + curr?.nodeSize || 0, 0);
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
pos += node?.nodeSize || 0;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
n = n.right;
|
|
163
|
-
}
|
|
164
|
-
pos += 1; // increase because we go out of n
|
|
165
|
-
}
|
|
166
|
-
while (type !== documentType && type._item !== null) {
|
|
167
|
-
const parent = type._item.parent;
|
|
168
|
-
if (parent instanceof Y.ID || parent === null) {
|
|
169
|
-
continue;
|
|
170
|
-
}
|
|
171
|
-
if (parent._item === null || !parent._item.deleted) {
|
|
172
|
-
pos += 1; // the start tag
|
|
173
|
-
let n = /** @type {Y.AbstractType} */ (parent)._first;
|
|
174
|
-
// now iterate until we found type
|
|
175
|
-
while (n !== null) {
|
|
176
|
-
const contentType = n.content.type;
|
|
177
|
-
if (contentType === type) {
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
if (!n.deleted) {
|
|
181
|
-
if (contentType instanceof Y.XmlText) {
|
|
182
|
-
pos += contentType._length;
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
const node = mapping.get(contentType);
|
|
186
|
-
if (Array.isArray(node)) {
|
|
187
|
-
pos += node.reduce((prev, curr) => prev + curr?.nodeSize || 0, 0);
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
pos += node?.nodeSize || 0;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
n = n.right;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
type = parent;
|
|
198
|
-
}
|
|
199
|
-
return pos - 1; // we don't count the most outer tag, because it is a fragment
|
|
200
|
-
};
|
|
1
|
+
export {};
|
|
201
2
|
//# sourceMappingURL=lib.js.map
|
package/esm/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as Y from 'yjs';
|
|
2
|
+
import { ProsemirrorMapping } from './lib.js';
|
|
3
|
+
/**
|
|
4
|
+
* Transforms a Prosemirror based absolute position to a Yjs Cursor (relative position in the Yjs model).
|
|
5
|
+
*/
|
|
6
|
+
export declare const absolutePositionToRelativePosition: (pos: number, type: Y.XmlFragment, mapping: ProsemirrorMapping) => any;
|
|
7
|
+
export declare const relativePositionToAbsolutePosition: (yDoc: Y.Doc, documentType: Y.XmlFragment, relPos: any, mapping: ProsemirrorMapping) => null | number;
|
|
8
|
+
//# sourceMappingURL=position.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../src/position.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,kCAAkC,GAC7C,KAAK,MAAM,EACX,MAAM,CAAC,CAAC,WAAW,EACnB,SAAS,kBAAkB,KAC1B,GA+FF,CAAC;AAaF,eAAO,MAAM,kCAAkC,GAC7C,MAAM,CAAC,CAAC,GAAG,EACX,cAAc,CAAC,CAAC,WAAW,EAC3B,QAAQ,GAAG,EACX,SAAS,kBAAkB,KAC1B,IAAI,GAAG,MAmET,CAAC"}
|