From c881b38d0973c6ef88a086b1b79f41c7e7360273 Mon Sep 17 00:00:00 2001 From: Zihua Li Date: Sat, 15 Apr 2023 15:51:15 +0800 Subject: [PATCH 1/4] Add semantic cleanup for diff --- package-lock.json | 13 +++++++------ package.json | 2 +- src/Delta.ts | 2 +- test/delta/diff.ts | 6 ++---- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1ad5563..a86914a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "5.0.0", "license": "MIT", "dependencies": { - "fast-diff": "1.2.0", + "fast-diff": "github:jhchen/fast-diff#90d7fff46aa7e48f810b1c92e8362cf371bf0b9f", "lodash.clonedeep": "^4.5.0", "lodash.isequal": "^4.5.0" }, @@ -1580,8 +1580,9 @@ }, "node_modules/fast-diff": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" + "resolved": "git+ssh://git@github.com/jhchen/fast-diff.git#90d7fff46aa7e48f810b1c92e8362cf371bf0b9f", + "integrity": "sha512-+J3r+AhKvD7KYfU5egGj5YutrFfbWJzhqWHN5dUGLYqbzvHJN/Xqpy30AJWZWw9+6adFlMsRq8EcZPhiV9apDg==", + "license": "Apache-2.0" }, "node_modules/fast-glob": { "version": "3.2.11", @@ -4369,9 +4370,9 @@ "dev": true }, "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" + "version": "git+ssh://git@github.com/jhchen/fast-diff.git#90d7fff46aa7e48f810b1c92e8362cf371bf0b9f", + "integrity": "sha512-+J3r+AhKvD7KYfU5egGj5YutrFfbWJzhqWHN5dUGLYqbzvHJN/Xqpy30AJWZWw9+6adFlMsRq8EcZPhiV9apDg==", + "from": "fast-diff@github:jhchen/fast-diff#90d7fff46aa7e48f810b1c92e8362cf371bf0b9f" }, "fast-glob": { "version": "3.2.11", diff --git a/package.json b/package.json index 97f4375..23f7e1d 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "homepage": "https://github.com/quilljs/delta", "main": "dist/Delta.js", "dependencies": { - "fast-diff": "1.2.0", + "fast-diff": "github:jhchen/fast-diff#90d7fff46aa7e48f810b1c92e8362cf371bf0b9f", "lodash.clonedeep": "^4.5.0", "lodash.isequal": "^4.5.0" }, diff --git a/src/Delta.ts b/src/Delta.ts index 75d102b..56c7a7a 100644 --- a/src/Delta.ts +++ b/src/Delta.ts @@ -352,7 +352,7 @@ class Delta { .join(''); }); const retDelta = new Delta(); - const diffResult = diff(strings[0], strings[1], cursor); + const diffResult = diff(strings[0], strings[1], cursor, true); const thisIter = new OpIterator(this.ops); const otherIter = new OpIterator(other.ops); diffResult.forEach((component: diff.Diff) => { diff --git a/test/delta/diff.ts b/test/delta/diff.ts index e3e7e50..e5b5efb 100644 --- a/test/delta/diff.ts +++ b/test/delta/diff.ts @@ -123,10 +123,8 @@ describe('diff()', () => { .insert('dog', { italic: true }); const expected = new Delta() .insert('Good', { bold: true }) - .delete(2) - .retain(1, { italic: true, color: null }) - .delete(3) - .insert('og', { italic: true }); + .insert('dog', { italic: true }) + .delete(6); expect(a.diff(b)).toEqual(expected); }); From 509c1e4084999dd3216394c4221e2f6a27d0ceb1 Mon Sep 17 00:00:00 2001 From: Zihua Li Date: Fri, 19 May 2023 16:40:58 +0800 Subject: [PATCH 2/4] Upgrade fast-diff --- package-lock.json | 15 +++++++-------- package.json | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index a86914a..6c8a23f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "5.0.0", "license": "MIT", "dependencies": { - "fast-diff": "github:jhchen/fast-diff#90d7fff46aa7e48f810b1c92e8362cf371bf0b9f", + "fast-diff": "^1.3.0", "lodash.clonedeep": "^4.5.0", "lodash.isequal": "^4.5.0" }, @@ -1579,10 +1579,9 @@ "dev": true }, "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "git+ssh://git@github.com/jhchen/fast-diff.git#90d7fff46aa7e48f810b1c92e8362cf371bf0b9f", - "integrity": "sha512-+J3r+AhKvD7KYfU5egGj5YutrFfbWJzhqWHN5dUGLYqbzvHJN/Xqpy30AJWZWw9+6adFlMsRq8EcZPhiV9apDg==", - "license": "Apache-2.0" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==" }, "node_modules/fast-glob": { "version": "3.2.11", @@ -4370,9 +4369,9 @@ "dev": true }, "fast-diff": { - "version": "git+ssh://git@github.com/jhchen/fast-diff.git#90d7fff46aa7e48f810b1c92e8362cf371bf0b9f", - "integrity": "sha512-+J3r+AhKvD7KYfU5egGj5YutrFfbWJzhqWHN5dUGLYqbzvHJN/Xqpy30AJWZWw9+6adFlMsRq8EcZPhiV9apDg==", - "from": "fast-diff@github:jhchen/fast-diff#90d7fff46aa7e48f810b1c92e8362cf371bf0b9f" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==" }, "fast-glob": { "version": "3.2.11", diff --git a/package.json b/package.json index 23f7e1d..579ae94 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "homepage": "https://github.com/quilljs/delta", "main": "dist/Delta.js", "dependencies": { - "fast-diff": "github:jhchen/fast-diff#90d7fff46aa7e48f810b1c92e8362cf371bf0b9f", + "fast-diff": "^1.3.0", "lodash.clonedeep": "^4.5.0", "lodash.isequal": "^4.5.0" }, From c3f21bdca47720512c14c81d17a33ec41c129953 Mon Sep 17 00:00:00 2001 From: Zihua Li Date: Mon, 22 May 2023 11:10:26 +0800 Subject: [PATCH 3/4] Update CHANGELOG for v5.1.0 --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 438f2d3..bfa87e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## v5.1.0 + +- Perform semantic cleanups for `Delta#diff()`. + ## v5.0.0 #### Breaking Changes @@ -5,7 +9,7 @@ - Drop support for Internet Explorer 11 - Increase the minimum Node.js version to v12 - `Op.iterator()` is removed in favor of `Delta.OpIterator`, so instead of `Delta.Op.iterator(ops)`, you should use `new Delta.OpIterator()`. - + #### Features - Add `Delta.registerEmbed()` for [Operational Transform](https://en.wikipedia.org/wiki/Operational_transformation) support for embeds. From 9b98644d3e9707fc6c8383dace49c40e851e20dc Mon Sep 17 00:00:00 2001 From: Zihua Li Date: Mon, 22 May 2023 11:10:35 +0800 Subject: [PATCH 4/4] 5.1.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6c8a23f..edd2fbe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "quill-delta", - "version": "5.0.0", + "version": "5.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "quill-delta", - "version": "5.0.0", + "version": "5.1.0", "license": "MIT", "dependencies": { "fast-diff": "^1.3.0", diff --git a/package.json b/package.json index 579ae94..eda68bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "quill-delta", - "version": "5.0.0", + "version": "5.1.0", "description": "Format for representing rich text documents and changes.", "author": "Jason Chen ", "homepage": "https://github.com/quilljs/delta",