This run took 177 seconds.
$ date --- stdout --- Sun Sep 22 00:03:14 UTC 2024 --- end --- $ git clone file:///srv/git/VisualEditor-VisualEditor.git repo --depth=1 -b REL1_39 --- stderr --- Cloning into 'repo'... --- stdout --- --- end --- $ git config user.name libraryupgrader --- stdout --- --- end --- $ git config user.email tools.libraryupgrader@tools.wmflabs.org --- stdout --- --- end --- $ git submodule update --init --- stdout --- --- end --- $ grr init --- stdout --- Installed commit-msg hook. --- end --- $ git show-ref refs/heads/REL1_39 --- stdout --- 922e648965ce6901235f7132d2f6f76088e5d671 refs/heads/REL1_39 --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "grunt-css-url-embed": { "name": "grunt-css-url-embed", "severity": "moderate", "isDirect": true, "via": [ "request" ], "effects": [], "range": ">=1.1.0", "nodes": [ "node_modules/grunt-css-url-embed" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" }, "tough-cookie" ], "effects": [ "grunt-css-url-embed" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } }, "tough-cookie": { "name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": [ "CWE-1321" ], "cvss": { "score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, "range": "<4.1.3" } ], "effects": [ "request" ], "range": "<4.1.3", "nodes": [ "node_modules/tough-cookie" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 3, "high": 0, "critical": 0, "total": 3 }, "dependencies": { "prod": 1, "dev": 683, "optional": 3, "peer": 5, "peerOptional": 0, "total": 683 } } } --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "grunt-css-url-embed": { "name": "grunt-css-url-embed", "severity": "moderate", "isDirect": true, "via": [ "request" ], "effects": [], "range": ">=1.1.0", "nodes": [ "node_modules/grunt-css-url-embed" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" }, "tough-cookie" ], "effects": [ "grunt-css-url-embed" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } }, "tough-cookie": { "name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": [ "CWE-1321" ], "cvss": { "score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, "range": "<4.1.3" } ], "effects": [ "request" ], "range": "<4.1.3", "nodes": [ "node_modules/tough-cookie" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 3, "high": 0, "critical": 0, "total": 3 }, "dependencies": { "prod": 1, "dev": 683, "optional": 3, "peer": 5, "peerOptional": 0, "total": 683 } } } --- end --- Attempting to npm audit fix $ /usr/bin/npm audit fix --dry-run --only=dev --json --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@es-joy/jsdoccomment@0.20.1', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'eslint-plugin-jsdoc@37.9.7', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } --- stdout --- { "added": 683, "removed": 0, "changed": 0, "audited": 684, "funding": 86, "audit": { "auditReportVersion": 2, "vulnerabilities": { "grunt-css-url-embed": { "name": "grunt-css-url-embed", "severity": "moderate", "isDirect": true, "via": [ "request" ], "effects": [], "range": ">=1.1.0", "nodes": [ "node_modules/grunt-css-url-embed" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" }, "tough-cookie" ], "effects": [ "grunt-css-url-embed" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } }, "tough-cookie": { "name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [ { "source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": [ "CWE-1321" ], "cvss": { "score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N" }, "range": "<4.1.3" } ], "effects": [ "request" ], "range": "<4.1.3", "nodes": [ "node_modules/tough-cookie" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 3, "high": 0, "critical": 0, "total": 3 }, "dependencies": { "prod": 1, "dev": 683, "optional": 3, "peer": 5, "peerOptional": 0, "total": 683 } } } } --- end --- {"added": 683, "removed": 0, "changed": 0, "audited": 684, "funding": 86, "audit": {"auditReportVersion": 2, "vulnerabilities": {"grunt-css-url-embed": {"name": "grunt-css-url-embed", "severity": "moderate", "isDirect": true, "via": ["request"], "effects": [], "range": ">=1.1.0", "nodes": ["node_modules/grunt-css-url-embed"], "fixAvailable": {"name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true}}, "request": {"name": "request", "severity": "moderate", "isDirect": false, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "tough-cookie"], "effects": ["grunt-css-url-embed"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": {"name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true}}, "tough-cookie": {"name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [{"source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"}, "range": "<4.1.3"}], "effects": ["request"], "range": "<4.1.3", "nodes": ["node_modules/tough-cookie"], "fixAvailable": {"name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 3, "high": 0, "critical": 0, "total": 3}, "dependencies": {"prod": 1, "dev": 683, "optional": 3, "peer": 5, "peerOptional": 0, "total": 683}}}} $ /usr/bin/npm audit fix --only=dev --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@es-joy/jsdoccomment@0.20.1', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'eslint-plugin-jsdoc@37.9.7', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 --- stdout --- added 682 packages, and audited 683 packages in 17s 86 packages are looking for funding run `npm fund` for details # npm audit report request * Severity: moderate Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6 Depends on vulnerable versions of tough-cookie fix available via `npm audit fix --force` Will install grunt-css-url-embed@1.0.4, which is a breaking change node_modules/request grunt-css-url-embed >=1.1.0 Depends on vulnerable versions of request node_modules/grunt-css-url-embed tough-cookie <4.1.3 Severity: moderate tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3 fix available via `npm audit fix --force` Will install grunt-css-url-embed@1.0.4, which is a breaking change node_modules/tough-cookie 3 moderate severity vulnerabilities To address all issues (including breaking changes), run: npm audit fix --force --- end --- Verifying that tests still pass $ /usr/bin/npm ci --- stderr --- npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: '@es-joy/jsdoccomment@0.20.1', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: 'eslint-plugin-jsdoc@37.9.7', npm WARN EBADENGINE required: { node: '^12 || ^14 || ^16 || ^17' }, npm WARN EBADENGINE current: { node: 'v18.19.0', npm: '9.2.0' } npm WARN EBADENGINE } npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated kad-fs@0.0.4: This package is no longer maintained. npm WARN deprecated kad-memstore@0.0.1: This package is no longer maintained. --- stdout --- > visualeditor@0.0.0 postinstall > cd rebaser && npm ci added 196 packages, and audited 197 packages in 5s 13 packages are looking for funding run `npm fund` for details 20 vulnerabilities (9 moderate, 10 high, 1 critical) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. > visualeditor@0.0.0 prepare > grunt build Running "clean:dist" (clean) task >> 0 paths cleaned. Running "concat:rebaser.build" (concat) task Running "concat:visualEditor.rebase.scripts" (concat) task Running "concat:visualEditor.rebase.styles" (concat) task Running "concat:js" (concat) task Running "concat:css-apex" (concat) task Running "concat:css-wikimediaui" (concat) task Running "concat:jquery.i18n" (concat) task Running "concat:jquery.uls.data" (concat) task Running "cssjanus:apex" (cssjanus) task File "dist/visualEditor-apex.rtl.css" created. Running "cssjanus:wikimediaui" (cssjanus) task File "dist/visualEditor-wikimediaui.rtl.css" created. Running "cssUrlEmbed:dist" (cssUrlEmbed) task Processing source file "dist/visualEditor-apex.css" 2 embeddable URLs found Processing source file "dist/visualEditor-apex.rtl.css" 2 embeddable URLs found Processing source file "dist/visualEditor-wikimediaui.css" 2 embeddable URLs found Processing source file "dist/visualEditor-wikimediaui.rtl.css" 2 embeddable URLs found >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-apex.css" created >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-apex.rtl.css" created >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-wikimediaui.css" created >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-wikimediaui.rtl.css" created Running "copy:i18n" (copy) task Copied 211 files Running "copy:lib" (copy) task Created 27 directories, copied 1382 files Running "buildloader:iframe" (buildloader) task >> File ".jsduck/eg-iframe.html" written. Running "buildloader:desktopDemoApex" (buildloader) task >> File "demos/ve/desktop.html" written. Running "buildloader:desktopDemoApexDist" (buildloader) task >> File "demos/ve/desktop-dist.html" written. Running "buildloader:desktopDemoWikimediaUI" (buildloader) task >> File "demos/ve/desktop-wikimediaui.html" written. Running "buildloader:desktopDemoWikimediaUIDist" (buildloader) task >> File "demos/ve/desktop-wikimediaui-dist.html" written. Running "buildloader:mobileDemo" (buildloader) task >> File "demos/ve/mobile.html" written. Running "buildloader:mobileDemoDist" (buildloader) task >> File "demos/ve/mobile-dist.html" written. Running "buildloader:minimalDemo" (buildloader) task >> File "demos/ve/minimal.html" written. Running "buildloader:minimalDemoRtl" (buildloader) task >> File "demos/ve/minimal-rtl.html" written. Running "buildloader:performanceTest" (buildloader) task >> File "demos/ve/performance.html" written. Running "buildloader:test" (buildloader) task >> File "tests/index.html" written. Done. added 682 packages, and audited 683 packages in 24s 86 packages are looking for funding run `npm fund` for details 3 moderate severity vulnerabilities To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stdout --- > visualeditor@0.0.0 test > grunt test Running "tyops:src" (tyops) task >> No typos found; 608 files checked for 19 typos. Running "eslint:all" (eslint) task Running "stylelint:all" (stylelint) task >> Linted 70 files without errors Running "banana:all" (banana) task >> 1 message directory checked. Running "git-build" task Running "clean:dist" (clean) task >> 12 paths cleaned. Running "concat:rebaser.build" (concat) task Running "concat:visualEditor.rebase.scripts" (concat) task Running "concat:visualEditor.rebase.styles" (concat) task Running "concat:js" (concat) task Running "concat:css-apex" (concat) task Running "concat:css-wikimediaui" (concat) task Running "concat:jquery.i18n" (concat) task Running "concat:jquery.uls.data" (concat) task Running "cssjanus:apex" (cssjanus) task File "dist/visualEditor-apex.rtl.css" created. Running "cssjanus:wikimediaui" (cssjanus) task File "dist/visualEditor-wikimediaui.rtl.css" created. Running "cssUrlEmbed:dist" (cssUrlEmbed) task Processing source file "dist/visualEditor-apex.css" 2 embeddable URLs found Processing source file "dist/visualEditor-apex.rtl.css" 2 embeddable URLs found Processing source file "dist/visualEditor-wikimediaui.css" 2 embeddable URLs found Processing source file "dist/visualEditor-wikimediaui.rtl.css" 2 embeddable URLs found >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-apex.css" created >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-wikimediaui.css" created >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-apex.rtl.css" created >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-wikimediaui.rtl.css" created Running "copy:i18n" (copy) task Copied 211 files Running "copy:lib" (copy) task Created 27 directories, copied 1382 files Running "buildloader:iframe" (buildloader) task >> File ".jsduck/eg-iframe.html" written. Running "buildloader:desktopDemoApex" (buildloader) task >> File "demos/ve/desktop.html" written. Running "buildloader:desktopDemoApexDist" (buildloader) task >> File "demos/ve/desktop-dist.html" written. Running "buildloader:desktopDemoWikimediaUI" (buildloader) task >> File "demos/ve/desktop-wikimediaui.html" written. Running "buildloader:desktopDemoWikimediaUIDist" (buildloader) task >> File "demos/ve/desktop-wikimediaui-dist.html" written. Running "buildloader:mobileDemo" (buildloader) task >> File "demos/ve/mobile.html" written. Running "buildloader:mobileDemoDist" (buildloader) task >> File "demos/ve/mobile-dist.html" written. Running "buildloader:minimalDemo" (buildloader) task >> File "demos/ve/minimal.html" written. Running "buildloader:minimalDemoRtl" (buildloader) task >> File "demos/ve/minimal-rtl.html" written. Running "buildloader:performanceTest" (buildloader) task >> File "demos/ve/performance.html" written. Running "buildloader:test" (buildloader) task >> File "tests/index.html" written. Running "karma:chrome" (karma) task START: [33m22 09 2024 00:05:18.665:WARN [filelist]: [39mAll files matched by "/src/repo/node_modules/qunit/qunit/qunit.js" were excluded or matched by prior matchers. [32m22 09 2024 00:05:28.364:INFO [karma-server]: [39mKarma v6.4.2 server started at http://localhost:9876/ [32m22 09 2024 00:05:28.365:INFO [launcher]: [39mLaunching browsers ChromeCustom with concurrency unlimited [32m22 09 2024 00:05:28.369:INFO [launcher]: [39mStarting browser ChromeHeadless [32m22 09 2024 00:05:31.501:INFO [Chrome Headless 126.0.6478.182 (Linux x86_64)]: [39mConnected on socket -AgyqDxsJkeOY918AAAB with id 88023225 ve ✔ compareClassLists ✔ isInstanceOfAny ✔ getDomAttributes ✔ setDomAttributes ✔ sparseSplice ✔ batchSplice ✔ batchPush ✔ insertIntoArray ✔ escapeHtml ✔ addHeadTag ✔ createDocumentFromHtml ✔ resolveUrl ✔ resolveAttributes ✔ fixBase ✔ isUriComponentValid ✔ safeDecodeURIComponent ✔ isBlockElement/isVoidElement ✔ graphemeSafeSubstring ✔ transformStyleAttributes ✔ normalizeNode ✔ getCommonAncestor ✔ getCommonStartSequenceLength ✔ adjacentDomPosition ✔ deepFreeze ✔ deepFreeze (on cyclic structure) ✔ deepFreeze (recursive, aliased) ve.DiffMatchPatch ✔ indexOf/lastIndexOf ve.EventSequencer ✔ EventSequencer ve.Scheduler ✔ Call with no real async ✔ Call with delay ✔ Test that throws an exception ✔ Test that never succeeds ve.Range ✔ Basic usage (isCollapsed, isBackwards, getLength, equals, equalsSelection, containsOffset, containsRange, touchesRange) ✔ Modification (flip, truncate, expand, translate) ✔ Factory methods & serialization (newCoveringRange, newFromJSON, toJSON) ve.Document ✔ getDocumentNode ve.Node ✔ getType ✔ getParent ✔ getRoot ve.BranchNode ✔ getChildren ✔ indexOf ✔ setDocument ve.dm.Annotation ✔ getHashObject ve.dm.AnnotationSet ✔ Basic usage ✔ Comparable ve.dm.LinkAnnotation ✔ getFragment ve.dm.NodeFactory ✔ getChildNodeTypes ✔ getParentNodeTypes ✔ canNodeHaveChildren ✔ canNodeTakeAnnotation ✔ canNodeHaveChildrenNotContent ✔ initialization ve.dm.Node ✔ canHaveChildren ✔ canHaveChildrenNotContent ✔ getLength ✔ getOuterLength ✔ setLength ✔ adjustLength ✔ getAttribute ✔ setRoot ✔ attach ✔ detach ✔ canBeMergedWith ✔ getClonedElement ve.dm.Converter ✔ getModelFromDom ✔ getModelFromDom with store argument ✔ getDomFromModel ✔ getFullData ✔ roundTripMetadata ve.dm.SourceConverter ✔ conversion ve.dm.BranchNode ✔ canHaveChildren ✔ canHaveChildrenNotContent ✔ setRoot ✔ setDocument ✔ push ✔ pop ✔ unshift ✔ shift ✔ splice ve.dm.LeafNode ✔ canHaveChildren ✔ canHaveChildrenNotContent ✔ getAnnotations ve.dm.TextNode ✔ getOuterLength ve.dm.Document ✔ constructor ✔ newBlankDocument ✔ getData ✔ getFullData ✔ cloneFromRange ✔ getRelativeOffset ✔ getRelativeRange ✔ getBranchNodeFromOffset ✔ hasSlugAtOffset ✔ getDataFromNode ✔ getOuterLength ✔ selectNodes ✔ rangeInsideOneLeafNode ✔ shallowCloneFromRange ✔ protection against double application of transactions ✔ getNearestCursorOffset ✔ Selection equality ✔ findText (plain text) ✔ findText (non-text content) ✔ fixupInsertion ✔ read-only and offset caching ve.dm.HashValueStore ✔ hash(es) ✔ value(s) ✔ slice ve.dm.InternalList ✔ getDocument ✔ queueItemHtml/getItemHtmlQueue ✔ convertToData ✔ clone ve.dm.LinearData ✔ basic usage ✔ slice(Object)/splice(Object)/batchSplice ve.dm.Transaction ✔ translateOffset ✔ translateRange ✔ getModifiedRange ✔ Metadata transactions ve.dm.TransactionBuilder ✔ newFromInsertion ✔ newFromRemoval ✔ newFromReplacement ✔ newFromDocumentInsertion ✔ newFromAttributeChanges ✔ newFromAnnotation ✔ newFromContentBranchConversion ✔ newFromWrap ✔ pushRetain ✔ pushReplacement ✔ pushReplaceElementAttribute ✔ isNoOp ✔ operations/build from operations ✔ newFromRemoval preserving metadata ve.dm.TransactionSquasher ✔ squash ve.dm.Change ✔ rebaseTransactions ✔ Change operations ✔ Rebase with conflicting annotations ✔ toJSON/deserialize/unsafeDeserialize ✔ Minified serialization ✔ Same-offset typing ve.dm.RebaseServer ✔ Rebase ve.dm.DocumentStore ✔ Create ve.dm.TransportServer ✔ Create ve.dm.TreeModifier ✔ treeDiff ✔ modify ✔ bare content ✔ applyTreeOperation: ensureNotText ✔ setupBlockSlugs ✔ checkEqualData ✔ TreeCursor#crossIgnoredNodes ✔ TreeCursor#normalizeCursor ve.dm.TransactionProcessor ✔ commit ✔ undo clear annotation ve.dm.Surface ✔ getDocument ✔ getSelection ✔ setSelection out of range ✔ contextChange events ✔ documentUpdate/select events ✔ breakpoint/undo/redo ✔ multi-user undo ✔ change rollback ✔ range translation ✔ staging ✔ getOffsetFromSourceOffset / getSourceOffsetFromOffset / getRangeFromSourceOffsets ✔ autosave ve.dm.SurfaceFragment ✔ constructor ✔ update ✔ getSelectedModels ✔ getAnnotations ✔ hasAnnotations ✔ adjustLinearSelection ✔ truncateLinearSelection ✔ collapseToStart/End ✔ expandLinearSelection (annotation) ✔ expandLinearSelection (closest) ✔ expandLinearSelection (word) ✔ removeContent ✔ delete ✔ insertContent/insertDocument ✔ changeAttributes ✔ wrapNodes/unwrapNodes ✔ rewrapNodes ✔ wrapAllNodes ✔ rewrapAllNodes ✔ isolateAndUnwrap ve.dm.SourceSurfaceFragment ✔ insertContent/insertDocument ve.dm.ModelRegistry ✔ register/unregister/matchElement ✔ isAnnotation ve.dm.MetaList ✔ constructor ✔ onTransact ve.dm.Scalable ✔ construction/clone/getters/setters/toggleDefault/clearers ✔ getBoundedDimensions/getCurrentScale/isCurrentDimensionsValid/isTooSmall/isTooLarge ✔ isDefault/toggleDefault ✔ isDimensionsObjectValid ✔ getDimensionsFromValue ve.dm.LinearSelection ✔ Construction and getters (getRange(s)) ✔ Basic methods (collapse*, isCollased, equals, isNull) ✔ Factory methods & serialization (newFromJSON, toJSON, getDescription) ve.dm.NullSelection ✔ Construction and getters (getDocument, getRanges) ✔ Basic methods (collapse*, isCollased, equals, isNull) ✔ Factory methods & serialization (newFromJSON, toJSON, getDescription) ve.dm.TableSelection ✔ Construction and getters (getDocument, getRanges, getOuterRanges, getTableNode) ✔ Basic methods (expand, collapse*, getRange(s), isCollased, isSingleCell, equals, isNull, isFullRow/Col, getRow/ColCount) ✔ Factory methods & serialization (newFromJSON, toJSON, getDescription) ve.dm.FlatLinearData ✔ getType/isOpenElementData/isCloseElementData ✔ isElementData ✔ containsElementData ve.dm.ElementLinearData ✔ getAnnotationsFromOffset ✔ getAnnotationsFromRange ✔ getInsertionAnnotationsFromRange ✔ getAnnotatedRangeFromOffset ✔ trimOuterSpaceFromRange ✔ isContentOffset ✔ isStructuralOffset ✔ getCharacterData ✔ isPlainText ✔ getText ✔ getSourceText ✔ isContentData ✔ getRelativeOffset ✔ getRelativeContentOffset ✔ getNearestContentOffset ✔ getRelativeStructuralOffset ✔ getNearestStructuralOffset ✔ getWordRange ✔ sanitize ✔ countNonInternalElements ✔ hasContent ✔ getAnnotationHashesFromOffset ✔ getUsedStoreValues ✔ compareElements and compareElementsUnannotated ve.ce ✔ getDomHash/getDomText (with ve.dm.Converter) ✔ getDomHash/getDomText (without ve.dm.Converter) ✔ getOffset ✔ isShortcutKey ✔ nextCursorOffset ✔ resolveTestOffset ✔ fakeImes ✔ isAfterAnnotationBoundary ve.ce.Document ✔ Converter tests ✔ getNodeAndOffset ✔ attachedRoot ve.ce.Surface ✔ handleObservedChanges (content changes) ✔ handleDataTransfer/handleDataTransferItems ✔ getClipboardHash ✔ onCopy [33m22 09 2024 00:05:37.301:WARN [web-server]: [39m404: /null ✔ beforePaste/afterPaste ✔ onDocumentDragStart/onDocumentDrop ✔ getSelectionState ✔ findBlockSlug ✔ selectFirstSelectableContentOffset/selectLastSelectableContentOffset ✔ getViewportRange ve.ce.RangeState ✔ Basic tests ve.ce.TextState ✔ getChangeTransaction ve.ce.NodeFactory ✔ splitNodeOnEnter/getDescription ✔ initialization ve.ce.AnnotationFactory ✔ canAnnotationBeActive/getDescription ✔ initialization ve.ce.Node ✔ getModel ✔ getParent ✔ attach ✔ detach ve.ce.BranchNode ✔ splitOnEnter ✔ canHaveChildren ✔ canHaveChildrenNotContent ✔ updateTagName ✔ getDomPosition ✔ onSplice ve.ce.ContentBranchNode ✔ getRenderedContents ve.ce.LeafNode ✔ splitOnEnter ✔ canHaveChildren ✔ canHaveChildrenNotContent ve.ce.Selection ✔ Rects ✔ getDirectionality ✔ equals ve.ce.LinearArrowKeyDownHandler ✔ special key down: linear arrow keys ve.ce.LinearDeleteKeyDownHandler ✔ special key down: linear backspace/delete ve.ce.LinearEnterKeyDownHandler ✔ special key down: linear enter ve.ce.LinearEscapeKeyDownHandler ✔ special key down: linear escape ve.ce.TableArrowKeyDownHandler ✔ special key down: table arrow keys (complex movements) ✔ special key down: table arrow keys (simple movements) ve.ce.TableDeleteKeyDownHandler ✔ special key down: table backspace/delete ve.ce.TableEnterKeyDownHandler ✔ special key down: table enter ve.ce.TableF2KeyDownHandler ✔ special key down: table f2 ve.ce.ResizableNode ✔ updateSizeLabel ✔ resize events ✔ notResizable ve.ce.TextNode ✔ getAnnotatedHtml ve.ce.TableNode ✔ getNearestCellNode ✔ getFirstSectionNode ✔ onTableMouseDown/onTableMouseMove/onTableMouseUp/onTableDblClick ✔ onTableMouseDown ve.init.Target ✔ createModelFromDom/parseDocument (source mode) ve.init.sa.Platform ✔ getUserConfig ✔ setUserConfig ✔ messages ✔ parsedMessage ve.init.ListStorage ✔ Basic methods ✔ List methods ve.ui.DataTransferHandlerFactory ✔ getHandlerNameForItem ve.ui.Trigger ✔ constructor ve.ui.Sequence ✔ findAndExecuteSequences WARN: 'This page contains the following errors:error on line 1 at column 56: Opening and ending tag mismatch: p line 1 and b Below is a rendering of the page up to the first error.', ' ', '<p>a</p><table><tr><td>A</td></tr></table><p>b</b>', ' ', '<xml><p>a</p><table><tr><td>A</td></tr></table><p>b</b></xml>' WARN: 'This page contains the following errors:error on line 1 at column 80: Opening and ending tag mismatch: p line 1 and b Below is a rendering of the page up to the first error.', ' ', '<p>a</p><table><tr><td colspan="1" rowspan="1">A</td></tr></table><p>b</b>', ' ', '<xml><p>a</p><table><tr><td colspan="1" rowspan="1">A</td></tr></table><p>b</b></xml>' ve.ui.DiffElement ✔ Diffing ✔ compareAttributes/describeChanges ve.ui.PreviewElement ✔ Basic tests ve.ui.AnnotationAction ✔ toggle ve.ui.BlockquoteAction ✔ wrap/unwrap/toggle ve.ui.ContentAction ✔ insert/remove/select/selectAll ve.ui.FormatAction ✔ convert ve.ui.IndentationAction ✔ increase/decrease ve.ui.LinkAction ✔ autolink ve.ui.ListAction ✔ (un)wrap ve.ui.TableAction ✔ create / insert / mergeCells / delete / changeCellStyle / moveRelative ve.ui.WindowAction ✔ Basic open/close ve.ui.DSVFileTransferHandler ✔ getInsertableData ve.ui.UrlStringTransferHandler ✔ paste ve.ui.FindAndReplaceDialog ✔ find fragments ✔ replace all ve.ui.FragmentInspector ✔ Different selections and inputs Finished in 12.941 secs / 12.558 secs @ 00:05:45 GMT+0000 (Coordinated Universal Time) SUMMARY: ✔ 317 tests completed =============================== Coverage summary =============================== Statements : 81.76% ( 18201/22260 ) Branches : 73.56% ( 7862/10687 ) Functions : 73.63% ( 2273/3087 ) Lines : 81.6% ( 17856/21882 ) ================================================================================ Running "karma:firefox" (karma) task [33m22 09 2024 00:05:46.928:WARN [filelist]: [39mAll files matched by "/src/repo/node_modules/qunit/qunit/qunit.js" were excluded or matched by prior matchers. [32m22 09 2024 00:05:46.995:INFO [karma-server]: [39mKarma v6.4.2 server started at http://localhost:9876/ [32m22 09 2024 00:05:46.995:INFO [launcher]: [39mLaunching browsers FirefoxHeadless with concurrency unlimited [32m22 09 2024 00:05:47.003:INFO [launcher]: [39mStarting browser FirefoxHeadless [32m22 09 2024 00:05:51.688:INFO [Firefox 115.0 (Linux x86_64)]: [39mConnected on socket qxsb3wiA6G5fc_DRAAAD with id 52455592 ................................................................................ ................................................................................ ................................................................................ ....[33m22 09 2024 00:05:56.546:WARN [web-server]: [39m404: /null ........................................................ WARN: undefined, ' ', '<p>a</p><table><tr><td>A</td></tr></table><p>b</b>', ' ', '<xml><p>a</p><table><tr><td>A</td></tr></table><p>b</b></xml>' WARN: undefined, ' ', '<p>a</p><table><tr><td colspan="1" rowspan="1">A</td></tr></table><p>b</b>', ' ', '<xml><p>a</p><table><tr><td colspan="1" rowspan="1">A</td></tr></table><p>b</b></xml>' ................. Firefox 115.0 (Linux x86_64): Executed 317 of 317 SUCCESS (14.021 secs / 13.834 secs) Done. --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- [DNM] there are no updates $ git add . --- stdout --- --- end --- $ git commit -F /tmp/tmpgp0fxf3y --- stdout --- On branch REL1_39 Your branch is up to date with 'origin/REL1_39'. nothing to commit, working tree clean --- end ---