From de8acd2ed87e2a6a517c37f838e5f90f61f63aa0 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Tue, 3 Sep 2024 11:25:23 +0100 Subject: [PATCH] Upgrade `@codemirror` dependencies (#20103) * Upgrade `@codemirror` dependencies * Set EditorView.EDIT_CONTEXT=false GitOrigin-RevId: 8024715748102a56f1b22e72be8a2019e80b5a07 --- package-lock.json | 84 +++++++++---------- services/web/cypress/support/component.ts | 1 + services/web/cypress/support/ct/codemirror.ts | 4 + .../components/codemirror-editor.tsx | 3 + services/web/package.json | 10 +-- 5 files changed, 55 insertions(+), 47 deletions(-) create mode 100644 services/web/cypress/support/ct/codemirror.ts diff --git a/package-lock.json b/package-lock.json index 0c85f1904b..ba4307835e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3375,14 +3375,14 @@ } }, "node_modules/@codemirror/commands": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.4.0.tgz", - "integrity": "sha512-HB3utD5GxCvEhSyj5EuG9KpuQQhFpxalh3lwrspyL/GeSNDe4c6JDxVzL12SJ+7gUknHjZzmq7OPCb9QPgiRmQ==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.6.0.tgz", + "integrity": "sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg==", "dev": true, "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.4.0", - "@codemirror/view": "^6.0.0", + "@codemirror/view": "^6.27.0", "@lezer/common": "^1.1.0" } }, @@ -3429,9 +3429,9 @@ } }, "node_modules/@codemirror/lang-markdown": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.2.4.tgz", - "integrity": "sha512-UghkA1vSMs8bT7RSZM6vsIocigyah2bV00eRQuZy76401UmFZdsTsbQNBGdyxRQDOLeEvF5iFwap0BM8LKyd+g==", + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.2.5.tgz", + "integrity": "sha512-Hgke565YcO4fd9pe2uLYxnMufHO5rQwRr+AAhFq8ABuhkrjyX8R5p5s+hZUTdV60O0dMRjxKhBLxz8pu/MkUVA==", "dev": true, "dependencies": { "@codemirror/autocomplete": "^6.7.1", @@ -3444,9 +3444,9 @@ } }, "node_modules/@codemirror/language": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.0.tgz", - "integrity": "sha512-2vaNn9aPGCRFKWcHPFksctzJ8yS5p7YoaT+jHpc0UGKzNuAIx4qy6R5wiqbP+heEEdyaABA582mNqSHzSoYdmg==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.2.tgz", + "integrity": "sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==", "dev": true, "dependencies": { "@codemirror/state": "^6.0.0", @@ -3458,9 +3458,9 @@ } }, "node_modules/@codemirror/lint": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.5.0.tgz", - "integrity": "sha512-+5YyicIaaAZKU8K43IQi8TBy6mF6giGeWAH7N96Z5LC30Wm5JMjqxOYIE9mxwMG1NbhT2mA3l9hA4uuKUM3E5g==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.1.tgz", + "integrity": "sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==", "dev": true, "dependencies": { "@codemirror/state": "^6.0.0", @@ -3487,9 +3487,9 @@ "dev": true }, "node_modules/@codemirror/view": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.26.3.tgz", - "integrity": "sha512-gmqxkPALZjkgSxIeeweY/wGQXBfwTUaLs8h7OKtSwfbj9Ct3L11lD+u1sS7XHppxFQoMDiMDp07P9f3I2jWOHw==", + "version": "6.32.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.32.0.tgz", + "integrity": "sha512-AgVNvED2QTsZp5e3syoHLsrWtwJFYWdx1Vr/m3f4h1ATQz0ax60CfXF3Htdmk69k2MlYZw8gXesnQdHtzyVmAw==", "dev": true, "dependencies": { "@codemirror/state": "^6.4.0", @@ -44690,13 +44690,13 @@ "@babel/preset-typescript": "^7.24.7", "@babel/register": "^7.24.6", "@codemirror/autocomplete": "github:overleaf/codemirror-autocomplete#v6.18.0-overleaf-1", - "@codemirror/commands": "^6.4.0", - "@codemirror/lang-markdown": "^6.2.4", - "@codemirror/language": "^6.10.0", - "@codemirror/lint": "^6.5.0", + "@codemirror/commands": "^6.6.0", + "@codemirror/lang-markdown": "^6.2.5", + "@codemirror/language": "^6.10.2", + "@codemirror/lint": "^6.8.1", "@codemirror/search": "github:overleaf/codemirror-search#29f7a871969ad64b89341bacbe5d46dda02eee12", "@codemirror/state": "^6.4.1", - "@codemirror/view": "^6.26.3", + "@codemirror/view": "^6.32.0", "@juggle/resize-observer": "^3.3.1", "@lezer/common": "^1.2.1", "@lezer/generator": "^1.7.0", @@ -48468,14 +48468,14 @@ } }, "@codemirror/commands": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.4.0.tgz", - "integrity": "sha512-HB3utD5GxCvEhSyj5EuG9KpuQQhFpxalh3lwrspyL/GeSNDe4c6JDxVzL12SJ+7gUknHjZzmq7OPCb9QPgiRmQ==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.6.0.tgz", + "integrity": "sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg==", "dev": true, "requires": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.4.0", - "@codemirror/view": "^6.0.0", + "@codemirror/view": "^6.27.0", "@lezer/common": "^1.1.0" } }, @@ -48522,9 +48522,9 @@ } }, "@codemirror/lang-markdown": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.2.4.tgz", - "integrity": "sha512-UghkA1vSMs8bT7RSZM6vsIocigyah2bV00eRQuZy76401UmFZdsTsbQNBGdyxRQDOLeEvF5iFwap0BM8LKyd+g==", + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.2.5.tgz", + "integrity": "sha512-Hgke565YcO4fd9pe2uLYxnMufHO5rQwRr+AAhFq8ABuhkrjyX8R5p5s+hZUTdV60O0dMRjxKhBLxz8pu/MkUVA==", "dev": true, "requires": { "@codemirror/autocomplete": "^6.7.1", @@ -48537,9 +48537,9 @@ } }, "@codemirror/language": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.0.tgz", - "integrity": "sha512-2vaNn9aPGCRFKWcHPFksctzJ8yS5p7YoaT+jHpc0UGKzNuAIx4qy6R5wiqbP+heEEdyaABA582mNqSHzSoYdmg==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.2.tgz", + "integrity": "sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==", "dev": true, "requires": { "@codemirror/state": "^6.0.0", @@ -48551,9 +48551,9 @@ } }, "@codemirror/lint": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.5.0.tgz", - "integrity": "sha512-+5YyicIaaAZKU8K43IQi8TBy6mF6giGeWAH7N96Z5LC30Wm5JMjqxOYIE9mxwMG1NbhT2mA3l9hA4uuKUM3E5g==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.1.tgz", + "integrity": "sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==", "dev": true, "requires": { "@codemirror/state": "^6.0.0", @@ -48579,9 +48579,9 @@ "dev": true }, "@codemirror/view": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.26.3.tgz", - "integrity": "sha512-gmqxkPALZjkgSxIeeweY/wGQXBfwTUaLs8h7OKtSwfbj9Ct3L11lD+u1sS7XHppxFQoMDiMDp07P9f3I2jWOHw==", + "version": "6.32.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.32.0.tgz", + "integrity": "sha512-AgVNvED2QTsZp5e3syoHLsrWtwJFYWdx1Vr/m3f4h1ATQz0ax60CfXF3Htdmk69k2MlYZw8gXesnQdHtzyVmAw==", "dev": true, "requires": { "@codemirror/state": "^6.4.0", @@ -53223,13 +53223,13 @@ "@babel/preset-typescript": "^7.24.7", "@babel/register": "^7.24.6", "@codemirror/autocomplete": "github:overleaf/codemirror-autocomplete#v6.18.0-overleaf-1", - "@codemirror/commands": "^6.4.0", - "@codemirror/lang-markdown": "^6.2.4", - "@codemirror/language": "^6.10.0", - "@codemirror/lint": "^6.5.0", + "@codemirror/commands": "^6.6.0", + "@codemirror/lang-markdown": "^6.2.5", + "@codemirror/language": "^6.10.2", + "@codemirror/lint": "^6.8.1", "@codemirror/search": "github:overleaf/codemirror-search#29f7a871969ad64b89341bacbe5d46dda02eee12", "@codemirror/state": "^6.4.1", - "@codemirror/view": "^6.26.3", + "@codemirror/view": "^6.32.0", "@contentful/rich-text-html-renderer": "^16.0.2", "@contentful/rich-text-types": "^16.0.2", "@google-cloud/bigquery": "^6.0.1", diff --git a/services/web/cypress/support/component.ts b/services/web/cypress/support/component.ts index 93ae407185..8fd40b0d99 100644 --- a/services/web/cypress/support/component.ts +++ b/services/web/cypress/support/component.ts @@ -4,6 +4,7 @@ import '../../frontend/js/i18n' import './shared/commands' import './shared/exceptions' import './ct/commands' +import './ct/codemirror' beforeEach(function () { resetMeta() diff --git a/services/web/cypress/support/ct/codemirror.ts b/services/web/cypress/support/ct/codemirror.ts new file mode 100644 index 0000000000..ab7a692e2f --- /dev/null +++ b/services/web/cypress/support/ct/codemirror.ts @@ -0,0 +1,4 @@ +import { EditorView } from '@codemirror/view' + +// @ts-ignore (disable EditContext-based editing until stable) +EditorView.EDIT_CONTEXT = false diff --git a/services/web/frontend/js/features/source-editor/components/codemirror-editor.tsx b/services/web/frontend/js/features/source-editor/components/codemirror-editor.tsx index a8c76269a7..3503222aaf 100644 --- a/services/web/frontend/js/features/source-editor/components/codemirror-editor.tsx +++ b/services/web/frontend/js/features/source-editor/components/codemirror-editor.tsx @@ -42,6 +42,9 @@ function CodeMirrorEditor() { if (viewRef.current === null) { const timer = dispatchTimer() + // @ts-ignore (disable EditContext-based editing until stable) + EditorView.EDIT_CONTEXT = false + const view = new EditorView({ state, dispatchTransactions: trs => { diff --git a/services/web/package.json b/services/web/package.json index 181b28a13a..f041c88085 100644 --- a/services/web/package.json +++ b/services/web/package.json @@ -185,13 +185,13 @@ "@babel/preset-typescript": "^7.24.7", "@babel/register": "^7.24.6", "@codemirror/autocomplete": "github:overleaf/codemirror-autocomplete#v6.18.0-overleaf-1", - "@codemirror/commands": "^6.4.0", - "@codemirror/lang-markdown": "^6.2.4", - "@codemirror/language": "^6.10.0", - "@codemirror/lint": "^6.5.0", + "@codemirror/commands": "^6.6.0", + "@codemirror/lang-markdown": "^6.2.5", + "@codemirror/language": "^6.10.2", + "@codemirror/lint": "^6.8.1", "@codemirror/search": "github:overleaf/codemirror-search#29f7a871969ad64b89341bacbe5d46dda02eee12", "@codemirror/state": "^6.4.1", - "@codemirror/view": "^6.26.3", + "@codemirror/view": "^6.32.0", "@juggle/resize-observer": "^3.3.1", "@lezer/common": "^1.2.1", "@lezer/generator": "^1.7.0",