diff --git a/web/ui/module/codemirror-promql/package.json b/web/ui/module/codemirror-promql/package.json index 222eee4bb..bf0899ee7 100644 --- a/web/ui/module/codemirror-promql/package.json +++ b/web/ui/module/codemirror-promql/package.json @@ -34,13 +34,15 @@ "lru-cache": "^6.0.0" }, "devDependencies": { - "@codemirror/autocomplete": "^0.18.3", - "@codemirror/basic-setup": "^0.18.0", - "@codemirror/highlight": "^0.18.3", - "@codemirror/language": "^0.18.0", - "@codemirror/lint": "^0.18.1", - "@codemirror/state": "^0.18.2", - "@codemirror/view": "^0.18.1", + "@codemirror/autocomplete": "^0.19.3", + "@codemirror/basic-setup": "^0.19.0", + "@codemirror/highlight": "^0.19.5", + "@codemirror/language": "^0.19.3", + "@codemirror/lint": "^0.19.1", + "@codemirror/state": "^0.19.2", + "@codemirror/view": "^0.19.7", + "@lezer/common": "^0.15.5", + "@lezer/generator": "^0.15.1", "@types/chai": "^4.2.12", "@types/lru-cache": "^5.1.0", "@types/mocha": "^8.0.3", @@ -55,8 +57,6 @@ "eslint-plugin-import": "^2.24.2", "eslint-plugin-prettier": "^4.0.0", "isomorphic-fetch": "^3.0.0", - "lezer": "^0.13.1", - "lezer-generator": "^0.13.1", "mocha": "^8.1.2", "nock": "^13.0.11", "nyc": "^15.1.0", @@ -67,13 +67,13 @@ "typescript": "^4.2.3" }, "peerDependencies": { - "@codemirror/autocomplete": "^0.18.3", - "@codemirror/highlight": "^0.18.3", - "@codemirror/language": "^0.18.0", - "@codemirror/lint": "^0.18.1", - "@codemirror/state": "^0.18.2", - "@codemirror/view": "^0.18.1", - "lezer": "^0.13.0" + "@codemirror/autocomplete": "^0.19.3", + "@codemirror/highlight": "^0.19.5", + "@codemirror/language": "^0.19.3", + "@codemirror/lint": "^0.19.1", + "@codemirror/state": "^0.19.2", + "@codemirror/view": "^0.19.7", + "@lezer/common": "^0.15.5" }, "prettier": { "singleQuote": true, diff --git a/web/ui/module/codemirror-promql/src/complete/hybrid.test.ts b/web/ui/module/codemirror-promql/src/complete/hybrid.test.ts index c3a57ad56..a1476fa1f 100644 --- a/web/ui/module/codemirror-promql/src/complete/hybrid.test.ts +++ b/web/ui/module/codemirror-promql/src/complete/hybrid.test.ts @@ -452,6 +452,12 @@ describe('analyzeCompletion test', () => { pos: 16, expectedContext: [{ kind: ContextKind.BinOp }, { kind: ContextKind.Offset }], }, + { + title: 'autocomplete offset or binop 5', + expr: 'sum(http_requests_total{method="GET"} off)', + pos: 41, + expectedContext: [{ kind: ContextKind.BinOp }, { kind: ContextKind.Offset }], + }, { title: 'not autocompleting duration for a matrixSelector', expr: 'go[]', @@ -1051,6 +1057,17 @@ describe('autocomplete promQL test', () => { span: /^[a-zA-Z0-9_:]+$/, }, }, + { + title: 'autocomplete offset or binop 5', + expr: 'sum(http_requests_total{method="GET"} off)', + pos: 41, + expectedResult: { + options: ([] as Completion[]).concat(binOpTerms, [{ label: 'offset' }]), + from: 38, + to: 41, + span: /^[a-zA-Z0-9_:]+$/, + }, + }, { title: 'offline not autocompleting duration for a matrixSelector', expr: 'go[]', diff --git a/web/ui/module/codemirror-promql/src/complete/hybrid.ts b/web/ui/module/codemirror-promql/src/complete/hybrid.ts index 4e7eb7b60..8e1c3d4c9 100644 --- a/web/ui/module/codemirror-promql/src/complete/hybrid.ts +++ b/web/ui/module/codemirror-promql/src/complete/hybrid.ts @@ -12,7 +12,7 @@ // limitations under the License. import { CompleteStrategy } from './index'; -import { SyntaxNode } from 'lezer-tree'; +import { SyntaxNode } from '@lezer/common'; import { PrometheusClient } from '../client'; import { Add, @@ -230,22 +230,22 @@ export function analyzeCompletion(state: EditorState, node: SyntaxNode): Context case Identifier: // sometimes an Identifier has an error has parent. This should be treated in priority if (node.parent?.type.id === 0) { - const parent = node.parent; - if (parent.parent?.type.id === StepInvariantExpr) { + const errorNodeParent = node.parent.parent; + if (errorNodeParent?.type.id === StepInvariantExpr) { // we are likely in the given situation: // `expr @ s` // we can autocomplete start / end result.push({ kind: ContextKind.AtModifiers }); break; } - if (parent.parent?.type.id === AggregateExpr) { + if (errorNodeParent?.type.id === AggregateExpr) { // it matches 'sum() b'. So here we can autocomplete: // - the aggregate operation modifier // - the binary operation (since it's not mandatory to have an aggregate operation modifier) result.push({ kind: ContextKind.AggregateOpModifier }, { kind: ContextKind.BinOp }); break; } - if (parent.parent?.type.id === VectorSelector) { + if (errorNodeParent?.type.id === VectorSelector) { // it matches 'sum b'. So here we also have to autocomplete the aggregate operation modifier only // if the associated metricIdentifier is matching an aggregation operation. // Note: here is the corresponding tree in order to understand the situation: @@ -267,16 +267,29 @@ export function analyzeCompletion(state: EditorState, node: SyntaxNode): Context result.push({ kind: ContextKind.BinOp }, { kind: ContextKind.Offset }); break; } + + if (errorNodeParent && containsChild(errorNodeParent, Expr)) { + // this last case can appear with the following expression: + // 1. http_requests_total{method="GET"} off + // 2. rate(foo[5m]) un + // 3. sum(http_requests_total{method="GET"} off) + // For these different cases we have this kind of tree: + // Parent ( + // Expr(), + // ⚠(Identifier) + // ) + // We don't really care about the parent, here we are more interested if in the siblings of the error node, there is the node 'Expr' + // If it is the case, then likely we should autocomplete the BinOp or the offset. + result.push({ kind: ContextKind.BinOp }, { kind: ContextKind.Offset }); + break; + } } - // As the leaf Identifier is coming for a lot of different case, we have to take a bit time to analyze the tree + // As the leaf Identifier is coming for different cases, we have to take a bit time to analyze the tree // in order to know what we have to autocomplete exactly. // Here is some cases: // 1. metric_name / ignor --> we should autocomplete the BinOpModifier + metric/function/aggregation - // 2. http_requests_total{method="GET"} off --> offset or binOp should be autocompleted here - // 3. rate(foo[5m]) un --> offset or binOp should be autocompleted - // 4. sum(http_requests_total{method="GET"} off) --> offset or binOp should be autocompleted - // 5. sum(http_requests_total{method="GET"} / o) --> BinOpModifier + metric/function/aggregation - // All examples above give a different tree each time but ends up to be treated in this case. + // 2. sum(http_requests_total{method="GET"} / o) --> BinOpModifier + metric/function/aggregation + // Examples above give a different tree each time and ends up to be treated in this case. // But they all have the following common tree pattern: // Parent( Expr(...), // ... , @@ -314,8 +327,6 @@ export function analyzeCompletion(state: EditorState, node: SyntaxNode): Context if (containsAtLeastOneChild(parent, Eql, Gte, Gtr, Lte, Lss, Neq) && !walkThrough(parent, BinModifiers, Bool)) { result.push({ kind: ContextKind.Bool }); } - } else if (parent.type.id !== BinaryExpr || (parent.type.id === BinaryExpr && containsAtLeastOneChild(parent, 0))) { - result.push({ kind: ContextKind.BinOp }, { kind: ContextKind.Offset }); } } else { result.push( diff --git a/web/ui/module/codemirror-promql/src/grammar/test/test-promql.test.ts b/web/ui/module/codemirror-promql/src/grammar/test/test-promql.test.ts index 15c2049e2..0583a7125 100644 --- a/web/ui/module/codemirror-promql/src/grammar/test/test-promql.test.ts +++ b/web/ui/module/codemirror-promql/src/grammar/test/test-promql.test.ts @@ -1,5 +1,5 @@ import { parser } from '../parser'; -import { fileTests } from 'lezer-generator/dist/test'; +import { fileTests } from '@lezer/generator/dist/test'; import * as fs from 'fs'; import * as path from 'path'; diff --git a/web/ui/module/codemirror-promql/src/parser/matcher.ts b/web/ui/module/codemirror-promql/src/parser/matcher.ts index 22421559a..95b1abb98 100644 --- a/web/ui/module/codemirror-promql/src/parser/matcher.ts +++ b/web/ui/module/codemirror-promql/src/parser/matcher.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { SyntaxNode } from 'lezer-tree'; +import { SyntaxNode } from '@lezer/common'; import { EqlRegex, EqlSingle, LabelName, MatchOp, Neq, NeqRegex, StringLiteral } from '../grammar/parser.terms'; import { EditorState } from '@codemirror/state'; import { Matcher } from '../types'; diff --git a/web/ui/module/codemirror-promql/src/parser/parser.ts b/web/ui/module/codemirror-promql/src/parser/parser.ts index d90dd27cd..75067b340 100644 --- a/web/ui/module/codemirror-promql/src/parser/parser.ts +++ b/web/ui/module/codemirror-promql/src/parser/parser.ts @@ -12,7 +12,7 @@ // limitations under the License. import { Diagnostic } from '@codemirror/lint'; -import { SyntaxNode, Tree } from 'lezer-tree'; +import { SyntaxNode, Tree } from '@lezer/common'; import { AggregateExpr, And, diff --git a/web/ui/module/codemirror-promql/src/parser/path-finder.test.ts b/web/ui/module/codemirror-promql/src/parser/path-finder.test.ts index 8b113bbe4..73e4d7af2 100644 --- a/web/ui/module/codemirror-promql/src/parser/path-finder.test.ts +++ b/web/ui/module/codemirror-promql/src/parser/path-finder.test.ts @@ -35,7 +35,7 @@ import { } from '../grammar/parser.terms'; import { createEditorState } from '../test/utils.test'; import { containsAtLeastOneChild, containsChild, retrieveAllRecursiveNodes, walkBackward, walkThrough } from './path-finder'; -import { SyntaxNode } from 'lezer-tree'; +import { SyntaxNode } from '@lezer/common'; import { syntaxTree } from '@codemirror/language'; describe('walkThrough test', () => { @@ -147,14 +147,6 @@ describe('containsChild test', () => { walkThrough: [Expr, BinaryExpr], child: [Expr, Expr], }, - { - title: 'Should find all expr in a subtree 2', - expr: 'http_requests_total{method="GET"} off', - pos: 0, - expectedResult: true, - walkThrough: [Expr, BinaryExpr], - child: [Expr, Expr], - }, { title: 'Should not find all child required', expr: 'sum(ra)', diff --git a/web/ui/module/codemirror-promql/src/parser/path-finder.ts b/web/ui/module/codemirror-promql/src/parser/path-finder.ts index fbef6ad25..47efbe693 100644 --- a/web/ui/module/codemirror-promql/src/parser/path-finder.ts +++ b/web/ui/module/codemirror-promql/src/parser/path-finder.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { SyntaxNode } from 'lezer-tree'; +import { SyntaxNode } from '@lezer/common'; // walkBackward will iterate other the tree from the leaf to the root until it founds the given `exit` node. // It returns null if the exit is not found. diff --git a/web/ui/module/codemirror-promql/src/parser/type.ts b/web/ui/module/codemirror-promql/src/parser/type.ts index 786bb18a3..b729f8296 100644 --- a/web/ui/module/codemirror-promql/src/parser/type.ts +++ b/web/ui/module/codemirror-promql/src/parser/type.ts @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { SyntaxNode } from 'lezer-tree'; +import { SyntaxNode } from '@lezer/common'; import { AggregateExpr, BinaryExpr, diff --git a/web/ui/module/codemirror-promql/src/parser/vector.ts b/web/ui/module/codemirror-promql/src/parser/vector.ts index c219c3d10..269169217 100644 --- a/web/ui/module/codemirror-promql/src/parser/vector.ts +++ b/web/ui/module/codemirror-promql/src/parser/vector.ts @@ -12,7 +12,7 @@ // limitations under the License. import { EditorState } from '@codemirror/state'; -import { SyntaxNode } from 'lezer-tree'; +import { SyntaxNode } from '@lezer/common'; import { And, BinaryExpr, diff --git a/web/ui/module/codemirror-promql/src/promql.ts b/web/ui/module/codemirror-promql/src/promql.ts index 8d282572f..04d5a9ad0 100644 --- a/web/ui/module/codemirror-promql/src/promql.ts +++ b/web/ui/module/codemirror-promql/src/promql.ts @@ -17,15 +17,15 @@ import { Extension } from '@codemirror/state'; import { CompleteConfiguration, CompleteStrategy, newCompleteStrategy } from './complete'; import { LintStrategy, newLintStrategy, promQLLinter } from './lint'; import { CompletionContext } from '@codemirror/autocomplete'; -import { LezerLanguage } from '@codemirror/language'; +import { LRLanguage } from '@codemirror/language'; export enum LanguageType { PromQL = 'PromQL', MetricName = 'MetricName', } -export function promQLLanguage(top: LanguageType): LezerLanguage { - return LezerLanguage.define({ +export function promQLLanguage(top: LanguageType): LRLanguage { + return LRLanguage.define({ parser: parser.configure({ top: top, props: [ diff --git a/web/ui/module/codemirror-promql/src/test/utils.test.ts b/web/ui/module/codemirror-promql/src/test/utils.test.ts index c1e538342..32e635c31 100644 --- a/web/ui/module/codemirror-promql/src/test/utils.test.ts +++ b/web/ui/module/codemirror-promql/src/test/utils.test.ts @@ -13,13 +13,13 @@ import { parser } from '../grammar/parser'; import { EditorState } from '@codemirror/state'; -import { LezerLanguage } from '@codemirror/language'; +import { LRLanguage } from '@codemirror/language'; import nock from 'nock'; // used to inject an implementation of fetch in NodeJS require('isomorphic-fetch'); -const lightPromQLSyntax = LezerLanguage.define({ parser: parser }); +const lightPromQLSyntax = LRLanguage.define({ parser: parser }); export function createEditorState(expr: string): EditorState { return EditorState.create({ diff --git a/web/ui/package-lock.json b/web/ui/package-lock.json index d5371e82f..a64d4a457 100644 --- a/web/ui/package-lock.json +++ b/web/ui/package-lock.json @@ -20,13 +20,15 @@ "lru-cache": "^6.0.0" }, "devDependencies": { - "@codemirror/autocomplete": "^0.18.3", - "@codemirror/basic-setup": "^0.18.0", - "@codemirror/highlight": "^0.18.3", - "@codemirror/language": "^0.18.0", - "@codemirror/lint": "^0.18.1", - "@codemirror/state": "^0.18.2", - "@codemirror/view": "^0.18.1", + "@codemirror/autocomplete": "^0.19.3", + "@codemirror/basic-setup": "^0.19.0", + "@codemirror/highlight": "^0.19.5", + "@codemirror/language": "^0.19.3", + "@codemirror/lint": "^0.19.1", + "@codemirror/state": "^0.19.2", + "@codemirror/view": "^0.19.7", + "@lezer/common": "^0.15.5", + "@lezer/generator": "^0.15.1", "@types/chai": "^4.2.12", "@types/lru-cache": "^5.1.0", "@types/mocha": "^8.0.3", @@ -41,8 +43,6 @@ "eslint-plugin-import": "^2.24.2", "eslint-plugin-prettier": "^4.0.0", "isomorphic-fetch": "^3.0.0", - "lezer": "^0.13.1", - "lezer-generator": "^0.13.1", "mocha": "^8.1.2", "nock": "^13.0.11", "nyc": "^15.1.0", @@ -56,13 +56,13 @@ "node": ">=12.0.0" }, "peerDependencies": { - "@codemirror/autocomplete": "^0.18.3", - "@codemirror/highlight": "^0.18.3", - "@codemirror/language": "^0.18.0", - "@codemirror/lint": "^0.18.1", - "@codemirror/state": "^0.18.2", - "@codemirror/view": "^0.18.1", - "lezer": "^0.13.0" + "@codemirror/autocomplete": "^0.19.3", + "@codemirror/highlight": "^0.19.5", + "@codemirror/language": "^0.19.3", + "@codemirror/lint": "^0.19.1", + "@codemirror/state": "^0.19.2", + "@codemirror/view": "^0.19.7", + "@lezer/common": "^0.15.5" } }, "node_modules/@babel/code-frame": { @@ -517,228 +517,228 @@ } }, "node_modules/@codemirror/autocomplete": { - "version": "0.18.8", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-0.18.8.tgz", - "integrity": "sha512-Va1Q763Vu/rVmIazru/ZnO2kkWVq6SlmMEjeD0qmxLAypyP6j/QNdpmaPDI1qb/+Mb9VFZBbac6a0aLTTi8qxQ==", + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-0.19.3.tgz", + "integrity": "sha512-5juP6hVrHAogzQ0JUTQuibE8j1seqeGNJ98qLUPuliI6kLBg5INS4qvUI1Brqye+wYPFu7UHqrrn13RLh5YSzw==", "dependencies": { - "@codemirror/language": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.0", - "@codemirror/tooltip": "^0.18.4", - "@codemirror/view": "^0.18.0", - "lezer-tree": "^0.13.0" + "@codemirror/language": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/text": "^0.19.2", + "@codemirror/tooltip": "^0.19.0", + "@codemirror/view": "^0.19.0", + "@lezer/common": "^0.15.0" } }, "node_modules/@codemirror/basic-setup": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/@codemirror/basic-setup/-/basic-setup-0.18.2.tgz", - "integrity": "sha512-4UNFQ4jhU7wKxJH23AJcZW6Ho54VXUpmbtFnN5amIdtGci4ZLvci4M7JKgKFraHmKfDIYQnSzN8d8ohXR7CRhw==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/basic-setup/-/basic-setup-0.19.0.tgz", + "integrity": "sha512-Yhrf7fIz8+INHWOhpWeRwbs8fpc0KsydX9baD7TyYqniLVWyTi0Hwm52mr0f5O+k4YaJPeHAgT3x9gzDXZIvOw==", "dev": true, "dependencies": { - "@codemirror/autocomplete": "^0.18.0", - "@codemirror/closebrackets": "^0.18.0", - "@codemirror/commands": "^0.18.0", - "@codemirror/comment": "^0.18.0", - "@codemirror/fold": "^0.18.0", - "@codemirror/gutter": "^0.18.3", - "@codemirror/highlight": "^0.18.0", - "@codemirror/history": "^0.18.0", - "@codemirror/language": "^0.18.0", - "@codemirror/lint": "^0.18.0", - "@codemirror/matchbrackets": "^0.18.0", - "@codemirror/rectangular-selection": "^0.18.0", - "@codemirror/search": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/autocomplete": "^0.19.0", + "@codemirror/closebrackets": "^0.19.0", + "@codemirror/commands": "^0.19.0", + "@codemirror/comment": "^0.19.0", + "@codemirror/fold": "^0.19.0", + "@codemirror/gutter": "^0.19.0", + "@codemirror/highlight": "^0.19.0", + "@codemirror/history": "^0.19.0", + "@codemirror/language": "^0.19.0", + "@codemirror/lint": "^0.19.0", + "@codemirror/matchbrackets": "^0.19.0", + "@codemirror/rectangular-selection": "^0.19.0", + "@codemirror/search": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "node_modules/@codemirror/closebrackets": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@codemirror/closebrackets/-/closebrackets-0.18.0.tgz", - "integrity": "sha512-O1RAgUkzF4nq/B8IyXenZKZ1rJi2Mc7I6y4IhWhELiTnjyQy7YdAthTsJ40mNr8kZ6gRbasYe3K7TraITElZJA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/closebrackets/-/closebrackets-0.19.0.tgz", + "integrity": "sha512-dFWX5OEVYWRNtGaifSbwIAlymnRRjxWMiMbffbAjF7p0zfGHDbdGkiT56q3Xud63h5/tQdSo5dK1iyNTzHz5vg==", "dependencies": { - "@codemirror/language": "^0.18.0", - "@codemirror/rangeset": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/language": "^0.19.0", + "@codemirror/rangeset": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/text": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "node_modules/@codemirror/commands": { - "version": "0.18.3", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-0.18.3.tgz", - "integrity": "sha512-nHYDG13qOirioXTAKmjl10W2L0eZ1ftvmTwvUTNY27UWVBPFSpk5zDXP3WqJ0mgMhQ4AOFLJaTjJEO3hmPComg==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-0.19.4.tgz", + "integrity": "sha512-EW6ffAIdu7aGWWwEG4xRcKLR+1RXH7hJqMt5mbrxDSc2xAQBgqxIPFglcMeSkC7qqkwPuqv3xavVh1+0gQ0piQ==", "dependencies": { - "@codemirror/language": "^0.18.0", - "@codemirror/matchbrackets": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.0", - "@codemirror/view": "^0.18.0", - "lezer-tree": "^0.13.0" + "@codemirror/language": "^0.19.0", + "@codemirror/matchbrackets": "^0.19.0", + "@codemirror/state": "^0.19.2", + "@codemirror/text": "^0.19.0", + "@codemirror/view": "^0.19.0", + "@lezer/common": "^0.15.0" } }, "node_modules/@codemirror/comment": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@codemirror/comment/-/comment-0.18.1.tgz", - "integrity": "sha512-Inhqs0F24WE28Fcp1dBZghwixBGv1HDwY9MjE0d5tpMY/IPGI6uT30fGyHAXrir6hUqk7eJRkO4UYnODGOnoIA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/comment/-/comment-0.19.0.tgz", + "integrity": "sha512-3hqAd0548fxqOBm4khFMcXVIivX8p0bSlbAuZJ6PNoUn/0wXhxkxowPp0FmFzU2+y37Z+ZQF5cRB5EREWPRIiQ==", "dependencies": { - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/state": "^0.19.0", + "@codemirror/text": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "node_modules/@codemirror/fold": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/@codemirror/fold/-/fold-0.18.2.tgz", - "integrity": "sha512-kkQ+stpUbOAU0ASPP9NW5uLLhe5LVC46m47zJUnWDlsT9rS5NZW6NDiWzrDlN8dWQT8fePzkMA174BG4tr2GJw==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/fold/-/fold-0.19.0.tgz", + "integrity": "sha512-cHbr2hqKe2pMls1Ia1a4IwXly87ljpmvPUKkul6H/Uv9kCwpQLOP3dGMPXbMGm/1hGjBF/0wnc+m2iba9iJBTQ==", "dev": true, "dependencies": { - "@codemirror/gutter": "^0.18.0", - "@codemirror/language": "^0.18.0", - "@codemirror/rangeset": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/gutter": "^0.19.0", + "@codemirror/language": "^0.19.0", + "@codemirror/rangeset": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "node_modules/@codemirror/gutter": { - "version": "0.18.4", - "resolved": "https://registry.npmjs.org/@codemirror/gutter/-/gutter-0.18.4.tgz", - "integrity": "sha512-Sf2IWshMi9zwVVqpGmd2NRplY0qfrE2IiBEII9n2gB9M8hgIMg5GCyhdnsUDsOm0gcSut65W62vV7/DfYJHQCA==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@codemirror/gutter/-/gutter-0.19.2.tgz", + "integrity": "sha512-xiayxhc9uq1UXiG/r/E3AAYXZt+EtSdgdQXC4nlMHvbfw2EmtryfzGO3HrgasHRyAW8uNCaO9JO4n7mU7rm1rQ==", "dev": true, "dependencies": { - "@codemirror/rangeset": "^0.18.3", - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/rangeset": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "node_modules/@codemirror/highlight": { - "version": "0.18.4", - "resolved": "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.18.4.tgz", - "integrity": "sha512-3azJntqWrShOIq/0kVcdMc9k7ACL0LQErgK+A6aWXmCj5Mx0gShq+Iajy8AMQ2zB0v3nhCBgFaniL1LLD5m5hQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.19.5.tgz", + "integrity": "sha512-JDGEH/l/DGpxG2k+mgqMKcuFURIs42eoTB4H4tN7QmzyW/z/MlNKiHHv7pWXyN+H5QvftK5yctsxUu77EZikmw==", "dependencies": { - "@codemirror/language": "^0.18.0", - "@codemirror/rangeset": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0", - "lezer-tree": "^0.13.0", + "@codemirror/language": "^0.19.0", + "@codemirror/rangeset": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0", + "@lezer/common": "^0.15.0", "style-mod": "^4.0.0" } }, "node_modules/@codemirror/history": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@codemirror/history/-/history-0.18.1.tgz", - "integrity": "sha512-Aad3p4zs6UYKCUMXYjh7cvPK0ajuL+rMib9yBZ61w81LLl6OkM31Xrn9J6CLJmPxCwP3OJFiqBmNSBQ05oIsTw==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/history/-/history-0.19.0.tgz", + "integrity": "sha512-E0H+lncH66IMDhaND9jgkjE7s0dhYfjCPmS+Ig2Yes9I8+UIEecIdObj8c8HPCFGctGg3fxXqRAw2mdHl2Wouw==", "dependencies": { - "@codemirror/state": "^0.18.3", - "@codemirror/view": "^0.18.0" + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "node_modules/@codemirror/language": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-0.18.2.tgz", - "integrity": "sha512-2Kz0Xyfvt1Ex2KfTUcYZ3IBxpnFCqHaJijwZknGBT7JXv9dwbOPs9SfPfL4oxVuDIHZx8JTPfoV3LTTJrm8M3Q==", + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-0.19.3.tgz", + "integrity": "sha512-6vjkRYHRJg/z9wdAk75nU2fQwCJBsh2HpkIjKXIHfzISSgLt5qSDxVhPd8Uu8PD5WMmFFP8tX7I9kdIt873o0A==", "dependencies": { - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.0", - "@codemirror/view": "^0.18.0", - "lezer": "^0.13.4", - "lezer-tree": "^0.13.0" + "@codemirror/state": "^0.19.0", + "@codemirror/text": "^0.19.0", + "@codemirror/view": "^0.19.0", + "@lezer/common": "^0.15.5", + "@lezer/lr": "^0.15.0" } }, "node_modules/@codemirror/lint": { - "version": "0.18.6", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-0.18.6.tgz", - "integrity": "sha512-juE05YyDoLp9WCcR0hQagphOCIZ0r4WRocRFu9tbFwsMjfuForjn4m+wsLSDaDgp2Z9secMyOSGDpBNtVwM9lQ==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-0.19.1.tgz", + "integrity": "sha512-Ef0TnXpF4Q4B+lvBdgHexe1dHbvkKBvBHsLB8HwTYffwjekg1YvEM+6zyjyjG9m6s1Ru0VaCNlNwotLaVZjHGQ==", "dependencies": { - "@codemirror/panel": "^0.18.1", - "@codemirror/state": "^0.18.0", - "@codemirror/tooltip": "^0.18.4", - "@codemirror/view": "^0.18.0", + "@codemirror/panel": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/tooltip": "^0.19.0", + "@codemirror/view": "^0.19.0", "crelt": "^1.0.5" } }, "node_modules/@codemirror/matchbrackets": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@codemirror/matchbrackets/-/matchbrackets-0.18.0.tgz", - "integrity": "sha512-dPDopnZVkD54sSYdmQbyQbPdiuIA83p7XxX6Hp1ScEkOjukwCiFXiA/84x10FUTsQpUYp8bDzm7gwII119bGIw==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@codemirror/matchbrackets/-/matchbrackets-0.19.1.tgz", + "integrity": "sha512-jBEW2Uu3hWcrrkwkauaikCAE7s5liCwbccFa6rLK6DzwaynOqCKJGyDsbkfrhikofNRc1yh4V3vwUuxt2u4QbA==", "dependencies": { - "@codemirror/language": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0", - "lezer-tree": "^0.13.0" + "@codemirror/language": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0", + "@lezer/common": "^0.15.0" } }, "node_modules/@codemirror/panel": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/@codemirror/panel/-/panel-0.18.2.tgz", - "integrity": "sha512-ea/g2aAKtfmie1kD7C8GDutD/5u+uzRJr/varUiAbHKr1sAdjtz5xYvC3GBAMYMan1GOh0vD5zP1yEupJl3b3Q==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/panel/-/panel-0.19.0.tgz", + "integrity": "sha512-LJuu49xnuhaAztlhnLJQ57ddOirSyf8/lnl7twsQUG/05RkxodBZ9F7q8r5AOLqOkaQOy9WySEKX1Ur8lD9Q5w==", "dependencies": { - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "node_modules/@codemirror/rangeset": { - "version": "0.18.5", - "resolved": "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.18.5.tgz", - "integrity": "sha512-gvYniNeEbGRp74MM8EQ+0tylK85pVody4r4N5bs94msPwHQSKFkEmosl8tVmS0Z4e8gRtlB37m8/cWoRiuSz5Q==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.1.tgz", + "integrity": "sha512-WaKTEw8JB/3QFlQzpdgRoklopcWvG8O/Xp+rxxOfFKYTaeaejpY/tjpyBBg+Ea65Ka3m7+pPp9d5j/oR2rd9NA==", "dependencies": { - "@codemirror/state": "^0.18.0" + "@codemirror/state": "^0.19.0" } }, "node_modules/@codemirror/rectangular-selection": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@codemirror/rectangular-selection/-/rectangular-selection-0.18.1.tgz", - "integrity": "sha512-WpdIo6wyxamncvSZQEO1xsZArRnE5/NtNGnuLCjYUkW5JepdYtEJzIE9czaJqxVGrCBs//Lv58CbGX77/1GAoA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/rectangular-selection/-/rectangular-selection-0.19.0.tgz", + "integrity": "sha512-KdvoEweBgVsOcqdYFEinYGroS028pwUPkO3REzQC7Z/hT1KNqZUlyfoi6WBv3Gzp8b6l8NNA+rLnnYMSHlcGYA==", "dev": true, "dependencies": { - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.1", - "@codemirror/view": "^0.18.18" + "@codemirror/state": "^0.19.0", + "@codemirror/text": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "node_modules/@codemirror/search": { - "version": "0.18.4", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-0.18.4.tgz", - "integrity": "sha512-3chVkMPzl+pTUSqtimTicebhti4SLpvkj03pQx2aPZScXxIiYuDk4cLdIJK9omjmO1+oycRKbOrqvG7iZJJwMg==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-0.19.2.tgz", + "integrity": "sha512-TrRxUxyJ/a7HXtUvMZhgkOUbKE1xO33UhXjn1XACEHKWhgovw1vEeEEti9dZejN8/QOOFJed39InUxmp7oQ8HA==", "dependencies": { - "@codemirror/panel": "^0.18.1", - "@codemirror/rangeset": "^0.18.0", - "@codemirror/state": "^0.18.6", - "@codemirror/text": "^0.18.0", - "@codemirror/view": "^0.18.0", + "@codemirror/panel": "^0.19.0", + "@codemirror/rangeset": "^0.19.0", + "@codemirror/state": "^0.19.2", + "@codemirror/text": "^0.19.0", + "@codemirror/view": "^0.19.0", "crelt": "^1.0.5" } }, "node_modules/@codemirror/state": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-0.18.7.tgz", - "integrity": "sha512-cVyTiAC9vv90NKmGOfNtBjyIem3BqKui1L5Hfcxurp8K9votQj2oH9COcgWPnQ2Xs64yC70tEuTt9DF1pj5PFQ==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-0.19.2.tgz", + "integrity": "sha512-dDqCrtkb0c/LYUlvQBLyLfkISEskbZnhvBbcVOF4j2AusJ1ptJ3EGMxBL9G16GP1TOdC1T613gA1J1qc3pbfGQ==", "dependencies": { - "@codemirror/text": "^0.18.0" + "@codemirror/text": "^0.19.0" } }, "node_modules/@codemirror/text": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@codemirror/text/-/text-0.18.1.tgz", - "integrity": "sha512-vjXs6mi1F418kucTPlFvnCt9glKnjtYssdXb8mm1oaY/F5O+tgGVepm9Z8F7AKWCQvW8Bns1D3uLz/DOIEywIw==" + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@codemirror/text/-/text-0.19.3.tgz", + "integrity": "sha512-A0HBPZRwQ72XVMN1tg/pVUnvS5CKboBeHZE7cylYw0ljx9eX+NoYaK7apPSJO/Fwh9XhH9m8Va06EGc11VOzUw==" }, "node_modules/@codemirror/tooltip": { - "version": "0.18.4", - "resolved": "https://registry.npmjs.org/@codemirror/tooltip/-/tooltip-0.18.4.tgz", - "integrity": "sha512-LDlDOSEfjoG24uapLN7exK3Z3JchYFKUwWqo1x/9YdlAkmD1ik7cMSQZboCquP1uJVcXhtbpKmaO6vENGVaarg==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@codemirror/tooltip/-/tooltip-0.19.2.tgz", + "integrity": "sha512-FMMGGLrr62Ck54NEz8yTGpgo8ihobAsC3sbeQg+OpY4jv9dt1yIP5B9LzsIV+TXQB57JZQZxtTqzkhnFq76haw==", "dependencies": { - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "node_modules/@codemirror/view": { - "version": "0.18.19", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.18.19.tgz", - "integrity": "sha512-TmazVl8H3L+aYwlNb8xk6qADRb8KiYOO047pz51R4mGCg4Ja2siSjXktZgUvklsyWbUY7h9q+oAf4piH+mQZTw==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.7.tgz", + "integrity": "sha512-m9AKO8gec/QnyxR1uq182It0WwauTIaHkdjqtdlKx1IRgknH44SKIJIxwxZt4Y6VDhhivcEbugjoadNy0zR3wQ==", "dependencies": { - "@codemirror/rangeset": "^0.18.2", - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.1", + "@codemirror/rangeset": "^0.19.0", + "@codemirror/state": "^0.19.2", + "@codemirror/text": "^0.19.0", "style-mod": "^4.0.0", "w3c-keyname": "^2.2.4" } @@ -887,6 +887,32 @@ "node": ">=8" } }, + "node_modules/@lezer/common": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.5.tgz", + "integrity": "sha512-ufcjclusHXGdhp4gSPbPD7sUd38SgOej7m5tAEuG2tNPzqzV0d1vwwLh57R6IwW79ml2mb3tUjAoDfqI7v1HEw==" + }, + "node_modules/@lezer/generator": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@lezer/generator/-/generator-0.15.1.tgz", + "integrity": "sha512-OlG6ogwrTUeCsKVzPjXX5cFLT3XGESZY75Ust7DLMwmEgH1Awu/E4PGMFQZeTfI5lBWVo10reqXowiOhNKwOYQ==", + "dev": true, + "dependencies": { + "@lezer/common": "^0.15.0", + "@lezer/lr": "^0.15.0" + }, + "bin": { + "lezer-generator": "dist/lezer-generator.cjs" + } + }, + "node_modules/@lezer/lr": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.2.tgz", + "integrity": "sha512-gkQUkKCAw/zxOiTCGhjctV/C+FPmfwqXscM9EGgcYhUZewkLu2AsEl2Vlcral7xtDU0t6xwakT6Fw5jlMvMX6Q==", + "dependencies": { + "@lezer/common": "^0.15.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3397,34 +3423,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lezer": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/lezer/-/lezer-0.13.5.tgz", - "integrity": "sha512-cAiMQZGUo2BD8mpcz7Nv1TlKzWP7YIdIRrX41CiP5bk5t4GHxskOxWUx2iAOuHlz8dO+ivbuXr0J1bfHsWD+lQ==", - "deprecated": "This package has been replaced by @lezer/lr", - "dependencies": { - "lezer-tree": "^0.13.2" - } - }, - "node_modules/lezer-generator": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/lezer-generator/-/lezer-generator-0.13.4.tgz", - "integrity": "sha512-pTWxEgw6U41jM/IwMbhPBPonrcQV5YYL3XoY4QPR7ibOjgo2RaF4wVrdabN1ILtBbGvtHZekTGyrbsqfKnMHMA==", - "deprecated": "This package has been replaced by @lezer/generator", - "dev": true, - "dependencies": { - "lezer": "^0.13.2" - }, - "bin": { - "lezer-generator": "dist/lezer-generator.cjs" - } - }, - "node_modules/lezer-tree": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/lezer-tree/-/lezer-tree-0.13.2.tgz", - "integrity": "sha512-15ZxW8TxVNAOkHIo43Iouv4zbSkQQ5chQHBpwXcD2bBFz46RB4jYLEEww5l1V0xyIx9U2clSyyrLes+hAUFrGQ==", - "deprecated": "This package has been replaced by @lezer/common" - }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -5697,18 +5695,18 @@ "name": "graph", "version": "0.1.0", "dependencies": { - "@codemirror/autocomplete": "^0.18.3", - "@codemirror/closebrackets": "^0.18.0", - "@codemirror/commands": "^0.18.0", - "@codemirror/comment": "^0.18.0", - "@codemirror/highlight": "^0.18.3", - "@codemirror/history": "^0.18.0", - "@codemirror/language": "^0.18.0", - "@codemirror/lint": "^0.18.1", - "@codemirror/matchbrackets": "^0.18.0", - "@codemirror/search": "^0.18.2", - "@codemirror/state": "^0.18.2", - "@codemirror/view": "^0.18.3", + "@codemirror/autocomplete": "^0.19.3", + "@codemirror/closebrackets": "^0.19.0", + "@codemirror/commands": "^0.19.4", + "@codemirror/comment": "^0.19.0", + "@codemirror/highlight": "^0.19.5", + "@codemirror/history": "^0.19.0", + "@codemirror/language": "^0.19.3", + "@codemirror/lint": "^0.19.1", + "@codemirror/matchbrackets": "^0.19.1", + "@codemirror/search": "^0.19.2", + "@codemirror/state": "^0.19.2", + "@codemirror/view": "^0.19.7", "@forevolve/bootstrap-dark": "^1.0.0", "@fortawesome/fontawesome-svg-core": "^1.2.14", "@fortawesome/free-solid-svg-icons": "^5.7.1", @@ -27169,228 +27167,228 @@ } }, "@codemirror/autocomplete": { - "version": "0.18.8", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-0.18.8.tgz", - "integrity": "sha512-Va1Q763Vu/rVmIazru/ZnO2kkWVq6SlmMEjeD0qmxLAypyP6j/QNdpmaPDI1qb/+Mb9VFZBbac6a0aLTTi8qxQ==", + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-0.19.3.tgz", + "integrity": "sha512-5juP6hVrHAogzQ0JUTQuibE8j1seqeGNJ98qLUPuliI6kLBg5INS4qvUI1Brqye+wYPFu7UHqrrn13RLh5YSzw==", "requires": { - "@codemirror/language": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.0", - "@codemirror/tooltip": "^0.18.4", - "@codemirror/view": "^0.18.0", - "lezer-tree": "^0.13.0" + "@codemirror/language": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/text": "^0.19.2", + "@codemirror/tooltip": "^0.19.0", + "@codemirror/view": "^0.19.0", + "@lezer/common": "^0.15.0" } }, "@codemirror/basic-setup": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/@codemirror/basic-setup/-/basic-setup-0.18.2.tgz", - "integrity": "sha512-4UNFQ4jhU7wKxJH23AJcZW6Ho54VXUpmbtFnN5amIdtGci4ZLvci4M7JKgKFraHmKfDIYQnSzN8d8ohXR7CRhw==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/basic-setup/-/basic-setup-0.19.0.tgz", + "integrity": "sha512-Yhrf7fIz8+INHWOhpWeRwbs8fpc0KsydX9baD7TyYqniLVWyTi0Hwm52mr0f5O+k4YaJPeHAgT3x9gzDXZIvOw==", "dev": true, "requires": { - "@codemirror/autocomplete": "^0.18.0", - "@codemirror/closebrackets": "^0.18.0", - "@codemirror/commands": "^0.18.0", - "@codemirror/comment": "^0.18.0", - "@codemirror/fold": "^0.18.0", - "@codemirror/gutter": "^0.18.3", - "@codemirror/highlight": "^0.18.0", - "@codemirror/history": "^0.18.0", - "@codemirror/language": "^0.18.0", - "@codemirror/lint": "^0.18.0", - "@codemirror/matchbrackets": "^0.18.0", - "@codemirror/rectangular-selection": "^0.18.0", - "@codemirror/search": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/autocomplete": "^0.19.0", + "@codemirror/closebrackets": "^0.19.0", + "@codemirror/commands": "^0.19.0", + "@codemirror/comment": "^0.19.0", + "@codemirror/fold": "^0.19.0", + "@codemirror/gutter": "^0.19.0", + "@codemirror/highlight": "^0.19.0", + "@codemirror/history": "^0.19.0", + "@codemirror/language": "^0.19.0", + "@codemirror/lint": "^0.19.0", + "@codemirror/matchbrackets": "^0.19.0", + "@codemirror/rectangular-selection": "^0.19.0", + "@codemirror/search": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "@codemirror/closebrackets": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@codemirror/closebrackets/-/closebrackets-0.18.0.tgz", - "integrity": "sha512-O1RAgUkzF4nq/B8IyXenZKZ1rJi2Mc7I6y4IhWhELiTnjyQy7YdAthTsJ40mNr8kZ6gRbasYe3K7TraITElZJA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/closebrackets/-/closebrackets-0.19.0.tgz", + "integrity": "sha512-dFWX5OEVYWRNtGaifSbwIAlymnRRjxWMiMbffbAjF7p0zfGHDbdGkiT56q3Xud63h5/tQdSo5dK1iyNTzHz5vg==", "requires": { - "@codemirror/language": "^0.18.0", - "@codemirror/rangeset": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/language": "^0.19.0", + "@codemirror/rangeset": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/text": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "@codemirror/commands": { - "version": "0.18.3", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-0.18.3.tgz", - "integrity": "sha512-nHYDG13qOirioXTAKmjl10W2L0eZ1ftvmTwvUTNY27UWVBPFSpk5zDXP3WqJ0mgMhQ4AOFLJaTjJEO3hmPComg==", + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-0.19.4.tgz", + "integrity": "sha512-EW6ffAIdu7aGWWwEG4xRcKLR+1RXH7hJqMt5mbrxDSc2xAQBgqxIPFglcMeSkC7qqkwPuqv3xavVh1+0gQ0piQ==", "requires": { - "@codemirror/language": "^0.18.0", - "@codemirror/matchbrackets": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.0", - "@codemirror/view": "^0.18.0", - "lezer-tree": "^0.13.0" + "@codemirror/language": "^0.19.0", + "@codemirror/matchbrackets": "^0.19.0", + "@codemirror/state": "^0.19.2", + "@codemirror/text": "^0.19.0", + "@codemirror/view": "^0.19.0", + "@lezer/common": "^0.15.0" } }, "@codemirror/comment": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@codemirror/comment/-/comment-0.18.1.tgz", - "integrity": "sha512-Inhqs0F24WE28Fcp1dBZghwixBGv1HDwY9MjE0d5tpMY/IPGI6uT30fGyHAXrir6hUqk7eJRkO4UYnODGOnoIA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/comment/-/comment-0.19.0.tgz", + "integrity": "sha512-3hqAd0548fxqOBm4khFMcXVIivX8p0bSlbAuZJ6PNoUn/0wXhxkxowPp0FmFzU2+y37Z+ZQF5cRB5EREWPRIiQ==", "requires": { - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/state": "^0.19.0", + "@codemirror/text": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "@codemirror/fold": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/@codemirror/fold/-/fold-0.18.2.tgz", - "integrity": "sha512-kkQ+stpUbOAU0ASPP9NW5uLLhe5LVC46m47zJUnWDlsT9rS5NZW6NDiWzrDlN8dWQT8fePzkMA174BG4tr2GJw==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/fold/-/fold-0.19.0.tgz", + "integrity": "sha512-cHbr2hqKe2pMls1Ia1a4IwXly87ljpmvPUKkul6H/Uv9kCwpQLOP3dGMPXbMGm/1hGjBF/0wnc+m2iba9iJBTQ==", "dev": true, "requires": { - "@codemirror/gutter": "^0.18.0", - "@codemirror/language": "^0.18.0", - "@codemirror/rangeset": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/gutter": "^0.19.0", + "@codemirror/language": "^0.19.0", + "@codemirror/rangeset": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "@codemirror/gutter": { - "version": "0.18.4", - "resolved": "https://registry.npmjs.org/@codemirror/gutter/-/gutter-0.18.4.tgz", - "integrity": "sha512-Sf2IWshMi9zwVVqpGmd2NRplY0qfrE2IiBEII9n2gB9M8hgIMg5GCyhdnsUDsOm0gcSut65W62vV7/DfYJHQCA==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@codemirror/gutter/-/gutter-0.19.2.tgz", + "integrity": "sha512-xiayxhc9uq1UXiG/r/E3AAYXZt+EtSdgdQXC4nlMHvbfw2EmtryfzGO3HrgasHRyAW8uNCaO9JO4n7mU7rm1rQ==", "dev": true, "requires": { - "@codemirror/rangeset": "^0.18.3", - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/rangeset": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "@codemirror/highlight": { - "version": "0.18.4", - "resolved": "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.18.4.tgz", - "integrity": "sha512-3azJntqWrShOIq/0kVcdMc9k7ACL0LQErgK+A6aWXmCj5Mx0gShq+Iajy8AMQ2zB0v3nhCBgFaniL1LLD5m5hQ==", + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.19.5.tgz", + "integrity": "sha512-JDGEH/l/DGpxG2k+mgqMKcuFURIs42eoTB4H4tN7QmzyW/z/MlNKiHHv7pWXyN+H5QvftK5yctsxUu77EZikmw==", "requires": { - "@codemirror/language": "^0.18.0", - "@codemirror/rangeset": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0", - "lezer-tree": "^0.13.0", + "@codemirror/language": "^0.19.0", + "@codemirror/rangeset": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0", + "@lezer/common": "^0.15.0", "style-mod": "^4.0.0" } }, "@codemirror/history": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@codemirror/history/-/history-0.18.1.tgz", - "integrity": "sha512-Aad3p4zs6UYKCUMXYjh7cvPK0ajuL+rMib9yBZ61w81LLl6OkM31Xrn9J6CLJmPxCwP3OJFiqBmNSBQ05oIsTw==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/history/-/history-0.19.0.tgz", + "integrity": "sha512-E0H+lncH66IMDhaND9jgkjE7s0dhYfjCPmS+Ig2Yes9I8+UIEecIdObj8c8HPCFGctGg3fxXqRAw2mdHl2Wouw==", "requires": { - "@codemirror/state": "^0.18.3", - "@codemirror/view": "^0.18.0" + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "@codemirror/language": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-0.18.2.tgz", - "integrity": "sha512-2Kz0Xyfvt1Ex2KfTUcYZ3IBxpnFCqHaJijwZknGBT7JXv9dwbOPs9SfPfL4oxVuDIHZx8JTPfoV3LTTJrm8M3Q==", + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-0.19.3.tgz", + "integrity": "sha512-6vjkRYHRJg/z9wdAk75nU2fQwCJBsh2HpkIjKXIHfzISSgLt5qSDxVhPd8Uu8PD5WMmFFP8tX7I9kdIt873o0A==", "requires": { - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.0", - "@codemirror/view": "^0.18.0", - "lezer": "^0.13.4", - "lezer-tree": "^0.13.0" + "@codemirror/state": "^0.19.0", + "@codemirror/text": "^0.19.0", + "@codemirror/view": "^0.19.0", + "@lezer/common": "^0.15.5", + "@lezer/lr": "^0.15.0" } }, "@codemirror/lint": { - "version": "0.18.6", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-0.18.6.tgz", - "integrity": "sha512-juE05YyDoLp9WCcR0hQagphOCIZ0r4WRocRFu9tbFwsMjfuForjn4m+wsLSDaDgp2Z9secMyOSGDpBNtVwM9lQ==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-0.19.1.tgz", + "integrity": "sha512-Ef0TnXpF4Q4B+lvBdgHexe1dHbvkKBvBHsLB8HwTYffwjekg1YvEM+6zyjyjG9m6s1Ru0VaCNlNwotLaVZjHGQ==", "requires": { - "@codemirror/panel": "^0.18.1", - "@codemirror/state": "^0.18.0", - "@codemirror/tooltip": "^0.18.4", - "@codemirror/view": "^0.18.0", + "@codemirror/panel": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/tooltip": "^0.19.0", + "@codemirror/view": "^0.19.0", "crelt": "^1.0.5" } }, "@codemirror/matchbrackets": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@codemirror/matchbrackets/-/matchbrackets-0.18.0.tgz", - "integrity": "sha512-dPDopnZVkD54sSYdmQbyQbPdiuIA83p7XxX6Hp1ScEkOjukwCiFXiA/84x10FUTsQpUYp8bDzm7gwII119bGIw==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@codemirror/matchbrackets/-/matchbrackets-0.19.1.tgz", + "integrity": "sha512-jBEW2Uu3hWcrrkwkauaikCAE7s5liCwbccFa6rLK6DzwaynOqCKJGyDsbkfrhikofNRc1yh4V3vwUuxt2u4QbA==", "requires": { - "@codemirror/language": "^0.18.0", - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0", - "lezer-tree": "^0.13.0" + "@codemirror/language": "^0.19.0", + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0", + "@lezer/common": "^0.15.0" } }, "@codemirror/panel": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/@codemirror/panel/-/panel-0.18.2.tgz", - "integrity": "sha512-ea/g2aAKtfmie1kD7C8GDutD/5u+uzRJr/varUiAbHKr1sAdjtz5xYvC3GBAMYMan1GOh0vD5zP1yEupJl3b3Q==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/panel/-/panel-0.19.0.tgz", + "integrity": "sha512-LJuu49xnuhaAztlhnLJQ57ddOirSyf8/lnl7twsQUG/05RkxodBZ9F7q8r5AOLqOkaQOy9WySEKX1Ur8lD9Q5w==", "requires": { - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "@codemirror/rangeset": { - "version": "0.18.5", - "resolved": "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.18.5.tgz", - "integrity": "sha512-gvYniNeEbGRp74MM8EQ+0tylK85pVody4r4N5bs94msPwHQSKFkEmosl8tVmS0Z4e8gRtlB37m8/cWoRiuSz5Q==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.1.tgz", + "integrity": "sha512-WaKTEw8JB/3QFlQzpdgRoklopcWvG8O/Xp+rxxOfFKYTaeaejpY/tjpyBBg+Ea65Ka3m7+pPp9d5j/oR2rd9NA==", "requires": { - "@codemirror/state": "^0.18.0" + "@codemirror/state": "^0.19.0" } }, "@codemirror/rectangular-selection": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@codemirror/rectangular-selection/-/rectangular-selection-0.18.1.tgz", - "integrity": "sha512-WpdIo6wyxamncvSZQEO1xsZArRnE5/NtNGnuLCjYUkW5JepdYtEJzIE9czaJqxVGrCBs//Lv58CbGX77/1GAoA==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@codemirror/rectangular-selection/-/rectangular-selection-0.19.0.tgz", + "integrity": "sha512-KdvoEweBgVsOcqdYFEinYGroS028pwUPkO3REzQC7Z/hT1KNqZUlyfoi6WBv3Gzp8b6l8NNA+rLnnYMSHlcGYA==", "dev": true, "requires": { - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.1", - "@codemirror/view": "^0.18.18" + "@codemirror/state": "^0.19.0", + "@codemirror/text": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "@codemirror/search": { - "version": "0.18.4", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-0.18.4.tgz", - "integrity": "sha512-3chVkMPzl+pTUSqtimTicebhti4SLpvkj03pQx2aPZScXxIiYuDk4cLdIJK9omjmO1+oycRKbOrqvG7iZJJwMg==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-0.19.2.tgz", + "integrity": "sha512-TrRxUxyJ/a7HXtUvMZhgkOUbKE1xO33UhXjn1XACEHKWhgovw1vEeEEti9dZejN8/QOOFJed39InUxmp7oQ8HA==", "requires": { - "@codemirror/panel": "^0.18.1", - "@codemirror/rangeset": "^0.18.0", - "@codemirror/state": "^0.18.6", - "@codemirror/text": "^0.18.0", - "@codemirror/view": "^0.18.0", + "@codemirror/panel": "^0.19.0", + "@codemirror/rangeset": "^0.19.0", + "@codemirror/state": "^0.19.2", + "@codemirror/text": "^0.19.0", + "@codemirror/view": "^0.19.0", "crelt": "^1.0.5" } }, "@codemirror/state": { - "version": "0.18.7", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-0.18.7.tgz", - "integrity": "sha512-cVyTiAC9vv90NKmGOfNtBjyIem3BqKui1L5Hfcxurp8K9votQj2oH9COcgWPnQ2Xs64yC70tEuTt9DF1pj5PFQ==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-0.19.2.tgz", + "integrity": "sha512-dDqCrtkb0c/LYUlvQBLyLfkISEskbZnhvBbcVOF4j2AusJ1ptJ3EGMxBL9G16GP1TOdC1T613gA1J1qc3pbfGQ==", "requires": { - "@codemirror/text": "^0.18.0" + "@codemirror/text": "^0.19.0" } }, "@codemirror/text": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@codemirror/text/-/text-0.18.1.tgz", - "integrity": "sha512-vjXs6mi1F418kucTPlFvnCt9glKnjtYssdXb8mm1oaY/F5O+tgGVepm9Z8F7AKWCQvW8Bns1D3uLz/DOIEywIw==" + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@codemirror/text/-/text-0.19.3.tgz", + "integrity": "sha512-A0HBPZRwQ72XVMN1tg/pVUnvS5CKboBeHZE7cylYw0ljx9eX+NoYaK7apPSJO/Fwh9XhH9m8Va06EGc11VOzUw==" }, "@codemirror/tooltip": { - "version": "0.18.4", - "resolved": "https://registry.npmjs.org/@codemirror/tooltip/-/tooltip-0.18.4.tgz", - "integrity": "sha512-LDlDOSEfjoG24uapLN7exK3Z3JchYFKUwWqo1x/9YdlAkmD1ik7cMSQZboCquP1uJVcXhtbpKmaO6vENGVaarg==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@codemirror/tooltip/-/tooltip-0.19.2.tgz", + "integrity": "sha512-FMMGGLrr62Ck54NEz8yTGpgo8ihobAsC3sbeQg+OpY4jv9dt1yIP5B9LzsIV+TXQB57JZQZxtTqzkhnFq76haw==", "requires": { - "@codemirror/state": "^0.18.0", - "@codemirror/view": "^0.18.0" + "@codemirror/state": "^0.19.0", + "@codemirror/view": "^0.19.0" } }, "@codemirror/view": { - "version": "0.18.19", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.18.19.tgz", - "integrity": "sha512-TmazVl8H3L+aYwlNb8xk6qADRb8KiYOO047pz51R4mGCg4Ja2siSjXktZgUvklsyWbUY7h9q+oAf4piH+mQZTw==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.7.tgz", + "integrity": "sha512-m9AKO8gec/QnyxR1uq182It0WwauTIaHkdjqtdlKx1IRgknH44SKIJIxwxZt4Y6VDhhivcEbugjoadNy0zR3wQ==", "requires": { - "@codemirror/rangeset": "^0.18.2", - "@codemirror/state": "^0.18.0", - "@codemirror/text": "^0.18.1", + "@codemirror/rangeset": "^0.19.0", + "@codemirror/state": "^0.19.2", + "@codemirror/text": "^0.19.0", "style-mod": "^4.0.0", "w3c-keyname": "^2.2.4" } @@ -27505,6 +27503,29 @@ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, + "@lezer/common": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.5.tgz", + "integrity": "sha512-ufcjclusHXGdhp4gSPbPD7sUd38SgOej7m5tAEuG2tNPzqzV0d1vwwLh57R6IwW79ml2mb3tUjAoDfqI7v1HEw==" + }, + "@lezer/generator": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@lezer/generator/-/generator-0.15.1.tgz", + "integrity": "sha512-OlG6ogwrTUeCsKVzPjXX5cFLT3XGESZY75Ust7DLMwmEgH1Awu/E4PGMFQZeTfI5lBWVo10reqXowiOhNKwOYQ==", + "dev": true, + "requires": { + "@lezer/common": "^0.15.0", + "@lezer/lr": "^0.15.0" + } + }, + "@lezer/lr": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.2.tgz", + "integrity": "sha512-gkQUkKCAw/zxOiTCGhjctV/C+FPmfwqXscM9EGgcYhUZewkLu2AsEl2Vlcral7xtDU0t6xwakT6Fw5jlMvMX6Q==", + "requires": { + "@lezer/common": "^0.15.0" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -28021,13 +28042,15 @@ "codemirror-promql": { "version": "file:module/codemirror-promql", "requires": { - "@codemirror/autocomplete": "^0.18.3", - "@codemirror/basic-setup": "^0.18.0", - "@codemirror/highlight": "^0.18.3", - "@codemirror/language": "^0.18.0", - "@codemirror/lint": "^0.18.1", - "@codemirror/state": "^0.18.2", - "@codemirror/view": "^0.18.1", + "@codemirror/autocomplete": "^0.19.3", + "@codemirror/basic-setup": "^0.19.0", + "@codemirror/highlight": "^0.19.5", + "@codemirror/language": "^0.19.3", + "@codemirror/lint": "^0.19.1", + "@codemirror/state": "^0.19.2", + "@codemirror/view": "^0.19.7", + "@lezer/common": "^0.15.5", + "@lezer/generator": "^0.15.1", "@types/chai": "^4.2.12", "@types/lru-cache": "^5.1.0", "@types/mocha": "^8.0.3", @@ -28042,8 +28065,6 @@ "eslint-plugin-import": "^2.24.2", "eslint-plugin-prettier": "^4.0.0", "isomorphic-fetch": "^3.0.0", - "lezer": "^0.13.1", - "lezer-generator": "^0.13.1", "lru-cache": "^6.0.0", "mocha": "^8.1.2", "nock": "^13.0.11", @@ -28913,18 +28934,18 @@ "graph": { "version": "file:react-app", "requires": { - "@codemirror/autocomplete": "^0.18.3", - "@codemirror/closebrackets": "^0.18.0", - "@codemirror/commands": "^0.18.0", - "@codemirror/comment": "^0.18.0", - "@codemirror/highlight": "^0.18.3", - "@codemirror/history": "^0.18.0", - "@codemirror/language": "^0.18.0", - "@codemirror/lint": "^0.18.1", - "@codemirror/matchbrackets": "^0.18.0", - "@codemirror/search": "^0.18.2", - "@codemirror/state": "^0.18.2", - "@codemirror/view": "^0.18.3", + "@codemirror/autocomplete": "^0.19.3", + "@codemirror/closebrackets": "^0.19.0", + "@codemirror/commands": "^0.19.4", + "@codemirror/comment": "^0.19.0", + "@codemirror/highlight": "^0.19.5", + "@codemirror/history": "^0.19.0", + "@codemirror/language": "^0.19.3", + "@codemirror/lint": "^0.19.1", + "@codemirror/matchbrackets": "^0.19.1", + "@codemirror/search": "^0.19.2", + "@codemirror/state": "^0.19.2", + "@codemirror/view": "^0.19.7", "@forevolve/bootstrap-dark": "^1.0.0", "@fortawesome/fontawesome-svg-core": "^1.2.14", "@fortawesome/free-solid-svg-icons": "^5.7.1", @@ -43852,28 +43873,6 @@ "type-check": "~0.4.0" } }, - "lezer": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/lezer/-/lezer-0.13.5.tgz", - "integrity": "sha512-cAiMQZGUo2BD8mpcz7Nv1TlKzWP7YIdIRrX41CiP5bk5t4GHxskOxWUx2iAOuHlz8dO+ivbuXr0J1bfHsWD+lQ==", - "requires": { - "lezer-tree": "^0.13.2" - } - }, - "lezer-generator": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/lezer-generator/-/lezer-generator-0.13.4.tgz", - "integrity": "sha512-pTWxEgw6U41jM/IwMbhPBPonrcQV5YYL3XoY4QPR7ibOjgo2RaF4wVrdabN1ILtBbGvtHZekTGyrbsqfKnMHMA==", - "dev": true, - "requires": { - "lezer": "^0.13.2" - } - }, - "lezer-tree": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/lezer-tree/-/lezer-tree-0.13.2.tgz", - "integrity": "sha512-15ZxW8TxVNAOkHIo43Iouv4zbSkQQ5chQHBpwXcD2bBFz46RB4jYLEEww5l1V0xyIx9U2clSyyrLes+hAUFrGQ==" - }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", diff --git a/web/ui/react-app/package.json b/web/ui/react-app/package.json index f8ec094ac..28a83358a 100644 --- a/web/ui/react-app/package.json +++ b/web/ui/react-app/package.json @@ -3,18 +3,18 @@ "version": "0.1.0", "private": true, "dependencies": { - "@codemirror/autocomplete": "^0.18.3", - "@codemirror/closebrackets": "^0.18.0", - "@codemirror/commands": "^0.18.0", - "@codemirror/comment": "^0.18.0", - "@codemirror/highlight": "^0.18.3", - "@codemirror/history": "^0.18.0", - "@codemirror/language": "^0.18.0", - "@codemirror/lint": "^0.18.1", - "@codemirror/matchbrackets": "^0.18.0", - "@codemirror/search": "^0.18.2", - "@codemirror/state": "^0.18.2", - "@codemirror/view": "^0.18.3", + "@codemirror/autocomplete": "^0.19.3", + "@codemirror/closebrackets": "^0.19.0", + "@codemirror/commands": "^0.19.4", + "@codemirror/comment": "^0.19.0", + "@codemirror/highlight": "^0.19.5", + "@codemirror/history": "^0.19.0", + "@codemirror/language": "^0.19.3", + "@codemirror/lint": "^0.19.1", + "@codemirror/matchbrackets": "^0.19.1", + "@codemirror/search": "^0.19.2", + "@codemirror/state": "^0.19.2", + "@codemirror/view": "^0.19.7", "@forevolve/bootstrap-dark": "^1.0.0", "@fortawesome/fontawesome-svg-core": "^1.2.14", "@fortawesome/free-solid-svg-icons": "^5.7.1",