This is an automated email from the ASF dual-hosted git repository. gerben pushed a commit to branch dom-tests in repository https://gitbox.apache.org/repos/asf/incubator-annotator.git
commit 76cc9c80accdeddf150d5a5504f717b7fee1400c Author: Gerben <[email protected]> AuthorDate: Fri May 22 15:54:27 2020 +0200 Update to dom-seek v5, improve its type declaration Fixes failing tests due to not seeking at all. Although perhaps we should not rely on dom-seek to keep its exact behaviour as is? --- @types/dom-seek/index.d.ts | 2 +- packages/dom/package.json | 2 +- packages/dom/src/text-quote/match.ts | 39 ++++++++++++++---------------------- yarn.lock | 21 ++++--------------- 4 files changed, 21 insertions(+), 43 deletions(-) diff --git a/@types/dom-seek/index.d.ts b/@types/dom-seek/index.d.ts index 0ba0753..5bc1bc2 100644 --- a/@types/dom-seek/index.d.ts +++ b/@types/dom-seek/index.d.ts @@ -1,3 +1,3 @@ declare module 'dom-seek' { - export default function seek(iter: NodeIterator, where: number | Node): number; + export default function seek(iter: NodeIterator, where: number | Text): number; } diff --git a/packages/dom/package.json b/packages/dom/package.json index fb1f5a6..fb1aede 100644 --- a/packages/dom/package.json +++ b/packages/dom/package.json @@ -16,7 +16,7 @@ "cartesian": "^1.0.1", "core-js": "^3.6.4", "dom-node-iterator": "^3.5.3", - "dom-seek": "^4.0.3" + "dom-seek": "^5.1.0" }, "engines": { "node": ">=10.0.0" diff --git a/packages/dom/src/text-quote/match.ts b/packages/dom/src/text-quote/match.ts index 2657a6f..4118fd0 100644 --- a/packages/dom/src/text-quote/match.ts +++ b/packages/dom/src/text-quote/match.ts @@ -58,18 +58,15 @@ export function createTextQuoteSelectorMatcher(selector: TextQuoteSelector): Dom // Seek to the start of the match. referenceNodeIndex += seek(iter, matchStartIndex - referenceNodeIndex); - // Normalize the reference to the start of the match. - if (!iter.pointerBeforeReferenceNode) { - // Peek forward and skip over any empty nodes. - if (iter.nextNode()) { - while ((iter.referenceNode.nodeValue as String).length === 0) { - iter.nextNode(); - } - - // The iterator now points to the end of the reference node. - // Move the iterator back to the start of the reference node. - iter.previousNode(); + // Peek forward and skip over any empty nodes. + if (iter.nextNode()) { + while ((iter.referenceNode.nodeValue as String).length === 0) { + iter.nextNode(); } + + // The iterator now points to the end of the reference node. + // Move the iterator back to the start of the reference node. + iter.previousNode(); } // Record the start container and offset. @@ -78,21 +75,15 @@ export function createTextQuoteSelectorMatcher(selector: TextQuoteSelector): Dom // Seek to the end of the match. referenceNodeIndex += seek(iter, matchEndIndex - referenceNodeIndex); - // Normalize the reference to the end of the match. - if (!iter.pointerBeforeReferenceNode) { - // Peek forward and skip over any empty nodes. - if (iter.nextNode()) { - while ((iter.referenceNode.nodeValue as String).length === 0) { - iter.nextNode(); - } - - // The iterator now points to the end of the reference node. - // Move the iterator back to the start of the reference node. - iter.previousNode(); + // Peek forward and skip over any empty nodes. + if (iter.nextNode()) { + while ((iter.referenceNode.nodeValue as String).length === 0) { + iter.nextNode(); } - // Maybe seek backwards to the start of the node. - referenceNodeIndex += seek(iter, iter.referenceNode); + // The iterator now points to the end of the reference node. + // Move the iterator back to the start of the reference node. + iter.previousNode(); } // Record the end container and offset. diff --git a/yarn.lock b/yarn.lock index 7a68012..c20b2b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2212,11 +2212,6 @@ ajv@^6.12.0: json-schema-traverse "^0.4.1" uri-js "^4.2.2" [email protected]: - version "0.0.3" - resolved "https://registry.yarnpkg.com/ancestors/-/ancestors-0.0.3.tgz#124eb944447d68b302057047d15d077a9da5179d" - integrity sha1-Ek65RER9aLMCBXBH0V0Hep2lF50= - [email protected]: version "3.2.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" @@ -3959,13 +3954,10 @@ dom-node-iterator@^3.5.3: resolved "https://registry.yarnpkg.com/dom-node-iterator/-/dom-node-iterator-3.5.3.tgz#32b68aa440962f1734487029f544a3db704637b7" integrity sha1-MraKpECWLxc0SHAp9USj23BGN7c= -dom-seek@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/dom-seek/-/dom-seek-4.0.3.tgz#f14dddf04b3fb062d901c7b00b0c142a06e0a94b" - integrity sha1-8U3d8Es/sGLZAcewCwwUKgbgqUs= - dependencies: - ancestors "0.0.3" - index-of "^0.2.0" +dom-seek@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/dom-seek/-/dom-seek-5.1.1.tgz#4e35bee763b6ba082f372345823ec9665d1fbf26" + integrity sha512-1strSwd201Gfhfkfsk77SX9xyJGzu12gqUo5Q0W3Njtj2QxcfQTwCDOynZ6npZ4ASUFRQq0asjYDRlFxYPKwTA== domain-browser@^1.1.1: version "1.2.0" @@ -5657,11 +5649,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -index-of@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/index-of/-/index-of-0.2.0.tgz#38c1e2367ea55dffad3b6eb592ec1cc3090d7d65" - integrity sha1-OMHiNn6lXf+tO261kuwcwwkNfWU= - indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
