@veltdev/tiptap-crdt
Advanced tools
+23
-0
@@ -33,2 +33,7 @@ import { Extension } from '@tiptap/core'; | ||
| private userId; | ||
| /** Observer for Yjs document transactions to catch TipTap changes */ | ||
| private docTransactionObserver; | ||
| /** Track last known fragment state to detect changes */ | ||
| private lastFragmentLength; | ||
| private lastFragmentContent; | ||
| /** | ||
@@ -80,2 +85,20 @@ * Creates a new VeltTipTapStore instance | ||
| /** | ||
| * Removes the document transaction observer if it exists. | ||
| * This is a common cleanup method used by both setupTipTapChangeObserver and destroy. | ||
| * @param {Y.Doc} [ydoc] - Optional Yjs document. If not provided, will get from store. | ||
| * @private | ||
| */ | ||
| private removeDocTransactionObserver; | ||
| /** | ||
| * Sets up an observer on the Yjs document to catch TipTap changes | ||
| * that might not trigger the Store's XML fragment observer directly. | ||
| * TipTap's Collaboration extension writes through ProseMirror which may not | ||
| * always trigger the fragment observer, so we detect changes here and | ||
| * manually notify subscribers when needed. | ||
| * | ||
| * This method is idempotent - it will remove any existing observer before | ||
| * attaching a new one to prevent duplicate observers and memory leaks. | ||
| */ | ||
| private setupTipTapChangeObserver; | ||
| /** | ||
| * Cleans up resources by destroying the store | ||
@@ -82,0 +105,0 @@ */ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAGzB,0DAA0D;AAC1D,MAAM,WAAW,qBAAqB;IACpC,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC;IACjC,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAE3C,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,iDAAiD;IACjD,OAAO,CAAC,KAAK,CAAgB;IAE7B,4BAA4B;IAC5B,OAAO,CAAC,MAAM,CAAwB;IAEtC,yCAAyC;IACzC,OAAO,CAAC,QAAQ,CAAS;IAEzB,kDAAkD;IAClD,OAAO,CAAC,aAAa,CAAkB;IAEvC,OAAO,CAAC,MAAM,CAAS;IAEvB;;;;OAIG;gBACS,MAAM,EAAE,qBAAqB;IAuCzC;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqGjC;;;OAGG;IACH,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC;IASzB;;;;OAIG;IACH,QAAQ,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI;IAUzB;;;OAGG;IACH,OAAO,IAAI,CAAC,CAAC,WAAW,GAAG,IAAI;IAS/B;;;OAGG;IACH,OAAO,IAAI,CAAC,CAAC,GAAG;IAShB;;;OAGG;IACH,WAAW,IAAI,OAAO;IAStB;;;;OAIG;IACG,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D;;OAEG;IACH,OAAO,IAAI,IAAI;IASf,kBAAkB,IAAI,SAAS;CAUhC;AAED,eAAO,MAAM,qBAAqB,GAAU,QAAQ,qBAAqB,KAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CASzG,CAAA"} | ||
| {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAGzB,0DAA0D;AAC1D,MAAM,WAAW,qBAAqB;IACpC,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC;IACjC,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAE3C,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,iDAAiD;IACjD,OAAO,CAAC,KAAK,CAAgB;IAE7B,4BAA4B;IAC5B,OAAO,CAAC,MAAM,CAAwB;IAEtC,yCAAyC;IACzC,OAAO,CAAC,QAAQ,CAAS;IAEzB,kDAAkD;IAClD,OAAO,CAAC,aAAa,CAAkB;IAEvC,OAAO,CAAC,MAAM,CAAS;IAEvB,qEAAqE;IACrE,OAAO,CAAC,sBAAsB,CAA6B;IAE3D,wDAAwD;IACxD,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,mBAAmB,CAAc;IAEzC;;;;OAIG;gBACS,MAAM,EAAE,qBAAqB;IA2CzC;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2HjC;;;OAGG;IACH,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC;IASzB;;;;OAIG;IACH,QAAQ,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI;IAUzB;;;OAGG;IACH,OAAO,IAAI,CAAC,CAAC,WAAW,GAAG,IAAI;IAS/B;;;OAGG;IACH,OAAO,IAAI,CAAC,CAAC,GAAG;IAShB;;;OAGG;IACH,WAAW,IAAI,OAAO;IAStB;;;;OAIG;IACG,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAoBpC;;;;;;;;;OASG;IACH,OAAO,CAAC,yBAAyB;IAqDjC;;OAEG;IACH,OAAO,IAAI,IAAI;IAYf,kBAAkB,IAAI,SAAS;CAUhC;AAED,eAAO,MAAM,qBAAqB,GAAU,QAAQ,qBAAqB,KAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CASzG,CAAA"} |
+23
-0
@@ -34,2 +34,7 @@ import { Extension } from '@tiptap/core'; | ||
| private userId; | ||
| /** Observer for Yjs document transactions to catch TipTap changes */ | ||
| private docTransactionObserver; | ||
| /** Track last known fragment state to detect changes */ | ||
| private lastFragmentLength; | ||
| private lastFragmentContent; | ||
| /** | ||
@@ -81,2 +86,20 @@ * Creates a new VeltTipTapStore instance | ||
| /** | ||
| * Removes the document transaction observer if it exists. | ||
| * This is a common cleanup method used by both setupTipTapChangeObserver and destroy. | ||
| * @param {Y.Doc} [ydoc] - Optional Yjs document. If not provided, will get from store. | ||
| * @private | ||
| */ | ||
| private removeDocTransactionObserver; | ||
| /** | ||
| * Sets up an observer on the Yjs document to catch TipTap changes | ||
| * that might not trigger the Store's XML fragment observer directly. | ||
| * TipTap's Collaboration extension writes through ProseMirror which may not | ||
| * always trigger the fragment observer, so we detect changes here and | ||
| * manually notify subscribers when needed. | ||
| * | ||
| * This method is idempotent - it will remove any existing observer before | ||
| * attaching a new one to prevent duplicate observers and memory leaks. | ||
| */ | ||
| private setupTipTapChangeObserver; | ||
| /** | ||
| * Cleans up resources by destroying the store | ||
@@ -83,0 +106,0 @@ */ |
+1
-1
| { | ||
| "name": "@veltdev/tiptap-crdt", | ||
| "version": "4.5.8-beta.3", | ||
| "version": "4.5.8-beta.4", | ||
| "description": "Tiptap CRDT library for Velt", | ||
@@ -5,0 +5,0 @@ "homepage": "https://velt.dev", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Unidentified License
LicenseSomething that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Unidentified License
LicenseSomething that seems like a license was found, but its contents could not be matched with a known license.
Found 1 instance in 1 package
2580087
0.89%18935
1.71%68
21.43%