From 6826ce04651d80057c60c2fd2dc14d6457e84998 Mon Sep 17 00:00:00 2001 From: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com> Date: Mon, 16 Sep 2024 18:28:09 +0530 Subject: [PATCH] [WEB-1116] chore: remove yjs packages from the editor (#5603) * chore: remove yjs packages from the editor * chore: updated yarn lock file --- packages/editor/package.json | 5 +- packages/editor/src/core/helpers/yjs.ts | 76 ------------------------- packages/editor/src/index.ts | 1 - yarn.lock | 37 ++---------- 4 files changed, 7 insertions(+), 112 deletions(-) delete mode 100644 packages/editor/src/core/helpers/yjs.ts diff --git a/packages/editor/package.json b/packages/editor/package.json index b92336ddde1..3e4f5213548 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -65,10 +65,7 @@ "tailwind-merge": "^1.14.0", "tippy.js": "^6.3.7", "tiptap-markdown": "^0.8.9", - "y-indexeddb": "^9.0.12", - "y-prosemirror": "^1.2.5", - "y-protocols": "^1.0.6", - "yjs": "^13.6.15" + "y-indexeddb": "^9.0.12" }, "devDependencies": { "@types/node": "18.15.3", diff --git a/packages/editor/src/core/helpers/yjs.ts b/packages/editor/src/core/helpers/yjs.ts deleted file mode 100644 index 71a945d3cc5..00000000000 --- a/packages/editor/src/core/helpers/yjs.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { Schema } from "@tiptap/pm/model"; -import { prosemirrorJSONToYDoc } from "y-prosemirror"; -import * as Y from "yjs"; - -const defaultSchema: Schema = new Schema({ - nodes: { - text: {}, - doc: { content: "text*" }, - }, -}); - -/** - * @description converts ProseMirror JSON to Yjs document - * @param document prosemirror JSON - * @param fieldName - * @param schema - * @returns {Y.Doc} Yjs document - */ -export const proseMirrorJSONToBinaryString = ( - document: any, - fieldName: string | Array = "default", - schema?: Schema -): string => { - if (!document) { - throw new Error( - `You've passed an empty or invalid document to the Transformer. Make sure to pass ProseMirror-compatible JSON. Actually passed JSON: ${document}` - ); - } - - // allow a single field name - if (typeof fieldName === "string") { - const yDoc = prosemirrorJSONToYDoc(schema ?? defaultSchema, document, fieldName); - const docAsUint8Array = Y.encodeStateAsUpdate(yDoc); - const base64Doc = Buffer.from(docAsUint8Array).toString("base64"); - return base64Doc; - } - - const yDoc = new Y.Doc(); - - fieldName.forEach((field) => { - const update = Y.encodeStateAsUpdate(prosemirrorJSONToYDoc(schema ?? defaultSchema, document, field)); - - Y.applyUpdate(yDoc, update); - }); - - const docAsUint8Array = Y.encodeStateAsUpdate(yDoc); - const base64Doc = Buffer.from(docAsUint8Array).toString("base64"); - - return base64Doc; -}; - -/** - * @description apply updates to a doc and return the updated doc in base64(binary) format - * @param {Uint8Array} document - * @param {Uint8Array} updates - * @returns {string} base64(binary) form of the updated doc - */ -export const applyUpdates = (document: Uint8Array, updates: Uint8Array): string => { - const yDoc = new Y.Doc(); - Y.applyUpdate(yDoc, document); - Y.applyUpdate(yDoc, updates); - - const encodedDoc = Y.encodeStateAsUpdate(yDoc); - const base64Updates = Buffer.from(encodedDoc).toString("base64"); - return base64Updates; -}; - -/** - * @description merge multiple updates into one single update - * @param {Uint8Array[]} updates - * @returns {Uint8Array} merged updates - */ -export const mergeUpdates = (updates: Uint8Array[]): Uint8Array => { - const mergedUpdates = Y.mergeUpdates(updates); - return mergedUpdates; -}; diff --git a/packages/editor/src/index.ts b/packages/editor/src/index.ts index 15ec7913752..2d4ea516fc9 100644 --- a/packages/editor/src/index.ts +++ b/packages/editor/src/index.ts @@ -21,7 +21,6 @@ export { isCellSelection } from "@/extensions/table/table/utilities/is-cell-sele // helpers export * from "@/helpers/common"; export * from "@/helpers/editor-commands"; -export * from "@/helpers/yjs"; export * from "@/extensions/table/table"; export { startImageUpload } from "@/plugins/image"; diff --git a/yarn.lock b/yarn.lock index 694c95d6c17..bf8a4fa55d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3984,7 +3984,7 @@ dependencies: "@types/node" "*" -"@types/node@*": +"@types/node@*", "@types/node@^22.5.4": version "22.5.4" resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.4.tgz#83f7d1f65bc2ed223bdbf57c7884f1d5a4fa84e8" integrity sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg== @@ -11632,16 +11632,7 @@ string-argv@~0.3.2: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -11737,14 +11728,7 @@ string_decoder@^1.1.1, string_decoder@^1.3.0: dependencies: safe-buffer "~5.2.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -13013,16 +12997,7 @@ word-wrap@^1.2.5: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -13095,7 +13070,7 @@ y-indexeddb@^9.0.12: dependencies: lib0 "^0.2.74" -y-prosemirror@^1.2.5, y-prosemirror@^1.2.9: +y-prosemirror@^1.2.9: version "1.2.12" resolved "https://registry.yarnpkg.com/y-prosemirror/-/y-prosemirror-1.2.12.tgz#3bb3bd9def611a90e8b7ac6a7e46a6230f238746" integrity sha512-UMnUIR5ppVn30n2kzeeBQEaesWGe4fsbnlch1HnNa3/snJMoOn7M7dieuS+o1OQwKs1dqx2eT3gFfGF2aOaQdw== @@ -13152,7 +13127,7 @@ yargs@^17.0.0: y18n "^5.0.5" yargs-parser "^21.1.1" -yjs@^13.6.14, yjs@^13.6.15: +yjs@^13.6.14: version "13.6.19" resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.6.19.tgz#66999f41254ab65be8c8e71bd767d124ad600909" integrity sha512-GNKw4mEUn5yWU2QPHRx8jppxmCm9KzbBhB4qJLUJFiiYD0g/tDVgXQ7aPkyh01YO28kbs2J/BEbWBagjuWyejw==