upgrade to codemirror v19 (#9363)

* upgrade to codemirror v19

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>

* fix autocomplete test

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>

* fix wording

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
This commit is contained in:
Augustin Husson 2021-09-24 21:40:49 +02:00 committed by GitHub
parent 7c40eb52ef
commit 3e494eac71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 459 additions and 440 deletions

View File

@ -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,

View File

@ -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[]',

View File

@ -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(

View File

@ -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';

View File

@ -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';

View File

@ -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,

View File

@ -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)',

View File

@ -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.

View File

@ -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,

View File

@ -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,

View File

@ -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: [

View File

@ -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({

757
web/ui/package-lock.json generated
View File

@ -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",

View File

@ -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",